skills/task-refinement/SKILL.md
Use when a task plan has just been created and needs review before execution, when brainstorming just handed off, when unsure whether a junior could execute without questions, or when you see placeholder text, vague success criteria, or missing edge cases. User phrases like "review these tasks", "are these ready?", "before we start", "catch any gaps". Do NOT use when implementation is already in progress or for creating plans from scratch.
npx skillsauth add joshsymonds/gambit task-refinementInstall 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.
Review Tasks systematically. Find gaps, fix them, verify fixes. A task is ready when a junior engineer can execute it without asking questions.
Core principle: Don't just identify problems — fix them. Update each Task, then read it back to verify.
Iron Law: NO task passes review with vague criteria, missing file paths, or placeholder text. Every task must be executable by a junior engineer without questions. No exceptions.
Announce at start: "I'm using gambit:task-refinement to review and strengthen these tasks."
LOW FREEDOM — Apply all 8 categories to every task. No skipping. Update tasks with fixes, then verify no placeholders remain. Reject plans with critical gaps.
| Category | Key Check | Auto-Reject If | |----------|-----------|----------------| | 1. Granularity | Scoped to one sitting (~15-45m)? | Any task without breakdown estimate | | 2. Implementability | Junior executes without questions? | Vague language, missing file paths | | 3. Success Criteria | Measurable, verifiable? | "Works correctly", "is implemented" | | 4. Dependencies | Correct blocking order? | Circular or missing dependencies | | 5. Anti-patterns | Forbidden patterns specified? | No anti-patterns section | | 6. Edge Cases | Empty/unicode/concurrent/failure? | No edge case consideration | | 7. Red Flags | Placeholder text? TODOs? | "[detailed above]", "[as specified]" | | 8. Test Quality | Tests catch real bugs? | Tautological or happy-path-only tests |
gambit:executing-plans starts implementationgambit:brainstorming creates tasksDon't use for:
gambit:brainstorminggambit:debuggingTaskList
Identify the epic and all subtasks. Read each with TaskGet.
For each task, apply every category. No skipping — "straightforward" tasks hide the worst edge cases.
If too large: Create subtasks with TaskCreate, link with addBlockedBy.
Red flags: "Implement properly", "Add support", "Make it work", missing file paths.
Rewrite vague criteria into measurable ones:
npm test, 0 failures, exit 0"blockedBy relationships correct?Verify with TaskList output.
Ask for each task:
Add findings to task's Key Considerations section. See REFERENCE.md for edge case examples.
If any found, REJECT the plan:
Tests must catch real bugs, not inflate coverage.
For each test specification, ask:
Reject: Tests that only verify syntax/existence, tautological tests, tests without meaningful assertions, generic test names ("test_basic").
See REFERENCE.md for good/bad test examples.
After reviewing, update each task with fixes:
TaskUpdate
taskId: "[task-id]"
description: |
[Original content, preserved and strengthened]
## Key Considerations (ADDED BY REVIEW)
**Edge Case: [Name]**
- [What could go wrong]
- MUST [specific mitigation]
## Anti-patterns
[Original anti-patterns]
- NEW: [Specific anti-pattern for this task's risks]
Rules for updates:
After every TaskUpdate, read back with TaskGet and verify:
TaskGet
taskId: "[task-id]"
Check:
If ANY placeholder found: Rewrite with actual content immediately.
## Plan Review Results
### Overall: [APPROVE / NEEDS REVISION / REJECT]
### Task-by-Task
#### [Task Name] ([task-id])
**Status**: [Ready / Needs Revision / Rejected]
**Issues Found**: [count]
**Improvements Made**:
- [What was fixed]
**Edge Cases Added**:
- [What failure modes now addressed]
[Repeat for each task]
### Summary
- Tasks updated: [list]
- Critical issues found: [count]
- Recommendation: [approve/revise/reject with reasoning]
All mean: STOP. Apply the full checklist.
| Excuse | Reality | |--------|---------| | "Task looks straightforward" | Edge cases hide in "straightforward" tasks | | "Has 3 criteria, meets minimum" | Criteria must be MEASURABLE, not just 3+ items | | "Placeholder is just formatting" | Placeholder = incomplete specification | | "Can handle edge cases during implementation" | Must specify upfront to prevent rework | | "Junior will figure it out" | Junior should NOT need to figure anything out | | "Tests are specified, don't need review" | Test quality matters more than quantity |
Per task reviewed:
Overall plan:
Can't check all boxes? Return to the review process.
See REFERENCE.md for detailed examples including:
After refinement is complete, route to execution.
If invoked from a brainstorming handoff: They already asked about worktrees. Invoke executing-plans directly:
Skill skill="gambit:executing-plans"
If invoked standalone by user: Ask what's next:
AskUserQuestion
questions:
- question: "Tasks refined and ready. How should we proceed?"
header: "Next step"
options:
- label: "Start executing (Recommended)"
description: "Begin implementing with gambit:executing-plans"
- label: "Set up worktree first"
description: "Create isolated workspace with gambit:using-worktrees"
multiSelect: false
Then invoke the chosen skill directly using the Skill tool.
Called by:
gambit:brainstorming (optional, user chooses at handoff)/gambit:task-refinementCalls:
gambit:executing-plans (invoked directly after refinement)gambit:using-worktrees (optional, if user wants isolation)Workflow:
gambit:brainstorming → gambit:task-refinement → gambit:executing-plans
↓
(if gaps: revise tasks, re-review)
testing
Use when creating a new skill, modifying an existing skill, writing or rewriting a SKILL.md file, auditing a skill's description for discoverability, or when user mentions "create a skill", "write a skill", "new skill", "modify skill", "improve skill", "edit the skill".
development
Use before any completion claim, success statement, or marking a task done. Triggers when about to say "Great!", "Perfect!", "Done", "All set", "Ready to commit", before creating a PR, before moving to the next task, or when code has changed since the last test run.
data-ai
Use when starting an isolated feature branch, when working on multiple features simultaneously, when experimenting without affecting the main workspace, or when a clean workspace is needed before beginning implementation. User phrases like "start a new branch", "set up a worktree", "isolated workspace", "work on feature X separately".
development
Use at the start of every session before any response or action. Also invoke whenever uncertain which gambit skill applies, when about to implement / debug / refactor / test / plan / brainstorm, or when a user request could match any gambit skill even at 1% probability.