From forge
Create a subject-named specification from any evidence source using a reducer-based Forge workflow. Use this when the user wants a planning-ready spec, a clean-room reverse spec, or an evidence-first feature spec with sub-agent fanout, provenance tracking, adaptive clarification, speculative variants, and a canonical readiness contract.
How this skill is triggered — by the user, by Claude, or both
Slash command
/forge:forge-orchestratorThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use this as the top-level skill for the pack.
Use this as the top-level skill for the pack.
The main session is the only reducer of canon.
Sub-agents may read canon and return typed patch proposals, but they may not
write specs/<subject>.md directly.
Trigger when the user wants to:
forge-orchestrator owns the canonical readiness verdict.sparse analogy_feature or parity_clone run with
question_rounds_completed = 0 may never end in PLANNING_READY.handoff_status must remain WITHHELD even if the draft is
coherent.Every run must carry these canonical fields in manifest.json and
run-state.json:
policy_versionrequest_archetypestarting_evidence_densitysource_origin_keysplanning_statushandoff_statusblocker_reasonscritical_decision_coveragequestion_rounds_completedrequired_clarifications_remainingassumption_loadassumption_risk_scoreunconfirmed_product_decisionsacceptance_scenarios_presentcorroboration_scoreadversarial_rounds_completedadversarial_statusadversarial_findings_totaladversarial_findings_resolved_by_researchadversarial_findings_resolved_by_userbeads_generatedbeads_epic_idbeads_review_rounds_completedbeads_review_statusbeads_totalbeads_epilogue_countbeads_followup_countbeads_coverage_scorebeads_workspace_pathloop_strategyforge-orchestrator is the only skill allowed to finalize:
planning_statushandoff_statusblocker_reasonsOther skills emit structured inputs to that verdict.
Use these states:
planning_status
DISCOVERYAWAITING_CLARIFICATIONSPECULATIVE_DRAFTADVERSARIAL_REVIEWPLANNING_READYhandoff_status
WITHHELDELIGIBLETransitions:
PLANNING_READYAWAITING_CLARIFICATIONSPECULATIVE_DRAFThandoff_status=ELIGIBLE only when planning_status=PLANNING_READYhandoff_status=WITHHELDsparse analogy_feature or parity_clone plus zero question rounds must
resolve to AWAITING_CLARIFICATION or SPECULATIVE_DRAFT, never
PLANNING_READYADVERSARIAL_REVIEW entry requires: blocker_reasons empty, all critical
decision buckets closed, completeness_score >= 80,
evidence_confidence_score >= 80, and synthesis-review verification passedADVERSARIAL_REVIEW → PLANNING_READY only when adversarial rounds
converge (zero material findings by agent consensus)ADVERSARIAL_REVIEW → AWAITING_CLARIFICATION if adversarial review
surfaces ambiguity only the user can resolve, or if the round cap is hit
(decomposition required)ADVERSARIAL_REVIEW → SPECULATIVE_DRAFT if adversarial review re-opens
blocker reasonsEvery sub-agent result must include:
branch_idparent_revisiontouched_sections[]proposed_changes[]confidence_notesApply results only if parent_revision matches canon.
If canon advanced, rebase, revalidate, or discard.
Merge order:
Treat the workflow as a persisted state machine:
INTAKEEVIDENCE_FANOUTREDUCE_AND_MERGEGAP_ANALYSISUSER_INPUTDRAFTVERIFYREADINESS_GATEADVERSARIAL_REVIEWPLAN_HANDOFFBEADS_GENERATION (optional — user prompted after PLAN_HANDOFF)BEADS_REVIEW (optional — runs if BEADS_GENERATION completed)Each phase needs entry criteria, exit criteria, and a checkpoint artifact in
specs/_artifacts/<subject>/run-state.json.
Phases 8–12 auto-chain. After each phase completes, check run-state.json and invoke the next skill. Do not summarize. Do not ask the user. Invoke it.
READINESS_GATE passes → invoke spec-synthesis-review
synthesis-review passes → invoke spec-adversarial-review
adversarial-review converges → invoke spec-plan-handoff
PLAN_HANDOFF completes → prompt user for beads (ONLY allowed pause)
BEADS_GENERATION done → invoke spec-beads-review
Between auto-transition phases, emit one status line (e.g., "READINESS_GATE passed → running spec-synthesis-review") and invoke the next skill. No multi-line summaries. No options. No questions.
The only reasons to pause mid-pipeline are: (a) a gate fails and the run loops back, or (b) the user must choose whether to generate beads after plan handoff.
A Stop hook enforces this contract mechanically. If you stop between auto-transition phases, the hook will block the stop and tell you to continue.
ADVERSARIAL_REVIEW phase contract:
completeness_score >= 80,
evidence_confidence_score >= 80, blocker_reasons empty)spec-plan-handoff. The auto-transition rule
governs. Do not pause.adversarial-review-log.mdBEADS_GENERATION phase contract:
PLAN_HANDOFF complete, user accepts beads promptbeads-manifest.json emitted, all beads created via brbeads-manifest.jsonPLAN_HANDOFFBEADS_REVIEW phase contract:
BEADS_GENERATION complete — proceed immediately, do not prompt the
user. Beads review is mandatory whenever beads are generated.beads-review-log.mdEPILOGUE_CYCLE concept (applies during implementation, after beads review):
--parent <epic-id> — orphan
follow-ups are a hard errorspec-intakeAfter spec-intake completes, present the user with a choice:
ralph-loop <epic-id> externally.If user chooses B:
autoresearch-loop skillloop_strategy = "autoresearch" in run-state.jsonIf user chooses A (default):
spec-loopspec-completenessspec-synthesis-reviewspec-adversarial-reviewspec-plan-handoffspec-beads-generate (optional — only if user accepts beads prompt)spec-beads-review (mandatory if beads were generated — proceed immediately,
do not prompt the user)Loop back to spec-loop or spec-completeness whenever verification fails or
blockers remain. If spec-adversarial-review escalates back, pass the
adversarial-escalation.json artifact as input to the targeted spec-loop
round so it addresses the specific findings rather than running a generic pass.
If spec-beads-review triggers a back-transition, pass the
beads-escalation.json artifact as input to the targeted spec-loop round.
spec-loop treats beads-escalation.json identically to
adversarial-escalation.json — scope the round to the listed findings.
When loop_strategy = "autoresearch" and the user returns after convergence:
.autoresearch/research-log.jsonl for final score.autoresearch/retrospective.md for process insightsplanning_status = READINESS_GATE in run-state.jsonDefault sub-agent roles:
evidence-explorerquestion-generatorcontradiction-reviewercompleteness-reviewerprovenance-reviewerspec-section-drafterimplementability-reviewerartifact-curatorUse the runtime's agent or subprocess mechanism for delegation (Agent tool in Claude Code, sub-agents in Codex).
Delegate when work is:
Keep work local when it changes canon, readiness, or user interaction policy.
For adversarial review, create agent teams via TeamCreate:
For beads review, create agent teams via TeamCreate:
bv --robot-* commands)Ask the user when critical decision coverage is incomplete and passive evidence is exhausted or lower value.
Every question must map to:
Ask the user directly when available.
Batch the smallest independent unblocker set, default max 3.
Offer a recommended default pack when a full answer can be approved quickly.
Classify every run into one of:
featureanalogy_featureparity_cloneintegrationbugfixmigrationrefactorreverse_specAnalogy-driven prompts such as "like X" or "replicate X" default to
analogy_feature unless strong contrary evidence exists.
These buckets drive readiness:
core_outcomescope_boundaryimplementation_constraintsdependencies_and_integrationsacceptance_signalEvidence density is a routing hint, not the sole readiness gate. A single explicit prompt may be enough if it closes these buckets without relying on unconfirmed assumptions. Analogy-driven sparse prompts do not get that exception by default.
Root index:
specs/README.mdCanonical spec:
specs/<subject>.mdProject-level (not per-spec — persists across all Forge runs):
UBIQUITOUS-LANGUAGE.md — domain glossary at the project root, created
during intake if missing, updated throughout the pipeline and by epilogue
beadsAGENTS.md — project agent conventions at the project root, created or
updated by epilogue beads; read during intake, loop, adversarial review, and
plan handoff to carry forward learnings across runs.claude/skills/ — project-scoped agent skills, created or updated by
epilogue beads, referenced as-needed during implementation workSidecars:
manifest.jsonrun-state.jsonbranch-registry.jsonevidence-ledger.jsonlclaim-ledger.jsonlinput-log.mdspec-ledger.mdquestion-backlog.mdcompleteness-matrix.mdcontradiction-log.mddecision-log.mdreview-report.mdimplementation-plan.mdadversarial-review-log.mdadversarial-round-N.jsonadversarial-escalation.jsondecomposition-proposal.mdsub-spec-brief-<name>.mdbeads-manifest.jsonbeads-review-log.mdbeads-review-round-N.jsonbeads-decomposition-proposal.mdbeads-escalation.jsonEvery successful Forge run must leave behind a root specs/README.md.
Rules:
specs/README.md is missing, create it before or alongside the subject specManaged block markers:
<!-- forge:spec-index:start --><!-- forge:spec-index:end -->The root index is for discovery and navigation. The subject spec is the backing artifact to hand to an external implementation loop or another agent.
npx claudepluginhub mwarger/forge --plugin forgeCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.