Nazgul Task Lifecycle Management

VerifiedCaution

Manage tasks in the Nazgul pipeline: list, skip, unblock, add, prioritize, info, and details.

Sby Skills Guide Bot
ProductivityIntermediate
7/22/2026
Claude Code
#task-management#workflow#pipeline#markdown-files#cli

Recommended for

Automated summary

Manages individual task lifecycles in the Nazgul pipeline: list, inspect, skip, unblock, add, and reorder tasks through slash commands.

Strengths

  • Covers the full task lifecycle (list, info, skip, unblock, add, prioritize) with an explicit status model (PLANNED, READY, BLOCKED, IN_PROGRESS, DONE, SKIPPED)
  • The skip command cascades through dependencies, promoting downstream tasks from PLANNED to READY when the skipped task was their only remaining blocker
  • unblock resets state cleanly: status back to READY, blocked_reason cleared, retry counter reset to 0/3
  • The default list subcommand renders a status table with per-category counts at the bottom

Limitations

  • Assumes a specific project layout (nazgul/tasks/TASK-*.md, nazgul/plan.md) and manifest format; nothing here bootstraps that structure
  • Edits go through sed on text fields, so customized or reformatted manifests can break the updates
  • Tasks created with add leave acceptance criteria as 'TBD — define acceptance criteria'
When to use it

Reach for it when you are driving an existing Nazgul task queue and need to change one task's status, ordering, or dependencies.

When not to use it

Skip it if your project doesn't use the nazgul/tasks directory with TASK-NNN.md manifests, or if you want a generic task manager independent of this pipeline.

Security analysis

Caution
Quality score80/100

The skill performs local project bookkeeping: listing, editing, and reordering markdown task manifests. All commands are benign (`ls`, `head`, `sed`) and target the `nazgul/` directory with no network calls, no secret exfiltration, no destructive operations, and no obfuscated payloads. The only notable vectors are the auto-executed read-only shell blocks and in-place sed edits, which are legitimate but warrant a caution rating given the file-writing and shell execution surface.

Findings
  • •Uses Bash to mutate task manifests via sed on the `Status:` field; a loose pattern match could alter unintended lines, though scoped to nazgul/tasks/*.md
  • •Two `!`-prefixed shell blocks run automatically at invocation (`ls`, `head -50 nazgul/plan.md`); read-only and low risk but executed without user confirmation
  • •Writes/edits files and reads full task/review/delegation contents; operates only within the local `nazgul/` directory tree
How this analysis is made

Examples

List all tasks
/nazgul:task — show me all Nazgul tasks with a status summary
Inspect one task
Show the full details and review history for TASK-003
Skip and promote
Skip TASK-005 in the Nazgul pipeline and promote any downstream tasks that are now unblocked

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
  1. Read each nazgul/tasks/TASK-*.md file
  2. Extract: task ID, status, and the first line of the description
  3. Sort by task ID (numeric order)
  4. Format as the table above
  5. Include a summary line at the bottom with counts by status category

skip TASK-NNN

Set the specified task's status to SKIPPED.

  1. Validate the task file exists: nazgul/tasks/TASK-NNN.md
  2. If not found, error: "Task TASK-NNN not found."
  3. Use sed to update the Status: field to SKIPPED in the task manifest
  4. Scan all other task manifests for dependencies that reference TASK-NNN
  5. For any task whose ONLY remaining non-DONE/non-SKIPPED dependency was TASK-NNN, promote its status from PLANNED to READY
  6. 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.

  1. Validate the task file exists: nazgul/tasks/TASK-NNN.md
  2. If not found, error: "Task TASK-NNN not found."
  3. If the task is not BLOCKED, warn: "TASK-NNN is not blocked (current status: [status])."
  4. Update Status: to READY
  5. Clear the blocked_reason: field (set to empty or remove the line)
  6. Reset retry: count to 0/3
  7. 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.

  1. Scan existing task files to determine the next available TASK-NNN number
  2. 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._
  1. If there are no dependencies (check if any were specified in the description), set status to READY instead of PLANNED
  2. Append the task to nazgul/plan.md in the task list section
  3. 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.

  1. Validate both task files exist
  2. Read nazgul/plan.md
  3. Find the lines referencing both tasks in the plan's task list
  4. Remove TASK-NNN's line from its current position
  5. Insert it immediately before TASK-MMM's line
  6. Write the updated plan.md
  7. 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.

  1. Validate the task file exists: nazgul/tasks/TASK-NNN.md
  2. If not found, error: "Task TASK-NNN not found."
  3. Read and display the full contents of nazgul/tasks/TASK-NNN.md
  4. Check for review history: look for files matching nazgul/reviews/TASK-NNN-*.md
  5. If review files exist, display them in chronological order:
Task Details
═══════════════════════════════════════
[full task manifest contents]

Review History
─────────────────────────────────────
[review 1 contents]
[review 2 contents]
...
  1. Check for delegation briefs: nazgul/tasks/TASK-NNN-delegation.md
  2. 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"

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/nazgul-task-lifecycle-management-mrwakc5g/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

mkdir -p '.skill-downloads/nazgul-task-lifecycle-management-mrwakc5g' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/nazgul-task-lifecycle-management-mrwakc5g/download' --output '.skill-downloads/nazgul-task-lifecycle-management-mrwakc5g/SKILL.md.part' && mv '.skill-downloads/nazgul-task-lifecycle-management-mrwakc5g/SKILL.md.part' '.skill-downloads/nazgul-task-lifecycle-management-mrwakc5g/SKILL.md'

2. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

Tools declared by the author (check availability in your agent): Read, Write, Edit, Bash, Glob, Grep

No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

This file does not provide a usable name/description header for this native procedure. It remains available to download and inspect; use the manual method below.

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/nazgul-task-lifecycle-management-mrwakc5g/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills