Skip to content
Back to skills

Next

ASecurity

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.

  • 27 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added May 26, 2026
toolsgobashgit

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add endlessblink/master-plan --skill next --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Next?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Next
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/endlessblink-next/badge)](https://www.skillsdirectory.com/skills/endlessblink-next)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: next
description: 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.
---

# 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:
1. `docs/MASTER_PLAN.md`
2. `MASTER_PLAN.md`
3. `master-plan.md`
4. `docs/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`
- **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:
```bash
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):
1. PLANNED first, then REVIEW, IN PROGRESS, PAUSED, DONE last
2. 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:
1. Update the task's status to `IN PROGRESS` in MASTER_PLAN.md (all locations β€” see update rules below)
2. 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:

1. **Summary/Roadmap table** β€” Update the status column
2. **Detailed `###` section header** β€” Update `(STATUS)` in parentheses
3. **Subtask bullet points** β€” Add strikethrough + βœ… if marking DONE

Always verify with a grep after updating.

## Rules

1. **Finish before starting** β€” Always highlight IN PROGRESS tasks first
2. **P0 trumps all** β€” Critical issues come first regardless of status
3. **Interactive selection** β€” Always use AskUserQuestion, never just print a list
4. **Context on selection** β€” Always show full task details when picked
5. **Action oriented** β€” Offer to start work immediately

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.