Next
AI-native task management for Claude Code. Track tasks in MASTER_PLAN.md — pick, save, ship.
npx -y skills add endlessblink/master-plan --skill nextAssembled 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
Analyze and pick the next task to work on. Reads MASTER_PLAN.md, scores tasks by priority and status, and presents interactive selection. Use when starting a session or deciding what to tackle next.
SKILL.md
4.7 KB, as published. Nobody here has run it
What's Next?
Analyze MASTER_PLAN.md tasks, score by priority/status, and let the user pick interactively.
Triggers
/master-plan:next- Main command- "what should I work on", "pick a task", "next task", "what's next"
Arguments
| Argument | Filter |
|---|---|
bugs | Only BUG-XXX tasks |
progress | Only IN PROGRESS tasks |
planned | Only PLANNED (backlog) tasks |
review | Only REVIEW tasks |
active | IN PROGRESS + REVIEW |
all | Include DONE tasks |
Example: /master-plan:next bugs or /master-plan:next planned
Workflow
Step 1: Find MASTER_PLAN.md
Search for the plan file in order:
docs/MASTER_PLAN.mdMASTER_PLAN.mdmaster-plan.mddocs/master-plan.md
If not found, tell the user: "No MASTER_PLAN.md found. Run /master-plan:task to create your first task, or create one from the template."
Step 2: Parse Tasks
Read the file and extract tasks from ### headers matching this pattern:
### [optional ~~]TASK-123[optional ~~]: Title (STATUS)
Regex: ^###\s+(~~)?((TASK|BUG|FEATURE|ROAD|IDEA|ISSUE|INQUIRY)-\d+)(~~)?:\s*(.+?)\s*\(([^)]+)\)
For each match, extract:
- ID: e.g.,
TASK-123,BUG-456 - Title: The text after
:and before( - Status: Text in parentheses. Normalize:
- Contains "DONE", "COMPLETE", "FIXED", "✅", or has strikethrough →
DONE - Contains "IN PROGRESS", "🔄" →
IN PROGRESS - Contains "REVIEW", "👀" →
REVIEW - Contains "PAUSED", "⏸️" →
PAUSED - Otherwise →
PLANNED
- Contains "DONE", "COMPLETE", "FIXED", "✅", or has strikethrough →
- Priority: Look in the lines following the header for
**Priority**: P0-P3. Default to P2 if not found.
Step 3: Check for Active Work
Look for IN PROGRESS tasks first — these should be finished before starting new work.
Also check git status:
git status --short
If uncommitted changes exist, mention: "You have uncommitted changes — consider committing or running /master-plan:save first."
Step 4: Sort and Filter
Default sort order (what to START next):
- PLANNED first, then REVIEW, IN PROGRESS, PAUSED, DONE last
- Within same status: P0 → P1 → P2 → P3
If $ARGUMENTS contains a filter (bugs, progress, planned, review, active), apply it before sorting.
Exclude DONE tasks unless $ARGUMENTS contains all.
Step 5: Present Interactive Selection
Use AskUserQuestion to let user pick from the top tasks:
AskUserQuestion({
questions: [{
question: "Which task would you like to work on?",
header: "Task",
multiSelect: false,
options: [
// Top 4 tasks, formatted as:
{ label: "TASK-XXX: Title here", description: "P0 · IN PROGRESS" },
{ label: "BUG-YYY: Another task", description: "P1 · PLANNED" },
// ...
]
}]
})
Option formatting:
- Label:
{ID}: {title (max 40 chars)} - Description:
{priority} · {status}
If there are IN PROGRESS tasks, always show them first with a note: "You have N task(s) in progress."
Step 6: Show Task Details
When user selects a task, show the full section from MASTER_PLAN.md:
- ID, title, status, priority
- Description (everything between this
###header and the next###or##)
Step 7: Offer Actions
After showing task details, ask:
AskUserQuestion({
questions: [{
question: "What would you like to do?",
header: "Action",
multiSelect: false,
options: [
{ label: "Start working on this", description: "Update status to IN PROGRESS" },
{ label: "Pick a different task", description: "Go back to task list" },
{ label: "Just show context", description: "No status change" }
]
}]
})
If "Start working on this" is selected:
- Update the task's status to
IN PROGRESSin MASTER_PLAN.md (all locations — see update rules below) - Confirm: "Started TASK-XXX. Ready to begin implementation."
MASTER_PLAN.md Update Rules
Tasks may appear in multiple locations. When updating status, check ALL of:
- Summary/Roadmap table — Update the status column
- Detailed
###section header — Update(STATUS)in parentheses - Subtask bullet points — Add strikethrough + ✅ if marking DONE
Always verify with a grep after updating.
Rules
- Finish before starting — Always highlight IN PROGRESS tasks first
- P0 trumps all — Critical issues come first regardless of status
- Interactive selection — Always use AskUserQuestion, never just print a list
- Context on selection — Always show full task details when picked
- Action oriented — Offer to start work immediately