Qa full
全球最大的 Claude Code 技能聚合库 · 收录 3900+ 来自 12+ 来源的技能,提供在线搜索与趋势分析看板 / The world's largest Claude Code skill aggregation hub — 3900+ skills from 12+ sources with online search and trend dashboard
npx -y skills add bg-szy/TOP-SKILLS --skill qa-fullAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Comprehensive per-feature QA gate. Runs the full multi-dimensional quality fan-out (tests, correctness, security, DB, frontend perf, browser QA, coverage) scoped to the current branch's diff, then emits a pass/fail ship-readiness verdict. Run it when a feature is finished, before /finish-branch and /ship. Use when asked to "run full QA", "qa-full", "feature done — check it", "is this ready to ship", "pre-ship check", or "full quality gate".
SKILL.md
23.3 KB, ~6.2k tokens by cl100k_base, as published. Nobody here has run it
/qa-full
The per-feature QA gate. Where /daily-qa is the unattended, repo-wide,
time-windowed background sweep, /qa-full is the present-human,
branch-scoped, pass/fail gate you run the moment a feature is done — before
/finish-branch and /ship.
implement → /qa-full → /finish-branch → /ship
(this gate)
It reuses /daily-qa's trigger matrix (which checks to run based on what
changed) with three deliberate differences:
- Scope is the branch diff (
base..HEAD+ working tree), not a time window. - Output is a pass/fail verdict, not an advisory report. CRITICAL/HIGH findings block.
- Interactive checks auto-run. Because a human is present, the checks
/daily-qaonly recommends (/web-perf, browser QA) are run here when their triggers fire.
Hard rules
- The bar is the superskills quality standard — TDD/DRY/SOLID/YAGNI plus the
hard-gate list, both spelled out in full in this skill (Step 10), so you do
not need to open any external file. The canonical written copy is
ENGINEERING_STANDARDS.mdin the superskills install (a plugin install exposes it at${CLAUDE_PLUGIN_ROOT}/ENGINEERING_STANDARDS.md); it is not expected to exist in the project you're reviewing, so don't flag it as missing. Step 10's verdict is exactly "does the diff meet those standards." - This is a gate, not a fixer. Detect and report blockers with the
smallest viable fix; do not mutate source, open PRs, or push. The user
fixes, then re-runs
/qa-full. (For an auto-fixing flow, that's a future--fixmode — not this command.) - Ground every finding in concrete evidence: file:line, failing test name, log snippet, severity as the underlying tool produced it. No speculation.
- Separate blockers from warnings. Only test/build failures and CRITICAL/HIGH findings block. Everything else is a warning that ships with a follow-up note.
- Scope stays on the diff. Run every sub-check against the changed files, not the whole repo — keep it fast and signal-dense.
- Never claim SHIP-READY without receipts. The verdict must cite the exact checks that ran, what passed, and what was skipped (and why).
- No silent skips — mandatory accounting. Every Phase-4 check (security +
performance, Steps 4–8) must resolve to exactly one of: RAN (with evidence),
SKIPPED (with a stated reason — e.g. "no reachable dev server", "scanner
not authorized in this env"), or NOT-TRIGGERED (its diff trigger didn't
fire). A check whose trigger fired but that neither ran nor was explicitly
skipped-with-reason is an unaccounted check ⇒ NOT READY. "Recommend-only"
is not an allowed resting state for a triggered check — it must become RAN or
SKIPPED(reason). Projects may mark specific checks MANDATORY in
CLAUDE.md(e.g./penteston a payments service), and for those, SKIPPED is itself a blocker — only RAN with evidence passes.
Project configuration (CLAUDE.md)
This gate reads the project's root CLAUDE.md for a few optional settings. They
are plain prose (CLAUDE.md is agent instructions, not a config file) — look for a
## qa-full section and honor whatever it states. A project that wants to force
specific checks to actually run writes something like:
## qa-full
- Mandatory checks (must RUN with evidence — a skip is a blocker): `/pentest`, `/defense`
- Hard perf gate: LCP ≤ 2.5s and INP ≤ 200ms on `/` and `/checkout` (breach blocks)
- Design is a gate: run `/design-audit` on any UI change, don't just recommend it
- Dev URL: http://localhost:3000 (for `/web-perf`)
- Test/build: `pnpm test` and `pnpm build`
Recognized settings (all optional; absence = the defaults in the steps below):
- Mandatory checks — listed commands must read RAN in the ledger; SKIPPED is a blocker (Step 4/10). Use for compliance-critical surfaces (payments, auth, PII).
- Hard perf gate — turns a
/web-perfbudget breach from a warning into a blocker (Step 6). - Design is a gate — auto-runs
/design-audit(read-only) and blocks on its findings instead of recommending (Step 8). - Dev URL / Test+build commands — feed Steps 6 and 2 so they don't have to guess.
If there is no ## qa-full section, run with the built-in defaults — nothing here
is required.
Step 1: Establish the diff scope
- Detect the base branch:
gh repo view --json defaultBranchRef -q .defaultBranchRef.name, elsegit symbolic-ref refs/remotes/origin/HEAD, else fall back tomain/master. - If
$ARGUMENTSnames a base branch or--scope <paths>, use it. - Compute the changed-file set:
git diff --name-only <base>...HEADplus uncommitted changes (git status --porcelain). This set drives every trigger below. - Record at the top of the report: base branch, commit range, changed-file count, and whether the working tree is dirty.
If there is no diff against base, stop and say so — there is nothing to gate.
Step 2: Tests & build (always — hard blocker)
- Find the project's test/build commands from
CLAUDE.md; if absent, infer frompackage.jsonscripts,Makefile,pyproject.toml, etc. If you cannot determine them, ask rather than guess. - Run the test suite and the build. Capture exact failures (test name + verbatim error in a code block).
- Any failing test or broken build is a hard blocker — the gate cannot be
SHIP-READY. Recommend
/verifyto confirm a fix, or/debug//investigateto root-cause.
Step 3: Correctness — /code-review (always, auto-run)
Run /code-review scoped to the diff (base..HEAD). Because this is a
pre-ship gate, default to a higher local tier (high) than the daily pass.
/code-review reads the diff only — no fix mode here (gate, not fixer).
- Fold correctness findings into the report. CRITICAL/HIGH block.
- The
ultratier (deep multi-agent cloud review, billed) is recommend-only — surface the exact command when a finding is high-stakes; the user launches it.
Step 4: Security — /defense (always, auto-run)
Run /defense scoped to the changed files (OWASP Top 10 / secrets / auth /
crypto / data-protection). Diff-only, no external tools, no auth prompt.
- CRITICAL/HIGH block. MEDIUM/LOW are warnings.
/pentestis an external scanner (needs auth confirmation), so it is not auto-run — but when/defenseflags CRITICAL/HIGH or auth/crypto/session/ token/deserialization/file-upload paths changed in the diff, it becomes a triggered, mandatory-accounting check: either run it (record evidence) or record it SKIPPED with a reason (e.g. "scanner unavailable in CI"). Leaving it as a bare "recommend" when its trigger fired ⇒ unaccounted ⇒ NOT READY. IfCLAUDE.mdmarks/pentestMANDATORY, SKIPPED is a blocker./fuzzneeds a running target (like/web-perf), so it is not auto-run — but when the diff adds or changes new endpoints, input parsing, file-upload handling, or deserialization paths, it becomes a triggered, mandatory-accounting check exactly like/pentest: either run it against a reachable dev server (record evidence) or record it SKIPPED with a reason (e.g. "no reachable dev server"). Leaving it as a bare "recommend" when its trigger fired ⇒ unaccounted ⇒ NOT READY. CRITICAL/HIGH fuzz findings (crash, injection, auth bypass surfaced by fuzzing) block. IfCLAUDE.mdmarks/fuzzMANDATORY, SKIPPED is a blocker.- Infra/deploy config —
/iac-scan. When the diff changes infrastructure (Dockerfile,docker-compose*,*.tf/*.tfvars, k8s/Helm manifests,.github/workflows/**,.gitlab-ci.yml,Jenkinsfile, nginx/cloud config — see/iac-scan's trigger section for the authoritative list), run/iac-scan(auto-run path uses local static linters only, no network/auth — safe in a gate) scoped to those files. CRITICAL/HIGH misconfigs (root container,0.0.0.0/0ingress, wildcard IAM, privileged pod, untrusted CI trigger, baked-in secret) block. It's the infra counterpart to/defense's app-code sweep.
Step 5: Database — /db-optimize (auto-run if triggered)
Trigger when changed files match ORM models, migrations, query builders
(**/models/**, **/migrations/**, **/queries/**, **/*repository*,
**/*.sql), raw SQL in the diff, or new ORM calls (.find, .where,
.includes, .join, .preload). Run /db-optimize scoped to matched files.
- N+1s and missing indexes on hot paths are blockers; other suggestions are warnings. If no trigger matched, record it NOT-TRIGGERED (no DB/ORM/SQL in the diff) in the ledger rather than dropping it.
Step 6: Frontend perf — /web-perf (auto-run if triggered)
This is a key difference from
/daily-qa, which only recommends/web-perf. Here a human is present and a dev server can be started, so run it.
Trigger when the diff includes frontend code (**/*.tsx, **/*.jsx,
**/*.vue, **/*.svelte, **/components/**, **/pages/**, **/styles/**,
**/*.css, **/*.scss), new images/fonts/assets, or bundler config
(next.config.*, vite.config.*, webpack.config.*).
- Find the dev URL (
CLAUDE.md, or thedevscript inpackage.json). If no running app and none can be started, record the check as SKIPPED with the reason ("no reachable dev server") in the accounting ledger — do not block on an environment you can't reach, but do not let it vanish silently. (A bare "recommend-only" with no reason for a triggered frontend diff is unaccounted ⇒ NOT READY.) - Run
/web-perfagainst the affected routes. Report Core Web Vitals (LCP, INP, CLS) vs. any known budget.
- A measured regression past budget is a warning by default (perf is rarely
a hard ship-blocker) unless
CLAUDE.mddefines a hard perf gate, in which case treat a breach as a blocker. - Recommend
/perf-profile(do not auto-run — it needs a representative workload, not a diff) when the diff touches hot server-side paths, the change is pre-launch, or/db-optimize//web-perfpoint at a bottleneck that needs application-level execution timing to localize. This is the app-layer counterpart to/web-perf(frontend) and/db-optimize(DB).
Step 7: Browser QA — /qa-only (auto-run if UI changed)
Use
/qa-only(report-only), not/qa. A gate must not mutate source.
Trigger when the diff includes UI/frontend code or route handlers serving HTML.
Run /qa-only scoped to the affected surface; fold its health score and repro
steps into the report.
- Broken user-facing flows (CRITICAL/HIGH bugs in the QA report) are blockers.
- If the user wants the test→fix→re-verify loop instead, recommend
/qa(interactive, mutates code) as a follow-up — outside this gate.
Step 8: Design audit — recommend (auto-run optional)
When the diff includes UI changes, recommend /design-audit for visual
consistency, hierarchy, accessibility, and AI-slop tells. /design-audit is
read-only — it audits and produces a design plan, so it's the gate-correct
visual counterpart to /qa-only (Step 7): together they cover does it work +
does it look right on a frontend change without mutating source. This is a
quality warning layer, not a blocker. Auto-run it only if the project treats
design as a gate (per CLAUDE.md); otherwise output the command.
- Do NOT auto-run
/design-reviewhere — it fixes and commits code, which a gate must not do. Recommend it as a follow-up to fix what/design-auditflags, run by the user after the gate. - Accessibility —
/a11y. When the UI change is heavy and likely to affect assistive tech — new/changed interactive components, forms, ARIA/role/tabindex, focus/keyboard handling, images, color/contrast, or motion/animation (not a pure spacing/copy tweak — see/a11y's trigger section for the authoritative list) — run/a11y's static pass (read-only, diff-scoped, safe in a gate) and fold its CRITICAL/SERIOUS findings into the ledger. A control no screen-reader or keyboard user can operate is a blocker. Recommend/a11y's dynamic axe pass when a dev URL is reachable.- Scope split with
/design-audit:/design-auditowns visual quality (consistency, hierarchy, AI-slop);/a11yowns WCAG / assistive-tech correctness (screen-reader, keyboard, contrast ratios). They overlap on contrast only — treat/a11y's measured contrast finding as authoritative.
- Scope split with
Step 9: Coverage — untested paths
For each changed file, locate its test (sibling *.test.*, parallel tests/).
Use coverage data if present (coverage/, lcov.info, .coverage); else do a
structural check for new exported functions / new branches / new error paths
without a corresponding assertion.
- New public surface with zero tests is a blocker for a feature completion gate. Draft one focused failing-then-passing test per gap (output as a code block — do not apply). Internal helpers without tests are warnings.
- Recommend
/tddwhen a gap is large enough to warrant test-first follow-up. - Recommend
/playwrightwhen the untested surface is a user-facing flow:/tddcovers the unit gap and/qa-onlyobserves the flow once, but neither leaves an e2e regression test behind —/playwrightdoes.
Step 10: Accounting ledger + ship-readiness verdict
First build the accounting ledger — a row per Phase-4/Phase-5 check, each resolved to RAN (evidence) / SKIPPED (reason) / NOT-TRIGGERED / MANDATORY-FAIL. The verdict cannot be SHIP-READY while any triggered check is unaccounted.
Phase-4 accounting (security + performance — what this gate enforces "was done"):
- Steps 4–8 each get a ledger row. A triggered check with no RAN evidence and no SKIPPED reason is an unaccounted-check blocker.
/pentest,/fuzz,/perf-profileare accounted the same way once their trigger fires.- Any check
CLAUDE.mdmarks MANDATORY must be RAN with evidence — SKIPPED ⇒ blocker.
Phase-5 accounting (honest scope): /qa-full is the entry to Phase 5, so it
can only enforce the pre-ship half. It cannot verify /finish-branch,
/ship, or /land-and-deploy — those run after this gate, so do not claim
they're done. What it does enforce:
- Tests + build were freshly run this invocation (Step 2) — no stale results
(the
/verifydiscipline). Stale/absent fresh evidence ⇒ NOT READY. - A passing verdict is the hard precondition for ship: only on SHIP-READY do
you hand off "Proceed to
/finish-branchthen/ship."
Then the verdict:
- SHIP-READY — zero blockers and every triggered check accounted for.
List warnings + follow-ups, then hand off to
/finish-branch→/ship. - NOT READY — one or more blockers (including any unaccounted/MANDATORY-FAIL
check). List each with its file:line/test-name/missing-check evidence and the
smallest fix. Tell the user to fix and re-run
/qa-full.
Blocker set (any one ⇒ NOT READY — this is the authoritative list for the gate;
it mirrors the superskills ENGINEERING_STANDARDS.md, kept in sync by the
maintainer — you do not need to read that file to run this gate):
- failing test or broken build, or test/build not freshly run this invocation (Step 2)
/code-reviewCRITICAL/HIGH correctness finding (Step 3)/defenseCRITICAL/HIGH security finding (Step 4)/fuzzCRITICAL/HIGH finding — crash, injection, or auth bypass surfaced by fuzzing (Step 4)/pentestCRITICAL/HIGH vulnerability, when it ran (Step 4)- N+1 / missing index on a hot path (Step 5)
- CRITICAL/HIGH browser-QA bug in a user-facing flow (Step 7)
/a11yCRITICAL finding — a control unusable by screen-reader/keyboard (Step 8)/iac-scanCRITICAL/HIGH infra misconfig (Step 4)- new public surface with zero tests (Step 9)
- a hard perf gate breach, only if
CLAUDE.mddefines one (Step 6) - a triggered Phase-4 check left unaccounted — neither RAN with evidence nor SKIPPED with a stated reason (Steps 4–8)
- a
CLAUDE.md-MANDATORY check that was SKIPPED rather than run
Report format
Write to qa-full-reports/<branch>-<YYYY-MM-DD>.md (create dir; add to
.gitignore). Structure:
# QA-Full — <branch> @ <YYYY-MM-DD>
Base: <base> Range: <base>..HEAD Changed files: N Working tree: clean|dirty
## VERDICT: SHIP-READY ✅ | NOT READY ⛔
### Blockers (must fix before /finish-branch)
1. <file:line> — <evidence> — <minimal fix>
- (or) None.
### Warnings (ship with a follow-up note)
- …
## Accounting ledger (every triggered check must be RAN or SKIPPED-with-reason)
| Check | Phase | Status | Evidence / reason |
|-------|-------|--------|-------------------|
| Tests & build (Step 2) | 5-pre | RAN (fresh) / FAIL | exact command + result |
| /code-review (Step 3) | 3 | RAN | tier used, N findings |
| /defense (Step 4) | 4 | RAN | N findings |
| /iac-scan (Step 4) | 4 | RAN / NOT-TRIGGERED | infra/deploy files changed? |
| /pentest (Step 4) | 4 | RAN / SKIPPED(reason) / NOT-TRIGGERED | sensitive paths? |
| /fuzz (Step 4) | 4 | RAN / SKIPPED(reason) / NOT-TRIGGERED | new endpoints / input parsing? |
| /db-optimize (Step 5) | 4 | RAN / NOT-TRIGGERED | DB/ORM/SQL in diff? |
| /web-perf (Step 6) | 4 | RAN / SKIPPED(reason) / NOT-TRIGGERED | dev URL / "no server" |
| /perf-profile (Step 6) | 4 | RAN / SKIPPED(reason) / NOT-TRIGGERED | pre-launch / hot path? |
| /qa-only (Step 7) | 4 | RAN / NOT-TRIGGERED | health score |
| /design-audit (Step 8) | 4 | RAN / SKIPPED(reason) / NOT-TRIGGERED | UI changed? |
| /a11y (Step 8) | 4 | RAN / SKIPPED(reason) / NOT-TRIGGERED | heavy UI / a11y-affecting? |
| Coverage (Step 9) | 5-pre | RAN | N gaps, drafted tests |
> No row may be blank or "recommend" for a check whose trigger fired — that is an
> unaccounted-check blocker. `CLAUDE.md`-MANDATORY checks must read RAN.
## Recommended follow-up commands
- `/code-review ultra` — (only if a high-stakes correctness concern)
- `/review` — (heavier staff-level production-readiness pass; distinct from the
diff-bug focus of `/code-review` — recommend when the change is architecturally
significant or touches a critical path)
- `/cso` — (**backstop**: only if the diff crosses a new trust boundary — new
auth/endpoint/external-input/deserialization — and there's no evidence threat
modeling happened at plan time; threat modeling belongs in `/write-plan`, this
is the late catch)
- `/pentest` — (only if /defense found CRITICAL/HIGH or sensitive paths changed)
- `/fuzz` — (only if the diff added endpoints / input parsing / uploads /
deserialization and it was SKIPPED in the ledger — needs a running target)
- `/perf-profile` — (app-level execution profiling; pre-launch or when a
hot path / measured bottleneck needs localizing)
- `/qa` — (interactive test→fix loop, if Step 7 found user-facing bugs)
- `/design-audit` — (if UI changed; read-only visual/a11y audit, alongside `/qa`)
- `/a11y` — (if heavy UI likely to affect screen-reader/keyboard/contrast; dynamic axe pass needs a dev URL)
- `/iac-scan` — (if infra/deploy config changed; static, plus `/pentest` if HIGH/CRITICAL)
- `/playwright` — (if Step 9 found untested user-facing flows; leaves e2e
regression tests behind)
- `/simplify` — (reuse/simplification/efficiency cleanups; mutates code, so it
runs after the gate, not during it)
- `/design-review` — (to *fix* what `/design-audit` flags; mutates + commits, so
it runs after the gate, not during it)
- `/finish-branch` → `/ship` — (only if VERDICT is SHIP-READY)
Print the verdict + a 5-line summary to the chat.
Anti-patterns (do not do)
- Mutating source, opening PRs, or pushing — this is a gate, not a fixer.
- Declaring SHIP-READY while a check was skipped without saying which and why.
- Running any sub-check against the whole repo instead of the diff.
- Auto-running
/qa(mutates) instead of/qa-only(reports). - Blocking on
/web-perfwhen no dev server is reachable — downgrade to recommend and note it. - Treating MEDIUM/LOW findings as blockers (noise) or hiding CRITICAL/HIGH in the warnings list.
Related commands
Reuses the trigger matrix from /daily-qa (see skills/daily-qa/SKILL.md
Step 7 for the canonical globs). Differences: branch-scoped, gate semantics,
interactive checks auto-run.
Auto-run (diff-scoped, non-mutating):
/code-review— correctness (Step 3); local tiers only./defense— OWASP/secrets/auth/crypto (Step 4)./iac-scan— when infra/deploy config changed; static infra misconfig scan (Step 4)./db-optimize— when DB/ORM/SQL changed (Step 5)./web-perf— when frontend changed and a dev URL is reachable (Step 6)./qa-only— when UI changed; report-only (Step 7)./a11y— static pass when a heavy/a11y-affecting UI change landed (Step 8)./design-audit— read-only visual/a11y audit when UI changed (Step 8).
Recommend-only:
/code-review ultra— deep multi-agent cloud review; billed + user-triggered./review— staff-level production-readiness review; heavier, architectural — recommend for significant or critical-path changes (not a substitute for the Step 3/code-reviewpass)./cso— OWASP+STRIDE threat modeling. Design-time by nature, so its real home is/write-plan; here it's only a backstop when a trust-boundary change reaches the gate without a threat model./pentest— external scanner needing auth confirmation./fuzz— web fuzzing against a running target; triggered-accounting like/pentestwhen the diff adds endpoints/input parsing (Step 4)./perf-profile— app-level execution profiling; needs a representative workload, so it's a pre-launch / bottleneck-localizing follow-up, not a gate./qa— interactive test→fix→re-verify loop (mutates code)./design-audit— read-only visual/a11y audit → design plan; the gate-correct design check, paired with/qa-onlyon any UI change./design-review— fixes and commits visual issues (mutates); a post-gate follow-up to apply what/design-auditfound, never run inside the gate./playwright— e2e regression tests for untested user-facing flows (Step 9)./simplify— post-gate quality cleanups on the diff (mutates code); the read-only equivalent already runs inside Step 3's/code-review./verify,/debug,/investigate,/tdd— per-issue follow-ups.
Hand-off (only when SHIP-READY):
/finish-branch— choose how to integrate the work./ship— sync, bump VERSION, changelog, PR.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.