skills/atdd-team/SKILL.md
Use to orchestrate a team-based ATDD workflow — six phases (spec writing, spec review, pipeline generation, implementation, refine, verify & harden) each handled by a fresh agent so no role erodes across a long-running feature. Triggers — "build a feature with a team", "use ATDD with agents", "create an ATDD team", "orchestrate agents for ATDD", "coordinate agents for feature development", "add ATDD roles to my team", "add spec-writer and reviewer to the team".
npx skillsauth add swingerman/atdd atdd-teamInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Orchestrate an agent team that follows the Acceptance Test Driven Development workflow. The team lead coordinates specialist agents through six phases. Each phase is run by a fresh agent invocation — no agent persists across phases.
A long-lived agent's context compacts as a feature runs for hours. Compaction silently erodes role identity and discipline: agents lose their role, invent constraints that do not exist, and skip expensive-but-required steps. A fresh per-phase agent reloads its instructions clean — the same insight as the engineer plugin's per-skill model. The "team" exists for parallelism across features, not for keeping agents alive within one feature.
Before spawning phase agents, check for existing teams:
~/.claude/teams/ to list active teams.If no team exists, proceed directly.
Each phase is run by a fresh agent invocation scoped to that phase, then ended.
| Role | Maps to | Owns phase |
|------|---------|-----------|
| spec-writer | discuss, discover-acs, atdd spec step | 1 Spec Writing |
| reviewer | spec-guardian agent | 2 Spec Review |
| implementer | atdd impl, pipeline-builder | 3 Pipeline Gen, 4 Implementation |
| refiner | the engineer plugin's refine skill | 5 Refine |
| architect | consistency-check, crap-analyzer, atdd-mutate | 6 Verify & Harden |
The team lead (the orchestrating agent or user) owns the workflow, approves
all work, enforces discipline, and verifies the agent_id independence binding.
The team lead never delegates approval — specs are the team lead's contract.
features/NNN-slug/handoffs/ (the engineer plugin's handoff contract, with
the exit_criteria block). The next phase's fresh agent reads the prior
handoff for context — coordination survives a context compaction.scripts/dae_handoff.py <feature-dir> --through <prior-cp>.agent_id independence (Principle 7). Each phase handoff records its
agent_id. The architect's agent_id MUST differ from both the
implementer's and the refiner's — the verifier verifies neither its own
code nor its own refinement. The team lead checks this.implementer takes the code to green only — it does
NOT do deep refactoring; that is the refiner's phase. Every phase handoff
states explicitly what was NOT done and what is left for the next role.reorient-style
anchor: role, autonomy level, the prior handoff, the phase's exit criteria,
and the non-negotiables. See references/prompts.md.Execute phases strictly in order. Each phase spawns a fresh agent, ends with a durable handoff, and is gated on the prior checkpoint's exit criteria.
Before Phase 1, create one TodoWrite todo per phase of this workflow
(Phases 1–6), all at once — the full list up front, as a roadmap. Flip each
todo to in_progress / completed as you go. See
${CLAUDE_PLUGIN_ROOT}/references/progress-indicator.md.
Assign to: a fresh spec-writer agent.
Instruct it to:
spec.md in standard GherkinGate: Team lead reviews and approves the specs (Checkpoint 3 exit criteria). Do not proceed until approved.
For the detailed prompt template, see references/prompts.md — Phase 1.
Assign to: a fresh reviewer agent.
Run the spec-guardian agent to audit spec.md for implementation leakage:
class/function names, database tables, API endpoints, framework terms, internal
state. Also verify one behavior per scenario and clarity for non-developers.
Gate: The reviewer's handoff reports findings. The team lead decides whether the spec needs revision. If revisions are needed, return to Phase 1.
For the detailed prompt template, see references/prompts.md — Phase 2.
Assign to: a fresh implementer agent (or the team lead).
Generate the project-specific test pipeline — the pipeline-builder agent
produces the generator + step handlers + runner; dae_gherkin.py is the
portable, shipped parser. Run the acceptance tests — they must fail (red).
If they pass, either the behavior exists or the generator is wrong.
Gate: Acceptance tests fail as expected. Pipeline is functional.
For the detailed prompt template, see references/prompts.md — Phase 3.
Assign to: a fresh implementer agent.
Instruct it to:
Rules for the implementer:
spec.md — it is the contractrefiner's phaseGate: Both test streams green (Checkpoint 5 exit criteria).
For the detailed prompt template, see references/prompts.md — Phase 4.
Assign to: a fresh refiner agent.
After both test streams are green, the refiner runs the engineer plugin's
refine skill — the post-green code-improvement pass (reuse, quality, and
efficiency lenses; every proposal charter-filtered). This is the dedicated
improvement pass that the implementer does NOT do inline.
Gate: Checkpoint 6 exit criteria — refine ran, both streams still green, charter filter applied to every proposal.
For the detailed prompt template, see references/prompts.md — Phase 5.
Assign to: a fresh architect agent — agent_id MUST differ from the
implementer's and the refiner's.
Independent verification and hardening:
consistency-check — artifacts agreecrap-analyzer — CRAP + coverage (Checkpoint 7)Gate: Checkpoints 7 + 8 exit criteria met.
For the detailed prompt template, see references/prompts.md — Phase 6.
When all phases pass:
atdd-<slug> team. Teams are per-feature scaffolding — leaving them alive after the feature ships clutters the team list and wastes context on every next survey (nexthq saw a team idle for 5 days post-feature). At autonomy high, run TeamDelete and report. At medium, run + report. At low, surface the proposal and wait. If the feature is still in flight (e.g. follow-up bugs likely), the user can defer.engineer:progress-log may also trigger teardown when it observes a feature advance to status: done.agent_id binding. The architect must not be the implementer
or the refiner — verification independence (Principle 7).For detailed prompt templates for each phase:
references/prompts.md — per-phase agent spawn prompts, each with the
anchor block and the handoff-ending instruction.data-ai
Use immediately after a PR is merged to clean up the local feature branch and resync main. Triggers — "/engineer.post-merge", "did we merge", "did we push", "PR merged", "post-merge cleanup", or right after a `gh pr merge` succeeds in the same session.
data-ai
Use to drive a bug fix from first report through close, with a "why didn't we catch it?" loop at the end. Triggers — "/engineer.fix", "a bug came in", "this is broken", "a user reported X", "there's a defect", "we have a regression", "this needs a fix", "another report", "more issues", "still failing", "validation failed again", "another bug", "next defect", "more fixes".
testing
Use mid-task when the working thread is lost — after a context compaction, a long agent run, or coming back to a feature unsure of the role, the current checkpoint, or the next action. Triggers — "/engineer.reorient", "reorient", "re-anchor", "what should I be doing right now", "I lost track", "where was I".
development
Use to check a feature's code against the charter's architecture rules — dependency layering, cycles, forbidden patterns, file naming, file size. Triggers — "/engineer.arch-check", "architecture check", "check architecture fitness", "does this follow the charter", "check layering".