skills/forge-ask/SKILL.md
[read-only] Query forge state, codebase knowledge, run history, or analytics. Never mutates project state. Use when you want to check pipeline status, search wiki/graph for code answers, view past runs, see analytics, or get an onboarding tour.
npx skillsauth add quantumbitcz/dev-pipeline forge-askInstall 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.
Five subcommands plus a default codebase Q&A path. Read-only — no mutations to project state. Always-safe to invoke.
See shared/skill-contract.md for the standard table.
Positional, no NL fallback. Bare args (no recognized verb) default to codebase Q&A.
Dispatch rules:
$ARGUMENTS.$ARGUMENTS is empty: prompt "What would you like to know about this codebase?" and re-read.$ARGUMENTS == --help: print usage and exit 0.SUB="$1"; shift; REST="$*".$SUB is in {status, history, insights, profile, tour}: dispatch to ### Subcommand: <SUB> with $REST.$ARGUMENTS string as a freeform question and dispatch to ### Subcommand: ask (default)./forge-ask <subcommand> [args]
/forge-ask "<freeform question>"
Subcommands:
status Current pipeline state
history [--limit=N] Past runs from .forge/run-history.db
insights [--scope=...] Quality, cost, convergence trends
profile [<run-id>] Per-stage timing and cost breakdown
tour 5-stop guided introduction
Default action (no recognized subcommand): codebase Q&A via wiki + graph + explore cache + docs.
Flags:
--help Show this message
--json Structured output (status-like)
--fresh Bypass cache (Q&A only)
--deep Exhaustive search (Q&A only)
git rev-parse --show-toplevel. If fails: STOP..claude/forge.local.md exists. If absent: report "Forge not initialized. Run /forge first." and STOP. (This skill does NOT auto-bootstrap.)This skill MUST NOT modify any file under the project root, .forge/, or .claude/. Verified by a contract test that runs every subcommand and asserts git status is unchanged after.
allowed-tools excludes Write and Edit — the harness enforces this.
The Q&A subcommand may write to .forge/ask-cache/ and the insights
subcommand may write to .forge/reports/. These are opaque caches
and reports excluded from the AC-S012 contract test by explicit path
checks. All writes are performed via Bash (heredoc redirect) — the
harness blocks Write/Edit per the allowed-tools allowlist.
Codebase Q&A. Answer questions about the codebase by aggregating knowledge from all available data sources. Provide authoritative, evidence-based answers with file path references (clickable in IDE).
Read from forge-config.md or use defaults:
| Key | Default | Description |
|-----|---------|-------------|
| forge_ask.enabled | true | Enable/disable subcommand |
| forge_ask.deep_mode | false | Also run grep/glob for exhaustive answers |
| forge_ask.max_source_files | 20 | Max file references to include in answer |
| forge_ask.cache_answers | true | Cache answers in .forge/ask-cache/ |
Read $REST (or full $ARGUMENTS when no subcommand) as the user's question. If empty, ask: "What would you like to know about this codebase?"
If forge_ask.cache_answers is enabled:
.forge/ask-cache/{cache_key}.md exists..forge/state.json has a newer _seq than the cached _seq, invalidate (new run has occurred)./forge-ask --fresh {question} to bypass cache.)"If $ARGUMENTS starts with --fresh, strip the flag and skip cache lookup.
Query sources in priority order. For each source: check availability, query, collect relevant fragments. Stop early if confidence is high (3+ corroborating sources).
Source 1 — Wiki (.forge/wiki/)
.forge/wiki/ directory exists with .md files.Source 2 — Knowledge Graph (Neo4j)
neo4j-mcp tool).TESTED_BY relationships.updated_at.MATCH (n) WHERE n.name CONTAINS '{entity}'.Source 3 — Explore Cache (.forge/explore-cache.json)
.forge/explore-cache.json file exists.Source 4 — Docs Index (.forge/docs-index.json or project docs)
.forge/docs-index.json exists (generated by docs-generate skill).docs/, doc/, README.md, ARCHITECTURE.md, ADR/.Source 5 — Direct Search (deep mode only)
If forge_ask.deep_mode is true or $ARGUMENTS contains --deep:
**/payment*, **/pay*).max_source_files most relevant files to extract implementation details.## Answer
{Direct answer to the question in 2-5 sentences.}
### Details
{Expanded explanation with architecture context, code flow, or implementation details as relevant.}
### Key Files
| File | Role |
|------|------|
| `{absolute_path}` | {brief description of file's relevance} |
### Sources
- {Source name}: {what it contributed}
max_source_files (default 20). Prefer files that directly answer the question over tangentially related files.If forge_ask.cache_answers is enabled and this was not a --fresh query:
.forge/ask-cache/{cache_key}.md with a header containing the _seq from current state.json (or 0 if no state).These are illustrative — the subcommand handles any freeform question:
Show the current state of the development pipeline for this project.
.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-ask 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.jsonl exists and is non-empty:
wc -l < .forge/.hook-failures.jsonljq -r '.hook_name' .forge/.hook-failures.jsonl | sort -u | wc -ltail -3 .forge/.hook-failures.jsonl | jq -r '"\(.ts) \(.hook_name) exit=\(.exit_code)"'If .forge/.hook-failures.jsonl does not exist or is empty: show "Hooks: healthy (no failures logged)"
After the primary status output, print a --- live --- separator and
render data from .forge/progress/status.json and
.forge/run-history-trends.json (both optional):
If .forge/progress/status.json exists:
python3 -c "import json; print(json.load(open('.forge/progress/status.json')))".Stage: {stage} Agent: {agent_active or 'idle'}.{elapsed_ms_in_stage}ms / {timeout_ms}ms.(now - updated_at) > 60s and (now - state_entered_at) > stage_timeout_ms: print "Run appears hung — consider /forge-admin recover diagnose."If .forge/run-history-trends.json exists:
recent_hook_failures.If neither file exists: print "No live data (run has not completed a subagent dispatch yet)."
After the primary status report, emit a compact config-validation block. This
mirrors what /forge verify --config reports, for one-stop visibility from
/forge-ask status. Scope:
.claude/forge.local.md (if present) and .claude/forge-config.md.shared/preflight-constraints.md).--json, emit this block as a config_validation top-level object:
{
"config_validation": {
"local_md_exists": true,
"config_md_exists": true,
"constraints": [
{ "id": "pass_threshold", "verdict": "PASS" },
{ "id": "total_retries_max", "verdict": "PASS" }
]
}
}
If .claude/forge.local.md is missing entirely, emit the config block with
local_md_exists: false and skip constraint checks (nothing to validate).
Read the last 5 entries from .forge/events.jsonl where type == "hook_failure".
For each, show timestamp, hook name, exit code, and a one-line stderr snippet.
If the file is missing or contains no hook_failure entries, emit "No recent
hook failures." Under --json, emit as a recent_hook_failures array.
| Condition | Action |
|-----------|--------|
| state.json unparseable | Report "state.json is corrupted. Run /forge-admin recover repair to fix or /forge-admin 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 |
View trends across multiple pipeline runs — score oscillations, agent effectiveness, common findings, and PREEMPT health.
.claude/forge-log.md with run entries.forge/reports/ with report files
If neither exists: report "No pipeline history found. Run /forge run to start building history." and STOP.Read all available history sources:
.claude/forge-log.md): Primary source -- contains per-run entries with dates, requirements, scores, verdicts, and retrospective notes..forge/reports/): Detailed per-run reports with findings, agent dispatches, and timing data.shared/learnings/ and .forge/learnings/): PREEMPT items and agent effectiveness records.If forge-log.md is very large (>500 lines), summarize the last 10 runs instead of all runs.
Extract from forge-log.md each run's date, requirement summary, final quality score, verdict, total fix cycles (verify + review), and wall time:
## Pipeline Run History
### Quality Score Trend
| Date | Requirement | Score | Verdict | Fix Cycles | Duration |
|------|-------------|-------|---------|------------|----------|
Compute trend direction: improving (last 3 scores ascending), declining (descending), or stable (within oscillation tolerance).
Aggregate finding categories across all runs. Show top 5 by frequency:
### Most Common Findings
1. {CATEGORY} ({N} runs) -- {typical description}
2. ...
Identify findings that appear in 3+ runs as convention candidates -- patterns the team consistently triggers that should be codified as project rules.
If agent effectiveness data exists in forge-log.md (added by retrospective):
### Agent Effectiveness
| Agent | Runs | Avg Time | Avg Findings | FP Rate |
|---|---|---|---|---|
If no effectiveness data: report "Agent effectiveness tracking not yet available. Will populate after future runs."
Read learnings files for PREEMPT items:
### PREEMPT Health
- Active items: {count} (HIGH: {n}, MEDIUM: {n}, LOW: {n})
- Archived items: {count}
- Last promotion: {date} -- {item description}
- Decay candidates: {count} items with 10+ unused runs
If no PREEMPT data: report "No PREEMPT items found."
Synthesize the data into actionable observations:
| Condition | Action | |-----------|--------| | forge-log.md missing | Fall back to reports directory. If also missing, STOP with guidance | | forge-log.md unparseable | Report "forge-log.md has unexpected format. Showing raw content summary." and display what can be extracted | | Reports directory empty | Work from forge-log.md alone, note limited data | | State corruption | This subcommand is read-only and does not depend on state.json |
Analyze trends across pipeline runs to surface actionable insights about quality, cost, agent behavior, and pipeline health.
.forge/reports/ with report files.forge/state.json with telemetry data.claude/forge-log.md with run entries
If none exist: report "No pipeline run data found. Run /forge run to generate data, then try again." and STOP.Read all available data sources:
.forge/reports/*.json or .forge/reports/*.md): per-run summaries including scores, findings, timings, agent dispatches..forge/state.json → telemetry): current/last run metrics — token usage, wall time, stage durations, agent dispatch counts..claude/forge-log.md): human-readable run history with dates, requirements, scores, verdicts, and retrospective notes.shared/learnings/ and .forge/learnings/): accumulated patterns, PREEMPT items, agent effectiveness records..forge/state.json → score_history): per-iteration score progression within the current/last run.If a source is unavailable, skip it and note which categories will have incomplete data.
Analyze score trends across runs:
### Quality Trajectory
| Run | Date | Score | Verdict | CRITICALs | WARNINGs |
|-----|------|-------|---------|-----------|----------|
| {n} | {date} | {score} | {verdict} | {count} | {count} |
**Trend:** {improving/declining/stable} ({delta} over {n} runs)
**Recurring Findings (3+ runs):**
| Category | Occurrences | Last Seen | Suggestion |
|----------|-------------|-----------|------------|
| {cat} | {n} | {date} | {codify as convention / investigate root cause} |
Analyze which agents contribute most to quality improvement:
### Agent Effectiveness
| Agent | Dispatches | Avg Findings | Score Impact | FP Rate |
|-------|-----------|-------------|-------------|---------|
| {agent} | {n} | {avg} | {delta} | {pct}% |
**Most impactful:** {agent} — avg {delta} point improvement per dispatch
**Least triggered:** {agent} — {n} findings across {m} runs
**Mutation kill rate:** {pct}% (trend: {direction})
Analyze resource consumption and cost efficiency:
.forge/trust.json model_efficiency. Stages without score impact are reported separately as overhead.Sources: state.json.cost, state.json.tokens, .forge/trust.json model_efficiency, state.json.cost_alerting.
Recommendation generation:
### Cost Analysis
#### Per-Run Cost Trend
| Run | Date | Tokens | Est. Cost | Score | Cost/Point | Budget Used |
|-----|------|--------|-----------|-------|------------|-------------|
#### Per-Stage Cost Breakdown
| Stage | Avg Tokens | Avg Cost | % of Total | Trend |
|-------|-----------|----------|-----------|-------|
#### Cost-Per-Quality-Point (Efficiency)
| Stage | Tier | Tokens/Point | Runs | Suggestion |
|-------|------|-------------|------|------------|
#### Model Tier Distribution
| Tier | Dispatches | Tokens | % of Total | Avg Cost |
|------|-----------|--------|-----------|----------|
#### Budget Utilization
| Run | Ceiling | Used | % | Alerts Triggered |
|-----|---------|------|---|-----------------|
#### Top-3 Cost Recommendations
| # | Recommendation | Expected Savings | Confidence |
|---|---------------|-----------------|------------|
Analyze how efficiently the pipeline converges to shipping quality:
### Convergence Patterns
| Metric | Value |
|--------|-------|
| Avg iterations to ship | {n} |
| First-pass success rate | {pct}% |
| Safety gate failure rate | {pct}% |
| Most common plateau cause | {cause} |
**Iteration Distribution:**
| Iterations | Runs | % |
|-----------|------|---|
| 1-2 | {n} | {pct}% |
| 3-5 | {n} | {pct}% |
| 6+ | {n} | {pct}% |
Analyze the accumulated knowledge base:
### Memory Health
**PREEMPT Items:**
| Priority | Active | Applied (last 5 runs) | Decay Candidates |
|----------|--------|-----------------------|------------------|
| HIGH | {n} | {n} | {n} |
| MEDIUM | {n} | {n} | {n} |
| LOW | {n} | {n} | {n} |
| ARCHIVED | {n} | — | — |
**Pattern Discovery:**
- Total auto-discovered patterns: {n}
- Applied in subsequent runs: {n} ({pct}%)
- Never applied: {n} (review for removal)
**Learnings Growth:**
- Total learnings files: {n}
- New entries (last 5 runs): {n}
- Most active category: {category}
Analyze token savings and compression compliance:
state.json.tokens.output_tokens_per_agent against the expected range for their stage's compression level. Estimate tokens saved relative to verbose baseline using the stage-level token ranges from shared/output-compression.md: verbose 800-2000, standard 800-2000, terse 400-1200, minimal 100-600.state.json.tokens.compression_level_distribution. Highlight if distribution is skewed (e.g., 90% verbose suggests misconfiguration or output_compression.enabled: false).terse (expected 400-1200 tokens) producing 1800 tokens is drifting./forge-admin compress agents has been run (detect via *.original.md backup files in agents/), compute before/after line counts and estimated token savings using wc -l..forge/caveman-mode), which level, and how many sessions used it (from .forge/events.jsonl if available).### Compression Effectiveness
**Output Compression:**
| Metric | Value |
|--------|-------|
| Dispatches at verbose | {n} |
| Dispatches at standard | {n} |
| Dispatches at terse | {n} |
| Dispatches at minimal | {n} |
| Estimated output tokens saved | {n} ({pct}% vs all-verbose baseline) |
**Drift Alerts:**
| Agent | Stage Level | Expected Range | Actual Tokens | Status |
|-------|------------|----------------|---------------|--------|
| {agent} | terse | 400-1200 | {n} | DRIFT / OK |
**Input Compression:**
| Scope | Files | Before (lines) | After (lines) | Reduction |
|-------|-------|-----------------|---------------|-----------|
| agents/ | {n} | {n} | {n} | {pct}% |
**Caveman Mode:** {off/lite/full/ultra}
Synthesize the six categories into actionable recommendations:
## Pipeline Insights Report
**Project:** {project name}
**Runs analyzed:** {count}
**Date range:** {earliest} to {latest}
{Category 1-6 sections as above}
### Recommendations
| Priority | Action | Category | Expected Impact |
|----------|--------|----------|-----------------|
| {1-N} | {specific action} | {category} | {what improves} |
Prioritize recommendations by expected impact:
Write the full report to .forge/reports/insights-{date}.md where {date} is today in YYYY-MM-DD format. If the reports directory does not exist, create it.
.forge/reports/ (an opaque report cache, not project code).| Condition | Action |
|-----------|--------|
| No run data available | Report "No pipeline run data found. Run /forge run to generate data, then try again." and STOP |
| Only one data source available | Generate partial report and note which categories have insufficient data |
| Fewer than 3 runs | Note that trend analysis requires more data points. Focus on single-run metrics |
| Report directory does not exist | Create .forge/reports/ before writing the report |
| Data source unparseable | Skip the malformed source, log WARNING, continue with remaining sources |
| State corruption | This subcommand reads state.json for telemetry but does not depend on valid pipeline state |
Per-stage timing and cost breakdown. Optional <run-id> (default: most recent run).
.forge/state.json exists with cost.wall_time_seconds > 0. If no timing data: report "No performance data available. Run a pipeline first with /forge run." and STOP..forge/events.jsonl exists. If not: note that per-stage/per-agent timing analysis will be limited -- report token and convergence data from state.json only, and note that detailed timing requires events.jsonl.Read all available performance data sources:
Events log (.forge/events.jsonl): Parse all state_transition events to extract timing:
State file (.forge/state.json): Extract:
cost.wall_time_seconds -- total run timetokens.by_stage -- token consumption per stagetokens.by_agent -- token consumption per agentconvergence.phase_history -- iteration detailsscore_history -- quality score progressionRun reports (.forge/reports/*.json): If available, extract per-run timing for trend analysis across multiple runs.
Calculate the following metrics from the gathered data:
Present the analysis in this format:
# Pipeline Performance Profile
## Time Breakdown by Stage
| Stage | Duration | % of Total | Iterations |
|-------|----------|-----------|------------|
## Time Breakdown by Agent
| Agent | Total Time | Dispatches | Avg per Dispatch |
|-------|-----------|-----------|-----------------|
## Token Consumption
| Component | Input Tokens | Output Tokens | Total |
|-----------|-------------|--------------|-------|
## Convergence Efficiency
- Total iterations: {N}
- Phase 1 iterations: {N}
- Phase 2 iterations: {N}
- Safety gate attempts: {N}
- Score trajectory: {start} -> {end}
## Bottleneck Analysis
- Slowest stage: {stage} ({duration}s, {pct}% of total)
- Most dispatched agent: {agent} ({count} times)
- Highest token consumer: {agent/stage}
## Recommendations
{If any stage > 40% of total time, suggest optimization}
{If any agent dispatched > 5 times, suggest scope reduction}
{If convergence took > 5 iterations, suggest PREEMPT items or threshold tuning}
If multiple run reports exist in .forge/reports/, compare performance across runs:
| Condition | Action |
|-----------|--------|
| state.json missing or unparseable | Report "Pipeline state not found or corrupt. Run /forge run first." and STOP |
| events.jsonl missing | Generate partial report from state.json only, note limited data |
| events.jsonl has malformed lines | Skip malformed lines, log WARNING, continue with valid entries |
| No token data available | Report "No token usage data recorded." and skip token analysis sections |
| State corruption | Suggest /forge-admin recover repair to fix state, then re-run profiler |
Welcome to Forge, a 10-stage autonomous development pipeline. This tour walks you through the 5 skills you'll use most, in the order you'll need them.
Present each stop sequentially. Pause between stops to let the user ask questions or try the skill.
What it does: First-run bootstrap is automatic when you invoke /forge in a project without .claude/forge.local.md. Detection prompts the user with detected stack defaults and offers [proceed] / [open wizard] / [cancel].
When to use: First time setting up Forge in a project — no separate command required.
What happens:
[proceed] / [open wizard] / [cancel] from the detected defaults.claude/forge.local.md (project config).claude/forge-config.md (pipeline settings)Try it: Run /forge "<requirement>" in any uninitialized project — bootstrap fires automatically before the requirement is dispatched.
What it does: Runs build + lint + test (or config validation) and reports pass/fail. No pipeline, no agents — just a quick sanity check.
When to use: Before any pipeline run, after manual changes, before committing.
What happens:
Try it: Run /forge verify to check the project's baseline health (build/lint/test or config validation).
What it does: The main entry point. Give it a requirement, and it runs the full 10-stage pipeline: explore → plan → implement (TDD) → verify → review → ship.
When to use: When you have a clear feature to build.
Example:
/forge run "add CSV export"
What happens:
What it does: Specialized bugfix workflow — investigates root cause, writes a failing test that reproduces the bug, implements the fix.
When to use: When you have a bug to fix.
Example:
/forge fix FG-742
/forge fix "login redirect 404"
What happens:
What it does: Reviews your recent code changes using 3-8 specialized review agents (security, architecture, performance, accessibility, etc.).
When to use: After making changes, before committing or creating a PR.
Example:
/forge review # Quick mode: 3 agents
/forge review --full # Full mode: up to 8 agents
What happens:
| Skill | When | Time |
|-------|------|------|
| /forge (auto-bootstrap) | First time setup | ~1 min |
| /forge verify | Quick health check | ~1 min |
| /forge run | Build a feature | 5-30 min |
| /forge fix | Fix a bug | 3-15 min |
| /forge review --full | Review code quality | 1-5 min |
CLAUDE.md §Skill selection guide./forge-admin compress output/forge-ask insights/forge sprintWSL2 is the recommended way to run Forge on Windows. All scripts require bash 4.0+ which WSL2 provides natively.
# Install WSL2 (PowerShell as Administrator)
wsl --install -d Ubuntu
# Inside WSL2
sudo apt update && sudo apt install -y bash python3 git docker.io
Important: Run all Forge commands from within WSL2, not PowerShell or CMD.
Git Bash provides a minimal bash environment but has known limitations:
0ac4874)# Requires Git for Windows with Git Bash
# Enable long paths in git
git config --global core.longpaths true
macOS ships with bash 3.x. Forge requires bash 4.0+.
brew install bash python3
# Verify version
bash --version # Must show 4.0+
All major distributions are supported. Install bash 4+ and python3:
# Ubuntu / Debian
sudo apt update && sudo apt install -y bash python3 git
# Fedora / RHEL
sudo dnf install -y bash python3 git
# Arch Linux
sudo pacman -S bash python git
| Condition | Action |
|---|---|
| Prerequisites fail | Report and STOP |
| Empty question (default subcommand, no args) | Prompt "What would you like to know?" |
| --help | Print usage and exit 0 |
| Unknown subcommand | Treat as freeform question; dispatch to default Q&A |
| No data sources (wiki, graph, cache, docs all absent) | Fall back to direct grep/glob regardless of deep_mode |
| Neo4j unavailable | Skip graph; log INFO; continue |
| All sources empty | Report "Could not find relevant information. Try rephrasing or use --deep." |
/forge — Write-surface entry (run, fix, sprint, review, verify, deploy, commit, migrate, bootstrap, docs, audit)/forge-admin — State and config management (recover, abort, config, handoff, automation, playbooks, compress, graph, refine)development
[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.