A planning and execution pipeline for complex, multi-file coding tasks.
Install
mkdir -p .claude/skills/forge && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/17134" && unzip -o skill.zip -d .claude/skills/forge && rm skill.zipInstalls to .claude/skills/forge
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Ore in, steel out. Planning pipeline with independent verification, persistent memory, and compounding knowledge. Use for 3+ files or unclear scope.Key capabilities
- →Refine plans through iterative cycles
- →Verify task completion with independent checks
- →Maintain persistent session memory across phases
- →Track progress with statusline and rich status updates
- →Spawn and manage sub-tasks with parent blocking
How it works
The skill uses a two-machine approach: a Plan Forge refines the plan through iterative cycles and gates, and a Verification Chain proves task completion, all while maintaining persistent memory.
Inputs & outputs
When to use forge
- →Handle multi-file refactoring
- →Manage complex architectural changes
- →Execute unclear coding tasks
About this skill
Forge — Ore In, Steel Out
Two machines: Plan Forge (refine until bulletproof) + Verification Chain (prove it's actually done). Ralph provides persistence.
When to Use
- Task touches 3+ files or has unclear scope
- Architecture decisions needed
- User says "forge", "forge plan", or task needs verified planning
- Previous attempt failed — need to reassess
Scaling
Quick fix (<3 files, clear) → skip forge, direct executor + MICRO-VERIFY
Standard (3-10 files) → PLAN FORGE → EXECUTE → VERIFICATION CHAIN
Complex (10+, architectural) → PLAN FORGE --full → EXECUTE with checkpoints → CHAIN
Vague input → PLAN FORGE --discuss → rest as standard
State
Use mode: "ralph" with session_id. Phase prefix bf- distinguishes from plain ralph.
{"mode":"ralph","session_id":"<session>","current_phase":"bf-forge|bf-execute|bf-verify",
"state":{"planning_mode":"forge","forge_iteration":1,
"gates":{"skeptic":null,"integration":null,"second_opinion":null},
"verify":{"evidence":null,"auditor":null},
"completed_steps":[],"slug":"task-name"}}
HUD Integration
Forge writes status to two channels on every phase transition:
1. Statusline (via state_write)
Shows ralph:N/M in the terminal statusbar. N = current forge iteration, M = max (default 5).
Call state_write at each phase transition:
state_write(
mode: "ralph",
active: true,
iteration: <forge_iteration>,
max_iterations: <total_phases>,
current_phase: "bf-<phase>",
task_description: "<slug>",
session_id: <session_id>,
state: {
planning_mode: "forge",
gates: { skeptic: "PASS"|"FAIL"|null, integration: ..., second_opinion: ... },
steps_done: N,
steps_total: M
}
)
2. Rich status (via notepad_write_priority)
Shows detailed progress in notepad (visible via notepad_read). Update at each transition:
notepad_write_priority(
content: "[FORGE] <PHASE> v<iter> | <gate_summary> | <steps_done>/<steps_total> steps"
)
Examples at each stage:
[FORGE] PRECEDENT | — | 0/8 stages
[FORGE] RESEARCH | — | 1/8 stages
[FORGE] CHALLENGE | — | 2/8 stages
[FORGE] PLAN v1 | — | 3/8 stages
[FORGE] REVIEW v1 | Skeptic:PASS Integration:— 2nd:— | 3/8 stages
[FORGE] REVIEW v1 | Skeptic:PASS Integration:PASS 2nd:FAIL | 3/8 stages
[FORGE] PLAN v2 | ↑ revising: 2nd opinion found P1 issue | 3/8 stages
[FORGE] REVIEW v2 | Skeptic:PASS Integration:PASS 2nd:PASS | 3/8 stages
[FORGE] EXECUTE | ALL GATES PASSED | 5/7 steps done | 5/8 stages
[FORGE] VERIFY | Evidence:— Auditor:— | 6/8 stages
[FORGE] VERIFY | Evidence:PASS Auditor:PASS | 7/8 stages
[FORGE] DOCS-REFRESH | VERIFIED | 8/8 stages
Phase map (for progress tracking)
| # | Phase | Description |
|---|---|---|
| 1 | PRECEDENT | Search institutional knowledge |
| 2 | RESEARCH | Read files, spike assumptions (top-3 mandatory) |
| 3 | CHALLENGE | Independent review of approach |
| 4 | CLARIFY | User questions + visionary mode selection |
| 5 | PLAN-DRAFT | Write plan with typed claims |
| 6 | VISIONARY | N parallel passes (optional) |
| 7 | COMPARATOR | 3-tier classify + reality-check (if visionary ran) |
| 8 | USER-DECIDE | Pick standard / visionary / merge |
| 9 | PLAN-FINAL | Rewrite plan per decision |
| 10 | REVIEW | Sealed blind parallel + stacked meta |
| 11 | EXECUTE | Cascade gemini->opus, TDD |
| 12 | VERIFY | Evidence + Auditor |
| 13 | DOCS-REFRESH | Docs + DB sweep |
For the statusline max_iterations: use forge iteration cap (default 5) during PLAN/REVIEW loop. Switch to 13 (total stages) during EXECUTE onward.
On completion/failure
state_write(mode: "ralph", active: false, completed_at: <ISO>)
notepad_write_priority(content: "[FORGE] DONE ✓ | <slug> | <total_time>")
mempalace_diary_write(
agent_name: "claude-code",
topic: "forge-<slug>",
entry: "FORGE:<slug>|iters:N|gates:PASS|spikes:M|drawers:K|lesson:<AAAK summary>"
)
On failure:
notepad_write_priority(content: "[FORGE] BLOCKED | <slug> | <reason>")
Non-blocking diary guarantee (D): mempalace_diary_write failure (timeout, MCP error, palace unavailable) MUST NOT block forge completion. Per the A runtime degradation contract: catch the failure, log [palace-degraded] diary_write failed: <reason> to notepad, mark forge completed in forge.db regardless. Forge completion is the source of truth; the diary entry is a secondary write.
Machine 1: Plan Forge
Refinement loop. Two phases: draft the plan, then gate it. Cycles until all 3 gates pass.
PRECEDENT → RESEARCH (+top-3 mandatory spikes) → CHALLENGE → CLARIFY (+visionary?) →
PLAN-DRAFT (typed claims) → [VISIONARY STREAM] → [COMPARATOR] → USER DECISION →
PLAN-FINAL → REVIEW (blind parallel + stacked meta) →
EXECUTE (cascade: gemini→opus) → VERIFY → DOCS-REFRESH (+DB sweep)
PRECEDENT — search institutional knowledge first
Before touching code, search what the project already knows:
- Grep CLAUDE.md for gotchas mentioning touched files/systems. Surface them explicitly.
- Grep
.omc/plans/(if exists) for past plans touching same systems. Note approach + outcome. - Read
docs/architecture/{system}.md(if exists) to understand current design. - Read CLAUDE.md
## Common Failuressection (if exists) for known failure patterns. - Query
.omc/forge.db(if exists) — past forge runs, risk scores, cached spikes:
Surface: "reply-worker + engage-scheduler fail Integration 60% — include both in scope?"-- Past runs on these systems SELECT slug, status, iteration, json_extract(context, '$.lesson') as lesson FROM forges WHERE systems LIKE '%<system>%' AND status IN ('completed','abandoned') ORDER BY completed_at DESC LIMIT 5; -- Risk scores SELECT system, fail_rate, avg_iterations FROM system_risk WHERE system IN ('<system1>', '<system2>'); -- Cached spikes (don't re-test confirmed assumptions) SELECT assumption, result, actual FROM spikes WHERE permanent = 1 OR tested_at > datetime('now', '-30 days'); -- Co-failure warnings SELECT system_a, system_b, gate, ROUND(1.0 * fail_count / total_count, 2) as fail_rate FROM co_failures WHERE (system_a IN ('<systems>') OR system_b IN ('<systems>')) AND CAST(fail_count AS REAL) / total_count > 0.3; - For large codebase scans, prefer
ctx_batch_executeto keep research results in sandbox. - MemPalace palace + KG recall (A). In the same message, spawn a parallel fan-out:
mempalace_search(query="<touched-systems keywords>", wing="<project slug>", limit=5)— semantic recall across code + docs + convosmempalace_kg_query(entity="<system>")— one call per touched system for typed facts (deps, status, models, incidents)mempalace_diary_read(agent_name="claude-code", last_n=3)— recent agent diary entries for cross-session context Summarize results into a## Prior institutional contextsection that is prepended to PLAN-DRAFT. Runtime degradation contract: each palace call has a 10s soft timeout. On timeout, error, or MCP-unavailable, log one line vianotepad_write_priorityprefixed[palace-degraded] <call> failed: <reason>, skip the failing call, and continue PRECEDENT with file-based sources only. NEVER block or retry-loop on a palace call — forge must remain forward-progressable when MCP is flaky. The same contract applies to every palace call mentioned elsewhere in this skill (Skeptic kg_query, draft commits, completion diary_write, spike mirror). If the--no-mempalaceflag is set, skip steps 7 entirely.
RESEARCH — verify everything, assume nothing
- Read EVERY file being touched. Grep ALL usages: calls, type refs, imports, re-exports, barrel files, mocks, string references.
scc --by-file <dirs>(if installed) — flag high-complexity files for careful reading.- External API/lib → fetch docs via context7 or WebSearch. Don't assume — verify.
- Spike anything testable in <5 minutes. One assumption per spike. Disposable.
- Record:
✅ confirmed: [assumption]or❌ refuted — actual: [reality] - Refuted spike = immediate adjustment. Never carry known-false assumptions.
- Record:
- Spikes happen in ANY phase. If testable in <5 min → test it NOW.
CHALLENGE — challenge the approach BEFORE writing the plan
Self-challenge first: What am I assuming? What's the simplest approach? What breaks?
Then get an independent challenge on the APPROACH (not the plan yet — that comes at REVIEW):
- Check if codex is available:
which codex - If available: write approach summary to /tmp, run
codex exec "Review this approach. What are the 3 most likely failure modes?" -C <repo> -s read-only -c 'model_reasoning_effort="high"' - If unavailable:
Agent(model="opus", prompt="You are a senior engineer who has NEVER seen this codebase. Here is the proposed approach: [approach]. Find the 3 most likely failure modes.")
If challenge reveals a fundamental flaw → revise approach before writing the plan.
CLARIFY — ask user only for genuine design decisions
- Classify unknowns: self-decidable vs needs user input.
- Self-decide where possible. Document decision + rationale in plan.
- Ask user ONLY for genuine design choices.
- Format: structured questions with 2-3 options + recommendation + reasoning.
Visionary stream question (ask at end of CLARIFY)
Adaptive default based on scope:
Visionary stream — search for a "significantly better" approach?
a) skip ← default if <3 files
b) 1 pass ← default if 3-10 files
c) 3 passes ← default if 10+ files
d) N passes (any number, no token limit)
Save choice to forges.context as visionary_mode. If --no-visionary flag, auto-select a.
Planner agent selection (v3 is default)
Before invoking the planner agent, select it inline from the
Content truncated.
When not to use it
- →For quick fixes involving fewer than 3 files and clear scope
- →When a task does not require verified planning
- →When the task is simple and does not need architectural decisions
Limitations
- →The planning loop has a default iteration cap of 5
- →Integration re-plan cap is set at 5 iterations
- →The skill's full benefit requires project setup with specific file structures
How it compares
Unlike direct execution, this skill incorporates a structured planning pipeline with independent verification and persistent memory, ensuring quality for complex or ambiguous tasks.
Compared to similar skills
forge side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| forge (this skill) | 0 | 4mo | Review | Advanced |
| executing-plans | 6 | 3mo | No flags | Intermediate |
| task-think | 1 | 1mo | No flags | Advanced |
| map-workflows-guide | 0 | 5mo | Review | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
executing-plans
obra
Use when you have a written implementation plan to execute in a separate session with review checkpoints
task-think
telegramdesktop
Orchestrate a multi-phase implementation workflow for this repository with artifact files under .ai/task-slug and optional fresh codex exec child runs per phase. Use when the user wants one prompt to drive context gathering, planning, implementation, verification, and review iterations while keeping the main session context clean.
map-workflows-guide
diegosouzapw
Comprehensive guide for choosing the right MAP workflow based on task type and requirements
executing-plans
liujiarui0918
Use to execute a written plan. Run tasks in batches with human checkpoints.
aif-improve
vanyastaff
Refine and enhance an existing implementation plan with a second iteration. Re-analyzes the codebase, checks for gaps, missing tasks, wrong dependencies, and improves the plan quality. Use after /aif-plan to polish the plan before implementation, or to improve an existing /aif-fix plan.
brainstorming
doviettung96
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements, and design before implementation.