Verify implementation against QA Contract (G#N, AC#N), auto-invoke debug on RED
Verify that the current commit satisfies its assigned QA Contract criteria (G#N Gherkin scenarios and AC#N acceptance criteria). Returns GREEN (pass) or RED (fail, triggers debug).
Before running, identify:
Retrieve the assigned criteria for this commit:
## Commit: [Name]
**Satisfies:** G#1, G#2, AC#1, AC#3
### Criteria to Verify:
- G#1: [Scenario description]
- G#2: [Scenario description]
- AC#1: [Acceptance criteria]
- AC#3: [Acceptance criteria]
Use Cursor tools for technical checks:
ReadLints:
paths: [changed files]
Expect: No errors related to committed functionality
npm run typecheck
Expect: Exit code 0
npm run test -- --grep "[feature name]"
Expect: All tests pass
For each G#N assigned to this commit:
Verify the API endpoint exists and is implemented:
SemanticSearch: "Where is [endpoint] implemented?"
Check response matches expected schema:
Grep: "interface.*Response" in related files
Verify error cases are handled:
Grep: "throw|catch|error" in handler files
| G#N | Scenario | Status | Notes |
|---|---|---|---|
| G#1 | [Name] | PASS/FAIL | [Details] |
| G#2 | [Name] | PASS/FAIL | [Details] |
For each AC#N assigned to this commit:
Verify component is implemented:
Glob: **/*[ComponentName]*.tsx
Check Storybook story exists:
Glob: **/*[ComponentName]*.stories.tsx
For interactive acceptance criteria:
Browser MCP:
1. browser_navigate to Storybook URL
2. browser_snapshot to check state
3. browser_click/browser_type to test interaction
4. browser_take_screenshot for evidence
| AC#N | Criteria | Status | Evidence |
|---|---|---|---|
| AC#1 | [Criteria] | PASS/FAIL | [Screenshot/Notes] |
| AC#3 | [Criteria] | PASS/FAIL | [Screenshot/Notes] |
## Verification Report
**Commit:** [Name]
**Satisfies:** G#1, G#2, AC#1, AC#3
### Technical Validation
| Check | Status |
|-------|--------|
| ReadLints | PASS/FAIL |
| TypeCheck | PASS/FAIL |
| Tests | PASS/FAIL/SKIP |
### Gherkin Scenarios (Backend)
| ID | Scenario | Status | Notes |
|----|----------|--------|-------|
| G#1 | [Name] | PASS/FAIL | [Details] |
| G#2 | [Name] | PASS/FAIL | [Details] |
### Acceptance Criteria (Frontend)
| ID | Criteria | Status | Evidence |
|----|----------|--------|----------|
| AC#1 | [Criteria] | PASS/FAIL | [Link/Notes] |
| AC#3 | [Criteria] | PASS/FAIL | [Link/Notes] |
### Verdict
**[GREEN / RED]**
[If GREEN: All criteria verified, ready to commit]
[If RED: Failed criteria listed, invoking debug skill]
All criteria verified. Proceeding to git commit.
**Verification failed. Auto-invoking debug skill.**
### Failed Criteria:
- [G#N or AC#N]: [What failed]
- [G#N or AC#N]: [What failed]
### Context for Debug:
- Error messages: [from ReadLints]
- Expected behavior: [from QA Contract]
- Actual behavior: [observed]
Invoking debug skill with context...
After debug fixes, re-run qa-commit to verify.
When verdict is RED:
debug skill| Tool | Purpose |
|---|---|
| ReadLints | Get lint/type errors |
| Shell | Run tests, typecheck |
| Browser MCP | Storybook verification |
| SemanticSearch | Find implementations |
| Grep | Search for patterns |
Invoked by:
commit.mdc - After pr-review passesagent.mdc - Part of commit-level workflowOr manually with "use qa-commit skill".