Skip to content

/status

Show Forge progress and status

From plugin
forge
5813 skills9 agents13 commands3 hooks
> /plugin marketplace add LucasDuys/forge
> /plugin install forge@forge-marketplace

Command definition

status.md
description: "Show Forge progress and status"
allowed-tools: ["Read(*)", "Bash(node ${CLAUDE_PLUGIN_ROOT}/scripts/forge-tools.cjs:*)", "Bash(node ${CLAUDE_PLUGIN_ROOT}/scripts/forge-wizard.cjs:*)"]

Forge Status

First-Run Wizard (R004.AC3)

Before anything else, fire the one-shot token-reduction wizard. Idempotent — prints once on first install, then no-ops forever. Suppressed when `/forge:watch` is rendering its own banner (R004.AC6).

node "${CLAUDE_PLUGIN_ROOT}/scripts/forge-wizard.cjs" --forge-dir .forge

Present a unified Forge dashboard. If the user passed `--json` anywhere in the command arguments, emit machine-readable JSON instead of the formatted view.

Data sources

Run these commands and combine their output. Always pass `--forge-dir .forge`.

1. `node ${CLAUDE_PLUGIN_ROOT}/scripts/forge-tools.cjs headless query --forge-dir .forge --json`

  • Authoritative snapshot from T011: phase, current_task, completed/remaining

task counts, lock_status, active_checkpoints, last_error, token totals. 2. `node ${CLAUDE_PLUGIN_ROOT}/scripts/forge-tools.cjs budget-status --forge-dir .forge --json`

  • Per-task token ledger plus session budget summary and iteration count.

3. Read `.forge/state.md` directly for fields the headless query does not surface (autonomy, depth, blocked_reason, last heartbeat timestamp). 4. Read `.forge/capabilities.json` if it exists to count MCP servers and skills. 5. Check whether `.forge/.forge-loop.json` exists -- if so, the autonomous loop is currently active. 6. Check whether `.forge/.forge-debug.log` exists and is non-empty. 7. List `.forge/checkpoints/*.json` (if the directory exists) to surface any in-progress task checkpoints.

JSON mode

If the user passed `--json`, output a single JSON object with these top-level keys merged from the sources above. Do not pretty-format with extra commentary.

{
  "phase": "...",
  "spec": "...",
  "current_task": "...",
  "task_status": "...",
  "iteration": N,
  "max_iterations": N,
  "tasks": { "completed": N, "remaining": N, "total": N },
  "tokens": { "used": N, "budget": N, "percent": N, "remaining": N },
  "per_task_budgets": [ ... from budget-status ... ],
  "lock_status": "free|held|stale",
  "active_checkpoints": N,
  "last_error": "...",
  "depth": "...",
  "autonomy": "...",
  "loop_active": true|false,
  "debug_log_has_entries": true|false,
  "blocked_reason": "..." | null,
  "capabilities": { "mcp_servers": N, "skills": N }
}

Formatted mode (default)

Render this layout:

Forge Status
===================================
Phase:     {phase}
Spec:      {spec}
Task:      {current_task} ({task_status})
Iteration: {iteration} / {max_iterations}

Tasks:     {completed}/{total} complete, {remaining} remaining
Tokens:    {used} / {budget} ({percent}%, {remaining} remaining)
Depth:     {depth}
Autonomy:  {autonomy}

Lock:         {lock_status}
Checkpoints:  {active_checkpoints}
Capabilities: {mcp_count} MCP servers, {skill_count} skills

After the dashboard, append any of these conditional lines that apply:

  • If `.forge/.forge-loop.json` exists: `Loop active`
  • If `.forge/.forge-debug.log` is non-empty:

`Debug log has entries -- run cat .forge/.forge-debug.log to inspect`

  • If `blocked_reason` is set in state.md: `Blocked: {blocked_reason}`
  • If `last_error` from headless query is non-null: `Last error: {last_error}`
  • If `active_checkpoints > 0`: list each checkpoint id and step from

`.forge/checkpoints/*.json` so the user can see in-progress task state.

Then append the per-task budget table from `node ${CLAUDE_PLUGIN_ROOT}/scripts/forge-tools.cjs budget-status --forge-dir .forge` (plain text mode, not JSON) so the user sees per-task token usage at a glance.

Edge cases

  • If `.forge/` does not exist, say:

`Forge not initialized. Run /forge brainstorm to get started.` and stop.

  • If the headless query command fails, fall back to reading `.forge/state.md`

and `.forge/token-ledger.json` directly and present whatever is available.

  • Never use em dashes in the output (per project style).
Read more
@lucasduys
Ships withforge

Turn a one-line idea into a branch with tested, reviewed, committed code. The brainstorm-to-commit pipeline for Claude Code.

Stars on GitHub

Momentum

stars in total
58
Star history of LucasDuys/forge on GitHub, a chart by star-history.com

Other commands on forge.

backprop
Auto-invoked

backprop

Command

Trace a bug back to a spec gap and generate regression tests

@lucasduys@lucasduysInstall Command
brainstorm
Auto-invoked

brainstorm

Command

Turn an idea into concrete specs with testable requirements

@lucasduys@lucasduysInstall Command
collaborate
Auto-invoked

collaborate

Command

Opt-in multiplayer mode -- brain-dump together, claim tasks across machines, flag decisions async

@lucasduys@lucasduysInstall Command
plan
Auto-invoked

plan

Command

Decompose specs into task frontiers with dependency tracking

@lucasduys@lucasduysInstall Command

More commands from other plugins.

build
Auto-invoked

build

Command

Implement tasks incrementally — build, test, verify, commit. Add "auto" to run the whole plan in one approved pass.

@addyosmani@addyosmaniInstall Command