/canary-verify
Turn a code change into a prioritized browser-QA plan with Canary — read the git diff, infer which user-facing workflows it touches, suggest the concrete flows and the checks that must hold, then optionally record those flows as a session with a report.html. Use when the user
Claude Code
$ npx -y skills add 0xnyn/canary --skill canary-verify --agent claude-code
Codex
$ npx skills add 0xnyn/canary --skill canary-verify -a codex -y
Cursor
$ npx skills add 0xnyn/canary --skill canary-verify -a cursor -y
Gemini CLI
$ npx skills add 0xnyn/canary --skill canary-verify -a gemini-cli -y
GitHub Copilot
$ npx skills add 0xnyn/canary --skill canary-verify -a github-copilot -y
OpenCode
$ npx skills add 0xnyn/canary --skill canary-verify -a opencode -y
Windsurf
$ npx skills add 0xnyn/canary --skill canary-verify -a windsurf -y
SKILL.md
canary-verify.SKILL.mdname: canary-verify
description: Turn a code change into a prioritized browser-QA plan with Canary — read the git diff, infer which user-facing workflows it touches, suggest the concrete flows and the checks that must hold, then optionally record those flows as a session with a report.html. Use when the user has changed code and asks what to test, wants to QA a diff, branch, or PR, or wants a focused regression plan before merging. Trigger phrases — "what should I test for this change", "QA my diff", "verify this PR", "I changed X, what flows might break", "regression plan for this branch", "what should I QA before merging".
license: MIT
metadata:
author: usecanary
version: 0.4.4
category: workflow
tags:
- canary
- qa
- testing
- regression
- planningCanary verify (change → QA plan)
Read a code change, infer the **user-facing workflows** it affects, and suggest a **prioritized QA plan** — the concrete Canary flows that verify them. Then optionally hand off to **canary-session** to record those flows and produce `report.html`. Use the **canary-scripting** skill for the step API.
When to use
- The user changed code and asks **what to test** or what might regress.
- QA-ing a **diff, branch, or PR** before merging.
- Building a focused **regression plan** scoped to the change — not a full re-test.
- Only need the suggestion? Stop at the plan. Need evidence? Hand off to **canary-session**. Driving a
browser once with no plan? Use **canary-automate**.
Examples
Example 1: verify the working tree
User says: "what should I QA for these changes?" or "verify my diff" Read the working-tree diff, map changed files to affected routes/flows, and present a ranked plan (P0/P1/P2). Offer to record the P0 flows as a session.
Example 2: verify a branch or PR before merge
User says: "regression plan for feature/checkout" or "QA this PR" Diff the branch against its base, group the touched workflows, suggest the steps per flow, and hand the approved flows to **canary-session** for a report.
Workflow
1. **Get the diff.** Working tree: `git diff` and `git diff --staged`. A branch/PR: `git diff <base>...HEAD` (list files with `git diff --name-status <base>...HEAD`). Or reason straight from a prose description ("I changed the login redirect") — skip git. 2. **Infer affected workflows.** For each changed file, decide whether it touches a user-facing route/page/flow, and group by **workflow** (sign-up, checkout, …), not by file. File→workflow heuristics are in [`references/REFERENCE.md`](references/REFERENCE.md). 3. **Suggest a prioritized plan.** For each workflow: a one-line intent, a **P0/P1/P2** priority, the entry URL, the **checks that must hold** (visible text / URL / state / no console error), the likely phases as a guide — not a pre-written script — and which changed files put it at risk. Use the plan template in [`references/REFERENCE.md`](references/REFERENCE.md). 4. **Confirm, then hand off.** Present the plan and ask which flows to record. For approved flows, follow **canary-session**'s explore-and-record loop (one session per flow: observe the live page, small intent-named steps, assertion steps for the checks) → `report.html`; offer **canary-review** to open it. Don't record flows the user didn't approve.
Hard rules
- **Suggest first, record second** — the default output is the plan; only record after the user confirms.
- Map to **user-facing workflows**, not files. Call out non-UI changes (pure refactors, types,
config/build, docs) as **no browser QA needed** rather than inventing a flow.
- **Read-only on the repo** — inspect the diff and code; never stage, commit, or modify source.
- Recording reuses **canary-session** — don't reinvent `session start` / `run` / `session end` here.
- No diff (or all non-UI)? Say so plainly and stop — don't fabricate a plan.
Read more
name: canary-verify
description: Turn a code change into a prioritized browser-QA plan with Canary — read the git diff, infer which user-facing workflows it touches, suggest the concrete flows and the checks that must hold, then optionally record those flows as a session with a report.html. Use when the user has changed code and asks what to test, wants to QA a diff, branch, or PR, or wants a focused regression plan before merging. Trigger phrases — "what should I test for this change", "QA my diff", "verify this PR", "I changed X, what flows might break", "regression plan for this branch", "what should I QA before merging".
license: MIT
metadata:
author: usecanary
version: 0.4.4
category: workflow
tags:
- canary
- qa
- testing
- regression
- planningCanary verify (change → QA plan)
Read a code change, infer the **user-facing workflows** it affects, and suggest a **prioritized QA plan** — the concrete Canary flows that verify them. Then optionally hand off to **canary-session** to record those flows and produce `report.html`. Use the **canary-scripting** skill for the step API.
When to use
- The user changed code and asks **what to test** or what might regress.
- QA-ing a **diff, branch, or PR** before merging.
- Building a focused **regression plan** scoped to the change — not a full re-test.
- Only need the suggestion? Stop at the plan. Need evidence? Hand off to **canary-session**. Driving a
browser once with no plan? Use **canary-automate**.
Examples
Example 1: verify the working tree
User says: "what should I QA for these changes?" or "verify my diff" Read the working-tree diff, map changed files to affected routes/flows, and present a ranked plan (P0/P1/P2). Offer to record the P0 flows as a session.
Example 2: verify a branch or PR before merge
User says: "regression plan for feature/checkout" or "QA this PR" Diff the branch against its base, group the touched workflows, suggest the steps per flow, and hand the approved flows to **canary-session** for a report.
Workflow
1. **Get the diff.** Working tree: `git diff` and `git diff --staged`. A branch/PR: `git diff <base>...HEAD` (list files with `git diff --name-status <base>...HEAD`). Or reason straight from a prose description ("I changed the login redirect") — skip git. 2. **Infer affected workflows.** For each changed file, decide whether it touches a user-facing route/page/flow, and group by **workflow** (sign-up, checkout, …), not by file. File→workflow heuristics are in [`references/REFERENCE.md`](references/REFERENCE.md). 3. **Suggest a prioritized plan.** For each workflow: a one-line intent, a **P0/P1/P2** priority, the entry URL, the **checks that must hold** (visible text / URL / state / no console error), the likely phases as a guide — not a pre-written script — and which changed files put it at risk. Use the plan template in [`references/REFERENCE.md`](references/REFERENCE.md). 4. **Confirm, then hand off.** Present the plan and ask which flows to record. For approved flows, follow **canary-session**'s explore-and-record loop (one session per flow: observe the live page, small intent-named steps, assertion steps for the checks) → `report.html`; offer **canary-review** to open it. Don't record flows the user didn't approve.
Hard rules
- **Suggest first, record second** — the default output is the plan; only record after the user confirms.
- Map to **user-facing workflows**, not files. Call out non-UI changes (pure refactors, types,
config/build, docs) as **no browser QA needed** rather than inventing a flow.
- **Read-only on the repo** — inspect the diff and code; never stage, commit, or modify source.
- Recording reuses **canary-session** — don't reinvent `session start` / `run` / `session end` here.
- No diff (or all non-UI)? Say so plainly and stop — don't fabricate a plan.
QA harness built for Claude Code | E2E testing with screen recordings, console logs, network HARs, and Playwright traces
Other skills on canary.
More skills from other plugins.
api-review
Produce the "Playwright 1.xx API Review" artifact for a range of commits - the public API additions and the breaking or behavior…
promptfoo-evals
Write, refine, run, and QA promptfoo evaluation suites: promptfooconfig.yaml, prompts, providers, vars, tests, assertions,…
deepeval
DeepEval evaluation workflow for AI agents and LLM applications. TRIGGER when the user wants to evaluate or improve an AI agent,…
Questions about canary-verify.
- Which coding agents can use canary-verify?
- canary-verify installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

