adversarial-qa
Exploratory QA of a running feature through its UI (Playwright) and/or API (curl) to find issues the plan and committed tests…
Drafts a structured implementation plan (approval summary with acceptance criteria, contract, files, edge cases, test strategy) before any code is written. Use when the user asks for a plan or design for a feature or change, or before starting implementation.
Claude Code
$ npx -y skills add cunhaax/ai-workflow --skill plan-draft --agent claude-code
Codex
$ npx skills add cunhaax/ai-workflow --skill plan-draft -a codex -y
Cursor
$ npx skills add cunhaax/ai-workflow --skill plan-draft -a cursor -y
Gemini CLI
$ npx skills add cunhaax/ai-workflow --skill plan-draft -a gemini-cli -y
GitHub Copilot
$ npx skills add cunhaax/ai-workflow --skill plan-draft -a github-copilot -y
OpenCode
$ npx skills add cunhaax/ai-workflow --skill plan-draft -a opencode -y
Windsurf
$ npx skills add cunhaax/ai-workflow --skill plan-draft -a windsurf -y
name: plan-draft description: > Drafts a structured implementation plan (approval summary with acceptance criteria, contract, files, edge cases, test strategy) before any code is written. Use when the user asks for a plan or design for a feature or change, or before starting implementation. license: MIT metadata: author: André Cunha
Draft a structured implementation plan before any code is written.
references, already read by the caller, verbatim and labelled
requirements and were not given → stop and return only `BLOCKED: need <source>`; never infer requirements from the branch name, the diff, or guesses
cards) are not blockers: list them in the plan's Source section
`docs/adr/`, relevant `docs/` product docs, and the repo-root `AGENTS.md` *Commands* (for the Test Strategy exception) and *Sensitive Areas* (missing or only `[TODO:]` placeholders → tier from the Risk flags and categories alone; the reason says "no Sensitive Areas defined")
`NEEDS_DECISION`
Fill the template below, following these rules.
**Approval Summary** (read on a phone; what the developer approves)
("a visitor submitting an invalid form sees the error next to the field", not "add a guard clause")
the Approval Summary
gives one (never invent one), then a short name for what the feature does (`proj-123-csv-export`); no ticket → short name alone
`EDGE-<slug>-` tags; taken → pick another
the uniqueness grep: the grep may find the feature's own tags). A rename by the user at approval is final. Everything downstream reads it from the plan
none → incomplete plan
`**Tier:** <0|1|2> — <reason>` (em dash), the reason one phrase naming the criterion
permissions, payments, schema migrations, deletion paths, secrets, infra/CI, an externally consumed or versioned API contract, or the review/merge gate; or the Risk flags say yes to security surface, sensitive-category data or schema migration
change is docs, copy, styling, tests-only or UI isolated behind a flag. Docs = reference material that does not instruct or configure an agent or tool; `AGENTS.md`, skill, agent, prompt and config files are code even when markdown, YAML or JSON. Size never makes a change Tier 0
prior plan carries forward unless the requested changes set a new one: `<n> — set by user; derived: <d> — <reason>`, with `<d>` re-derived. The user's number is recorded, but anything acting on the tier uses the higher of the two (say in the delta if the newly derived tier is higher)
consumed or versioned contract counts
**Other sections**
schema changes
re-approval
every decision and every rejected alternative with its reason
or omit (`code-critic` cross-checks each against tests)
changes and why (a diff file not listed = undiscussed change)
"etc."; test files included; a `MOVE` gives both paths; each path in backticks (the review guide script reads them)
"None" only if meant
none → incomplete plan
state, enable/disable, post-failure coherence, persistence-vs-UI consistency) maps to a committed end-to-end test that observes the rendered result (per project convention, e.g. Playwright)
Turns Claude Code into a small development team instead of one agent guessing alone — with a git-level gate that keeps the humans in charge of what actually ships.
Exploratory QA of a running feature through its UI (Playwright) and/or API (curl) to find issues the plan and committed tests…
Reviews code changes against project standards and the approved plan; returns PASS/FAIL/NEEDS_DECISION per checklist item plus…
Runs the full AI-assisted workflow for a non-trivial feature or change: plan, plan critique, user approval, implementation with…
Sets up and checks the AI workflow in a project that has this plugin installed: scaffolds missing AGENTS.md, CLAUDE.md, hooks,…
Critiques a draft implementation plan with pre-mortem, inversion, load-bearing-assumption and consistency checks; returns…
Computes a PR's Tier floor and unplanned-changes list with a bundled read-only script, then writes the PR's Tier line and Review…
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.