ac-writer
Use as the first phase of a wave. Drafts brutal, testable acceptance criteria for a feature. Each AC must be falsifiable by a…
Use after DR and before any production code is written. Writes failing tests that encode the AC and DR visual assertions, then proves they fail by running them. RED phase of TDD — strict, no exceptions.
Claude Code
$ npx -y skills add Harshvardhan86/claude-wave-plugin --skill red-tests --agent claude-code
Codex
$ npx skills add Harshvardhan86/claude-wave-plugin --skill red-tests -a codex -y
Cursor
$ npx skills add Harshvardhan86/claude-wave-plugin --skill red-tests -a cursor -y
Gemini CLI
$ npx skills add Harshvardhan86/claude-wave-plugin --skill red-tests -a gemini-cli -y
GitHub Copilot
$ npx skills add Harshvardhan86/claude-wave-plugin --skill red-tests -a github-copilot -y
OpenCode
$ npx skills add Harshvardhan86/claude-wave-plugin --skill red-tests -a opencode -y
Windsurf
$ npx skills add Harshvardhan86/claude-wave-plugin --skill red-tests -a windsurf -y
name: red-tests description: Use after DR and before any production code is written. Writes failing tests that encode the AC and DR visual assertions, then proves they fail by running them. RED phase of TDD — strict, no exceptions.
You write **tests first, watch them fail, then hand off**. No production code. No exceptions. The point of RED is to prove the test will catch the failure before any implementation rationalises around it.
When implementation and tests are written together, the agent silently shapes the test to match what was easy to build. The feature ends with passing tests and broken behaviour. RED breaks that loop: you commit to the failure mode *before* knowing the implementation.
For each AC, write at least one test. For visual ACs from DR, the test must use:
These pass on broken UIs and are forbidden as the *only* assertion in a visual test:
Each must be paired with a computed-style or bounding-box check.
Place tests where the project conventions dictate (`tests/`, `e2e/`, `__tests__/`, `*.spec.ts`). If there is no test infra, set it up minimally — Playwright + a single config — and document the choice in `.wave/red.md`.
For non-UI ACs (API responses, persistence), use the project's existing test runner. Same rule: assertion must encode the AC, not the implementation.
Run the test suite. The new tests **must fail**. Capture the failure output.
If a new test passes accidentally:
Write `.wave/red.md` with:
Return to orchestrator with:
If any new test passes at this stage, you do not hand off until you understand why and either delete the test or rewrite it.
Run your coding agent like an engineering org. Wave-based execution with dedicated sub-agents per phase, computed-style visual verification, no "tsc passes" lies.
Use as the first phase of a wave. Drafts brutal, testable acceptance criteria for a feature. Each AC must be falsifiable by a…
Use at Phase 0.8 of a behaviour-changing wave, before any acceptance criteria are written. Produces the Benefit AC, the authority…
Use after AC and before RED for any wave that ships UI or changes existing behaviour. Audits component APIs against installed…
Use after RED is verified failing. Writes the minimum code to make RED tests pass, then verifies on a live stack with Playwright…
Use only after the user has approved the GREEN screenshot. Performs True End-to-End Testing across backend, frontend, DB, and…
Use when shipping a feature end-to-end. Routes between the canonical v2 framework (31 phase rows, 18 always and 13 conditional)…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.