feat(skills): add deft-interview skill + strengthen swarm/test-with-code rules (#288 #292 #294 #296)#299
Conversation
Greptile SummaryThis PR adds the Confidence Score: 5/5Safe to merge — all findings are P2 style/coverage suggestions with no correctness or data-integrity impact. Both remaining findings are P2: a minor UX inconsistency in an RFC2119-legend documentation file (Rule 5 vs Rule 6 acceptance sets), and a missing regression test for a deft-setup integration that is correctly implemented. Neither affects runtime behavior or data integrity. All test-with-code, swarm Phase 6, and deft-interview acceptance criteria are met and tested. skills/deft-interview/SKILL.md (Rule 5/Rule 6 "ok" inconsistency) and tests/content/test_skills.py (missing deft-setup integration guard) Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Calling Skill invokes deft-interview] --> B[Provide: required fields, question defs, optional fields]
B --> C[Rule 1: Ask ONE question]
C --> D{User Response}
D -- Empty/bare enter/default token --> E[Rule 5: Accept Default]
D -- Explicit answer --> F[Rule 4: Depth Gate Check]
D -- Other / IDK --> G[Rule 3: Open-ended Follow-up]
G --> F
E --> F
F -- Ambiguity remains --> C
F -- All required fields captured --> H[Rule 6: Confirmation Gate - Display summary of all answers]
H --> I{User says yes/confirmed/approve?}
I -- No --> J[Ask which values to correct - Re-ask specific questions only]
J --> H
I -- Yes --> K[Rule 7: Exit with Answers Map JSON]
K --> L[Calling Skill generates artifact]
Prompt To Fix All With AIThis is a comment left during a code review.
Path: skills/deft-interview/SKILL.md
Line: 69-77
Comment:
**"ok" accepted at Rule 5 but silent at confirmation gate**
Rule 5 explicitly lists `"ok"` as a valid default-acceptance response, but Rule 6's acceptance list (`yes`, `confirmed`, `approve`) omits it. A user who habitually answers `"ok"` throughout the interview will be silently rejected at the final confirmation gate without an obvious reason — they've been conditioned by Rule 5 that `"ok"` is sufficient.
Consider adding `"ok"` to Rule 6's explicit affirmative list, or adding a clarifying note that the confirmation gate is intentionally stricter.
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_skills.py
Line: 966-1070
Comment:
**Missing regression test for deft-setup → deft-interview integration**
Section 30 tests deft-interview in isolation, but no test verifies that `skills/deft-setup/SKILL.md` Phase 1 and Phase 2 actually reference `deft-interview` — an acceptance criterion listed in `SPECIFICATION.md` (t2.11.1). Currently, the references at lines 107 and 254 of `deft-setup/SKILL.md` could be accidentally removed without failing any test.
A simple guard would be:
```python
def test_deft_setup_phase1_references_deft_interview() -> None:
"""deft-setup Phase 1 must reference deft-interview as the canonical interview loop."""
text = _read_skill("skills/deft-setup/SKILL.md")
assert "skills/deft-interview/SKILL.md" in text, (
"skills/deft-setup/SKILL.md: Phase 1/Phase 2 must reference "
"skills/deft-interview/SKILL.md (#296, t2.11.1)"
)
```
How can I resolve this? If you propose a fix, please make it concise.Reviews (3): Last reviewed commit: "fix: address Greptile review findings (b..." | Re-trigger Greptile |
…ode rules (#288 #292 #294 #296) - Create skills/deft-interview/SKILL.md with RFC2119 legend and YAML frontmatter -- deterministic structured Q&A interview loop with 7 rules: one-question-per-turn, numbered options with stated default, other/IDK escape, depth gate, default-acceptance, confirmation gate, and structured handoff contract (answers map); thin pointer and AGENTS.md routing added; deft-setup Phase 1/Phase 2 updated to reference deft-interview; 12 tests - Add read-back verification rule to deft-swarm Phase 6 Step 1 -- after resolving rebase conflicts, re-read resolved file and verify structural integrity before git add; prefer edit_files over shell regex for CHANGELOG.md and SPECIFICATION.md; 2 anti-patterns added - Add Slack release announcement step (Step 6) to deft-swarm Phase 6 -- generates standard announcement block with version, title, summary, key changes, agent count, duration, PR numbers, and release URL - Strengthen test-with-code rule across 4 surfaces: AGENTS.md Before committing (new source files MUST include test files), main.md Decision Making (distinguish regression vs forward coverage), deft-swarm Prompt Template CONSTRAINTS, deft-build pre-commit checklist - Add SPECIFICATION.md acceptance criteria and CHANGELOG.md entries
76035d4 to
587bafb
Compare
|
Rebase-only force-push onto updated master (587bafb). No logic changes -- CHANGELOG.md conflict resolved by merging both [Unreleased] entries. Greptile re-review in progress. |
Summary
Add the deft-interview skill and strengthen swarm/test-with-code rules across the framework.
Changes
Task D: skills/deft-interview/SKILL.md (#296, t2.11.1)
Task A: deft-swarm Phase 6 read-back verification (#288, t1.21.1)
Task B: deft-swarm Phase 6 Slack release announcement (#292, t1.22.1)
Task C: Strengthen test-with-code rule (#294, t1.23.1)
Checklist
task checkpasses (1001 passed, 19 xfailed)Closes #288
Closes #292
Closes #294
Closes #296