
task-completer
by jdelfino
Live coding tool to support in-class coding exercises
SKILL.md
name: task-completer description: Complete individual tasks with test-first development, quality gates, and proper commits. Use when working on bugs, features, or tasks that result in a single commit.
Task Completer
Complete tasks with rigorous test-first development and quality gates.
1. Claim the Task
bd update <task-id> --status in_progress --json
2. Test-First Development
The One Rule: CHANGED CODE = NEW TESTS
No commits without new tests for changed code.
Pre-Commit Questions
- Did I change production code? -> Must add tests
- Do existing tests pass? -> NOT ENOUGH. Did you add NEW tests?
- Did I add NEW tests for EVERY file I changed? -> If NO, STOP
- Do ALL tests pass (including new ones)? -> Run
npm test - Any TypeScript errors? -> Run
npx tsc --noEmit
Workflow
- Write test FIRST (it should fail)
- Implement the fix/feature
- Run tests (they should pass)
- Commit BOTH production + test files together
Common Violations
- "Tests already pass" - Did you ADD tests for YOUR changes?
- "It's a small change" - Still needs tests
- "Bug fix only" - Needs regression test
- "I updated existing tests" - Did you ADD new tests too?
- "Frontend change" - Needs component tests
- "Changed 3 files, added tests for 1" - Need tests for ALL 3
3. Fail Fast, Fail Loud
Never silently work around problems. Fix them or let them fail visibly.
Principles
- Missing env vars: Throw an error, don't silently skip functionality
- Invalid state: Crash early with a clear message, don't limp along
- Missing dependencies: Fail at startup, not at runtime
- Tests need mocking: Mock properly in tests, don't add fallbacks to production code
Anti-Patterns to Avoid
// BAD: Silent failure hides production bugs
if (!process.env.API_KEY) {
return; // Silently does nothing
}
// GOOD: Fail loudly so the problem is fixed
if (!process.env.API_KEY) {
throw new Error('API_KEY environment variable is required');
}
The app should work correctly or not at all. Silent misbehavior is worse than a crash.
4. Quality Gates
Run these before committing:
# Run all tests
npm test
# Type check
npx tsc --noEmit
Both must pass with zero errors.
5. Commit Checklist
Before EVERY commit, verify ALL of these:
- TESTS WRITTEN - Unit tests exist for ALL new/modified code
- TESTS COVER ALL CHANGES - If you modified N files, you have tests for N files
- All tests passing (
npm test) - No TypeScript errors (
npx tsc --noEmit) - No
as anyoras unknownin production code - No optional chaining on required properties
If you cannot check ALL boxes, DO NOT COMMIT.
6. Make the Commit
git add -A
git commit -m "$(cat <<'EOF'
<type>: <description>
<optional body>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
EOF
)"
Types: feat, fix, refactor, test, docs, chore
7. Close the Task
bd close <task-id> --reason "Completed"
8. Landing the Plane (Session Completion)
When ending a work session, complete ALL steps:
Mandatory Workflow
-
File issues for remaining work
bd create "Remaining work description" -t task -p 2 --json -
Run quality gates (if code changed)
npm test && npx tsc --noEmit -
Update issue status
bd close <completed-task-id> --reason "Done" -
PUSH TO REMOTE (MANDATORY)
git pull --rebase bd sync git push git status # MUST show "up to date with origin" -
Clean up
- Clear stashes:
git stash listthengit stash dropif needed - Prune remote branches:
git remote prune origin
- Clear stashes:
-
Verify
- All changes committed AND pushed
git statusshows clean working tree
-
Hand off
- Summarize what was done
- Note any follow-up tasks created
Critical Rules
- Work is NOT complete until
git pushsucceeds - NEVER stop before pushing - that leaves work stranded locally
- NEVER say "ready to push when you are" - YOU must push
- If push fails, resolve and retry until it succeeds
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon