94 lines
2.2 KiB
Markdown
94 lines
2.2 KiB
Markdown
---
|
|
name: verification-loop
|
|
description: Systematic verification before claiming completion — run tests, check coverage, verify edge cases, inspect CI. Use when about to mark a task done, before merge, or when user asks "is it ready?"
|
|
---
|
|
|
|
# Verification Loop Skill
|
|
|
|
Based on ECC verification-loop + verification-before-completion patterns.
|
|
|
|
## When to Use
|
|
|
|
- Before claiming any task is complete
|
|
- Before merge or PR
|
|
- User asks "is it ready?" or "có ổn chưa?"
|
|
- After fixing a bug
|
|
|
|
## Loop Steps
|
|
|
|
### 1. Run Tests
|
|
```bash
|
|
npm test # or your test command
|
|
pytest tests/ # Python
|
|
go test ./... # Go
|
|
```
|
|
If ANY test fails — FIX first, do NOT claim done.
|
|
|
|
### 2. Check Coverage
|
|
```bash
|
|
npm run coverage # or equivalent
|
|
```
|
|
Thresholds:
|
|
- Line coverage: > 80%
|
|
- Branch coverage: > 70%
|
|
- Critical paths: 100% (auth, payments, data mutations)
|
|
|
|
### 3. Verify Edge Cases
|
|
For each input or parameter:
|
|
- null / None / undefined
|
|
- Empty string, empty array, empty object
|
|
- Maximum allowed length/value
|
|
- Minimum allowed length/value
|
|
- Special characters
|
|
- Boundary values (just above, just below limit)
|
|
|
|
### 4. Check for Regressions
|
|
```bash
|
|
git diff --name-only HEAD~1 # or relevant range
|
|
```
|
|
Verify changes don't break existing functionality. Run full test suite.
|
|
|
|
### 5. Lint and Type Check
|
|
```bash
|
|
npm run lint && npm run typecheck # TypeScript
|
|
ruff check . && mypy . # Python
|
|
golangci-lint run # Go
|
|
```
|
|
|
|
### 6. Review the Diff
|
|
```bash
|
|
git diff
|
|
```
|
|
Read every changed line. Verify:
|
|
- No accidental deletions
|
|
- No debug code left (print, console.log, debugger)
|
|
- No commented-out code
|
|
- No TODO without ticket reference
|
|
- Code matches what was asked
|
|
|
|
### 7. Build Check
|
|
```bash
|
|
npm run build # or equivalent
|
|
```
|
|
Must succeed with zero errors.
|
|
|
|
## Decision
|
|
|
|
If ALL steps pass — safe to mark complete.
|
|
If ANY step fails — list issues, fix, re-run loop.
|
|
|
|
## Report Template
|
|
|
|
```
|
|
## Verification: [Task/Feature]
|
|
Tests: X/X pass (previously Y/Z)
|
|
Coverage: X% line (threshold: 80%), Y% branch (threshold: 70%)
|
|
Lint: clean / X warnings / X errors
|
|
Build: success / failed with [details]
|
|
Edge cases: all covered / gaps: [list]
|
|
Regressions: none / [list with test names]
|
|
Diff review: clean / issues: [list]
|
|
|
|
Status: READY / NOT READY
|
|
```
|