fix(interview): restore deterministic-question confirm/back/discuss affordances (#431)#472
Conversation
…ffordances (#431, #359) - Rule 8 hardened: confirm-after-number-press step is now explicitly MANDATORY; agent echoes the selected option (with its number) back to the user and waits for Enter before advancing. Accepts b/back/prev at the confirm prompt as a shortcut to back-navigation. - Rule 9 hardened: back-navigation via b/back/prev must be visible on every question via the persistent legend (Rule 11), not only announced at interview start. - Rule 10 renamed and repositioned: slot-0 escape hatch is now labelled `0. Discuss with agent` (self-describing), rendered at the TOP of the options block with visual separation from the numbered options, and DISTINCT from `Other / I don't know` (Rule 3 escape remains separate). - Rule 11 new: persistent one-line legend `Enter confirm / b back / 0 discuss` MUST appear under every deterministic question, including re-displayed questions after back-nav (Rule 9) or freeform resume (Rule 10). - Examples in Rule 2 and Rule 8 updated to show the new layout. - Anti-patterns extended: missing legend, non-self-describing slot-0 label, merging Discuss with Other. - .agents/skills/deft-directive-interview/SKILL.md mirrors by reference (thin pointer reads canonical SKILL.md at runtime); no duplication required. - New test module tests/content/test_interview_deterministic.py with 23 assertions covering confirm step presence, back-nav key presence, slot-0 Discuss label and distinctness, and persistent legend presence in examples and as a mandatory rule. - CHANGELOG.md: [Unreleased] Fixed entry added. Closes #431
|
| Filename | Overview |
|---|---|
| skills/deft-directive-interview/SKILL.md | Adds Rules 8-11 (selection confirmation, back-nav, slot-0 Discuss label, persistent legend) and extends Anti-Patterns with three new prohibitions; all new rules are internally consistent and referenced correctly from the Rule 2 and Rule 8 examples. |
| tests/content/test_interview_deterministic.py | New test module with 23 assertions covering Rules 8–11 and the .agents/ mirror pointer; all substring searches match the verbatim text in SKILL.md and the case-sensitive heading checks align correctly. |
| CHANGELOG.md | New Unreleased/Fixed entry accurately describes the four restored behaviors; assertion count reported as 20 but the test file contains 23 test functions (PR description correctly says 23). |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
Q["Display question\n(options block + legend)"]
L["Render legend:\nEnter confirm / b back / 0 discuss"]
Q --> L
L --> Input{User input}
Input -->|"Number (1..N)"| Echo["Echo selection\n(Rule 8 — MANDATORY)"]
Echo --> Confirm{User confirms?}
Confirm -->|"Enter"| Next["Advance to next question"]
Confirm -->|"Different number"| Echo
Confirm -->|"b / back / prev"| Back["Return to previous question\n(Rule 9)"]
Back --> Q
Input -->|"0 — Discuss"| Free["Freeform conversation\n(Rule 10)"]
Free --> Resume["Resume: re-display same question\n(full options block + legend)"]
Resume --> Q
Input -->|"b / back / prev"| Back
Prompt To Fix All With AI
This is a comment left during a code review.
Path: CHANGELOG.md
Line: 11
Comment:
**Assertion count mismatch between CHANGELOG and test file**
The CHANGELOG entry states "20 assertions" but `tests/content/test_interview_deterministic.py` contains 23 test functions. The PR description itself correctly states 23. The discrepancy means the CHANGELOG is factually wrong about the test coverage added by this change.
```suggestion
- **fix(interview): restore deterministic-question confirm/back/discuss affordances** (#431, #359): Restored the three #359 behaviors in `skills/deft-directive-interview/SKILL.md` that regressed in RC2 off `phase2/vbrief-cutover`. (1) Rule 8 hardened -- confirm-after-number-press step is now explicitly MANDATORY, echoes the selected option (with its number) back to the user, waits for Enter before advancing, and accepts `b`/`back`/`prev` as a shortcut to back-navigation without first confirming. (2) Rule 9 hardened -- back-navigation via `b`/`back`/`prev` is now required to be visible on every question via the persistent legend (Rule 11), not announced once at interview start. (3) Rule 10 renamed and repositioned -- slot-0 escape hatch is now labelled `0. Discuss with agent` (self-describing), rendered at the TOP of the options block with visual separation (horizontal rule or blank line) from the numbered answer options, and DISTINCT from `Other / I don't know` (which remains as a separate Rule 3 escape). (4) New Rule 11 -- a persistent one-line legend (`Enter confirm / b back / 0 discuss`) MUST render under every deterministic question, including re-displayed questions after back-nav or freeform resume. Examples in Rule 2 and Rule 8 updated to show the new layout. Anti-patterns extended with three new prohibitions (missing legend, non-self-describing slot-0 label, merging Discuss with Other). The `.agents/` pointer mirrors by reference (reads canonical SKILL.md at runtime) so no duplication was required. New content-test module `tests/content/test_interview_deterministic.py` with 23 assertions covering confirm step, back-nav key presence, slot-0 Discuss label + distinctness, legend presence in examples and as a mandatory rule, and anti-pattern coverage.
```
How can I resolve this? If you propose a fix, please make it concise.Reviews (1): Last reviewed commit: "fix(interview): restore deterministic-qu..." | Re-trigger Greptile
Summary
Restores the three #359 behaviors in the deterministic-question flow defined by
skills/deft-directive-interview/SKILL.mdthat regressed in RC2 offphase2/vbrief-cutover.Addresses vBRIEF
vbrief/active/2026-04-20-431-deterministic-questions-rc2-defects.vbrief.json.Changes
skills/deft-directive-interview/SKILL.mdEnterbefore advancing. Typing a different number re-echoes and re-waits. Acceptsb/back/prevat the confirm prompt as a shortcut to back-navigation.b/back/prevremain the canonical inputs, but the affordance MUST be visible on every question via the persistent legend (Rule 11), not only announced once at interview start.0. Discuss with agent(self-describing), rendered at the top of the options block with visual separation (horizontal rule or blank line) from the numbered answer options, and DISTINCT fromOther / I don't know(Rule 3 escape remains separate).Enter confirm / b back / 0 discussMUST render directly under the options block on every deterministic question, including re-displayed questions after back-nav (Rule 9) or freeform resume (Rule 10).Pause,Escape,Other..), and mergingDiscuss with agentwithOther / I don't know..agents/skills/deft-directive-interview/SKILL.mdThin pointer mirrors by reference (reads the canonical SKILL.md at runtime). No duplication required. Pointer verified in place by new test.
tests/content/test_interview_deterministic.py(new)23 assertions covering:
b/back/prevlisted, legend requirement, hidden-back anti-pattern)0. Discuss with agent, DISTINCT-from-Other phrasing, visual-separation requirement, merge / pause-label anti-patterns, oldPause -- discuss…label gone)CHANGELOG.mdNew entry under
[Unreleased]→### Fixeddescribing the four behavior restorations.Validation
task check: PASS — 1700 passed, 1 xfailed,TASK_EXIT=0. All 23 new content assertions pass.Scope Guardrails
Only touched the four files assigned to this agent by the task dispatch:
skills/deft-directive-interview/SKILL.md.agents/skills/deft-directive-interview/SKILL.md(no change — pointer-by-reference)tests/content/test_interview_deterministic.py(new, per the "prefer new test files" guideline)CHANGELOG.mdNo edits to other agents' files (
scripts/,deft/strategies/speckit.md,README.md,UPGRADING.md,Taskfile.yml, etc.).Closes #431