Web Application Testing
anthropics/skills
Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.
A skill your agent uses 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…
$ npx skills add swingerman/engineer --skill atdd-team -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install swingerman/engineer atdd-team --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/swingerman/engineer.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/atdd-team .claude/skills/atdd-team && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "atdd-team" agent skill from https://github.com/swingerman/engineer/tree/master/skills/atdd-team into .claude/skills/atdd-team/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "atdd-team", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/swingerman/engineer/tree/master/skills/atdd-teamType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add swingerman/engineer --skill atdd-team -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install swingerman/engineer atdd-team --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/swingerman/engineer.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/atdd-team .agents/skills/atdd-team && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "atdd-team" agent skill from https://github.com/swingerman/engineer/tree/master/skills/atdd-team into .agents/skills/atdd-team/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "atdd-team", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add swingerman/engineer --skill atdd-team -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install swingerman/engineer atdd-team --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/swingerman/engineer.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/atdd-team .cursor/skills/atdd-team && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "atdd-team" agent skill from https://github.com/swingerman/engineer/tree/master/skills/atdd-team into .cursor/skills/atdd-team/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "atdd-team", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/swingerman/engineer.git --path skills/atdd-team--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add swingerman/engineer --skill atdd-team -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install swingerman/engineer atdd-team --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/swingerman/engineer.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/atdd-team .gemini/skills/atdd-team && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "atdd-team" agent skill from https://github.com/swingerman/engineer/tree/master/skills/atdd-team into .gemini/skills/atdd-team/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "atdd-team", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install swingerman/engineer atdd-teamInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add swingerman/engineer --skill atdd-team -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/swingerman/engineer.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/atdd-team .github/skills/atdd-team && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "atdd-team" agent skill from https://github.com/swingerman/engineer/tree/master/skills/atdd-team into .github/skills/atdd-team/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "atdd-team", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add swingerman/engineer --skill atdd-team -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install swingerman/engineer atdd-team --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/swingerman/engineer.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/atdd-team .opencode/skills/atdd-team && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "atdd-team" agent skill from https://github.com/swingerman/engineer/tree/master/skills/atdd-team into .opencode/skills/atdd-team/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "atdd-team", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
atdd-teamA skill your agent uses 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…
Atdd Team is an agent skill from swingerman/engineer. 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".
Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/prompts.md`).
It sits in Testing & QA. The repository describes itself as: Disciplined Agentic Engineering — a methodology kit for Claude Code: acceptance-test-first specs, explicit checkpoints, and autonomy you can actually leave running. The engineer… The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 32947eb. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Atdd Team loads about 2.8k tokens when it runs, and up to ~5k if it reads all its reference files. Until then it costs about 119 tokens; SKILL.md has 1,564 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from swingerman/engineer at commit 32947eb, republished under its MIT licence (© swingerman). 1,564 words, ~2,837 tokens.
.claude/skills/atdd-team/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.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 phasemanifest.autonomy.stuck_loop_threshold
consecutive rounds with no test moving to green.Then — the gauntlet, if the feature declared a bar. Once both streams are
green, read plan.md's Test strategy for a gauntlet: block. If there is one,
loop a fresh critic against it: capture the candidate with the declared
capture: command, A/B it against the bar, take the single largest gap back to
the implementer, repeat until the critic returns ties-or-wins or a stop
condition fires (max_rounds, two identical gaps, or a test stream regressing).
This is what grades the things Gherkin cannot — visual fidelity to a ready
design, output quality — instead of handing that grading back to the team lead
one screenshot at a time. Critics are plain subagents, never forks (they
re-run on their own captured output; a fork self-perpetuates). Record every
round as gauntlet_rounds[] in the handoff. No gauntlet: block → no loop,
silently. Full contract: the engineer plugin's references/gauntlet.md.
Gate: Both test streams green (Checkpoint 5 exit criteria), and — when a bar
was declared — the gauntlet stopped on clear. A gauntlet that stopped on
cap / no-progress / regression hands off with human_action_needed: yes
and the open gap named; the team lead decides whether to accept it or push.
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.© swingerman, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in skills/atdd-team of swingerman/engineer.
Open the folder on GitHubat commit 32947eb
Atdd Team next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Atdd Team this skillswingerman/engineer | 154 | — | ~2.8k | Automated safety check: Pass | MIT | |
| Web Application Testinganthropics/skills | 180k | 51 repos | ~966 | Automated safety check: Pass | Apache-2.0 | |
| Diagnosing Bugsfossasia/eventyay-interpretation | 1.6k | 32 repos | ~2.1k | Automated safety check: Pass | Apache-2.0 | |
| TDDpietheinstrengholt/rssmonster | 564 | 30 repos | ~906 | Automated safety check: Pass | MIT | |
| TDD WorkflowhellangleZ/burn-in-cceverywhere-ralph | 112 | 11 repos | ~2.4k | Automated safety check: Pass | None | |
| TDDsanity-io/sanity | 6.4k | 20 repos | ~1k | Automated safety check: Pass | MIT |
anthropics/skills
Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.
fossasia/eventyay-interpretation
Diagnosis loop for hard bugs and performance regressions. An agent skill from fossasia/eventyay-interpretation.
pietheinstrengholt/rssmonster
Test-driven development. An agent skill from pietheinstrengholt/rssmonster.
hellangleZ/burn-in-cceverywhere-ralph
A skill your agent uses when writing new features, fixing bugs, or refactoring code.
sanity-io/sanity
Test-driven development with red-green-refactor loop. An agent skill from sanity-io/sanity.
Ibrahim-3d/orchestrator-supaconductor
A skill your agent uses when working with Conductor's context-driven development methodology, managing project context artifacts, or understanding the relationship between product.md, tech-stack.md…
swingerman/engineer
A skill your agent uses to produce a risk-based refactor + test plan for recently-changed code on a diff/branch/PR by computing CRAP (complexity × untested) on changed methods.
swingerman/engineer
A skill your agent uses to add a third validation layer to the ATDD workflow — after acceptance tests verify WHAT and unit tests verify HOW, mutation testing verifies the tests actually catch bugs.
swingerman/engineer
A skill your agent uses to drive a bug fix from first report through close, with a "why didn't we catch it?" loop at the end.
swingerman/engineer
A skill your agent uses to drive feature work through the Acceptance Test Driven Development workflow — Given/When/Then specs before code, a project-specific test pipeline, and two parallel test…
swingerman/engineer
Use after a feature passes Light Verify (CP7), to prove the tests actually catch bugs and, where the code warrants it, to formally check its invariants — Checkpoint 8.
swingerman/engineer
Use at the start of a work session, or any time the question is "what should I pick up now" across the whole project.
Categories
A skill your agent uses 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…. Atdd Team is an agent skill from swingerman/engineer. 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.
Atdd Team fits situations like: orchestrate a team-based ATDD workflow — six phases (spec writing; pipeline generation; verify & harden) each handled by a fresh agent so no role erodes across a long-running feature; — build a feature with a team.
Run `npx skills add swingerman/engineer --skill atdd-team -a claude-code`. Or copy the skill folder (skills/atdd-team in swingerman/engineer) into .claude/skills/atdd-team in your project. Claude Code loads it when a task matches its description.
Run `npx skills add swingerman/engineer --skill atdd-team -a codex`. Or copy the skill folder (skills/atdd-team in swingerman/engineer) into .agents/skills/atdd-team in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add swingerman/engineer --skill atdd-team -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/atdd-team, .gemini/skills/atdd-team, .github/skills/atdd-team and .opencode/skills/atdd-team in your project.
SKILL.md names no scripts, command-line tools or credentials: Atdd Team is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Atdd Team is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.1k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Atdd Team: Web Application Testing (anthropics/skills, 180k stars), Diagnosing Bugs (fossasia/eventyay-interpretation, 1.6k stars), TDD (pietheinstrengholt/rssmonster, 564 stars) and TDD Workflow (hellangleZ/burn-in-cceverywhere-ralph, 112 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
swingerman (a GitHub user) maintains it in swingerman/engineer, which has 154 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on September 23, 2026.
Source: swingerman/engineer on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.