Repository navigation
feat(planning): interview asks intent and quality requirements by quality bar - #8407
Conversation
One directive line per foundational principle (SRP, OCP, LSP, ISP, DIP, composition over inheritance, DRY of knowledge, coupling and cohesion, information hiding, deep modules and change amplification, YAGNI's cheap-now test, reuse first), each cited to its defining source with an as-of date and a recheck trigger. It opens with the scope line and the consumer-wins override line, and points at /review:quality-gate code-design for review-time criteria. Refs: #8332 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…lity bar In an engineering session the interview now reads the consumer's standards before any bundled default, asks the intent question (second variant known, category or speculative; existing structure; upstream), and prompts quality requirements (NFRs) from a new context/nfr-prompts.md, each scaled by the quality bar. The Brief records Quality bar: and Intent: lines under Captured assumptions, Quality requirement: lines under Constraints, and an "Overrides bundled default ... per ..." line when a consumer standard wins. Unattended, only the user's own words settle the intent question; an unstated answer is blocked with arbiter USER-RESERVED and the Brief is still written. Upstream context is recorded as a short summary that leaves private titles and URLs out of public repositories. The text lives in context/loop.md; SKILL.md gains one pointer sentence and keeps its 499 lines. Adds five eval cases and a changelog fragment. Refs #8333 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add Stumble lines to the unattended intent rules and the quality-requirement rules, point the quality-bar stumble at /review:quality-gate code-design, and drop the /planning:design consumer claims. Cross-reference the deferred intent row to the unattended stop and unconfirmed report, repeat the prototype ambient-standards exception, and show the bug-fix form in the Brief template. Tighten the reliability grader to require the degraded-provider behavior and the second-variant grader to require the variant term inside the question, with fail samples for both false positives. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… blocker grader Under lock, a quality prompt the request does not cover becomes a captured assumption with a revisit trigger or is stated as not applying, never a gap that halts. The Brief template carries the bundled-default override line. The unattended intent blocker is the run's last line in a fixed shape. The names-blocker grader targets last_message explicitly, narrows the negation guard to words directly before "block", lets the USER-RESERVED tag sit on the next line, and runs offline under Python and JavaScript. Two grader regexes drop fragments typos flagged, and the performance grader accepts "300 milliseconds". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…widen two graders The NFR and consumer-standard cases now say which Loqate result counts as undeliverable, where the Pay button lives, and (for the standard case) that checkout fails open, so lock has no domain gap to halt on. No graded expectation changes. emits-override-line allows a principle up to 160 characters, and reads-standard is a trace regex that accepts the standards file read by Read or by cat, sed, head or tail in Bash. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ntent-and-quality-requirements # Conflicts: # plugins/planning/reference/design-principles.md
Both cases now declare the run unattended in the wording the unattended-blocked case uses, so a domain unknown becomes a captured assumption or a blocked row and the Brief is still written. The graders then measure the quality-requirement and override lines rather than lock halting on the next open question. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ntent-and-quality-requirements
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
claude-security-review reviewed Security review (incremental, The only change is one line in Because the edit narrows a standing instruction, I read it as an instruction-surface change. I checked whether the Unattended path still enforces the same control, using the file's own text. I did not read
The reworded rule keeps its control, in both attended and unattended runs. No finding is warranted. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a3baffbb93
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
claude-review reviewed Incremental review of The change is one line, in the
|
…e-asking Under lock, a part 1 intent answer the user's own request states is recorded directly; one stated only upstream, missing, or contradictory stays a gap that halts the run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
An unstated part 1 under unattended lock now follows the Unattended bullets (blocked, USER-RESERVED, Brief written unconfirmed); attended lock still stops. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Closes #8333
Summary
In an engineering session
/planning:interviewnow reads the consumer's standards before any bundled default, asks the intent question (is a second variant known, a category, or speculative; what the existing structure does; what upstream context says), and prompts quality requirements (NFRs) from a new prompt list, each scaled by the quality bar. The Brief recordsQuality bar:andIntent:lines under Captured assumptions and each quality requirement as aQuality requirement:line under Constraints.Fix
plugins/planning/skills/interview/context/loop.mdgains an "Engineering defaults" section;context/nfr-prompts.mdis the new prompt list;SKILL.mdpoints to the section after the Step 1 survey.Restatement:line reads confirmed by the user.lockrule: a quality prompt at the bar's depth that the request does not cover becomes a captured assumption with a revisit trigger (or is stated as not applying), never a gap that halts the run.- Overrides bundled default <principle> per <standards file>under Captured assumptions.blocked(arbiter USER-RESERVED), the Brief is still written, and the run's last line isBlocked: Q<N> <question> (arbiter: USER-RESERVED)..changes/planning/feat-8333-interview-intent-and-quality-requirements-4c7d2a91.md(minor).plugins/planning/tests/interview-defenses.test.sh, and SKILL.md:45 already points to "Engineering defaults".Verification
Paid evals, branch plugin vs main plugin, 3 runs per arm. The noise report says n is too small to call any of these.
Two cases run unattended because an attended one-prompt
lockcorrectly stops on open domain questions, so it cannot test what the Brief contains.bash scripts/check-affected.sh --tests --base origin/main: 8 passed, 1 skipped over 47 changed files.typos --format briefon the changed paths: clean.Related
🤖 Generated with Claude Code