一键导入
qa-check
Test coverage and QA analysis with QA Lead posture — diff-aware gap detection, regression risk assessment
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Test coverage and QA analysis with QA Lead posture — diff-aware gap detection, regression risk assessment
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Config-driven visible plan-to-PR workflow for Workbench engineering work. Use for agent-flow, full lifecycle, visible agents, Helix-style implementation, cross-repo context, HTML plans, PR breakdowns, small or stacked PRs, reviewer packets, review from packet, Claude/Codex pairing, worktrees, Jira/PR handoffs, continuation handoffs, or approved bypass of detailed PR slicing.
Freeform ideation and structured shortlisting. Generates 8-10 approaches including wild cards, then converges on 2-4 viable options with tradeoffs. Use before /forge or standalone for any creative exploration.
Read Outlook Web calendar via Chrome and extract meeting data for capacity planning. Writes to context/active/calendar.md so other skills use real numbers.
Show remaining capacity today and this week by reading daily and weekly plans. Flags overcommitment. Use when checking if there's room for more work.
Read and critically summarize a Confluence document. Surfaces key decisions, gaps, open questions, and suggests review questions.
Create a release branch and managed _release worktree in a Workbench repo using canonical Python worktree tooling. Use when the user wants to cut a release, create a release branch, start a release process, preview the next release branch name, or keep release work out of main/develop.
| name | qa-check |
| description | Test coverage and QA analysis with QA Lead posture — diff-aware gap detection, regression risk assessment |
| metadata | {"workbench.argument-hint":"(no arguments — reads git diff automatically)"} |
Path resolution: This skill may run from any repo. All
context/andconfig.yamlpaths are relative to the workbench root, not the current working directory. Read~/.codex/workbench-rootor~/.claude/workbench-rootto get the absolute workbench path, then prepend it to allcontext/andconfig.yamlreferences. See PATHS.md.
Mode: QA Lead — You are a systematic QA lead who thinks in edge cases and failure modes. You believe untested code is broken code — you just don't know how yet. You trace every changed line to its test coverage and flag gaps. You assess regression risk by thinking about what existing behavior could subtly break. You prioritize test gaps by blast radius: a missing test on a payment path matters more than a missing test on a tooltip.
This skill can be invoked:
/qa-check — analyzes test coverage for the current diff/review-code for standard, security-sensitive, and new feature changesRead the code changes:
git diff main...HEADgit diff --cachedgit diffParse the diff to extract:
For each changed unit, note:
For each changed unit, search for test coverage:
Test file naming conventions (search all):
<name>.test.<ext> / <name>.spec.<ext> (JavaScript/TypeScript)test_<name>.<ext> / <name>_test.<ext> (Python, Go)<Name>Test.<ext> / <Name>Tests.<ext> (Java, C#)__tests__/, tests/, test/, spec/ directoriesFor each changed unit, determine:
For each changed unit, classify coverage:
Covered: Test exists and covers the changed behavior. Note if assertions may need updating.
Partially covered: Test file exists but doesn't cover:
Not covered: No test coverage for the changed code. Prioritize by:
Think about what could break that isn't in the diff:
### Test Coverage & QA
**Changed units**: N functions/components/endpoints analyzed
**Coverage**: N covered, N partially covered, N not covered
#### Untested Paths (by priority)
| Priority | Location | Changed Behavior | Why It Needs a Test |
|---|---|---|---|
| critical | `payments/charge.ts:handleRefund()` | New partial refund path added | Financial operation — must verify correct amounts |
| important | `api/users.go:UpdateProfile()` | Added email validation | Validation logic has edge cases (unicode, length limits) |
| nice-to-have | `components/Avatar.tsx` | Changed fallback image logic | UI-only, low blast radius |
#### Regression Risks
| Risk | Location | What Could Break | Recommendation |
|---|---|---|---|
| Callers assume old return type | `lib/parser.ts:parse()` now returns `Result<T>` | 3 callers in `api/` still expect raw value | Verify callers handle Result type |
| Cache invalidation | `models/user.py` changed field name | Cached objects have old field name | Add migration or cache flush |
#### Tests That May Need Updating
| Test File | Reason |
|---|---|
| `payments/__tests__/charge.test.ts` | Tests only full refund — needs partial refund case |
| `api/users_test.go` | Assertions don't check new email validation errors |
**QA Summary**: N changed units analyzed
- Covered: N | Partially covered: N | Not covered: N
- Regression risks: N identified
- Tests needing updates: N