forge
Skill6 starsChanged 33 days agoApache-2.0View on GitHub
Generate a synthetic org from a recipe. Usage /forge <slug> (e.g. /forge dev-mini). Runs the OrgSmith pipeline end to end, dispatching authoring batches to forked forge-author workers. Resumable; safe to re-run after an interrupted or killed session.
79 other projects use a version of this.
Adopted by
Most recently taken up by
- stericishere/skillstheir own version, first seen Nov 15, 2026
- venhdev/skillstheir own version, first seen Nov 8, 2026
- faizanio/FORGEtheir own version, first seen Nov 8, 2026
- jeanchristoph/claude_forgetheir own version, first seen Nov 6, 2026
- pche-broken-artist/forge-of-thoughttheir own version, first seen Nov 6, 2026
- rmkr/skillstheir own version, first seen Nov 5, 2026
Used with
Projects with it also use forge-ship, forge-docs and 9 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
redteamlifeSkillforge-ship
Use when the user asks to merge, release, promote, reconcile, or close out work in a repo containing `docs/forge/` or governed by FORGE. Not for per-task commits; those complete inside forge-execute-task.
Also in 6 projects that use this
weselbenSkillforge-docs
Load before code changes, before writing docs or an ADR, when a user question exposes a missing how-to, and when closing a chunk of work; also loaded by forge after each squash-merge and by deep-research after a report.
Also in 3 projects that use this
DailenGSkillforge-design
Design, UX, and polish discipline for the forge lifecycle. Covers the design tier, the design brief in docs/DESIGN.md, UX requirements and their verification methods, the per-slice design pass, the UX defect register, and the release polish pass. Load whenever work touches a user-facing surface (GUI, terminal, library API, or operated service), whenever a UX observation needs disposing of, and whenever a release is in reach.
Also in 3 projects that use this
DshamirSkillforge-plan
Takes analysis.json + budget cap → derives the full phase sequence, hyperparameters, instance type, cost estimate, and acceptance thresholds. Emits plan.md (the single human gate document) and plan.json (the machine-readable spec that dispatch-v2 consumes). Refuses to plan if estimated cost exceeds budget×1.2.
Also in 4 projects that use this
tonmoy007Skillforge-build
Run Stage 6 of the Forge pipeline — implementation. Use when the user says
Also in 3 projects that use this
TT-WangSkillforge-status
Show current forge project status, plan, and iteration history
Also in 3 projects that use this
Other versions79 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 79
- cwinvestments/memstack★ 433same name
- ansari-project/codev★ 298same name
- cluesmith/codev★ 298same name
- swyxio/skills★ 199same name
- simota/agent-skills★ 99same name
- alp82/forge★ 36same name
- TT-Wang/forge★ 35same name
- emiliosheinz/agent-skills★ 20same name
- MetalLegBob/solana-vibes-kit★ 19same name
- kecoma1/MQL5-SKILLS★ 17same name
69 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository4 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- forge-authorSkill
- forge-reviewerSkill
- forge-reviewSkill
The file
We split this skill into the rules it gives an agent
5 rules. 0 are common, 2 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 68 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 29
If doctor warned that effort is below the floor, STOP and ask whether to continue.
- Very specific: line 53
If it reports a provider, that provider and model author this run, not the ambient session.
- Distinctive: line 146
If an ingest is rejected, hand the rejection output to a fresh worker to fix that one batch (at most twice).
- Very specific: line 148
Render: After a round of ingests, run PY -m orgsmith render <slug> (idempotent.
- Very specific: line 191
Before opening a new authoring window, if the session feels close to its context or usage limits, let the outstanding batches ingest, run …
“Common” is measured: kept by at least 6 in 10 of the 68 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
/forge — orchestrate one org generation
You are the generation orchestrator. You run deterministic stages as shell commands and hand model work to forked workers. Keep only status summaries in your context; never read rendered documents or full ledgers into this conversation (that is what workers and validators are for).
PY below means the project venv python: .venv/bin/python.
Step 0 — orient (always, including on resume)
PY -m orgsmith doctor <slug>— capability probe. Stop and report if required capabilities are missing. If the recipe sets alegacy_ratio > 0and doctor reportssoffice absent, stop BEFORE any generation and tell the user to install LibreOffice (install command in CLAUDE.md, Environment section); render would otherwise fail mid-pipeline at the first legacy document.Report the authoring pair before spending a token. Doctor's
effortline prints the session effort against the documented authoring floor and warns when you are below it. State to the user, in one line: the exact model id you are running as (you know it from your own context; doctor cannot see it) and the effort doctor printed.If doctor warned that effort is below the floor, STOP and ask whether to continue. Content quality tracks the model and effort, nothing downstream can detect a weak authoring pass from the artifacts, and a regenerated org is expensive. This is the only moment the choice is free.
Both halves are self-reported and recorded per batch, never verified: see
orgsmith/effort.pyfor what the harness does and does not expose. (In BYO provider mode, Step 0.5, the provider and model author instead of the session; report the pair from--check, not this model line.)PY -m orgsmith status <slug> --json— this tells you exactly where a previous session stopped. Resume state is file-derived; never rely on conversation memory of earlier runs.
Step 0.5 — BYO provider mode (optional, off by default)
Bring-your-own-token authoring routes the model passes through a configured
API provider (the out-of-airlock drivers/ package) instead of forked
workers. It is OFF unless a provider is configured; when off, ignore this step
and run Steps 1-5 as written.
PY -m drivers.forge_external --check. If it reportsOFF (no provider selected), BYO mode is off: proceed to Step 1, the forked-worker path is unchanged.- If it reports a provider, that provider and model author this run, not the
ambient session. Report that provider/model pair to the user (in place of
Step 0's model line) and confirm it is
ready. - Delegate the generation to the driver:
PY -m drivers.forge_external <slug>(add--rootif you use one). It runs the pure stages, both model passes (enrichment and authoring, serial), and render/assemble/acl/validate/report itself, resuming fromstate.jsonthe same way this skill does. Report its validate summary. - Then skip Steps 1-4 (the driver ran them) and go to Step 5 (the optional board), which is unchanged: the board is a separate quality pass over whatever authored the org.
Step 1 — pure stages (Bash, in order, each idempotent)
PY -m orgsmith charter <slug>
PY -m orgsmith foundation <slug> --scaffold
PY -m orgsmith fabric <slug>
PY -m orgsmith docplan <slug>Step 2 — foundation enrichment (model pass)
Skip if status shows foundation_enrich: done.
PY -m orgsmith foundation <slug> --emit-context— prints the work order path.- Spawn a worker (Agent tool, fresh context, with the
modelandeffortparameters set as described in Step 3b) with this prompt: "Read<work-order-path>and follow the instructions in .claude/skills/forge-author/SKILL.md for an enrichment work order in the repo at<repo-root>. Org slug:<slug>." - The worker ingests its own deliverable. Confirm with
PY -m orgsmith status <slug> --json.
Step 3 — authoring loop (model passes, a parallel window of workers)
Author in a bounded parallel window: up to K = 4 batches in flight at
once (lower it when the session is tight on budget; K = 1 reproduces the old
serial loop exactly). Several batches are outstanding at the same time; each
covers a disjoint set of documents, so the workers never collide. The
deterministic merge stays serial and is YOURS, not the workers': you run
every --ingest, one at a time, so concurrent batches can never race on
state.json. The expensive part (the model authoring) is what parallelizes.
On entry and on resume, drain what is already outstanding first.
PY -m orgsmith status <slug> --json lists author_batches: work orders a
prior session dispatched but never ingested. Re-dispatch a worker for each
(Step 3b) before emitting anything new. Re-authoring an outstanding batch is
safe: its deliverable ingests against the same still-outstanding order, so
nothing is lost or duplicated. Resume truth is these files, never memory of
an earlier run.
Repeat until author: done:
- Fill the window (a). While fewer than K batches are outstanding and
work remains, run
PY -m orgsmith author <slug> --next-batch. Each call writes a fresh work order disjoint from every outstanding one and prints its path. Instead of a path it printsall batchable docs authored(the stage is done) orN batch(es) outstanding, awaiting ingest(the window is full or nothing fresh remains) — either way, stop filling. Dispatch the window concurrently (b). Spawn one forge-author worker per fresh work-order path, all in a SINGLE message (multiple Agent calls in one turn) so they author in parallel, each in a fresh context. Tell each worker to AUTHOR ONLY: write its reply file, stamp the generator, and report the reply path; it must NOT ingest.
Set the worker's model and effort at dispatch; do not rely on inheritance. Pass the Agent tool's
model(the family you reported in Step 0, e.g.opus) andeffort(at least the authoring floor doctor printed;xhighis what the committed fleet ran at). A worker does not always inherit the session's model, and an effort the harness was told is better provenance than one a worker guesses. Name the effort in the prompt too ("you were dispatched at effortxhigh"), so the worker stamps the value you set rather than reading it from its environment.Tell every worker to namespace its scratch files. Concurrent workers share one session scratchpad, so a fixed-name scratch file (
check.py,corpus.txt) gets clobbered by a sibling mid-run. Observed live in the M11b fleet run: two workers overwrote each other's validation scripts, and one then reported the other batch's failures as its own. No bad deliverable resulted (the airlock accepted every batch), but a worker that distrusts its own checks wastes a turn re-running them. Add to each dispatch prompt:Other workers run concurrently and share your scratchpad. Give any scratch file a name unique to this work order (suffix it
author-000N), and never trust a scratch file you did not just write.Their deliverables never collide —
reply-<work-order-id>.jsonis already per-order — so this is only about scratch.- Ingest serially (c). For each reply path a worker reports, run
PY -m orgsmith author <slug> --ingest <reply>yourself, one at a time. If an ingest is rejected, hand the rejection output to a fresh worker to fix that one batch (at most twice); if still rejected, stop and show it. - Render. After a round of ingests, run
PY -m orgsmith render <slug>(idempotent; it skips docs whose content basis is unchanged) so the org stays browsable early and errors surface near their cause. - Refill the window and continue until
--next-batchreports done.
Why you ingest and the workers do not: --ingest is a read-modify-write of
state.json, and you are the one place a rejection is handled. Every
state-writing verb takes an exclusive lock on the org (M17d), so two
overlapping ingests can no longer clobber each other; that is the backstop.
Serial ingest by you is still the procedure, because it keeps rejections,
retries and render in one ordered place and makes a run easy to read.
Step 4 — finish
PY -m orgsmith render <slug>
PY -m orgsmith assemble <slug>
PY -m orgsmith acl <slug>
PY -m orgsmith validate <slug>
PY -m orgsmith report <slug>Report the validate summary. If validate fails, show the failing rules and stop; never edit ledgers or rendered files by hand. A NAME-01 finding (a generated name collides with a real firm) blocks committing the org: fix the recipe name or bump the seed and regenerate, never the ledger.
report writes GENERATION-REPORT.md (derived, under -metadata/): the
per-batch generator record, each document's length against the words its
brief asked for, and same-genre similarity. It gates nothing. Read the
summary line; a corpus far off brief or a high same-genre pair is worth a
look before the org is committed.
Step 5 — the board (optional, model passes)
validate proves the documents agree with the ledgers. It says nothing
about whether the prose reads like a real firm wrote it. For that, run
/forge-review <slug>, which dispatches fresh-context reviewers and
merges their findings into the same report. It is read-only and never
gates; skip it for a throwaway org.
Budget awareness
Before opening a new authoring window, if the session feels close to its
context or usage limits, let the outstanding batches ingest, run render, and
tell the user to re-run /forge <slug> in a fresh session; Step 3's resume
drain picks up exactly where this session stopped (status --json still
lists any batch that was dispatched but not yet ingested). Shrinking K also
lowers the per-window cost without losing resumability.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

