with one click
task
// Manage tasks across nested projects. Use with /task list, /task complete [id], /task update [id], /task show [id], /task validate.
// Manage tasks across nested projects. Use with /task list, /task complete [id], /task update [id], /task show [id], /task validate.
| name | task |
| description | Manage tasks across nested projects. Use with /task list, /task complete [id], /task update [id], /task show [id], /task validate. |
This skill provides task tracking across nested projects with strict formatting for reliable automation.
Arguments received: $ARGUMENTS
Based on the argument, run the appropriate action:
| Command | Action |
|---|---|
/task or /task list | Run scripts/list-tasks.sh and copy output into response |
/task list-all | Run scripts/list-tasks.sh --include-completed and copy output into response |
/task complete <id> | Run scripts/complete-task.sh <id> |
/task update <id> [--status <v>] [--priority <v>] [--title <v>] | Run scripts/update-task.sh <id> [flags] |
/task show <id> | Read the task from the appropriate TODO.md or COMPLETED.md |
/task validate | Run scripts/validate-todos.py |
/task new | Follow the "Creating a New Task" workflow below |
All script paths are relative to .claude/skills/task-management/.
ā NEVER during list commands:
Each project has two files:
| File | Purpose | Edit By |
|---|---|---|
TODO.md | Active tasks only | Scripts + manual |
COMPLETED.md | Completed tasks only | complete-task.sh script only |
Every task is wrapped in explicit markers:
<!-- TASK:123 -->
### 123. Task Title
| Field | Value |
|-------|-------|
| **id** | 123 |
| **status** | in_progress |
| **priority** | high |
**Description**
Task description here.
<!-- END TASK:123 -->
Rules:
<!-- TASK:{id} --><!-- END TASK:{id} -->All tasks MUST have this exact table format:
| Field | Value |
|-------|-------|
| **id** | 123 |
| **status** | pending | in_progress | blocked | complete |
| **priority** | critical | high | medium | low |
| **created** | 2026-02-08 |
Allowed Values (STRICT):
| Field | Allowed Values |
|---|---|
| status | pending, in_progress, blocked, complete |
| priority | critical, high, medium, low |
NO synonyms, NO emojis in data values.
**Description**
Task description goes here. Can be multiple lines.
**Notes**
Additional notes.
**Files**
- `path/to/file.rs`
- `path/to/other.rs`
**Depends On**
- Task 45
- Task 67
**Acceptance Criteria**
- [ ] Criterion one
- [ ] Criterion two
The Quick Reference table is generated by scripts, never edited manually.
## Quick Reference
| ID | Title | Status | Priority |
|----|-------|--------|----------|
| 122 | Contact Import | š” In Progress | š High |
| 123 | Profile Export | š Pending | š” Medium |
*Auto-generated. Last updated: 2026-02-08T15:30:00Z*
Status Emojis (rendering only):
pending ā šin_progress ā š”blocked ā š«complete ā ā
Priority Emojis (rendering only):
critical ā š“high ā š medium ā š”low ā š¢<!--
TODO.md - Active Tasks for [Project]
ā ļø IMPORTANT: This file uses strict formatting. See:
.claude/skills/task-management/SKILL.md
Generated sections are marked - DO NOT EDIT MANUALLY.
-->
# [Project] Tasks
*Active tasks only. See [COMPLETED.md](./COMPLETED.md) for history.*
**Quick Links**: [Active Tasks](#quick-reference) | [Completed Tasks](./COMPLETED.md)
---
## Quick Reference
<!-- QR-START (AUTO-GENERATED - DO NOT EDIT) -->
| ID | Title | Status | Priority |
|----|-------|--------|----------|
<!-- QR-END -->
---
## Tasks
<!-- TASKS-START -->
<!-- Put new tasks here -->
<!-- TASKS-END -->
<!--
COMPLETED.md - Completed Tasks for [Project]
ā ļø IMPORTANT: This file is APPEND-ONLY at the top.
Newest completed tasks go in "## Current Month" section.
See SKILL.md for completion workflow.
-->
# Completed Tasks - [Project]
**Stats**: 47 total | [Current Year]: 12
---
## Current Month (2026-02)
<!-- New completed tasks go HERE (at the top) -->
---
## Previous Months
### 2026-01
<!-- Completed tasks from January -->
## 2025
### 2025-12
<!-- Completed tasks from December 2025 -->
| Command | Action |
|---|---|
/task or /task list | Run scripts/list-tasks.sh |
/task list-all | Run scripts/list-tasks.sh --include-completed |
/task show 51 | Read task from appropriate TODO.md |
/task complete 51 | Run scripts/complete-task.sh 51 |
/task update 51 --status in_progress | Run scripts/update-task.sh 51 --status in_progress |
/task validate | Run scripts/validate-todos.py |
/task new | Create a new task using the workflow below |
Find the next available task ID (shown at the bottom of list output):
.claude/skills/task-management/scripts/list-tasks.sh
Determine the correct file:
cli/TODO.md, contracts/TODO.md, etc.TODO.mdAdd task with proper format:
<!-- TASK:126 -->
### 126. Task Title
| Field | Value |
|-------|-------|
| **id** | 126 |
| **status** | pending |
| **priority** | high |
| **created** | 2026-02-08 |
**Description**
Task description here.
<!-- END TASK:126 -->
Regenerate Quick Reference:
.claude/skills/task-management/scripts/regenerate-qr.sh cli/TODO.md
Validate:
.claude/skills/task-management/scripts/validate-todos.py
ALWAYS use the completion script - never manually move tasks:
.claude/skills/task-management/scripts/complete-task.sh 122
This script will:
completecompleted date fieldWhy use the script?
ALWAYS use the update script - never manually edit task metadata:
.claude/skills/task-management/scripts/update-task.sh 3 --status in_progress
.claude/skills/task-management/scripts/update-task.sh 7 --priority critical --title "Urgent fix"
This script will:
Note: To mark a task as complete, use complete-task.sh instead.
| File | What Goes Here |
|---|---|
| Root TODO.md | Cross-project tasks only (spans 2+ subprojects) |
| cli/TODO.md | CLI-only tasks |
| contracts/TODO.md | Contract-only tasks |
| discovery/TODO.md | Discovery service tasks |
If a task is in the wrong file:
regenerate-qr.sh on both filesvalidate-todos.py to verifyThe validation script checks:
<!-- TASK:{id} --> has matching <!-- END TASK:{id} -->id, status, priority, descriptionstatus and priority use allowed values onlystatus: complete are in COMPLETED.mdRun validation:
.claude/skills/task-management/scripts/validate-todos.py
With verbose output:
.claude/skills/task-management/scripts/validate-todos.py --verbose
| Script | Purpose |
|---|---|
list-tasks.sh | List all active tasks |
list-tasks.sh --include-completed | List all tasks including completed |
complete-task.sh <id> | Mark task complete and move to COMPLETED.md |
update-task.sh <id> [--status <v>] [--priority <v>] [--title <v>] | Update task fields in TODO.md |
validate-todos.py | Validate all TODO.md files |
regenerate-qr.sh <file> | Regenerate Quick Reference for one file |
regenerate-qr.sh --all | Regenerate all Quick References |
A <!-- TASK:{id} --> marker doesn't have a matching <!-- END TASK:{id} -->. Check the task formatting.
The metadata table is missing id, status, priority, or description. Add the missing field.
Status must be exactly: pending, in_progress, blocked, or complete. No spaces, no emojis, no variations.
The same ID exists in multiple files. Tasks must have unique IDs across all projects.
A task with status: complete is still in a TODO.md file. Run complete-task.sh to move it to COMPLETED.md.
project/
āāā TODO.md # Cross-project tasks
āāā COMPLETED.md # Cross-project completed tasks
āāā cli/
ā āāā TODO.md # CLI active tasks
ā āāā COMPLETED.md # CLI completed tasks
āāā contracts/
ā āāā TODO.md # Contracts active tasks
ā āāā COMPLETED.md # Contracts completed tasks
āāā .claude/skills/task-management/
āāā SKILL.md # This file
āāā scripts/
āāā list-tasks.sh
āāā complete-task.sh
āāā update-task.sh
āāā validate-todos.py
āāā regenerate-qr.sh
[HINT] Download the complete skill directory including SKILL.md and all related files