---
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:-$HOME/.claude/plugins/draft}/scripts/tools"
[ -d "$DRAFT_TOOLS" ] || DRAFT_TOOLS="$HOME/.cursor/plugins/local/draft/scripts/tools"
[ -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 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:

```
[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)

```
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

```
---
                      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.
```
