skills/forge-run/SKILL.md
[writes] Universal pipeline entry point. Auto-classifies intent and routes to the correct pipeline mode. Use when you want to build a feature, implement a requirement, or run the full development pipeline. Accepts --from=<stage>, --dry-run, --spec <path>, --sprint, --parallel.
npx skillsauth add quantumbitcz/dev-pipeline forge-runInstall 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.
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.After dispatch, fg-100-orchestrator will:
Total time: 5-30 minutes depending on complexity. You may be asked to approve the plan, resolve ambiguities, or choose between options.
You are the universal entry point for the forge pipeline. Your job is to classify the user's intent, detect available integrations, and dispatch the correct agent. You handle routing — not planning, implementation, or review.
Parse input: The user's argument (everything after /forge-run) is the work item — a free-text feature description like "Add plan versioning endpoint". If no requirement text is provided (empty input after stripping flags), ask the user: "What would you like to build? Provide a feature description, e.g., 'Add plan versioning endpoint'." Do not dispatch the orchestrator with empty input.
Parse the user's input. Supported forms:
/forge-run <requirement description> — standard feature mode/forge-run --spec <path> — use shaped spec (may have associated ticket)/forge-run --from=<stage> — resume from stage/forge-run --dry-run <requirement> — analysis only/forge-run --ticket FG-001 <requirement> — link to existing kanban ticket/forge-run FG-001 — shorthand: look up ticket, use its description as requirementIf the requirement starts with a recognized prefix, pass the mode to the orchestrator:
bugfix: <description> or fix: <description> → Mode: bugfixmigrate: <description> or migration: <description> → Mode: migrationbootstrap: <description> or Bootstrap: <description> → Mode: bootstrapMode: standardThe prefix is stripped before passing the requirement to the orchestrator.
Note: For bugfix mode, prefer /forge-fix which provides richer source resolution (kanban tickets, Linear issues). The bugfix: prefix in /forge-run is a convenience shortcut equivalent to /forge-fix "description".
Check for optional flags:
--from=<stage> (e.g., --from=implement) — resume from that stage--dry-run — run PREFLIGHT through VALIDATE only. No implementation, no file changes, no .forge/ state files, no .forge/.lock, no checkpoint files, no lastCheckpoint updates. The orchestrator handles these constraints.--spec <path> — use a shaped spec file (produced by /forge-shape). When present, pass it to the orchestrator with: Execute the full development pipeline for spec: {spec_path}--ticket <id> — link pipeline run to an existing kanban ticket (e.g., --ticket FG-001)Ticket Resolution:
If a ticket ID is provided (via --ticket flag or as sole argument matching {PREFIX}-{NNN} pattern):
shared/tracking/tracking-ops.shfind_ticket ".forge/tracking" "{ticket_id}" to locate the ticket filetitle and ## Description section as the requirementticket_id to the orchestrator in the dispatch promptIf no ticket ID provided, the orchestrator will create one during PREFLIGHT (if tracking is initialized).
Classify intent: Unless the user provided an explicit mode prefix (step 1) or flag (--sprint or --parallel (DEPRECATED: use /forge-sprint instead. These flags will be removed in v3.0.)), classify the requirement using the priority table and signal rules in shared/intent-classification.md. First match wins. Modes: bugfix, migration, bootstrap, multi-feature, testing, documentation, refactor, performance, vague, standard (default).
Config check: If routing.auto_classify is false in forge-config.md, skip classification and use Mode: standard.
Autonomous mode: Read autonomous from forge-config.md (default: false).
autonomous: false: Present classification result via AskUserQuestion:
autonomous: true: Use classified mode directly. Log: [AUTO-ROUTE] Classified as {mode} based on: {signals}Scope fast scan: If classification didn't detect multi-feature and scope.fast_scan is not false, scan for 3+ distinct domain nouns, enumerated items, or additive language ("also add", "additionally"). If detected: set Mode: multi-feature.
Detect available MCPs: Detect available MCPs per shared/mcp-detection.md detection table. For each MCP, check if its probe tool is available. Mark unavailable MCPs as degraded and apply the documented degradation behavior.
Build a comma-separated list of detected integrations (e.g., Linear, Context7). If none detected, use none.
Route by mode: Based on the classified mode (or explicit prefix/flag):
| Mode | Dispatch Target |
|------|----------------|
| --sprint or --parallel flag (DEPRECATED) | fg-090-sprint-orchestrator with $ARGUMENTS |
| multi-feature | fg-015-scope-decomposer with requirement + MCPs |
| vague | fg-010-shaper with requirement; on spec output, re-invoke with --spec {path} |
| bugfix | fg-100-orchestrator with Mode: bugfix |
| migration | fg-100-orchestrator with Mode: migration |
| bootstrap | fg-100-orchestrator with Mode: bootstrap |
| testing | fg-100-orchestrator with Mode: testing (implementer focuses on test files; reduced reviewer set) |
| documentation | fg-350-docs-generator standalone mode (skip pipeline stages 4-6) |
| refactor | fg-100-orchestrator with Mode: refactor (planner uses refactor constraints: same behavior, no new features) |
| performance | fg-100-orchestrator with Mode: performance (EXPLORE includes profiling; performance-focused reviewers) |
| standard (default) | fg-100-orchestrator |
For multi-feature mode, dispatch fg-015-scope-decomposer:
Decompose this multi-feature requirement into independent features:
Requirement:
{user_input}Source: fast_scan Available MCPs:
{detected_mcps}
For vague mode, dispatch fg-010-shaper:
Shape this requirement into a structured spec:
{user_input}When the shaper returns a spec path, re-dispatch as:
/forge-run --spec {spec_path}
For documentation mode, dispatch fg-350-docs-generator directly (standalone mode):
Generate documentation for:
{user_input}Mode: standalone (no pipeline — skip stages 4-6) Available MCPs:
{detected_mcps}
For all other modes (bugfix, migration, bootstrap, testing, refactor, performance, standard), dispatch fg-100-orchestrator:
Execute the full development pipeline for:
{user_input}Mode:
{classified_mode}Available MCPs:{detected_mcps}Ticket ID:
{ticket_id}(omit if no ticket)
Do nothing else: Do not plan, implement, review, or make decisions. The dispatched agent handles everything autonomously.
Relay the result: When the dispatched agent completes, relay its final output (PR URL, summary, decomposition plan, or escalation) back to the user unchanged.
| Condition | Action |
|-----------|--------|
| Prerequisites fail | Report specific error message and STOP |
| Empty requirement (no input after stripping flags) | Ask the user for a requirement description before dispatching |
| Intent classification ambiguous | Present classification result to user for confirmation (unless autonomous mode) |
| Ticket ID not found in tracking store | Warn user and ask for requirement description directly |
| Agent dispatch fails | Report "Pipeline orchestrator failed to start. Check plugin installation." and STOP |
| Orchestrator returns error | Relay the error unchanged. Suggest /forge-recover diagnose for state issues |
| State corruption mid-run | Orchestrator handles recovery. If it escalates, suggest /forge-recover repair or /forge-recover reset |
/forge-fix -- Preferred entry point for bugfixes (richer source resolution than bugfix: prefix)/forge-shape -- Shape a vague idea into a structured spec before running the pipeline/forge-sprint -- Execute multiple features in parallel (preferred over --sprint flag)/forge-status -- Check pipeline progress during or after a run/forge-recover diagnose -- Diagnose pipeline health issues if a run fails/forge-recover resume -- Resume an aborted or failed run from its last checkpointdevelopment
[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.