Skill v1.0.1
Automated scan100/100+3 new
version: "1.0.1" 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
- Read
draft/tracks.mdfor track list - For each active track, read:
draft/tracks/<id>/metadata.jsonfor stats. Ifmetadata.jsonis malformed or unreadable, display(metadata unavailable)for that track's statistics instead of failing.draft/tracks/<id>/plan.mdfor task statusdraft/tracks/<id>/architecture.mdfor module status (if exists)metadata.json:scope_includes/scope_excludesfor 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).
- Check for project-wide
draft/.ai-context.md(or legacydraft/architecture.md) for module status - Detect orphaned tracks:
- Scan
draft/tracks/for all directories - For each directory, check if it has
metadata.json - Cross-reference with
draft/tracks.mdentries - 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):
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
---DRAFT STATUS---PROJECT: [from product.md title]ACTIVE TRACKS---[track-id-1] Feature NameStatus: [~] In ProgressPhase: 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 FeatureStatus: [ ] Not StartedPhase: 0/2Tasks: 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:
[track-id-3] Quick FeatureStatus: [~] In ProgressType: quickTasks: 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)
MODULES (if architecture.md exists)---Module A [x] Complete (Coverage: 96.2%)Module B [~] In Progress - 3/5 tasksModule C [ ] Not StartedBLOCKED 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 valid2. Remove orphaned track directory if no longer neededRECENTLY COMPLETED---- [track-id-3] - Completed [date]QUICK STATS---Active Tracks: 2Total Tasks: 18Completed: 5 (28%)Blocked: 1---
Module Reporting
When .ai-context.md or architecture.md exists for a track (track-level or project-level):
- Read the
.ai-context.md(orarchitecture.md) module definitions from## Modulessection - 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
- Display in the MODULES section of the track report
- If project-wide
draft/.ai-context.md(or legacydraft/architecture.md) exists, show a project-level module summary after QUICK STATS
If No Tracks
---DRAFT STATUS---PROJECT: [from product.md title]No active tracks.Get started:/draft:new-track "Your feature description"---
If Not Initialized
Draft not initialized in this project.Run /draft:init to initialize.