Skip to content

epic(planning): carry the operator's intent from /planning:interview into the Brief #6049

Description

@kyle-sexton

Problem

A /plugin-quality:audit of /planning:interview (planning 0.62.2, page surface, Windows/Git Bash, claude-opus-5-5 at medium effort) produced 34 findings, all graded by one lens the operator set: "with regards to the interview and planning - its all about the transfer of intent and vision (from me) to the agent (you)", with the scope "make sure you flag anything and everything there". Low and cosmetic findings are in scope.

The findings fall into four independently implementable areas, each a child issue:

Child Area Findings
#6052 Intent capture during the interview I1 (with Q13), I2, I3, I4, I6, I7, I8, plus the inline-references request from a second session
#6051 The Brief export and its gate E1, E2, E3, E4 (with Q12), E5, E6, E7, E8
#6053 Page UI and wake cost E9 (with Q10), I5, Q5, Q6, Q7, Q8, Q9, Q11
#6050 Skill docs, schema, size and round tooling E10, E11, E12, I9, Q1, Q2, Q3, Q4, plus the boolean user_config substitution report

Severity after recalibration: 5 high (I1, I2, E1, E2, E3), 14 medium, 15 low. Merges inside the audit (nothing dropped): Q13 into I1, Q10 into E9, Q12 into E4.

Evidence

The run that produced the findings: topic was a potential /go-faster skill (ended as /performance:go-faster); 31 questions over 6 rounds; rounds 4 to 6 (19 of the 31 questions) came from three assumption sweeps that found 12, 6 and 4 items. Every question was accepted exactly as recommended. responses.json event counts: accept 32, confirm 15, ask 5, note 1, confirm-understanding 1 (54 events); 0 own, 0 alt, 0 defer. Operator time from first event (03:14:28Z) to Confirm of restatement rev 1 (03:55:10Z): about 40 minutes.

The operator's own free text, which is where the vision arrived and which the Brief did not carry (see the intent child):

  • seq 1, ask on Q1: "How would you (the AI agent) be able to prove to the user what the issue with (with confidence and accuracy...?)"
  • seq 2, ask on Q2: "Yeah usually it could be overengineering, an inferior implementation, an inferior workflow (how the user works with Claude), the skills being used, and a whole other long list of things"
  • seq 3, ask on Q1: "Yeah this could be fired early in the session, midway, or at the end (more of a retro). But a skill named /go-faster implies as soon as the session starts, or midway (probably the most common) - and towards the end (like slow CI/CD), iterative PR fixes, many turns, etc. - inefficient processes..."
  • seq 4, ask on Q2: "This overlaps with the "unhobbling" claude stuff too huh? Like if the agent doesn't need all the handholding and cruft? Particularly as the models get better - I'd think the models would improve with the suggestions (dropping the shackles / overwatch)"
  • seq 8, ask on Q5: "It should be able to detect where it is in the process/conversation. It can audit current state first and also look back (but needs to prioritize the biggest hindrances first). Also how does this work so the main thread can keep going uninterrupted and the skill run is done basically in the background. Would it be good to have as an always on monitor or no? Is this a mod candidate?"
  • seq 29, note: "Wait the /performance:* plugins are not just for code right? They can be adopted for anything or do I have that wrong?"

Re-verified this pass against origin/main 6f59096 (planning 0.63.2). Since the audit base (0100a02), only round.py, server.py, watch.sh, wake.sh and session-config.md changed in plugins/planning (the session-bridge extraction, #5907, moved the transport into session_bridge.py). SKILL.md, surface.md, loop.md, exporters.py, index.html and check-open-questions.sh are unchanged, so the audit's line numbers hold for them. Each child lists its own spot checks.

Research status: the six findings rated high at audit time (E1, E2, E3, I1, I2, I5) went through a research pass whose artifacts failed independent verification. Their code citations were re-read and confirmed; their external sources are not grounding for any remediation. Every other finding was not researched. Every finding is needs-decision; none is agent-ready.

Proposed approach

Work the children in this order: export (the contract the planner reads), intent (what goes into it), page, authoring. The operator planned to scope the fixes by running /planning:interview on this epic in a fresh session; any defect seen in that run is evidence for the matching child.

Acceptance criteria

  • Every child issue is closed or explicitly declined with a reason.
  • A page-surface interview run end to end on the fixed plugin produces a Brief that carries the operator's own words, each decision once in its current form, and every confirmed restatement section, with the gate clean only when that holds.

Constraints and gotchas

Blindspots of the audit, true for every child:

  • The terminal (inline prose) surface was not exercised. E1, E2, E5, E7 and E8 are page-exporter defects; the terminal path writes the Brief by hand from loop.md's template.
  • /planning:plan was not run on the Brief; downstream harm in E1, E2, E7 and E8 is inferred from plan/SKILL.md:93 and tag-decisions.md:7.
  • Sibling skills that open the same surface (design, prd, plan) share exporters.py and likely share E1, E2 and E7. Not audited.
  • Only Windows with Git Bash was exercised. Resume, import-ledger, doctor and the unattended ladder were not exercised. server.py's security model was read, not tested.
  • High-effort review lenses were skipped at medium effort; the breadth review was one fresh-context pass over the high findings.

Aside, not a planning defect: skill-quality:check passes on the repo copy of the interview skill and fails on the installed cache copy only because markdownlint runs there without the repo's config. That belongs to the skill-quality plugin.

Related open issues in the same area: #5795 (page visual audit), #5796 (answer order and changed answers), #5769 (stale recommendations on a new constraint), #5815 (whole recommendation in Accept), #5817 (Claude's reply not shown), #5893 (wrap-up friction), #5801.

Context

Source: local handoff items 20261003-050831-planning-interview-intent-transfer-audit.md and 20261003-055631-planning-interview-page-inline-references.md (retired into this epic and its children). Audit evidence lived in a local sealed packet that is not durable; every needed fact is restated in the children.

Activity

  1. added
    status: needs-decisionAwaiting a human or maintainer judgment call.
    priority: highSignificant impact, or blocks an imminent release; staff this cycle.
    work-class: structuralRefactors, migrations, contract changes; cross-cutting and hard to reverse.
    on Oct 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority: highSignificant impact, or blocks an imminent release; staff this cycle.status: needs-decisionAwaiting a human or maintainer judgment call.work-class: structuralRefactors, migrations, contract changes; cross-cutting and hard to reverse.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions