Repository navigation
feat(planning): every /planning:interview recommendation shows its evidence, not bare judgment #6728
Copy link
Copy link
Open
Open
Feature
Copy link
Labels
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.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.A briefed fix or small feature; blast radius bounded by the brief, tests exist.
Description
Problem
/planning:interview allows Basis: judgment on a non-consequential recommendation ("When no codebase signal exists, a non-consequential question may be recommended from conventions, labeled Basis: judgment", skills/interview/SKILL.md "Recommended answers"). In practice that lets a recommendation arrive with no facts behind it, and the operator cannot see why it fits them.
Requested behavior
Every recommendation carries the facts it rests on and how they combine:
- each fact with its source: a
file:line, a URL fetched this session, a session-transcript finding, or tool output - one line on why those facts together lead to this answer for this user
- when only judgment is available, research before asking, or ask with the recommendation withheld and name the evidence that would settle it (the existing
Withheld:shape)
Acceptance criteria
Basis: judgmentalone is no longer a valid basis for an interview recommendation- The per-question shape in SKILL.md and
context/recommendation-basis.mdshows an evidence list plus a one-line inference - The page surface's basis field carries the same evidence list
🤖 Generated with Claude Code
https://claude.ai/code/session_01LGDKQK7XJf6kz6EZDzbKwM
Done when
Scope per the 2026-10-13 decision record: interview files only; the shared context/recommendation-basis.md stays unchanged; the attended digest-recompute gate is gone, so the run recomputes both pinned digests itself.
-
git grep -n 'Basis: judgment' -- plugins/planning/skills/interview/SKILL.md plugins/planning/skills/interview/context/loop.mdprints nothing. - The per-question shape in
plugins/planning/skills/interview/SKILL.mdshows an evidence list (each fact with its source) plus a one-line inference, and a question with only judgment available is researched first or asked with aWithheld:line. -
git diff --quiet origin/main -- plugins/planning/context/recommendation-basis.mdexits 0. -
bash plugins/planning/tests/interview-defenses.test.shexits 0 with the Stance and loop.md Step 2 digests recomputed. -
bash plugins/skill-quality/scripts/check-skill.sh plugins/planning/skillsexits 0.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
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.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.A briefed fix or small feature; blast radius bounded by the brief, tests exist.
Type
Fields
No fields configured for Feature.
Activity
github-actions commentedon Oct 10, 2026
Proposed work class: work-class: scoped
Basis: automated intake triage; the lanes App applied this class.
Size: Small
Complexity: Medium
Uncertainty: Known
Flags: none
Blocked by: none
#6728 (comment)
That decision settles the open questions. I read the work as follows. Interview recommendations must list their facts with sources plus a one-line inference.
Basis: judgmentgoes away in the interview skill files only. The shared recommendation-basis file stays unchanged. The two pinned digests are recomputed in the run, as the Done-when section says.Automated triage, applied by the lanes App.
kyle-sexton commentedon Oct 11, 2026
Handoff note for whoever picks this up next. The overnight Claude run has stopped, and Kyle is moving issue work to Cursor.
Where a branch is listed it is pushed, so it can be taken over as is. A draft PR shows a red
ci-statusby design until it is marked ready.Generated by Claude Code
kyle-sexton commentedon Oct 13, 2026
Decision recorded. The owner approved applying independently verified recommendations on 2026-10-12.
Basis: judgmentas a valid interview basis, replacing it with an evidence list plus a one-line inference? → Yes, as the issue asksBasis: plugins/planning/skills/interview/SKILL.md:175 (current judgment allowance); plugins/planning/skills/interview/context/loop.md:67 (Withheld: line); AGENTS.md Team standards (judgment allowed)
Basis: fix(planning): word interview questions so yes accepts the recommendation #7036 body ("none of the six with-arm traces read it"; maintainer approved recomputing the digest, attended, 2026-10-11)
Basis: judgmentas a valid interview basis? → Yes for /planning:interview only: tighten SKILL.md:175 and loop.md:67 to an evidence list plus a one-line inference, and leave the shared context/recommendation-basis.md unchanged. Changing the shared contract is a separate cross-plugin convention decision. (added by verification)Basis: scripts/cross-plugin-source-registry.txt:116-121; plugins/planning/context/recommendation-basis.md:25-31; md5 identical across planning/debugging/work-items copies (origin/main)
Basis: plugins/planning/tests/interview-defenses.test.sh:498-502 and :634 (origin/main)
The owner asks that interview recommendations always list their facts and a one-line inference, ending bare
Basis: judgment. No PR; the 2026-10-11 handoff skipped it for lack of a recorded decision, and the rule sits in the digest-pinned Stance section that #7036 also edited.Verification notes:
context/recommendation-basis.md. That file is a synced cross-plugin copy (13 plugins ship it, byte-identical; canonical plugins/discipline/context/recommendation-basis.md; drift-checked via scripts/cross-plugin-source-registry.txt:116-121), and its three outcomes includejudgment(lines 25-31), matching the org convention and team standards. Editing planning's copy fails the drift check; editing the canonical changes 13 plugins' contract, which is cross-plugin, not C3. The record's own 'why' (a stricter interview rule does not contradict the floor) only holds if the change stays in interview files.Basis: judgment) sits inside the pinned 'loop.md Step 2 section' (interview-defenses.test.sh:634), so that digest needs an attended recompute too.Verified by an independent fresh-context check (refuted, risk low): gh issue view 6728 (handoff 2026-10-11: skipped, no owner decision); plugins/planning/skills/interview/SKILL.md:170-178 and section headings; plugins/planning/skills/interview/context/loop.md:62-70 and headings; plugins/planning/context/recommendation-basis.md; scripts/cross-plugin-source-registry.txt:116-121; plugins/planning/tests/interview-defenses.test.sh pin_section list
Admission to an agent lane stays with the work-class rules and owner ratification.
kyle-sexton commentedon Oct 24, 2026
Released by the owner's HITL session (2026-10-24, C12): it waited only on a removed gate. Intake triage re-runs on it to set its fields, then admission takes it.
github-actions commentedon Oct 25, 2026
The triage sweep dispatched intake triage for this issue (attempt 1 of 2).
melodic-automation-lanes commentedon Oct 25, 2026
The work-resolve-issue lane stopped partway through this issue and needs a person.
Why, in the run's own words:
What the run says it did not do:
Partial work is on the branch
work-resolve-issue/issue-6728-40195223906-1. A retry continues from it while it is not behind the default branch, and otherwise starts fresh from the default branch; delete the branch first to always start fresh.Run: https://github.com/melodic-software/claude-code-plugins/actions/runs/40195223906
To retry, remove
needs-humanand addagent-readyagain.