---
model: haiku
---

# /tas-status

Check current status of TAS project.

## Actions
1. Read `root/project-status.yaml` (do NOT scan `docs/` broadly)
2. Read `root/tas.yaml` for workflow config
2b. Read `docs/architecture-map.yaml` if it exists — the only `docs/` file allowed, used for component/module/container coverage (step 5)
3. Summarize from `project-status.yaml`:
   - Number of artifacts created and their status (BRD, PRD, UI/UX Design, Design Spec, SAD...)
   - Number of Features by each status (`New`, `In Design`, `In Development`, `Done`, `Removed`)
   - Number of Bugs by status
   - Current phase based on aggregated status
4. Display:
   - Phase status table
   - Features grouped by status (with `stack:` shown beside each)
   - Plan readiness: count Features with `plan_status: completed` vs `pending`
5. **Design-item Coverage** (only if `docs/architecture-map.yaml` exists — read it in addition to `project-status.yaml`). Roll up coverage across **all tracked item types** — components, entities, contracts, NFRs, security:
   - **Components** (`MOD-NN.C#`): `status: built` → ✅ Covered; `built_by` set but not built → 🚧 In progress (cross-check ≥1 `built_by` Feature is `Done`); `built_by` empty → ❌ UNCOVERED. Roll up: a **module** is Covered ⟺ all its components are; a **container** ⟺ all its modules are.
   - **Entities** (`E-NNN` in `entities`): `status: built` → ✅; `owner` set but not built → 🚧; no `owner` → ❌ UNCOVERED (designed entity with no Feature creating its schema).
   - **Contracts** (`IC-NN` in `contracts`): `status: built` → ✅; `producer` set but not built → 🚧; no `producer` → ❌ UNCOVERED.
   - **NFRs** (`NFR-NNN` in `nfrs`): `status: enforced` → ✅; `addressed_by` set but not enforced → 🚧; `addressed_by` empty → ❌ UNCOVERED.
   - **Security** (`SEC-NN` in `security`): `status: implemented` → ✅; `addressed_by` set but not → 🚧; `addressed_by` empty → ❌ UNCOVERED.
   - **Baseline:** any item with `origin: baseline` (pre-existing brownfield code seeded by `/tas-init`) counts as ✅ Covered even with empty claim fields — do not flag it UNCOVERED. The "must have a Feature" rule applies only to `origin: feature` items. Show baseline counts separately (e.g. `12 baseline + 8 feature = 20/20`).
   - Print per-type totals (`{covered}/{total}`) + an overall line, and list every ❌ UNCOVERED item explicitly (with type + ID). Surface any module with non-null `drift` (design diverged → may need `/tas-sad`).
   - This is the done-time "nothing missed" check — **every `origin: feature` item at 100% is the release prerequisite**; any ❌ blocks release.

## Notes
- Read-only command, does not change anything
- If `project-status.yaml` seems out of sync, run `/tas-init` to rescan and sync
- Schema is flat — `features.{FEATURE_ID}` directly under root (no `epics.*.features.*.stories.*` nesting)
