
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
スコア
総合スコア
リポジトリの品質指標に基づく評価
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
レビュー
レビュー機能は近日公開予定です