| name | nazgul:task |
| description | Task lifecycle management — skip, unblock, add, prioritize, info, and list tasks. Use when you need to manage individual tasks in the Nazgul pipeline. |
| context | fork |
| allowed-tools | Read, Write, Edit, Bash, Glob, Grep |
| metadata | {"author":"Jose Mejia","version":"2.7.1"} |
Nazgul Task
Examples
/nazgul:task — List all tasks with status summary
/nazgul:task info TASK-003 — Show full details and review history for a task
/nazgul:task skip TASK-005 — Skip a task and promote unblocked downstream tasks
/nazgul:task unblock TASK-004 — Reset a blocked task back to READY
/nazgul:task add "Implement rate limiting" — Create a new task
/nazgul:task prioritize TASK-006 --before TASK-003 — Reorder task execution
Arguments
$ARGUMENTS
Current State
- Task list: !
ls nazgul/tasks/TASK-*.md 2>/dev/null || echo "No tasks"
- Plan: !
head -50 nazgul/plan.md 2>/dev/null || echo "No plan"
Instructions
Parse $ARGUMENTS for a subcommand and its parameters. If no subcommand is provided, default to list.
Subcommands
list (default)
Produce a quick status table of all tasks:
Nazgul Tasks
═══════════════════════════════════════════════════════════
ID Status Description
─────────────────────────────────────────────────────────
TASK-001 DONE Set up project scaffolding
TASK-002 IN_PROGRESS Implement auth module
TASK-003 READY Add payment processing
TASK-004 BLOCKED Deploy to staging
TASK-005 PLANNED Write integration tests
─────────────────────────────────────────────────────────
Total: 5 | Done: 1 | Active: 2 | Blocked: 1 | Planned: 1
- Read each
nazgul/tasks/TASK-*.md file
- Extract: task ID, status, and the first line of the description
- Sort by task ID (numeric order)
- Format as the table above
- Include a summary line at the bottom with counts by status category
skip TASK-NNN
Set the specified task's status to SKIPPED.
- Validate the task file exists:
nazgul/tasks/TASK-NNN.md
- If not found, error: "Task TASK-NNN not found."
- Use sed to update the
Status: field to SKIPPED in the task manifest
- Scan all other task manifests for dependencies that reference TASK-NNN
- For any task whose ONLY remaining non-DONE/non-SKIPPED dependency was TASK-NNN, promote its status from
PLANNED to READY
- Output: "TASK-NNN set to SKIPPED. [N] downstream task(s) promoted to READY."
unblock TASK-NNN
Reset a BLOCKED task back to READY so it can be picked up by the loop.
- Validate the task file exists:
nazgul/tasks/TASK-NNN.md
- If not found, error: "Task TASK-NNN not found."
- If the task is not BLOCKED, warn: "TASK-NNN is not blocked (current status: [status])."
- Update
Status: to READY
- Clear the
blocked_reason: field (set to empty or remove the line)
- Reset
retry: count to 0/3
- Output: "TASK-NNN unblocked and set to READY. It will be picked up in the next iteration."
add "description"
Create a new task manifest and append it to the plan.
- Scan existing task files to determine the next available TASK-NNN number
- Create
nazgul/tasks/TASK-NNN.md with the following template:
# TASK-NNN: [description]
- **Status:** PLANNED
- **Priority:** medium
- **Dependencies:** none
- **Retry:** 0/3
- **Created:** [ISO 8601 timestamp]
- **Source:** manual (via /nazgul:task add)
## Description
[description]
## Acceptance Criteria
- [ ] TBD — define acceptance criteria
## Implementation Notes
_To be filled by implementer._
- If there are no dependencies (check if any were specified in the description), set status to
READY instead of PLANNED
- Append the task to
nazgul/plan.md in the task list section
- Output: "Created TASK-NNN: [description]. Status: [PLANNED|READY]."
prioritize TASK-NNN --before TASK-MMM
Reorder tasks in the plan so TASK-NNN appears before TASK-MMM.
- Validate both task files exist
- Read
nazgul/plan.md
- Find the lines referencing both tasks in the plan's task list
- Remove TASK-NNN's line from its current position
- Insert it immediately before TASK-MMM's line
- Write the updated plan.md
- Output: "TASK-NNN moved before TASK-MMM in the plan."
Note: This changes execution order but does NOT override dependency constraints. If TASK-NNN depends on TASK-MMM, warn the user about the circular dependency.
info TASK-NNN
Show full details for a specific task.
- Validate the task file exists:
nazgul/tasks/TASK-NNN.md
- If not found, error: "Task TASK-NNN not found."
- Read and display the full contents of
nazgul/tasks/TASK-NNN.md
- Check for review history: look for files matching
nazgul/reviews/TASK-NNN-*.md
- If review files exist, display them in chronological order:
Task Details
═══════════════════════════════════════
[full task manifest contents]
Review History
─────────────────────────────────────
[review 1 contents]
[review 2 contents]
...
- Check for delegation briefs:
nazgul/tasks/TASK-NNN-delegation.md
- If a delegation brief exists, include it in the output
Error Handling
- If Nazgul is not initialized (no
nazgul/config.json): "Nazgul not initialized. Run /nazgul:init first."
- If no tasks exist: "No tasks found. Run
/nazgul:start to generate a plan."
- If an unknown subcommand is provided: "Unknown subcommand: [X]. Available: list, skip, unblock, add, prioritize, info"