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 only after the user has approved the GREEN screenshot. Performs True End-to-End Testing across backend, frontend, DB, and external services with computed-style and boundingBox assertions, producing the final wave evidence pack.
Claude Code
$ npx -y skills add Harshvardhan86/claude-wave-plugin --skill teet-verify --agent claude-code
Codex
$ npx skills add Harshvardhan86/claude-wave-plugin --skill teet-verify -a codex -y
Cursor
$ npx skills add Harshvardhan86/claude-wave-plugin --skill teet-verify -a cursor -y
Gemini CLI
$ npx skills add Harshvardhan86/claude-wave-plugin --skill teet-verify -a gemini-cli -y
GitHub Copilot
$ npx skills add Harshvardhan86/claude-wave-plugin --skill teet-verify -a github-copilot -y
OpenCode
$ npx skills add Harshvardhan86/claude-wave-plugin --skill teet-verify -a opencode -y
Windsurf
$ npx skills add Harshvardhan86/claude-wave-plugin --skill teet-verify -a windsurf -y
name: teet-verify description: Use only after the user has approved the GREEN screenshot. Performs True End-to-End Testing across backend, frontend, DB, and external services with computed-style and boundingBox assertions, producing the final wave evidence pack.
TEET is the final phase. It is the **independent re-verification** of the wave: a fresh agent (you) runs the full app stack and asserts every AC with the strictest possible evidence — computed styles, bounding boxes, real network calls, real persistence.
GREEN's job is to make tests pass. TEET's job is to **distrust GREEN** and re-verify against the original AC. The same agent that wrote the implementation cannot reliably grade it. Lean, dedicated context per phase is the rule.
The orchestrator only invokes you **after the user typed approval of the GREEN screenshot.** If you're invoked without that, refuse and tell the orchestrator to gate.
For multi-step flows (wizards, onboarding, dashboards):
For every visual AC from DR:
For ACs that span systems (e.g., "toggle dark mode → persisted in DB → visible after fresh login"):
For each AC's "rejects" clause, attempt the failure scenario and prove it does fail:
Read `.wave/ac.md`. For each AC, mark in `.wave/teet.md`:
Write `.wave/teet.md`:
# TEET Report — <feature> ## Stack health <services up, response times, etc.> ## AC-by-AC verification - AC-1: ✅ — see screenshots/teet-step-1-settings.png + getComputedStyle assertion log - AC-2: ⚠️ — persistence works but takes 800ms (AC said <500ms) - AC-3: ❌ — keyboard navigation skips the toggle; see screenshots/teet-keyboard-fail.png ## Evidence - Screenshots: <list> - DB queries run: <list> - Network requests captured: <list> ## Recommendation - PASS / PARTIAL PASS / FAIL
Return to orchestrator with this verdict. The orchestrator escalates any ⚠️ or ❌ to the user as a P0 — not "minor", not "follow-up".
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 after DR and before any production code is written. Writes failing tests that encode the AC and DR visual assertions, then…
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.