Skip to content

feat(planning): interview asks intent and quality requirements, reads consumer standards #8333

Description

@kyle-sexton

Parent

Refs #8326 · Source: PLAN Phase 3, topic malleable-design-defaults

Depends on

Outcome

In every engineering session, /planning:interview reads the consumer's standards before it applies any bundled default. It reads them through the standards-contract resolution ladder, matched rows only, with depth set by the quality bar (prototype: ambient only).

It then asks the intent question: is a second variant known, a category, or speculative; what the existing structure does; and what upstream says. If the request already states the answer, it confirms rather than asks. For a prototype the question is one line; for a bug fix or refactor it is a one-line "not applicable?". It records Intent: and Quality bar: lines under Captured assumptions.

It prompts quality requirements (NFRs) according to the quality bar and records each one under Constraints as a Quality requirement: line.

Upstream context goes into the Brief as a short summary, never a verbatim quote of private content. In a private repo the summary carries a pointer to its source; when the repo is public or its visibility is unknown, the summary omits private titles and URLs.

Unattended runs follow the Q47 answers. Only text the user wrote or confirmed counts as the user's words. When the answer is unstated, the interview locks the Brief with the intent row blocked, deferred to USER-RESERVED, and escalates once. An unstated measurable NFR target is recorded as a captured assumption.

Key interfaces

From the plan's ## Design:

planning skills/interview | intent question, NFR prompt list, Quality bar: and Intent: lines | proactive

Intent: second variant = known | category | speculative; existing structure: <summary>; upstream: <summary or none>
Quality bar: prototype | internal | production
Overrides bundled default <principle> per <standards file>

Intent and quality-bar lines live under the Brief's ### Captured assumptions. Bug fix or refactor: Intent: not applicable (confirmed).

The NFR list lives in a new interview context file. It holds performance, reliability/availability, security, maintainability, usability (ISO/IEC 25010:2023: interaction capability), scalability (ISO/IEC 25010:2023: part of flexibility), and observability (not an ISO/IEC 25010 characteristic; included by judgment). The list is labeled judgment and points at ISO/IEC 25010:2023 with an as-of date and a recheck trigger.

Variation verdict: upstream context (trackers, docs) is contained in the operation's owner (ADR 0060) and framed as data.

Done when

  • Interview SKILL.md line count is unchanged; it is at its 500-line cap, so new text goes in the interview's loop context and the new NFR prompts context file, with at most one pointer line in SKILL.md.
  • grep -c "Quality bar:" and grep -c "Intent: second variant" on the interview loop context each return ≥ 1.
  • Each new standing instruction names its observed stumble (container Brief Constraints).
  • Eval cases (case.yaml dirs under the planning plugin's evals/; consumer standards written by scaffold_script as docs/standards/ files): intent asked and recorded; unattended blocked row; prototype one-line collapse; NFR captured; consumer override line. Run the suite on main's plugin and on the branch's plugin; drop any instruction that does not improve on main; record both in the PR body.
  • After the commit, bash plugins/planning/tests/interview-defenses.test.sh and bash scripts/check-changed-skills.sh origin/main exit 0.
  • A changelog fragment for the planning plugin.

Out of scope

Metadata

Metadata

Assignees

Labels

agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.

Fields

No fields configured for Feature.

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions