You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
feat(planning): fail plans with missing citations and trace acceptance criteria #6924
Make plans cite only code that exists and make acceptance criteria checkable end to end.
Fail a plan whose file:line citation does not exist (html-plan's lint rejects invented anchors; we have none).
Stamp each plan with the commit it was checked at.
Trace acceptance criteria to phases and slices; this needs criterion ids.
In decompose: check that each criterion can fail at the base commit, and ask what each slice demos.
Run the html-plan trial: use /html-plan beside /planning:plan on this workstream's own planning. The user approves a temporary user-scope install and it is removed afterwards. Record whether the visual review changed any decision.
Key interfaces
None
Acceptance criteria
A script fails a plan whose file:line citation does not exist
Plans stamp the commit they were checked at
Acceptance criteria carry ids and trace to phases and slices
Decompose checks each criterion can fail at the base commit and asks what each slice demos
The html-plan trial ran on this workstream's planning; its outcome (decisions changed or not) is recorded
The temporary html-plan install is removed
The PR body carries Refs: #6917
Out of scope
A permanent html-plan install or any dependency on its code
The decision settles the open questions: this issue is a split parent whose criteria are carried by its sub-issues, so nothing is asked again. It stays open as the tracker until #10039, #10048 and #10067 close.
Split by the owner's HITL session (2026-10-24, C12, Q93-Q95) into sub-issues. Slices with no blocker can run in parallel; the rest wait on their blocked-by edges. Intake triage sets each slice's fields, then admission takes it.
Releasing the hold. This issue is a split parent: its work lives in its sub-issues. The hold was kept until admission refused a parent with open sub-issues, and that guard is now on main: .github/scripts/intake-triage/admit.mjs:438-441 ("A split issue's work is its sub-issues' (owner Q93)"), so admission waits while any sub-issue is open. refine.mjs:292 also declines to split an issue that already has sub-issues. needs-human comes off. Nothing is re-queued: the parent stays open as the tracker until its sub-issues close.
This split was filed by hand, so it has no lanes App split record, and work-unblock's closeSplitParent will not close it on its own when the last sub-issue closes. That gap is reported to the coordinator.
Not admitted to the issue lane yet: blocker #10048 is not closed by a listed human or a merge; blocker #10067 is not closed by a listed human or a merge; sub-issue #10048 is open; sub-issue #10067 is open.
melodic-automation-lanes commented on Oct 26, 2026
Decision recorded. The owner answered in the Refinement and Issue Triage sessions (2026-10-25), deciding the open items below on the facts:
go with whatever the facts/data/metrics + /discovery:research says and ensure we're aligned with SOLID, DRY/SSOT principles
I should only ever be in the loop ONLY when necessary (intent/vision changed, something came up during implementation that impacts trajectory/alignment, OR a high security risk) - I've covered this all before
No owner ledger (.work/*/interview-checklist.md, .work/gh-monitor-owner-decisions/) names this issue.
The admission refusal of 2026-10-26T07:23Z (#6924 (comment)) predates #10274 (84894c96b6, merged 2026-10-26T12:55Z). On main, admission returns wait on open sub-issues before any refusal unless the refusal holds for a person (.github/scripts/intake-triage/admit.mjs:509-514). Neither the Feature-parent reason nor Size large holds, so this issue now waits on #10039, #10048 and #10067.
Does the Feature-parent reason still apply?
Decided: No. The parent check passes when the parent is open, filed by a listed human, and carries none of needs-human, needs-owner-decision, or status: needs-decision with a decision open (admit.mjs:116, :447-448). The parent Epic: improve the planning chain from html-plan, HumanLayer rpi and Pocock sources #6917 is open, filed by kyle-sexton (the same author whose issue passed the author check in the refusal above), and its labels are now priority: medium, status: ready and work-map (issue data fetched 2026-10-26). The decided record on Epic: improve the planning chain from html-plan, HumanLayer rpi and Pocock sources #6917 also answers its refinement's questions.
Activity
github-actions commentedon Oct 11, 2026
Proposed work class: none
Size: Large
Complexity: Medium
Uncertainty: Known
Flags: none
Blocked by: #10039, #10048, #10067
#6924 (comment)
The decision settles the open questions: this issue is a split parent whose criteria are carried by its sub-issues, so nothing is asked again. It stays open as the tracker until #10039, #10048 and #10067 close.
Automated triage. A maintainer reviews it.
kyle-sexton commentedon Oct 25, 2026
Split by the owner's HITL session (2026-10-24, C12, Q93-Q95) into sub-issues. Slices with no blocker can run in parallel; the rest wait on their blocked-by edges. Intake triage sets each slice's fields, then admission takes it.
kyle-sexton commentedon Oct 26, 2026
This was generated by AI.
Releasing the hold. This issue is a split parent: its work lives in its sub-issues. The hold was kept until admission refused a parent with open sub-issues, and that guard is now on main:
.github/scripts/intake-triage/admit.mjs:438-441("A split issue's work is its sub-issues' (owner Q93)"), so admission waits while any sub-issue is open.refine.mjs:292also declines to split an issue that already has sub-issues.needs-humancomes off. Nothing is re-queued: the parent stays open as the tracker until its sub-issues close.This split was filed by hand, so it has no lanes App split record, and work-unblock's
closeSplitParentwill not close it on its own when the last sub-issue closes. That gap is reported to the coordinator.melodic-automation-lanes commentedon Oct 26, 2026
Not admitted to the issue lane yet: blocker #10048 is not closed by a listed human or a merge; blocker #10067 is not closed by a listed human or a merge; sub-issue #10048 is open; sub-issue #10067 is open.
melodic-automation-lanes commentedon Oct 26, 2026
The latest triage verdict holds nothing: the issue is at
status: ready.kyle-sexton commentedon Oct 26, 2026
Decision recorded. The owner answered in the Refinement and Issue Triage sessions (2026-10-25), deciding the open items below on the facts:
No owner ledger (
.work/*/interview-checklist.md,.work/gh-monitor-owner-decisions/) names this issue.The admission refusal of 2026-10-26T07:23Z (#6924 (comment)) predates #10274 (
84894c96b6, merged 2026-10-26T12:55Z). On main, admission returnswaiton open sub-issues before any refusal unless the refusal holds for a person (.github/scripts/intake-triage/admit.mjs:509-514). Neither the Feature-parent reason nor Size large holds, so this issue now waits on #10039, #10048 and #10067.Decided: No. The parent check passes when the parent is open, filed by a listed human, and carries none of
needs-human,needs-owner-decision, orstatus: needs-decisionwith a decision open (admit.mjs:116,:447-448). The parent Epic: improve the planning chain from html-plan, HumanLayer rpi and Pocock sources #6917 is open, filed by kyle-sexton (the same author whose issue passed the author check in the refusal above), and its labels are nowpriority: medium,status: readyandwork-map(issue data fetched 2026-10-26). The decided record on Epic: improve the planning chain from html-plan, HumanLayer rpi and Pocock sources #6917 also answers its refinement's questions.Decided: No. The body's
- [ ]criteria stand unchanged, and each is a sub-issue's work: the citation check and the commit stamp are feat(planning): fail a plan whose file:line citation does not exist, and stamp the commit it was checked at #10037, closed and on main as697e1e6139(feat(planning): fail a plan whose file:line citation does not exist, and stamp the commit it was checked at #10066); criterion ids and tracing are feat(planning): give acceptance criteria ids and trace them to plan phases and decompose slices #10039; the decompose checks are feat(work-items): decompose checks each criterion can fail at the base commit and asks what each slice demos #10048 (blocked by feat(planning): give acceptance criteria ids and trace them to plan phases and decompose slices #10039); the html-plan trial and the removal of its install are chore(planning): run the html-plan trial beside /planning:plan and record whether it changed a decision #10067, which a person runs because it needs a temporary user-scope install (body, "What to build"). Basis: the 2026-10-25 sub-issue list in the issue data.Acceptance criteria: none a lane can run on this issue. The body's criteria are carried by its sub-issues, and no line is amended.
Host run (host-run label):
Close:
closeSplitParentcloses only a parent with a lanes App split record (.github/scripts/work-unblock/label-unblocked.mjs:1493), and this split was filed by hand.