skills/forge-status/SKILL.md
[read-only] Show current pipeline run state -- stage, score, convergence phase, integrations, and background run progress. Use when you want to check what stage the pipeline is at, monitor a background run, or see the outcome of the last completed run.
npx skillsauth add quantumbitcz/dev-pipeline forge-statusInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Show the current state of the development pipeline for this project.
See shared/skill-contract.md for the standard exit-code table.
Before any action, verify:
git rev-parse --show-toplevel 2>/dev/null. If fails: report "Not a git repository. Navigate to a project directory." and STOP..claude/forge.local.md exists. If not: report "Forge not initialized. Run /forge-init first." and STOP..forge/state.json exists. If not: report "No pipeline run in progress. Run /forge-run to start." and STOP.Read .forge/state.json and display:
story_state value (e.g., IMPLEMENTING, REVIEWING)story_idmode (standard/migration/bootstrap). Note if dry_run: true.convergence.phase (correctness/perfection/safety_gate), convergence.convergence_state (IMPROVING/PLATEAUED/REGRESSING), convergence.total_iterations, convergence.safety_gate_failures. If convergence.unfixable_findings is non-empty, show count.verify_fix_count, quality_cycles, test_cycleslinear.epic_id is set)linear_sync.in_sync (true/false, note failed operations if not in sync)total_retries / total_retries_max (global retry budget usage)score_history (quality oscillation trend, e.g., [85, 78, 92])recovery_budget.total_weight / recovery_budget.max_weight (recovery budget usage)documentation.files_discovered files, documentation.decisions_extracted decisions, documentation.stale_sections stale sections (if documentation subsystem active)Check for recent stage notes:
.forge/stage_*_notes_*.md fileBackground run detection -- check if .forge/progress/status.json exists (indicates --background mode, see shared/background-execution.md):
a. Read .forge/progress/status.json and display:
run_idstage (e.g., IMPLEMENTING, REVIEWING) with stage_number/9progress_pct% -- render a visual progress bar (e.g. [████████░░░░░░░░] 52%)score (or "Not yet scored" if null)convergence_phase (correctness/perfection/null) -- iteration convergence_iterationeta_minutes minutes remaining (or "Calculating..." if null)started_at to last_updatemodel_usage, show model name, dispatch count, tokens in/out (formatted as 45K in / 12K out)b. Alerts -- if alerts array is non-empty:
options, show available resolution choicesstate.json.background_paused: true), show "PAUSED -- awaiting resolution for alert {background_alert_id}" with the paused duration (from background_paused_at to now).forge/progress/alerts.json, set resolved: true and resolution to the chosen option IDc. Stage summaries -- read .forge/progress/stage-summary/*.json for completed stages and show:
score_before -> score_after) if availabled. Timeline tail -- read the last 5 entries from .forge/progress/timeline.jsonl and display a compact event log
--watch flag -- when invoked as /forge-status --watch:
.forge/progress/status.json every 5 seconds (default, matches background.progress_update_interval_seconds)stage = LEARNING and progress_pct = 100) or abortsIf complete: true in state.json:
abort_reason is present and non-empty: report "Last run aborted: {abort_reason}"recovery_failed: true: report "Recovery engine failed at stage {last_known_stage}"If .forge/.hook-failures.log exists and is non-empty:
wc -l < .forge/.hook-failures.logawk -F'|' '{gsub(/^ +| +$/, "", $3); print $3}' .forge/.hook-failures.log | sort -u | wc -lIf .forge/.hook-failures.log does not exist or is empty: show "Hooks: healthy (no failures logged)"
| Condition | Action |
|-----------|--------|
| Prerequisites fail | Report specific error message and STOP |
| state.json unparseable | Report "state.json is corrupted. Run /forge-recover repair to fix or /forge-recover reset to start fresh." and STOP |
| state.json missing fields | Show what is available, note missing fields as "unknown" |
| progress/status.json malformed | Report "Background progress data is corrupt." and fall back to state.json only |
| Stage notes file missing | Skip stage notes section, continue with other data |
/forge-history -- View trends across multiple past pipeline runs/forge-recover diagnose -- Deep diagnostic of pipeline health (state integrity, counter overflows, stalled stages)/forge-recover resume -- Resume an aborted pipeline run/forge-abort -- Stop an active pipeline run gracefully/forge-insights -- Cross-run analytics and trend analysisdevelopment
[writes] Build, fix, deploy, review, or modify code in this project. Universal entry for the forge pipeline. Auto-bootstraps on first run; brainstorms before planning when given a feature description. Use when you want to take any productive action: implementing features, fixing bugs, reviewing branches, deploying, committing, running migrations.
tools
[writes] Manage forge state and configuration: recovery, abort, config edits, session handoff, automations, playbooks, output compression, knowledge graph maintenance. Use when you need to recover from broken pipeline state, edit settings, or manage long-lived state.
development
[writes] Create, list, show, resume, or search forge session handoffs. Use when context is getting heavy and you want to transfer a forge run or conversation into a fresh Claude Code session, or to resume from a prior handoff artefact. Subcommands - no args (write), list, show, resume, search.
development
[writes] Manage the Neo4j knowledge graph. Subcommands: init, rebuild (writes); status, query <cypher>, debug (read-only). Requires Docker. No default — an explicit subcommand is required. Use when setting up the graph for the first time, rebuilding after major refactors, checking graph health, or running ad-hoc Cypher diagnostics.