Display current progress of Draft tracks and active tasks. Shows phases, completion percentages, and blocked items.
Scanned 9/22/2026
Install to Claude Code
npx -y skills add drafthq/draft --skill status --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Status?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/drafthq-status)More formats (shields.io, HTML) on the badges page.
---
name: status
description: Display current progress of Draft tracks and active tasks. Shows phases, completion percentages, and blocked items.
---
# Draft Status
Display a comprehensive overview of project progress.
## Red Flags - STOP if you're
- Reporting status without actually reading the files
- Making up progress percentages
- Skipping blocked items in the report
- Not checking each active track's actual state
- Summarizing without evidence from the files
**Always read before reporting.**
---
## Gather Data
1. Read `draft/tracks.md` for track list
2. For each active track, read:
- `draft/tracks/<id>/metadata.json` for stats. If `metadata.json` is malformed or unreadable, display `(metadata unavailable)` for that track's statistics instead of failing.
- `draft/tracks/<id>/plan.md` for task status
- `draft/tracks/<id>/architecture.md` for module status (if exists)
- `metadata.json:scope_includes` / `scope_excludes` for the track's
scope footprint. Surface these in the status output so reviewers can
spot overlap at a glance. Conflicts are detected by
`scripts/tools/check-scope-conflicts.sh` (see
[core/shared/template-contract.md](../../core/shared/template-contract.md)).
3. Check for project-wide `draft/.ai-context.md` (or legacy `draft/architecture.md`) for module status
4. **Detect orphaned tracks:**
- Scan `draft/tracks/` for all directories
- For each directory, check if it has `metadata.json`
- Cross-reference with `draft/tracks.md` entries
- If directory has metadata.json but NOT in tracks.md → orphaned track
- Collect list of orphaned track IDs for warning section
### Optional: report rollup & freshness signals
If `parse-reports.sh` and `freshness-check.sh` are available, gather structured signals to enrich the status output (severity counts per track, stale `draft/` docs). Resolve via the canonical tool resolver (see [core/shared/tool-resolver.md](../../core/shared/tool-resolver.md)):
```bash
DRAFT_TOOLS="${DRAFT_PLUGIN_ROOT:-$(cat ~/.cache/draft/plugin-root 2>/dev/null)}/scripts/tools"
[ -d "$DRAFT_TOOLS" ] || DRAFT_TOOLS="$(ls -d ~/.claude/plugins/cache/*/draft/*/scripts/tools 2>/dev/null | sort -V | tail -1)"
[ -d "$DRAFT_TOOLS" ] || DRAFT_TOOLS="$(ls -d ~/.claude/plugins/marketplaces/*draft*/scripts/tools 2>/dev/null | tail -1)"
[ -d "$DRAFT_TOOLS" ] || DRAFT_TOOLS="$PWD/scripts/tools"
# Per-track report severity rollup (bughunt, review, tech-debt, etc.):
[ -x "$DRAFT_TOOLS/parse-reports.sh" ] && \
bash "$DRAFT_TOOLS/parse-reports.sh" --root draft/
# Stale draft/ docs (sha256 drift since last index):
[ -x "$DRAFT_TOOLS/freshness-check.sh" ] && [ -f draft/.state/freshness.json ] && \
bash "$DRAFT_TOOLS/freshness-check.sh" --state draft/.state/freshness.json
```
Surface non-zero severity counts inline with each track. Surface stale-doc warnings in a "STALE DOCS" section after BLOCKED ITEMS. Both signals are best-effort — skip silently if scripts or state are absent.
## Output Format
Check each track's `metadata.json` `type` field to determine display format.
### Standard (multi-phase) tracks
```yaml
---
DRAFT STATUS
---
PROJECT: [from product.md title]
ACTIVE TRACKS
---
[track-id-1] Feature Name
Status: [~] In Progress
Phase: 2/3 (Phase 2: [Phase Name])
Tasks: 5/12 complete
├─ [x] Task 1.1: Description
├─ [x] Task 1.2: Description
├─ [~] Task 2.1: Description ← CURRENT
├─ [ ] Task 2.2: Description
└─ [!] Task 2.3: Blocked - [reason]
[track-id-2] Another Feature
Status: [ ] Not Started
Phase: 0/2
Tasks: 0/6 complete
```
### Quick-mode tracks (metadata.json `type` is `"quick"`)
Quick-mode tracks use flat task numbering (`Task 1:`, `Task 2:`) without phases. Display them with a flat task list instead of the phase-grouped tree:
```json
[track-id-3] Quick Feature
Status: [~] In Progress
Type: quick
Tasks: 2/5 complete
├─ [x] Task 1: Description
├─ [x] Task 2: Description
├─ [~] Task 3: Description ← CURRENT
├─ [ ] Task 4: Description
└─ [ ] Task 5: Description
```
Do **not** show `Phase: X/Y` for quick-mode tracks — they have no phases.
### Remaining sections (shared by both formats)
```text
MODULES (if architecture.md exists)
---
Module A [x] Complete (Coverage: 96.2%)
Module B [~] In Progress - 3/5 tasks
Module C [ ] Not Started
BLOCKED ITEMS
---
- [track-id-1] Task 2.3: [blocked reason]
ORPHANED TRACKS
---
⚠ The following tracks have metadata.json but are missing from tracks.md:
- draft/tracks/orphan-track-id/
Recovery options:
1. Add to tracks.md manually if track is valid
2. Remove orphaned track directory if no longer needed
RECENTLY COMPLETED
---
- [track-id-3] - Completed [date]
QUICK STATS
---
Active Tracks: 2
Total Tasks: 18
Completed: 5 (28%)
Blocked: 1
---
```
## Module Reporting
When `.ai-context.md` or `architecture.md` exists for a track (track-level or project-level):
1. Read the `.ai-context.md` (or `architecture.md`) module definitions from `## Modules` section
2. For each module, determine status from its status marker:
- `[ ]` Not Started
- `[~]` In Progress — count completed vs total tasks mapped to this module
- `[x]` Complete — include coverage percentage if recorded
- `[!]` Blocked — include reason
3. Display in the MODULES section of the track report
4. If project-wide `draft/.ai-context.md` (or legacy `draft/architecture.md`) exists, show a project-level module summary after QUICK STATS
---
## If No Tracks
```yaml
---
DRAFT STATUS
---
PROJECT: [from product.md title]
No active tracks.
Get started:
/draft:new-track "Your feature description"
---
```
## If Not Initialized
```text
Draft not initialized in this project.
Run /draft:init to initialize.
```
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!