Done
AI-native task management for Claude Code. Track tasks in MASTER_PLAN.md — pick, save, ship.
npx -y skills add endlessblink/master-plan --skill doneAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
Task completion workflow — run tests, commit, push, and update MASTER_PLAN.md. Use when a task is finished and ready to ship. Triggers on "/done", "mark done", "task complete", "finish task", "ship it".
SKILL.md
4.3 KB, as published. Nobody here has run it
Task Completion Workflow
Finalize a completed task: verify tests pass, commit changes, update MASTER_PLAN.md, and push.
Triggers
/master-plan:done- Main command- "mark done", "task complete", "finish task", "ship it"
Workflow
Step 1: Check What Changed
Run git status to see what files were modified:
git status
git diff --stat
Output immediately:
Files changed:
- [list of modified files]
Step 2: Get Task Information
Use AskUserQuestion to collect:
-
Task ID (header: "Task ID")
- Options: "Tracked task (enter ID)" or "Quick fix (no task ID)"
-
Run tests? (header: "Tests")
- Options: "Yes — run test suite (Recommended)" or "Skip tests"
Then ask in plain text: "What's a brief summary of the changes? (1-2 sentences)"
IMPORTANT: Wait for user to provide the summary before proceeding.
Step 3: Run Tests (unless skipped)
Detect and run the project's test command. Check in order:
- If
package.jsonexists →npm test - If
Cargo.tomlexists →cargo test - If
pyproject.tomlorsetup.pyexists →pytest - If
Makefilewithtesttarget →make test - If
go.modexists →go test ./...
If tests fail: STOP immediately. Report failures. Do NOT proceed. If tests pass: Continue. If no test command found: Warn user and continue.
Step 4: Update MASTER_PLAN.md (if tracked task)
Skip this step if user selected "Quick fix (no task ID)".
CRITICAL: Tasks may appear in multiple locations. Update ALL of them:
4a. Summary/Roadmap Table
Find the task row and update:
# Before:
| **TASK-XXX** | **Title** | **P2** | PLANNED | ... |
# After:
| ~~**TASK-XXX**~~ | ✅ **Title** | **P2** | ✅ DONE (YYYY-MM-DD) | ... |
4b. Subtask/Bullet Lists
# Before:
- TASK-XXX: Description
# After:
- ~~TASK-XXX~~: ✅ Description
4c. Detailed Section Header
# Before:
### TASK-XXX: Title (IN PROGRESS)
# After:
### ~~TASK-XXX~~: Title (✅ DONE)
4d. Verify All Updated
Search for the task ID and confirm all occurrences show strikethrough or ✅ DONE:
grep "TASK-XXX" docs/MASTER_PLAN.md
Step 5: Commit and Push
Stage all relevant files. NEVER commit:
.env*filescredentials*.jsonor files containing secretsnode_modules/,__pycache__/,target/,.venv/- Backup files, generated stats, lock files (unless intentional)
Prefer staging specific files by name over git add -A.
# Stage code files
git add <changed-files>
git add docs/MASTER_PLAN.md # if tracked task
# Commit
git commit -m "$(cat <<'EOF'
feat(TASK-XXX): Brief summary from user
- Key change 1
- Key change 2
Co-Authored-By: Claude <[email protected]>
EOF
)"
# Push
git push
For quick fixes (no task ID):
git commit -m "$(cat <<'EOF'
fix: Brief summary from user
Co-Authored-By: Claude <[email protected]>
EOF
)"
git push
Commit prefix conventions:
feat(TASK-XXX):— New featurefix(BUG-XXX):— Bug fixchore(TASK-XXX):— Maintenancerefactor(TASK-XXX):— Code refactoringdocs(TASK-XXX):— Documentation only
Step 6: Report Completion
Output this summary:
## Task Complete
- **Task**: TASK-XXX (or "Quick fix")
- **Summary**: [user's summary]
- **Tests**: ✅ Passed (or ⏭️ Skipped)
- **Commit**: [short hash] — [message]
- **Push**: ✅ Pushed to origin
- **MASTER_PLAN.md**: Updated / N/A
Important Rules
- NEVER skip commit/push — Changes must be pushed to the remote
- ALWAYS collect summary — Don't proceed without knowing what changed
- Update ALL locations in MASTER_PLAN.md for tracked tasks
- Verify with grep after updating MASTER_PLAN.md
- Wait for user input — Don't assume or skip questions
- Test failures block completion — If tests fail, stop and report
Files to NEVER Commit
.env*files (secrets)credentials*.json- Private keys, tokens
- Generated/cached files (
node_modules/,dist/,__pycache__/) - OS files (
.DS_Store,Thumbs.db)