A curated set of AI agent skills for orchestrating large efforts on an issue tracker — from a loose idea to a merged PR. The repo defines the skills; the forge drives the flow; the tracker carries the map.
The repo has two layers:
skills/— 35 vendor-agnostic skills an agent loads mid-session. Communication skills (caveman, ste100, conventional-commits) govern all text. Orchestrator skills (forge, forge-flow, loops) drive the session. Planning skills (wayfinder, grilling, prototype, deep-research, planning-and-task-breakdown, domain-modeling) shape the map. Execution skills (using-git-worktrees, subagent-driven-development, dispatching-parallel-agents, finishing-a-development-branch, verification-before-completion, pr-review, pr-resolve, creating-pull-requests) build the code. Bootstrap skills (forge-init, forge-setup, forge-docs, forge-cleanup) maintain the repo itself. Sidecar skills (12-factor-app,kiss-principle,frontend-design,forge-tailwindcss-conventions,forge-eu-accessibility,forge-seo) ride alongside — domain conventions loaded when the task touches them.docs/— convention scaffolding for the artefacts the agent produces: ADRs indocs/adr/, system designs indocs/system-design/, how-to guides indocs/guides/, deep research artifacts indocs/dev/agents/. RFC-style decisions live as wayfinder tickets on the tracker, not as docs files.
Counts use OpenAI o200k_base, which Tiktokenizer marks compatible with GPT-5.6.
| Scope | Count |
|---|---|
Session-start SKILL.md bodies (forge, forge-flow, caveman, wayfinder) |
7,547 tokens |
Session-start name and description values |
262 tokens |
All 35 SKILL.md bodies, excluding frontmatter |
39,018 tokens |
All 35 name and description values |
1,188 words, 1,803 tokens |
Counts cover prompt text only. They exclude tool schemas, chat framing, and harness overhead.
Copy this prompt into a new agent session:
Download the forge-setup skill from https://raw.githubusercontent.com/weselben/RooForge/main/skills/forge-setup/SKILL.md.
Install it at `<harness-config-dir>/skills/forge-setup/SKILL.md`. If no harness-specific skill directory exists, install it at `~/.agents/skills/forge-setup/SKILL.md`.
Load the skill and follow its procedure exactly. Use a temporary clone for discovery and patches. Ask before changing my harness configuration.
After forge-setup completes, invoke forge-init by name once per repo. forge-init is user-invoked. Then start working with a prompt like "work on the next ticket" or "let's continue the auth refactor". The always-loaded forge skill invokes forge-flow and runs the full flow.
The skills in this repo have the following external dependencies. Ensure these are available on your system before running the corresponding skills.
| Skill | Required tools / dependencies |
|---|---|
| forge, forge-flow, wayfinder, git-issue-tracker, creating-pull-requests, pr-review, pr-resolve, finishing-a-development-branch | gh (GitHub CLI, ≥2.0), authenticated (gh auth status) |
| forge-init, wayfinder | gh + gh api (label creation, sub-issue wiring) |
| loops, pr-review, pr-resolve | bash (POSIX), kimi -p (or harness equivalent after forge-setup) |
| using-git-worktrees, subagent-driven-development, finishing-a-development-branch | git (≥2.20 for git worktree), project test runner (npm test / cargo test / pytest / go test ./...) |
| using-git-worktrees | Project package manager if package.json exists (npm/pnpm/yarn) |
| deep-research | Web search capability (harness tool or curl + jq for API fallback) |
| forge-eu-accessibility, forge-seo | Web search + URL fetch capability (e.g. WebSearch / FetchURL) for live legal / standards verification |
| dispatching-parallel-agents, subagent-driven-development | Harness subagent API (AgentSwarm, Agent, run_in_background, subagent_type: coder/explore/plan) — adapted by forge-setup |
| forge-flow | Harness goal API (CreateGoal) or file fallback (GOAL.md) — adapted by forge-setup |
| planning-and-task-breakdown, forge | Harness plan mode (EnterPlanMode/ExitPlanMode) — adapted by forge-setup |
| caveman, caveman-commit, caveman-review, ste100, conventional-commits, grilling, prototype, domain-modeling, verification-before-completion, resolving-merge-conflicts, use-git-identity, forge-init, forge-docs, forge-cleanup, forge-setup, 12-factor-app, kiss-principle, frontend-design, forge-tailwindcss-conventions | No external tools (pure prompt contracts) |
Note: Skills marked adapted by forge-setup reference Kimi-specific machinery (
CreateGoal,EnterPlanMode,AgentSwarm,kimi -p). Theforge-setupskill (run once after cloning on a non-Kimi harness) discovers and patches these to the harness's equivalents. Until forge-setup runs, those skills will reference unavailable Kimi APIs.
Forge owns a single path: map → resolve → plan → work → verify → review → resolve. Each step ends on a checkable criterion; the next step is the proof. forge is the always-loaded orchestrator — it auto-triggers on session prompts like "work on the next ticket" and invokes forge-flow once at session start to bootstrap branch and goal before step 1.
Each step is driven by one skill and supported by others:
| Step | Driving skill | Supporting skills |
|---|---|---|
| 0. Bootstrap | forge-flow |
ste100 |
| 1. Map | wayfinder |
git-issue-tracker, grilling, domain-modeling, deep-research, dispatching-parallel-agents |
| 2. Resolve | the ticket's type skill (grilling / prototype / deep-research / task) |
domain-modeling (sweep after every close) |
| 3. Plan | planning-and-task-breakdown |
— |
| 4. Work | subagent-driven-development |
using-git-worktrees, dispatching-parallel-agents, conventional-commits, caveman-commit, forge-docs, resolving-merge-conflicts |
| 5. PR | creating-pull-requests |
ste100 |
| 6. Verify | verification-before-completion |
— |
| 7. Review | pr-review |
loops, caveman-review |
| 8. Resolve findings | pr-resolve |
use-git-identity, loops, resolving-merge-conflicts |
Always-on regardless of step: forge (orchestrator), caveman (ultra), wayfinder.
The user opens a chat and writes something like "work on the next ticket", "let's continue the auth refactor", or simply describes a task. The forge skill is always-loaded and auto-triggers on these prompts. It invokes forge-flow once at session start as a frontier sub-skill: forge-flow detects whether a wayfinder map exists, prepares the feat branch from main, writes the long-living contract goal, and hands off to forge step 1. Then forge's own step 1 either loads the existing map or charts a new one through wayfinder.
flowchart TD
subgraph Forge["<b>forge</b> — always-loaded orchestrator"]
direction TB
F1["Step 1: Map<br/><b>wayfinder</b>"]
F2["Step 2: Resolve<br/>ticket-type skill"]
F3["Step 3: Plan<br/><b>planning-and-task-breakdown</b>"]
F4["Step 4: Work<br/><b>subagent-driven-development</b>"]
F5["Step 5: PR<br/><b>creating-pull-requests</b>"]
F6["Step 6: Verify<br/><b>verification-before-completion</b>"]
F7["Step 7: Review<br/><b>pr-review</b>"]
F8["Step 8: Resolve findings<br/><b>pr-resolve</b>"]
F1 --> F2 --> F3 --> F4 --> F5 --> F6 --> F7 --> F8
end
Start([Session Start<br/>user prompt]) --> Forge
Start --> FF["<b>forge-flow</b><br/>session bootstrap (frontier sub-skill)"]
FF -->|"detect map · name branch<br/>write goal · hand off"| F1
style Start fill:#95A5A6,color:#fff,stroke:#7F8C8D
style Forge fill:#16A085,color:#fff,stroke:#0E6655
style FF fill:#4A90D9,color:#fff,stroke:#2C5F8A
style F1 fill:#4A90D9,color:#fff,stroke:#2C5F8A
style F2 fill:#F39C12,color:#fff,stroke:#B8750E
style F3 fill:#F39C12,color:#fff,stroke:#B8750E
style F4 fill:#8E44AD,color:#fff,stroke:#5B2D6E
style F5 fill:#2C3E50,color:#fff,stroke:#1A252F
style F6 fill:#27AE60,color:#fff,stroke:#1A7A42
style F7 fill:#E67E22,color:#fff,stroke:#A05A15
style F8 fill:#E67E22,color:#fff,stroke:#A05A15
forge-flow does not load the map itself — it only detects whether one exists. The actual map load happens in forge step 1 (section 2 below).
The map is a single issue on the tracker, labelled wayfinder:map. Its tickets are child issues; each ticket carries a wayfinder:<type> label naming the skill that resolves it. If a map already exists, wayfinder loads it; if not, it enters chart mode (grilling + domain-modeling) and creates one. Sub-skills involved: git-issue-tracker for the GitHub operations, grilling to draw out the destination, domain-modeling to seed the glossary, deep-research for AFK research tickets, and dispatching-parallel-agents to chart fog patches in parallel.
flowchart LR
subgraph Map["Wayfinder Map"]
direction TB
MapIssue["Map Issue<br/>wayfinder:map"]
Tickets["Decision Tickets<br/>wayfinder:research | prototype<br/>grilling | task | domain-modeling"]
end
subgraph Skills["Resolution Skills"]
direction TB
Research["deep-research<br/>(AFK, parallel)"]
Prototype["prototype<br/>(HITL)"]
Grilling["grilling<br/>(HITL)"]
Task["task<br/>(HITL or AFK)"]
DomainModel["domain-modeling<br/>(glossary + ADRs)"]
end
MapIssue -->|"child issues"| Tickets
Tickets -->|"wayfinder:research"| Research
Tickets -->|"wayfinder:prototype"| Prototype
Tickets -->|"wayfinder:grilling"| Grilling
Tickets -->|"wayfinder:task"| Task
Tickets -->|"wayfinder:domain-modeling"| DomainModel
Grilling -->|"after close"| DomainModel
DomainModel -->|"glossary"| Context["docs/dev/CONTEXT.md"]
DomainModel -->|"ADR"| ADR["docs/adr/NNNN-*.md"]
style MapIssue fill:#4A90D9,color:#fff,stroke:#2C5F8A
style Tickets fill:#F39C12,color:#fff,stroke:#B8750E
style Research fill:#27AE60,color:#fff,stroke:#1A7A42
style Prototype fill:#8E44AD,color:#fff,stroke:#5B2D6E
style Grilling fill:#E67E22,color:#fff,stroke:#A05A15
style Task fill:#16A085,color:#fff,stroke:#0E6655
style DomainModel fill:#E67E22,color:#fff,stroke:#A05A15
style Context fill:#2C3E50,color:#fff,stroke:#1A252F
style ADR fill:#2C3E50,color:#fff,stroke:#1A252F
One ticket per session. wayfinder claims the next frontier ticket (assigns it), the ticket's wayfinder:<type> label names the resolution skill (grilling, prototype, deep-research, or a task), and on close domain-modeling sweeps for new glossary terms and decisions worth an ADR. Sub-skills: dispatching-parallel-agents may run multiple research tickets in parallel; the next session picks up the next frontier ticket or, when the frontier empties, hands off to step 3 (plan).
flowchart LR
Ticket["Open Ticket<br/>wayfinder:<type>"] --> Claim["<b>wayfinder</b><br/>claim (assign)"]
Claim --> Skill["<b>grilling</b> / <b>prototype</b> /<br/><b>deep-research</b> / task<br/>per type label"]
Skill --> Resolve["Resolve<br/>post answer, close issue"]
Resolve --> Sweep["<b>domain-modeling</b><br/>glossary + ADR sweep"]
Sweep --> Pointer["<b>wayfinder</b><br/>append pointer to<br/>map Decisions-so-far"]
Pointer --> Fog{"New fog<br/>specifiable?"}
Fog -->|"yes"| NewTickets["<b>wayfinder</b><br/>create new tickets<br/>graduate from Not yet specified"]
Fog -->|"no"| Frontier{"Frontier<br/>empty?"}
NewTickets --> Frontier
Frontier -->|"no"| NextTicket["Next session:<br/>next ticket"]
Frontier -->|"yes"| Plan["Step 3: <b>planning-and-task-breakdown</b>"]
style Ticket fill:#4A90D9,color:#fff,stroke:#2C5F8A
style Claim fill:#F39C12,color:#fff,stroke:#B8750E
style Skill fill:#E67E22,color:#fff,stroke:#A05A15
style Resolve fill:#27AE60,color:#fff,stroke:#1A7A42
style Sweep fill:#E67E22,color:#fff,stroke:#A05A15
style Pointer fill:#16A085,color:#fff,stroke:#0E6655
style Fog fill:#F39C12,color:#fff,stroke:#B8750E
style NewTickets fill:#8E44AD,color:#fff,stroke:#5B2D6E
style Frontier fill:#F39C12,color:#fff,stroke:#B8750E
style NextTicket fill:#95A5A6,color:#fff,stroke:#7F8C8D
style Plan fill:#2C3E50,color:#fff,stroke:#1A252F
When the frontier empties, planning-and-task-breakdown breaks the cleared map into ordered tasks and the user approves the plan in plan mode. Then subagent-driven-development takes over as coordinator: it creates one worktree per task via using-git-worktrees (under .worktrees/<task-slug>/), dispatches all implementer subagents in a single dispatching-parallel-agents swarm call (each runs using-git-worktrees + conventional-commits + caveman-commit + verification-before-completion), reviews each task's diff, runs the fix loop until clean, and squashes each task branch into one Conventional Commit on the feat branch (git merge --squash then git commit). Conflicts route through resolving-merge-conflicts. After every squash, forge-docs updates the docs indexes.
flowchart LR
Plan["Plan Approved<br/><b>planning-and-task-breakdown</b>"] --> SDD["<b>subagent-driven-development</b><br/>coordinator"]
SDD --> Worktrees["<b>using-git-worktrees</b><br/>.worktrees/<task-slug>/"]
Worktrees --> Swarm["<b>dispatching-parallel-agents</b><br/>one AgentSwarm call"]
subgraph Wave1["Wave 1"]
WT1["worktree/ticket-1"] --> SA1["subagent<br/><b>conventional-commits</b>"] --> Squash1["squash → feat branch"]
end
subgraph Wave2["Wave 2 (parallel)"]
WT2["worktree/ticket-2"] --> SA2["subagent<br/><b>conventional-commits</b>"] --> Squash2["squash → feat branch"]
WT3["worktree/ticket-3"] --> SA3["subagent<br/><b>conventional-commits</b>"] --> Squash3["squash → feat branch"]
end
Swarm --> Wave1
Swarm --> Wave2
Squash1 --> Integrate["Integrate<br/>(squash + commit)<br/>conflicts → <b>resolving-merge-conflicts</b>"]
Squash2 --> Integrate
Squash3 --> Integrate
Integrate --> Docs["<b>forge-docs</b><br/>update indexes"]
Docs --> Verify["<b>verification-before-completion</b><br/>full test suite"]
style Plan fill:#27AE60,color:#fff,stroke:#1A7A42
style SDD fill:#16A085,color:#fff,stroke:#0E6655
style Worktrees fill:#F39C12,color:#fff,stroke:#B8750E
style Swarm fill:#8E44AD,color:#fff,stroke:#5B2D6E
style WT1 fill:#F39C12,color:#fff,stroke:#B8750E
style WT2 fill:#F39C12,color:#fff,stroke:#B8750E
style WT3 fill:#F39C12,color:#fff,stroke:#B8750E
style SA1 fill:#8E44AD,color:#fff,stroke:#5B2D6E
style SA2 fill:#8E44AD,color:#fff,stroke:#5B2D6E
style SA3 fill:#8E44AD,color:#fff,stroke:#5B2D6E
style Squash1 fill:#16A085,color:#fff,stroke:#0E6655
style Squash2 fill:#16A085,color:#fff,stroke:#0E6655
style Squash3 fill:#16A085,color:#fff,stroke:#0E6655
style Integrate fill:#16A085,color:#fff,stroke:#0E6655
style Docs fill:#E67E22,color:#fff,stroke:#A05A15
style Verify fill:#27AE60,color:#fff,stroke:#1A7A42
After squash commits land, creating-pull-requests drafts the PR with ste100 prose (draft mode, AI disclosure). verification-before-completion re-runs the full suite on the merged feat branch. pr-review runs in a worktree, drives a kimi -p loop via loops, and posts ONE review under the authenticated user's identity in caveman-review format. If findings come back 🔴 or 🟡, pr-resolve consumes them: 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, and re-runs pr-review. The loop ends when no 🔴/🟡 findings remain.
flowchart LR
Verify["<b>verification-before-completion</b><br/>suite green"] --> PR["<b>creating-pull-requests</b><br/>PR draft (<b>ste100</b> prose)"]
PR --> Review["<b>pr-review</b><br/><b>loops</b> + <b>caveman-review</b>"]
Review --> Findings{"🔴/🟡<br/>findings?"}
Findings -->|"yes"| Resolve["<b>pr-resolve</b><br/>per-group worktrees<br/><b>use-git-identity</b>"]
Resolve --> Push["Push + Reply<br/>in review threads"]
Push --> ReReview["<b>pr-review</b><br/>re-run"]
ReReview --> Findings
Findings -->|"no"| Merge(["User merges"])
style Verify fill:#27AE60,color:#fff,stroke:#1A7A42
style PR fill:#2C3E50,color:#fff,stroke:#1A252F
style Review fill:#E67E22,color:#fff,stroke:#A05A15
style Findings fill:#F39C12,color:#fff,stroke:#B8750E
style Resolve fill:#E67E22,color:#fff,stroke:#A05A15
style Push fill:#16A085,color:#fff,stroke:#0E6655
style ReReview fill:#E67E22,color:#fff,stroke:#A05A15
style Merge fill:#95A5A6,color:#fff,stroke:#7F8C8D
Each forge step emits concrete files. The table below shows what gets written where.
| Step | Artefact | Location |
|---|---|---|
| 1. Map | Labels wayfinder:* |
GitHub labels |
| 1. Map | Map + ticket issues | GitHub tracker |
| 2. Resolve | Glossary terms | docs/dev/CONTEXT.md |
| 2. Resolve | ADRs | docs/adr/NNNN-*.md |
| 2. Resolve | Research reports | docs/dev/agents/<topic>.md |
| 3. Plan | Plan file | plan mode output |
| 4. Work | Worktrees | .worktrees/<task-slug>/ |
| 4. Work | Feat branch | feat/wayfinder-<map> |
| 5. PR | PR draft | gh api |
| 6. Verify | Full-suite run output | terminal |
| 7. Review | Inline comments | PR review threads |
| 8. Resolve | Resolver worktrees | .worktrees/<finding>/ |
| Skill | Purpose | Load | Source | Guide |
|---|---|---|---|---|
skills/forge/SKILL.md |
Session-start orchestrator: map → resolve → plan → work → verify → review → resolve | always | local | docs/guides/forge.md |
skills/forge-flow/SKILL.md |
Session bootstrap: feat branch from main, harness goal, hand off to forge step 1 | always | local | docs/guides/forge-flow.md |
skills/forge-init/SKILL.md |
Bootstrap a repo to be forge-ready: AGENTS.md contract, grilling for repo-specifics | one-shot | local | docs/guides/forge-init.md |
skills/forge-setup/SKILL.md |
One-shot harness adaptation: discover non-agnostic references, research the running harness's equivalent, patch with minimal diffs | one-shot | local | docs/guides/forge-setup.md |
skills/forge-docs/SKILL.md |
Maintain the docs directory — structure, update rules, index files, ADR mandate | on-demand | local | docs/guides/forge-docs.md |
skills/forge-cleanup/SKILL.md |
Remove stale forge artefacts — scratch files, worktrees, uncommitted changes, local branches | one-shot | local | docs/guides/forge-cleanup.md |
skills/wayfinder/SKILL.md |
Plan a huge effort as a shared map of decision tickets on the issue tracker | always | mattpocock/skills | docs/guides/wayfinder.md |
skills/caveman/SKILL.md |
Ultra-compressed chat replies — drop articles/filler, keep technical accuracy | always | JuliusBrussee/caveman | docs/guides/caveman.md |
skills/grilling/SKILL.md |
Grill the user relentlessly — design-tree frontier, max 4 questions per wave | on-demand | mattpocock/skills | docs/guides/grilling.md |
skills/prototype/SKILL.md |
Build a throwaway prototype to answer a design question | on-demand | mattpocock/skills | docs/guides/prototype.md |
skills/deep-research/SKILL.md |
Exhaustive evidence-based research — 10+ iteration search loop, markdown-native reports | on-demand | MoweME (origin: kimi.com web UI) | docs/guides/deep-research.md |
skills/domain-modeling/SKILL.md |
Build and sharpen the domain model: CONTEXT.md glossary + ADRs in docs/adr/ |
on-demand | mattpocock/skills | docs/guides/domain-modeling.md |
skills/git-issue-tracker/SKILL.md |
Wrap the GitHub API for issue/sub-issue/dependency operations used by wayfinder | on-demand | local | docs/guides/git-issue-tracker.md |
skills/planning-and-task-breakdown/SKILL.md |
Break a spec into ordered, implementable tasks with parallel work identified | on-demand | local | docs/guides/planning-and-task-breakdown.md |
skills/using-git-worktrees/SKILL.md |
Create one worktree per task, commits inside, cleanup by coordinator | on-demand | obra/superpowers | docs/guides/using-git-worktrees.md |
skills/dispatching-parallel-agents/SKILL.md |
AgentSwarm mechanics: dispatch up to 10 parallel subagents via {{item}} prompt template |
on-demand | obra/superpowers | docs/guides/dispatching-parallel-agents.md |
skills/subagent-driven-development/SKILL.md |
Coordinator dispatch → per-task review → fix loop → integrate. One worktree per task | on-demand | obra/superpowers | docs/guides/subagent-driven-development.md |
skills/finishing-a-development-branch/SKILL.md |
Push + PR creation path; merge conflicts load resolving-merge-conflicts |
on-demand | obra/superpowers | docs/guides/finishing-a-development-branch.md |
skills/verification-before-completion/SKILL.md |
Iron Law: NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE | on-demand | obra/superpowers | docs/guides/verification-before-completion.md |
skills/pr-review/SKILL.md |
Validate → review loop → post ONE review (caveman-review findings) inside a worktree | on-demand | local | docs/guides/pr-review.md |
skills/pr-resolve/SKILL.md |
Findings → fix → push → thread replies (loop until no 🔴/🟡) | on-demand | local | docs/guides/pr-resolve.md |
skills/loops/SKILL.md |
Shell framework: render prompt template, cavemanize, drive kimi -p until DONE:/BLOCKED: |
on-demand | local | docs/guides/loops.md |
skills/creating-pull-requests/SKILL.md |
Size-gated PR descriptions with mandatory Conventional Commit title and AI disclosure (prose per ste100) |
on-demand | tdhopper/dotfiles2.0 | docs/guides/creating-pull-requests.md |
skills/caveman-review/SKILL.md |
Ultra-compressed code review comments: location, problem, fix — one line per finding | on-demand | JuliusBrussee/caveman | docs/guides/caveman-review.md |
skills/ste100/SKILL.md |
Write human-facing text in ASD-STE100 Simplified Technical English | on-demand | local | docs/guides/ste100.md |
skills/caveman-commit/SKILL.md |
Ultra-compressed commit messages in Conventional Commits format | on-demand | JuliusBrussee/caveman | docs/guides/caveman-commit.md |
skills/conventional-commits/SKILL.md |
Conventional Commits v1.0.0 spec — type→SemVer table | on-demand | local | docs/guides/conventional-commits.md |
skills/use-git-identity/SKILL.md |
Set git identity (weselben/rooforge) before any commit/amend/rebase | on-demand | local | docs/guides/use-git-identity.md |
skills/resolving-merge-conflicts/SKILL.md |
Resolve git merge/rebase conflicts; multi-branch conflicts delegate to SDD | on-demand | mattpocock/skills | docs/guides/resolving-merge-conflicts.md |
skills/12-factor-app/SKILL.md |
SaaS / cloud-native design and review against the 12-Factor methodology and modern extensions | on-demand | 12factor.net | docs/guides/12-factor-app.md |
skills/kiss-principle/SKILL.md |
Simplicity guardrails — over-engineering, premature abstraction, accidental complexity | on-demand | Wikipedia | docs/guides/kiss-principle.md |
skills/frontend-design/SKILL.md |
Distinctive, intentional visual design — typography, palette, layout, anti-templated defaults | on-demand | anthropics/skills | docs/guides/frontend-design.md |
skills/forge-tailwindcss-conventions/SKILL.md |
Tailwind CSS v4 conventions — CSS-first, utility-first, class ordering, framework patterns | on-demand | local | docs/guides/forge-tailwindcss-conventions.md |
skills/forge-eu-accessibility/SKILL.md |
EU accessibility compliance — BFSG/EAA scope, WCAG 2.1 AA baseline, penalties, live verification | on-demand | local | docs/guides/forge-eu-accessibility.md |
skills/forge-seo/SKILL.md |
SEO hub — UX/UI and Technical deep-dives (Core Web Vitals, sitemaps, structured data, rendering) | on-demand | local | docs/guides/forge-seo.md |
.
├── docs/
│ ├── README.md # Global docs index
│ ├── adr/ # Architecture Decision Records
│ ├── dev/
│ │ ├── README.md # dev subfolder index
│ │ ├── CONTEXT.md # Domain glossary (ADR index)
│ │ └── agents/ # Deep research reports
│ ├── guides/
│ │ ├── README.md # guides subfolder index
│ │ └── <skill>.md # One reference guide per skill (35 total)
│ ├── public/
│ │ └── README.md # public subfolder index
│ └── system-design/
│ └── README.md # system-design subfolder index
├── skills/
│ ├── 12-factor-app/ # sidecar: SaaS / cloud-native conventions
│ ├── caveman/
│ ├── caveman-commit/
│ ├── caveman-review/
│ ├── conventional-commits/
│ ├── creating-pull-requests/
│ ├── deep-research/
│ ├── dispatching-parallel-agents/
│ ├── domain-modeling/
│ ├── finishing-a-development-branch/
│ ├── forge/ # the orchestrator
│ ├── forge-cleanup/
│ ├── forge-docs/
│ ├── forge-eu-accessibility/ # sidecar: BFSG/EAA/WCAG compliance
│ ├── forge-flow/
│ ├── forge-init/
│ ├── forge-seo/ # sidecar: SEO hub
│ ├── forge-setup/ # one-shot harness adaptation
│ ├── forge-tailwindcss-conventions/ # sidecar: Tailwind v4 conventions
│ ├── frontend-design/ # sidecar: distinctive visual design
│ ├── git-issue-tracker/
│ ├── grilling/
│ ├── kiss-principle/ # sidecar: simplicity guardrails
│ ├── loops/
│ ├── planning-and-task-breakdown/
│ ├── pr-resolve/
│ ├── pr-review/
│ ├── prototype/
│ ├── resolving-merge-conflicts/
│ ├── ste100/
│ ├── subagent-driven-development/
│ ├── use-git-identity/
│ ├── using-git-worktrees/
│ ├── verification-before-completion/
│ └── wayfinder/
├── src/ # reserved
├── tests/ # reserved
├── AGENTS.md # Local agent contract (letter style)
└── README.md # this file
Every skill ships with a one-page reference guide under docs/guides/ — the index links all 35. The global docs index at docs/README.md covers the rest: docs/dev/CONTEXT.md (domain glossary + ADR index), docs/adr/ (architecture decisions), docs/system-design/, docs/public/, and docs/dev/agents/ (deep research reports).
A local agent contract lives at AGENTS.md — letter style, scoped to this repo's conventions.
These rules bind every session where forge is active:
- Mandates are mandatory. When any skill uses must, mandatory, MUST, or always, follow it exactly.
- caveman is default. caveman(ultra) is active every response. Off only on explicit "stop caveman" / "normal mode".
- Own repos only. Forge operates only in repos owned by the user's git identity.
- Single path. One flow through the steps. No branching in the orchestrator.
- Forge Flow first.
forge-flowruns before step 1: creates the feat branch frommain, sets the harness goal, hands off.