Skip to content
Development
Command

/craft-status

Show current Craft progress — cycles, stories, backlog in a rich dashboard view.

From plugin
4031 skills27 agents31 commands7 hooks1 MCP
shell
$ npx -y skills add drobins25/craft --agent claude-code

Ships with craft. Installing the plugin gets this command.

How it fires

How this command gets triggered: by you, by Claude, or both.

  • Fires itselfClaude auto-loads it when your prompt matches the work.
  • You can call itInvoke it directly when you want it.
  • Slash command/craft-status

Context preview

What this command does when you run it.

Show current Craft progress — cycles, stories, backlog in a rich dashboard view.

Command definition

craft-status.md
name: status
description: "Show current Craft progress — cycles, stories, backlog in a rich dashboard view."

Craft Status

Display a comprehensive view of current Craft state.

Dashboard Format

┌─────────────────────────────────────────────────────────────┐
│  CRAFT                                               $X.XX  │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ● Cycle [N]: [Name]                              [status]  │
│  ├── ✓ [Story 1]                               complete     │
│  ├── ◐ [Story 2]                      chunk X/Y  ███░░      │
│  └── ○ [Story 3]                            ready           │
│                                                             │
│  ○ Cycle [N+1]: [Name]                       [status]       │
│  └── X stories planned                                      │
│                                                             │
├─────────────────────────────────────────────────────────────┤
│  Backlog: X stories                                         │
│  ├── [story-name] (priority)                                │
│  ├── [story-name]                                           │
│  └── +N more                                                │
└─────────────────────────────────────────────────────────────┘

Status Indicators

| Symbol | Meaning | |--------|---------| | `○` | Ready/Pending | | `◐` | In Progress | | `✓` | Complete | | `⚠` | Blocked | | `✗` | Failed |

Planning Section

If `.craft/planning/` exists, show a planning summary between the cycle dashboard and the backlog:

├─────────────────────────────────────────────────────────────┤
│  Planning                          updated 2 days ago       │
│  ► customer-modernization (3 concepts, 1 planned)           │
│  ├── profile-tab                              complete      │
│  ├── cdb-mapping                              planned       │
│  └── invoice-email                            open          │
│  ○ permissions-cleanup                        open          │
│  ○ user-preferences                           open          │
│  ? 4 open questions across 3 concepts                       │
├─────────────────────────────────────────────────────────────┤

Planning data gathering

Use **Glob** with pattern `$PROJECT/.craft/planning/active.md` to check if planning exists. If not found, skip the planning section silently.

If found: 1. Use **Read** to read `$PROJECT/.craft/planning/active.md`. Extract `last_updated` from frontmatter. Calculate days since last update. If >3 days, show "updated N days ago" in the header. 2. Use **Read** to read `$PROJECT/.craft/planning/README.md`. Extract the Roadmap table rows for initiative/concept names and statuses. 3. For each initiative folder (detected via Glob `$PROJECT/.craft/planning/*/README.md`), read the initiative README to get sub-concept count and statuses. 4. Scan for open questions: Use **Bash** to count `- [ ]` items across all planning `.md` files:

   grep -r "^- \[ \]" "${CRAFT_PROJECT_ROOT:-.}/.craft/planning/" --include="*.md" 2>/dev/null | wc -l

5. **Broken link check:** For each concept file with a `stories:` frontmatter field containing paths, use **Glob** to verify each story path exists. Flag any that don't resolve as `[broken]` in the output.

Planning display rules

  • Show initiatives as indented groups with their sub-concepts
  • Show standalone concepts at root level
  • Status indicators: `open`, `planned`, `complete`, `archived`
  • Show open questions count if >0
  • Show broken story links if any found
  • If `last_updated` is missing from active.md frontmatter, show "updated: unknown"

Data Sources

Read from:

  • `.craft/.global-state` — active cycle, global config
  • `.craft/cycles/*/cycle.yaml` — cycle details
  • `.craft/cycles/*/.state` — cycle state
  • `.craft/cycles/*/stories/*.md` — story details
  • `.craft/backlog/*.md` — backlog stories
  • `.craft/planning/active.md` — planning live state (if exists)
  • `.craft/planning/README.md` — planning roadmap index (if exists)
  • `.craft/planning/*/README.md` — initiative details (if exists)
  • `.craft/map/capability.json` — Living Map capability verdict (if exists)
  • `.craft/map/index.json` — Living Map index: areas + per-file anchor keys (if exists)
  • `.craft/mockups/*/record.md` — mockup records (if any exist)

Map status

The Living Map is an unrequested optimization, so its status is **pulled here, never pushed** - no toast or notice fires when a grammar degrades; the only place a user learns the map's state is by asking for it.

Render ONE line, only if `.craft/map/` exists (a project that has never needed the map shows nothing - that is the normal first-run state, not an error). Read `.craft/map/capability.json`:

  • `mode: full` — `Map: active · N langs` (N = grammars that loaded true)
  • `mode: partial` — `Map: active · N langs · M degraded` (M = grammars that loaded false; name them, e.g. "C# - why?", the "why?" pointing at `commands/references/map.md`)
  • `mode: floor` — `Map: basic mode (full parsing unavailable - see references/map.md)`
  • `mode: disabled` — `Map: off (map.enabled: false)`

This is render-only: read the cached verdict and print the line in the dashboard's existing style. Do NOT probe, build, or re-derive anything from the status command.

Gates posture

Render ONE line showing quality-gate coverage. Run the stack probe (sub-100ms, pure filesystem - the one exception to render-only, and it executes no toolchain commands):

bash ${CLAUDE_PLUGIN_ROOT}/hooks/scripts/gate-signals.sh scan

Each output line is `manifest <glob> <count>` (undecided) or `manifest <glob> <count> <state> <date>` (recorded decision). Render:

  • All signals wired or built-in-covered (package.json with runnable scripts) → `Gates: full coverage`
  • Declined signals exist → append them labeled as chosen: `Gates: 1 ungated by choice: *.csproj (decli
Read more
Read it on GitHub ↗

Showing the first part of this file.

Ships withcraft

Stop Vibing. Start Crafting. Claude Code plugin: guided + controlled development orchestration harness with built-in workflow + state management, for designing + building durable, production-ready software through the entire product lifecycle - new projects

Get the whole plugin, auto-invoked
Stats
40
Stars
0
Views
5
Forks
Active
Maintenance
Shell
Language
MIT
License
2d ago
Last commit
3mo ago
Created

Repo: drobins25/craft