.claude/skills/review-sprint/SKILL.md
Post-implementation mechanical audit of sprint deliverables.
npx skillsauth add leogodin217/leos_claude_starter review-sprintInstall 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.
Post-implementation review with fresh eyes. Run after implement-sprint completes.
Catch issues that slip through when implementer is too close to the code:
Load ONLY:
CLAUDE.md - Principles (especially #7 and #8)docs/sprints/current/spec.md - What was plannedDO NOT load:
Fresh eyes means deliberately ignorant of the "why" — only checking the "what."
# Find scaffolding patterns
grep -rn "# Future:" src/
grep -rn "# TODO:" src/
grep -rn "pass$" src/
# Find unused variables (requires manual review)
# Look for: assigned but never read, precomputed but not used
Flag: Any loop body that only contains pass, continue, or comments.
Flag: Any __init__ that stores data not used by other methods.
For each test file changed this sprint:
Common lies:
test_X_order that doesn't verify orderingtest_X_deterministic that only runs oncetest_X_error that doesn't verify the error type/message# Get coverage for new files only
pytest --cov=src/fabulexa --cov-report=term-missing
# Check files added this sprint
git diff --name-only --diff-filter=A main...HEAD
Flag: Any new file with < 100% coverage.
Flag: Uncovered lines that are error conditions (even if "shouldn't happen").
Read implementation decisions attached to phase commits:
# Find sprint commits and read their notes
for sha in $(git log --oneline --grep="Sprint" | head -10 | awk '{print $1}'); do
echo "=== $sha ==="
git notes --ref refs/notes/agent/sprint show "$sha" 2>/dev/null || echo "(no notes)"
done
If notes exist, use the decisions field to understand why the implementer made specific choices. This enables checking intent-vs-implementation, not just spec-vs-implementation.
For each contract in spec.md:
Document: If implementation is better than spec, note it for spec update.
Flag: If implementation is worse than spec, it's a bug.
Flag: If a noted decision contradicts the spec without justification, it's a deviation.
git status --porcelain
Flag: Any untracked files that aren't in .gitignore.
pre-commit run --all-files
Flag: Any pre-commit failure (formatting, linting, type errors).
Run all demo scripts twice to verify determinism and consistency:
# First run
for demo in docs/sprints/current/demos/phase_*.py; do
python "$demo"
done
# Second run
for demo in docs/sprints/current/demos/phase_*.py; do
python "$demo"
done
Flag: Any demo that fails or produces different output between runs.
Create review report in docs/sprints/current/review.md:
# Sprint Review: [Name]
**Date:** YYYY-MM-DD
**Reviewer:** Claude (fresh eyes)
## Summary
| Check | Status | Issues |
|-------|--------|--------|
| Dead code | PASS/FAIL | N issues |
| Test names | PASS/FAIL | N issues |
| Coverage | PASS/FAIL | N files < 100% |
| Spec sync | PASS/FAIL | N divergences |
| Workspace | PASS/FAIL | N artifacts |
| Pre-commit | PASS/FAIL | N failures |
| Demos | PASS/FAIL | N failures |
## Issues Found
### 1. [Issue Title]
**Category:** Dead code / Test name / Coverage / Spec sync / Workspace / Demos
**Location:** file:line
**Problem:** [What's wrong]
**Action:** [What to do]
---
## Recommendation
[ ] APPROVED - No blocking issues
[ ] REVISIONS NEEDED - Fix issues and re-review
Run review-sprint:
/verify-sprintThis command checks mechanical properties. Follow it with /verify-sprint for behavioral correctness.
implement-sprint (per phase)
└── reviewer agent (quick check)
review-sprint (after all phases)
└── mechanical audit: coverage, linting, dead code, test names
verify-sprint (after review-sprint passes)
└── spec-fidelity audit: does code match spec's algorithms step-by-step?
/review-sprint catches sloppy code. /verify-sprint catches correct-looking code that does the wrong thing. Both must pass before merge.
When invoked, use the reviewer agent with these specific instructions:
find_definition / find_references / get_incoming_calls to trace code, not Grep for definitions or call sitesThe reviewer should NOT:
def foo or class Bar — use find_definition insteadfind_references or get_incoming_callsdevelopment
Spec-fidelity verification tracing requirements through code.
development
Analyze Claude Code session transcripts — search, summarize, list, or inspect how a session went.
testing
Course designer mode for creating exercises, configs, and QA criteria.
testing
System architect mode for designing interfaces, contracts, and architecture decisions.