skills/frontend-qa/component-fix-and-verify/SKILL.md
Use when a diagnosed fix needs to be applied and verified against a Next.js component — "apply this fix," "fix and run tests," or "verify this change." Applies a single diagnosed fix with mandatory diff preview, then runs scoped and broad verification (tsc, lint, tests) with atomic safety and revert capability. Not for diagnosing bugs (use ui-bug-investigator or css-layout-debugger) or generating regression tests (use regression-test-generator).
npx skillsauth add dtsong/my-claude-setup component-fix-and-verifyInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Apply a diagnosed fix to a component and verify through scoped then broad checks with mandatory diff preview and atomic safety.
affectedFiles from the DiagnosisReport onlytsc, linter, and test runner commands — no other shell commands.claude/qa-cache/artifacts/diag-*.json with rootCause and suggestedFix.claude/qa-cache/component-maps/{route-slug}.jsonaffectedFiles are validated against the ComponentMap's cachedFiles array. Reject any path not present in the ComponentMap or containing .., shell metacharacters, or absolute paths outside the project root.tsc, eslint, biome, vitest, jest, playwright) with file arguments. No user-provided strings are interpolated into commands.Copy this checklist and update as you complete each step:
Progress:
- [ ] Phase 1: Pre-flight (Steps 1-4)
- [ ] Phase 2: Preview (Steps 5-7)
- [ ] Phase 3: Apply (Steps 8-9)
- [ ] Phase 4: Scoped Verification (Steps 10-12)
- [ ] Phase 5: Broad Verification (Steps 13-15)
- [ ] Phase 6: Verdict (Step 16)
Note: If you've lost context of previous steps (e.g., after context compaction), check the progress checklist above. Resume from the last unchecked item. Re-read the verification-commands reference if needed.
git status --short. If untracked or modified files exist outside the fix scope, warn: "Working tree has uncommitted changes in: [files]. These are unrelated to this fix." Pause for acknowledgment.affectedFiles.tsc --noEmit 2>&1 | tail -5 and record pre-existing error count. Note: "Baseline: N pre-existing type errors."references/verification-commands.md. Run scoped checks on affectedFiles only:
tsc --noEmit on affected files (see reference for project-specific variants)vitest --related, jest --findRelatedTests, or directory-scoped)tsc --noEmit. Compare error count to Phase 1 baseline.npm test, pnpm test, etc.).Report one of three outcomes:
PASS — All scoped and broad checks green.
Fix verified: PASS
tsc: 0 errors (was N baseline)
lint: clean
tests: M passed, 0 failed
scope: [affectedFiles]
FAIL — Any check introduced new errors. Do NOT auto-revert. Show:
Fix verified: FAIL
failed phase: [Scoped Verification | Broad Verification]
failing check: [tsc | lint | tests]
error: [first error message]
files changed: [affectedFiles]
Options:
1. Show full error output
2. Revert this fix (restores original files)
3. Keep changes and investigate
PARTIAL — Fix is clean but pre-existing failures exist in broad checks.
Fix verified: PARTIAL
scoped checks: all passed
broad checks: pre-existing failures detected (not caused by this fix)
pre-existing: N type errors, M test failures (same as baseline)
scope: [affectedFiles]
If the DiagnosisReport includes before/after screenshots:
Tier 1 — Qualitative (always available): Examine both screenshots cross-referenced with the code changes. Report observations with mandatory disclaimers:
Tier 2 — Automated (if tooling detected): Check for Playwright with toHaveScreenshot() or pixelmatch in dependencies. If found, scaffold the comparison command and run it. If not found, note: "Automated visual regression available with Playwright — see playwright.dev/docs/test-snapshots." Proceed with Tier 1 only.
FixResult:
version: "1.0"
diagnosis_ref: "[DiagnosisReport ID]"
affectedFiles: ["path/to/file.tsx"]
diff: "[unified diff string]"
verdict: "PASS | FAIL | PARTIAL"
checks:
tsc: { status: "pass|fail|skip", errors: 0, baseline: 0 }
lint: { status: "pass|fail|skip", tool: "eslint|biome|none" }
tests: { status: "pass|fail|skip", passed: 0, failed: 0, runner: "vitest|jest|none" }
visual: { tier: "1|2|none", observations: "string" }
notAddressed: ["related issue this fix does not cover"]
reverted: false
Pass the FixResult artifact path to qa-coordinator. The result contains verdict, affectedFiles, diff, and notAddressed fields consumed by regression-test-generator.
| Path | Load Condition | Content Summary |
|------|---------------|-----------------|
| references/verification-commands.md | Phase 4, always | TypeScript, linter, and test runner detection and invocation commands |
testing
Use to convert a Word .docx file to PDF and/or verify its page count. Triggers on: converting docx to pdf, rendering a document, checking how many pages a docx produces, or asserting a page-count constraint (e.g. a resume must stay 2 pages). Wraps LibreOffice headless conversion.
development
Security audit checklist for web applications. Use when reviewing, auditing, or hardening a web app's security posture. Covers rate limiting, auth headers, IP blocking, CORS, security middleware, input validation, file upload limits, ORM usage, and password hashing. Triggers on requests like "review security", "harden this app", "security audit", "check for vulnerabilities", or when building/reviewing API endpoints.
development
Interactive wizard to craft effective prompts using Claude Code best practices
tools
Use when batch labeling, prioritizing, and assigning GitHub issues during triage sessions.