adversarial-qa
Exploratory QA of a running feature through its UI (Playwright) and/or API (curl) to find issues the plan and committed tests…
Runs the full AI-assisted workflow for a non-trivial feature or change: plan, plan critique, user approval, implementation with tagged tests, code review, exploratory QA, and PR. Use when the user asks to build or start a feature, or to implement a change that needs a plan,
Claude Code
$ npx -y skills add cunhaax/ai-workflow --skill feature --agent claude-code
Codex
$ npx skills add cunhaax/ai-workflow --skill feature -a codex -y
Cursor
$ npx skills add cunhaax/ai-workflow --skill feature -a cursor -y
Gemini CLI
$ npx skills add cunhaax/ai-workflow --skill feature -a gemini-cli -y
GitHub Copilot
$ npx skills add cunhaax/ai-workflow --skill feature -a github-copilot -y
OpenCode
$ npx skills add cunhaax/ai-workflow --skill feature -a opencode -y
Windsurf
$ npx skills add cunhaax/ai-workflow --skill feature -a windsurf -y
name: feature description: > Runs the full AI-assisted workflow for a non-trivial feature or change: plan, plan critique, user approval, implementation with tagged tests, code review, exploratory QA, and PR. Use when the user asks to build or start a feature, or to implement a change that needs a plan, review, and PR. Every planning run saves the approved plan to a file; with `--plan-only` it stops there, and `--from-plan <slug>` runs such a saved plan without re-planning. license: MIT metadata: author: André Cunha
Pipeline: plan → critique → implement → test → code-review → QA → PR. Run steps in order, skipping only where a step or the mode says so. `AGENTS.md` is the source for commands, default branch, sensitive areas, and task tracking.
`planner`, `plan-critic`, `code-critic` and `adversarial-qa` below are sub-agents: "call" means spawn the sub-agent of that name, never load the same-named skill into your own context (you would be reviewing your own work). The same holds for `build.md` step 4's second reviewer, a `general-purpose` sub-agent that runs the bundled `/code-review` skill.
`--plan-only`)
The steps live in files in `${CLAUDE_SKILL_DIR}/`, the directory of this skill. Read each with `Read` when its phase starts:
input is the approved plan text from step 1, or a saved plan it loads itself (`--from-plan`)
The mode is set by the first token of the arguments; a flag anywhere else is prompt content, passed on verbatim:
| First token | Runs | |---|---| | `--plan-only` | `plan.md`, then STOP | | `--from-plan` | `build.md` (loading the saved plan) → `pr.md` | | anything else | `plan.md` → `build.md` → `pr.md` |
Only this table decides what runs next: each phase file ends at its last step, then continue with the next file in the table. For every phase file:
per `AGENTS.md` Rule 2; never work from memory of it
context (e.g. after compaction), and read a file before following a pointer into it
steps 2–8 in `build.md`, step 9 in `pr.md`
`--plan-only` STOP: skip steps 2–9, report the plan file's absolute path and that `/feature --from-plan <slug>` on a feature branch runs it. No branch, commit, push, or PR.
Used by more than one phase file.
**Plan file location**: `.workflow-plans/<slug>.md` under the **main worktree**: the parent of the `.git` dir printed by `git rev-parse --path-format=absolute --git-common-dir`. That parent still contains a `.git` segment (e.g. a submodule), or the dir's name is not `.git` (a bare repo) → ask the user where to write (for `--from-plan`, where to read).
**Ownership check**, before this run rewrites, removes or marks a plan file: the file still has the `slug`, `base-commit` and exact content this run last wrote to it, or read from it for `--from-plan` (when marking consumed, a `consumed:` line is not part of the comparison). Content no longer available, e.g. after context compaction → can't verify → ask.
failures, and why
already went through it)
out (`--from-plan` re-runs it only when the base moved)
pass it to the `planner` verbatim; the planner never fetches
decide them
changes (`adversarial-qa` also writes `.qa-evidence/`)
<!-- SKILL NAMING NOTE (Claude Code): the skill is named `code-critic` so it does NOT shadow Claude Code's bundled `code-review` skill (project skills shadow bundled ones). `/code-review ultra` stays reachable as an optional, user-launched deep pass. Do not rename back. -->
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…
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…
Drafts a structured implementation plan (approval summary with acceptance criteria, contract, files, edge cases, test strategy)…
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.