Skip to content

feat(skills): add deft-interview skill + strengthen swarm/test-with-code rules (#288 #292 #294 #296)#299

Merged
MScottAdams merged 2 commits intomasterfrom
agent1/feat/288-292-294-296-swarm-interview-skill
Apr 10, 2026
Merged

feat(skills): add deft-interview skill + strengthen swarm/test-with-code rules (#288 #292 #294 #296)#299
MScottAdams merged 2 commits intomasterfrom
agent1/feat/288-292-294-296-swarm-interview-skill

Conversation

@MScottAdams
Copy link
Copy Markdown
Collaborator

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)

  • Created skills/deft-interview/SKILL.md with RFC2119 legend and YAML frontmatter
  • Deterministic interview loop with 7 rules: one-question-per-turn, numbered options with stated default, other/IDK escape, depth gate, default-acceptance, confirmation gate, structured handoff contract
  • Created .agents/skills/deft-interview/SKILL.md thin pointer
  • Added AGENTS.md Skill Routing entry for "interview" / "ask questions" / "structured interview"
  • Updated deft-setup Phase 1 and Phase 2 to reference deft-interview for Q&A loops
  • Added 12 tests to ests/content/test_skills.py

Task A: deft-swarm Phase 6 read-back verification (#288, t1.21.1)

  • Added ! rule to 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 conflict resolution
  • Added 2 anti-patterns

Task B: deft-swarm Phase 6 Slack release announcement (#292, t1.22.1)

  • Added Step 6 to Phase 6: generate standard Slack announcement block after GitHub release
  • Template includes version, release title, summary, key changes, agent count, duration, PR numbers, release URL

Task C: Strengthen test-with-code rule (#294, t1.23.1)

  • AGENTS.md Before committing: new source files MUST include corresponding test files
  • main.md Decision Making: distinguish regression coverage vs forward coverage
  • deft-swarm Prompt Template CONSTRAINTS: new source files must have tests
  • deft-build pre-commit checklist: verify corresponding test file exists

Checklist

  • SPECIFICATION.md has task coverage for all changes
  • CHANGELOG.md has entries under [Unreleased]
  • task check passes (1001 passed, 19 xfailed)
  • PR is on a feature branch (not master)
  • Conventional commit message with bullet-point body

Closes #288
Closes #292
Closes #294
Closes #296

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Apr 10, 2026

Greptile Summary

This PR adds the deft-interview skill — a deterministic structured Q&A interview loop with 7 rules — and propagates it into deft-setup, AGENTS.md, and deft-swarm. It also strengthens the test-with-code gate across four surfaces (AGENTS.md, main.md, deft-swarm, deft-build) and hardens deft-swarm Phase 6 with read-back conflict verification and a Slack release announcement step. Sixteen test functions are added to cover the new and updated behaviors.

Confidence Score: 5/5

Safe 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

Filename Overview
skills/deft-interview/SKILL.md New skill with well-structured 7-rule interview loop; minor UX inconsistency between Rule 5 (accepts "ok" for default acceptance) and Rule 6 (does not include "ok" in the confirmation gate acceptance list)
tests/content/test_skills.py Adds 16 test functions across sections 30–32 (12 for deft-interview, 2 for Phase 6 read-back, 2 for Slack announcement); no test verifies that deft-setup's Phase 1/Phase 2 actually reference deft-interview
skills/deft-swarm/SKILL.md Phase 6 read-back verification and Slack announcement step added cleanly; CONSTRAINTS updated with test-with-code rule; anti-patterns updated to match
AGENTS.md Skill routing entry for deft-interview added; test-with-code "Before committing" rule strengthened correctly
main.md Decision Making gate now distinguishes regression coverage (a) from forward coverage (b) — clear and well-integrated
skills/deft-build/SKILL.md Pre-Commit File Review gains item #7 for forward test coverage; language is consistent with other check items
skills/deft-setup/SKILL.md Phase 1 and Phase 2 now reference deft-interview as the canonical interview loop; pointers are accurate
.agents/skills/deft-interview/SKILL.md Thin pointer with correct frontmatter and redirect to skills/deft-interview/SKILL.md

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]
Loading
Prompt To Fix All With AI
This 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
- Add 4 tests for deft-swarm Phase 6 read-back verification (#288) and
  Slack announcement (#292) to match codebase pattern of testing every
  new skill section (P2 finding from Greptile review)
@MScottAdams MScottAdams force-pushed the agent1/feat/288-292-294-296-swarm-interview-skill branch from 76035d4 to 587bafb Compare April 10, 2026 20:33
@MScottAdams
Copy link
Copy Markdown
Collaborator Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment