agentleFS
weselbenweselben/RooForge/skills/forge/SKILL.md

forge

Skill4 starsChanged 3 months agoApache-2.0View on GitHub

Always load first — before responding to any user prompt — unless the user states otherwise in the prompt itself. Examples that trigger forge: 'let's continue on the auth refactor', 'work on the next ticket', 'open the map for the payment effort', 'what's next', 'start a new effort: <idea>'. Mandatory while any goal or map is active.

78 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use forge-ship, forge-review 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.
  • redteamlifeSkill

    forge-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

  • tonmoy007Skill

    forge-review

    Run a multi-dimensional parallel code review over the current change.

    Also in 8 projects that use this

  • DailenGSkill

    forge-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

  • DshamirSkill

    forge-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

  • tonmoy007Skill

    forge-build

    Run Stage 6 of the Forge pipeline — implementation. Use when the user says

    Also in 3 projects that use this

  • TT-WangSkill

    forge-status

    Show current forge project status, plan, and iteration history

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

9 rules. 0 are common, 3 are distinctive, and 6 are very specific to this project.

  • 0

    Common

    Most of the 67 edited versions we read keep these.

  • 3

    Distinctive

    This author's own choices. Worth a look.

  • 6

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Mandates are mandatory: When any skill or message uses *must*, *mandatory*, *MUST*, or *always*, follow it exactly.

    line 17
  2. Very specific:

    No map → invoke wayfinder chart mode (grilling + domain-modeling → map + tickets).

    line 32
  3. Very specific:

    Parallel map work: when the map has multiple independent fog patches, invoke dispatching-parallel-agents to work them concurrently.

    line 33
  4. Distinctive:

    When the frontier is empty:

    line 48
  5. Very specific:

    Done when: every worktree has produced a squash commit on the feat branch, each commit a complete Conventional Commit, and forge-docs has …

    line 64
  6. Very specific:

    Write PR description using ste100.

    line 69
  7. Very specific:

    Run pr-review in PR mode (owner/repo#n).

    line 82
  8. Distinctive:

    If the map is already clear (no open frontier tickets) on load, skip to Plan.

    line 113
  9. Very specific:

    When forge invokes dispatching-parallel-agents or loops, the role in forge's orchestration MUST be part of the subagent prompt.

    line 143

“Common” is measured: kept by at least 6 in 10 of the 67 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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Forge

Forge owns a sequence the agent runs every session: map → resolve → plan → work → verify → review → resolve. Each step ends on a checkable criterion; the next step is the proof.

Invariant rules

These are binding on every session where forge is active.

  • Mandatory load. Forge loads at every session start. No chat until forge-flow, caveman (ultra), and wayfinder are loaded. Forge is the orchestrator.
  • Mandates are mandatory. When any skill or message uses must, mandatory, MUST, or always, follow it exactly. No hedging. The author wrote those words to prevent a concrete failure.
  • caveman is default. caveman(ultra) is active every response. Off only on explicit "stop caveman" / "normal mode". Code, commit messages, PR bodies follow their own skill formats; everything else is caveman.
  • Own repos only. Forge operates only in repos owned by the user's git identity. No pushes, no issues, no PRs in unfamiliar or public repos. For an upstream repo (x/y): gh repo fork x/y --clone && gh repo edit --visibility private --accept-visibility-change-consequences. Private z/y is the work surface.
  • Single path. One flow through the steps. No branching in the orchestrator. Each step ends on a checkable criterion; the next step is the proof.
  • Forge Flow first. forge-flow runs before step 1: creates the feat branch from main, sets the harness goal, hands off. Forge never creates branches or goals.

Auto-load at session start

forge-flow, caveman (ultra), and wayfinder. No chat until all are loaded.

Flow

1. Map — load or chart

  • Map URL or number given → load it.
  • No map → invoke wayfinder chart mode (grilling + domain-modeling → map + tickets).
    • Parallel map work: when the map has multiple independent fog patches, invoke dispatching-parallel-agents to work them concurrently. Each subagent receives its fog area as {{item}} plus broader context (destination, notes, decisions-so-far) AND task context (exact fog description, what questions to resolve). STE100 prose, no ambiguity.
  • Map clear on load → skip to step 3.

Done when: the map issue is loaded and open frontier tickets are visible.

2. Resolve — work one ticket

Invoke the skill the ticket's wayfinder:<type> label names (grilling, prototype, deep-research, domain-modeling, task). Wayfinder records the resolution and closes the ticket.

After every grilling ticket closes, invoke domain-modeling to sweep for new terms (update docs/dev/CONTEXT.md) and decisions worth recording (add ADR to docs/adr/). Don't wait for the user — the model crystallises the moment a decision lands.

Done when: the ticket is closed, the map's Decisions-so-far points at it, and any new domain terms/ADRs are captured. One ticket per session (research subagents in parallel excepted).

3. Plan — break the cleared map into ordered tasks

When the frontier is empty:

  1. Invoke planning-and-task-breakdown.
  2. Enter plan mode, write the plan file, request user approval.
  3. Do not exit plan mode yourself.

Done when: the user has approved the plan file.

4. Work — delegate to subagent-driven-development

Once the plan is approved, hand off to subagent-driven-development. SDD owns: worktree creation (using-git-worktrees), per-task subagent swarm (dispatching-parallel-agents), per-task review, fix loop, integration, and squash-merging into the feat branch as one natural Conventional Commit per subagent (e.g. feat(api): add user profile endpoint, not ticket-1).

If conflicts occur during parallel worktree integration, load resolving-merge-conflicts. It resolves hunk-by-hunk; for multi-branch conflicts it delegates back to SDD to unblock in parallel. Rebase conflicting branches onto the integration branch head first, then resolve.

After squash-merge, load forge-docs and follow it. Docs updates travel with the squash commit.

Done when: every worktree has produced a squash commit on the feat branch, each commit a complete Conventional Commit, and forge-docs has been applied.

5. PR — draft with creating-pull-requests

  • Open PR draft using creating-pull-requests (draft mode, AI disclosure).
  • Write PR description using ste100.
  • Update the PR description after each squash commit lands.

Done when: the PR draft covers every task with a real commit and a ste100 description.

6. Verify — verification-before-completion

Load verification-before-completion. Run the full test suite on the merged feat branch. Check each subagent's claimed state against git status and the suite result.

Done when: the suite is green and every subagent claim is verified against actual output.

7. Review — pr-review

Run pr-review in PR mode (owner/repo#n). It runs in a worktree, drives a kimi -p loop via loops, posts ONE review under the authenticated user's identity in caveman-review format.

Done when: the review URL exists; 🔴 or 🟡 findings → step 8.

8. Resolve findings — pr-resolve

pr-resolve consumes pr-review output. One resolver per finding group, each in its own worktree off the PR head, commits under use-git-identity, pushes, replies in each review thread. Then re-run pr-review. The loop ends when no 🔴/🟡 findings remain.

If merge conflicts occur during push, load resolving-merge-conflicts — it runs steps 1–3, and for multi-branch conflicts delegates to subagent-driven-development to unblock in parallel.

Done when: no 🔴/🟡 findings, push clean. The user merges.

Session Start Behaviour

Autonomous by default: pick the next unclaimed ticket and resolve it. Only interrupt when every open ticket is HITL-blocked — then surface the map's URL with what's needed.

forge session start
  │
  ├─── load always-on: caveman(ultra) · wayfinder
  │
  ├─► map provided? ──yes──► load ──► work
  │
  ├─► map exists in tracker? ──yes──► load ──► work
  │                                      ├─► all tickets HITL-blocked?
  │                                      │     └── surface map link + needs
  │                                      └─► else work next ticket
  │
  └─► no ──► wayfinder chart map ──► work

If the map is already clear (no open frontier tickets) on load, skip to Plan.

Git Flow

main
  └── feat/wayfinder-<map-name>
        ├── worktree/ticket-1 → squash → feat(api): add user profile endpoint
        ├── worktree/ticket-2 → squash → fix(auth): accept trailing whitespace
        └── worktree/ticket-3 → squash → refactor(db): extract connection pooling
        → PR draft → verify → pr-review ↔ pr-resolve → user merges

Docs Structure

On session load, know where everything lives:

PathWhat lives there
docs/adr/Architecture Decision Records — hard-to-reverse, surprising, trade-off decisions
docs/dev/CONTEXT.mdDomain glossary — one CONTEXT.md per context
docs/dev/CONTEXT-MAP.mdMulti-context map (only if multiple contexts exist)
docs/dev/agents/Deep research reports — <topic>.md
docs/guides/How-to guides
docs/system-design/System design documents
docs/public/Public-facing docs
.worktrees/<task-slug>/Isolated worktrees for parallel subagents

Role Mandate for DPA/loops

When forge invokes dispatching-parallel-agents or loops, the role in forge's orchestration MUST be part of the subagent prompt. The prompt template passed to AgentSwarm or run_loop.sh MUST include a Role Mandate block:

MANDATORY ROLE MANDATE — your role in forge's orchestration:
- You are a [role: e.g. "map fog resolver", "PR reviewer", "conflict resolver"]
- You run in [phase: e.g. "map charting", "PR review", "conflict resolution"]
- Your output feeds [next step: e.g. "map Decisions-so-far", "PR review body", "resolved PR"]
- Do not step outside this role. No autonomous decisions beyond your mandate.

This ensures subagents know their place in the single path. It also makes it possible (not implied) for future parallel map work: when one fog area unblocks, another can start because the role mandate defines the boundary.

  • loops is the single home for all kimi -p iteration. Used by: pr-review, pr-resolve. No other skill uses kimi -p loops — deep-research refinement passes use dispatching-parallel-agents, not loops.
  • dispatching-parallel-agents is the single home for all parallel subagent swarms. Used by: map charting (fog areas), deep-research (parallel research), SDD (per-task swarm), resolving-merge-conflicts (multi-branch conflicts).

Sidecar skills

Domain skills that ride alongside the flow — load them when the task touches their domain:

  • 12-factor-app — SaaS / cloud-native / microservice design or review
  • kiss-principle — design or code smells over-engineered
  • frontend-design — building or reshaping UI with a distinctive visual direction
  • forge-tailwindcss-conventions — Tailwind CSS work
  • forge-eu-accessibility — EU accessibility (BFSG/EAA/WCAG) work
  • forge-seo — SEO work (meta, sitemaps, structured data, Core Web Vitals)

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.