Repository navigation
fix(planning): refuse answers on superseded and archived interview questions and link the live question #9715
Copy link
Copy link
Open
Labels
agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.Fully specified and briefed; eligible for autonomous pickup from the frontier.needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.Human-in-the-loop required; autonomous sessions must not resolve items carrying this.priority: mediumReal value, no hard deadline; normal backlog flow.Real value, no hard deadline; normal backlog flow.status: readyTriaged, unblocked, and fully specified; eligible to pick up.Triaged, unblocked, and fully specified; eligible to pick up.
Description
Parent
Refs #5796
Depends on
- none: on the frontier now
Outcome
An archived or superseded question takes no decision and points at the live end of its chain (gap G4; also
#5795 "Archived and superseded questions keep live controls", which its triage assigned here):
- The page disables the decision choices on archived and superseded questions, keeps Ask, and adds a primary
"Go to Q61" button naming the last live question of thesupersededBychain. - The server answers 409
{"error": "superseded", "by": "Q61"}to a decision on one. - The page's state check reads
supersededBybefore the decision, so an answered superseded question no longer
counts as answered and live in the meter, andexport-ledgernever drops an answer the page counted live.
Key interfaces
- Interview page:
plugins/planning/surface/index.html; page server:plugins/planning/surface/server.py
(record(),derive_states); round CLI:plugins/planning/surface/round.pybehindround.sh;
exporters:plugins/planning/surface/exporters.py. - The interview skill's surface contract,
plugins/planning/skills/interview/context/surface.md, documents
every new op, field, setting and refusal.
Done when
- A server test posts a decision on a superseded question and gets 409 with
"by"naming the chain's live end (two hops away in the fixture). - A page test shows disabled decision choices, an enabled Ask and the "Go to" button on an archived question.
- A test answers a question, supersedes it, and checks the meter count and the
export-ledgeroutput agree. -
scripts/run-test-file.sh plugins/planning/surface/test_server.pyexits 0. -
scripts/run-test-file.sh plugins/planning/surface/test_round.pyexits 0. -
bash plugins/planning/surface/surface.test.shexits 0, so a data dir without the new fields still loads, renders and exports. -
scripts/check-changelog-fragments.sh --check-required origin/mainexits 0.
Out of scope
- The rest of fix(planning): interview page visual audit follow-ups to #5569 #5795's visual findings.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.Fully specified and briefed; eligible for autonomous pickup from the frontier.needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.Human-in-the-loop required; autonomous sessions must not resolve items carrying this.priority: mediumReal value, no hard deadline; normal backlog flow.Real value, no hard deadline; normal backlog flow.status: readyTriaged, unblocked, and fully specified; eligible to pick up.Triaged, unblocked, and fully specified; eligible to pick up.
Type
Fields
No fields configured for Bug.
Activity
melodic-automation-lanes commentedon Oct 24, 2026
The work-resolve-issue run that
agent-readystarted failed or was cancelled before it reported, or it stopped or the token broker refused it because its workflow files differ from main's. work-unblock removed and addedagent-readyback to start a fresh run on main's workflow files. It does this once per version of those files, so if this run fails the same way, a person looks at it.melodic-automation-lanes commentedon Oct 24, 2026
The work-resolve-issue run that
agent-readystarted ended over 3 hours ago with no report and no pull request. work-unblock already re-fired it once on these lane workflow files, so it no longer does, and the issue would hold a place in the issue lane's queue with nothing running. It addedneeds-human. To try again, removeneeds-human, then removeagent-readyand add it back.