feat(change,skills): convert deft:change to vBRIEF outputs, replace PRD gate, fix deterministic question UX (#371, #372, #345, #359)#379
Conversation
Greptile SummaryThis PR completes the vBRIEF format migration for Confidence Score: 5/5Safe to merge — all remaining findings are P2 style/coverage suggestions that do not affect runtime correctness. No P0 or P1 issues found. The tasks/change.yml logic change is clean and well-tested; skill documentation changes are consistent and internally correct. Two P2 gaps (misplaced rule headings and a missing test for the review-cycle skill) and one overly-broad test assertion are quality improvements rather than blockers. skills/deft-directive-interview/SKILL.md (Rules 8–10 section placement), tests/content/test_change_and_skills.py (missing review-cycle test and broad Phase 3 assertion) Important Files Changed
Sequence DiagramsequenceDiagram
participant U as User
participant A as Agent
participant FS as Filesystem
Note over U,FS: task change:init
A->>FS: "write proposal.vbrief.json (narratives)"
A->>FS: "write tasks.vbrief.json (items, edges)"
Note over U,A: Rule 8 - Deterministic Selection Confirmation
A->>U: "Which option? 1/2/3"
U->>A: "1"
A->>U: "You selected: Cross-platform. Confirm?"
U->>A: "Enter"
A->>A: "advance to next question"
Note over U,A: Rule 9 - Backward Navigation
U->>A: "back"
A->>U: "re-display previous question"
U->>A: "confirm or change answer"
Note over U,A: Rule 10 - Option 0 Freeform Escape
U->>A: "0"
A->>U: "enter freeform mode"
A->>U: "re-display same question to resume"
Note over U,FS: Phase 3 vBRIEF Approval Gate
A->>FS: "write specification.vbrief.json draft"
A->>U: "present vBRIEF narratives for review"
U->>A: "approved"
A->>FS: "update status: approved, create scope vBRIEFs"
Prompt To Fix All With AIThis is a comment left during a code review.
Path: skills/deft-directive-interview/SKILL.md
Line: 180-237
Comment:
**Rules 8–10 placed outside `## Interview Loop`**
Rules 1–7 live under `## Interview Loop`; Rules 8–10 land under `## Invocation Contract` (after the embedded/delegation mode subsections). An agent reading the skill top-to-bottom could scan the Interview Loop section, see "Rule 7: Structured Handoff Contract" as the last rule, and not realise three more interaction rules follow later in a different section. The Anti-Patterns section at the bottom does repeat the key prohibitions, but the canonical rule definitions are split across two sections.
Consider moving Rules 8–10 into `## Interview Loop` alongside Rules 1–7 so the full set of interview interaction rules is co-located.
How can I resolve this? If you propose a fix, please make it concise.
---
This is a comment left during a code review.
Path: tests/content/test_change_and_skills.py
Line: 119-125
Comment:
**Missing test for `deft-directive-review-cycle` SKILL.md change**
Task A of this PR updates `deft-directive-review-cycle` SKILL.md Phase 1 audit item 6 to reference `proposal.vbrief.json` (confirmed present at line 49 of that file). The test suite covers the analogous change in `deft-directive-build`, but there is no corresponding test for the review-cycle skill, leaving that regression unguarded.
```python
def test_review_cycle_skill_references_proposal_vbrief_json() -> None:
"""deft-directive-review-cycle SKILL.md Phase 1 audit must reference proposal.vbrief.json."""
text = _read("skills/deft-directive-review-cycle/SKILL.md")
assert "proposal.vbrief.json" in text, (
"skills/deft-directive-review-cycle/SKILL.md: Phase 1 audit must "
"reference proposal.vbrief.json"
)
```
How can I resolve this? If you propose a fix, please make it concise.
---
This is a comment left during a code review.
Path: tests/content/test_change_and_skills.py
Line: 193-205
Comment:
**Broad assertion doesn't anchor to Phase 3**
`"approval" in text.lower() and "vbrief" in text.lower()` passes as long as either word appears anywhere in the entire setup skill file — both words appear many times outside Phase 3. A future edit that removes the approval gate from Phase 3 specifically would not be caught.
Consider checking for a phrase unique to the Phase 3 section, for example:
```python
phase3_start = text.find("## Phase 3")
phase3_end = text.find("## Phase 4", phase3_start)
if phase3_end == -1:
phase3_end = len(text)
phase3_text = text[phase3_start:phase3_end]
assert "specification.vbrief.json" in phase3_text
assert "approval" in phase3_text.lower() and "vbrief" in phase3_text.lower()
```
How can I resolve this? If you propose a fix, please make it concise.Reviews (5): Last reviewed commit: "fix: address Greptile review findings (b..." | Re-trigger Greptile |
5366c55 to
cfec5c1
Compare
|
Rebase-only force-push — no logic changes, rebased onto updated phase2/vbrief-cutover after PR #376 merge. |
…RD gate, fix deterministic question UX (#371, #372, #345, #359) - Replace proposal.md + design.md with proposal.vbrief.json in change:init (narratives: Problem, Change, Scope, Impact, Risks, Approach, Alternatives, Dependencies) - Update commands.md artifacts, specs/ section (delta.vbrief.json format with Baseline, NewRequirements, ModifiedRequirements, RemovedRequirements), and archive Spec Delta Merge process for vBRIEF narratives - Update context/spec-deltas.md to vBRIEF format throughout - Update deft-directive-build Change Lifecycle Gate: reference proposal.vbrief.json - Update deft-directive-review-cycle Phase 1 audit: reference proposal.vbrief.json - Strengthen deft-directive-interview Output Targets: specification.vbrief.json as sole authoritative output, PRD.md deprecated - Strengthen deft-directive-setup Phase 3 human approval gate on vBRIEF draft - Add Rules 8-10 to deft-directive-interview: Rule 8 (Deterministic Selection Confirmation), Rule 9 (Backward Navigation), Rule 10 (Freeform Conversation Escape: option 0) - Add 14 tests in tests/content/test_change_and_skills.py - Update existing change:init test for proposal.vbrief.json output
cfec5c1 to
b62e8f5
Compare
- Fix stale design.md reference in commands.md /deft:change:apply (P1) - Add option 0 to Rule 2 example in deft-directive-interview (P2) - MCP unavailable in this session -- used gh api fallback for review comments
b62e8f5 to
3568422
Compare
Summary
Convert deft:change artifacts to vBRIEF format, replace PRD.md approval gate with vBRIEF draft approval, and fix deterministic question UX in the interview skill.
Changes
Task A -- proposal.vbrief.json (#371)
Task B -- delta vBRIEF specs (#372)
Task C -- vBRIEF draft approval (#345)
Task D -- deterministic question UX (#359)
Tests
Checklist
Closes #371
Closes #372
Closes #345
Closes #359
Parent: #338