A copy-in kit of battle-tested Claude Code skills, agents, and CI workflow templates — extracted from a production Bun/monorepo so any project can adopt them. Nothing here is hardwired to the origin project: every project-specific value (test command, issue tracker, base branch, review bot, source layout) is read at runtime from a small project profile you fill in during onboarding.
| Layer | Contents | How it's delivered |
|---|---|---|
Skills (skills/) |
rig-doctor, rig-debug, rig-spike, rig-tidy, rig-issue, rig-worktree, rig-review (find/fix), rig-proof (find/fix), rig-plan, rig-task, rig-sprint, rig-epic |
Copied into <project>/.claude/skills/ (or .agents/skills/ for non-Claude agents — see "Works with your agent" below) |
Agents (agents/) |
rig-debugger, rig-reviewer, rig-architect, rig-qa, rig-coder |
Copied into <project>/.claude/agents/ |
pi adapter (pi/) |
Per-target persona frontmatter (pi/agents/*.yml, assembled onto the shared bodies) + the /rig dispatcher prompt |
Copied into <project>/.pi/{agents,prompts}/ — see docs/pi.md |
Support docs (templates/) |
starter REVIEWER.md (+ REVIEWER.scope-template.md), STYLE.md, label-mapping.md |
Copied into <project>/.claude/ (only if absent) |
Scripts (scripts/) |
setup-worktree.sh, remove-worktree.sh, mint-gh-app-token.sh, scope-reviewer.ts, rig-state.ts, set-session-name.sh (Claude-only) |
Copied into <project>/.claude/scripts/ |
CI templates (ci/) |
security-scan, label-pr, image-build, slack-notify, test-gate, test-e2e, and the AI review-bot bundle (review-bot-gate, auto-review-fix, pr-review-labels) |
Copied into <project>/.github/workflows/ (see ci/README.md) |
Onboarding (skills/rig-onboard/) |
The agent-driven installer skill | Run once against a target project |
Skills are just markdown procedures — portable content. Only the placement, format, and invocation differ per agent, so install/onboarding delivers Rig in your agent's own conventions via targets (auto-detected from repo markers):
| Target | Delivered as | Covers |
|---|---|---|
claude-code |
.claude/skills/<name>/, .claude/agents/, .claude/scripts/ (native skills + subagents) |
Claude Code |
agents-md |
.agents/skills/<name>/ — the standard cross-agent Agent Skills layout, auto-discovered natively (no index needed) — plus .rig/agents/, .rig/scripts/, .rig/REVIEWER.md, .rig/STYLE.md for the pieces the standard doesn't cover, and a minimal ## Rig pointer block injected into AGENTS.md (config + persona adoption) |
Codex, Cursor, Gemini CLI, Copilot, Rovo Dev — any agent that scans .agents/skills/ or reads AGENTS.md |
pi |
.agents/skills/<name>/ (pi scans these natively) + .pi/agents/ personas in pi-subagents frontmatter, a /rig <skill> dispatcher in .pi/prompts/, and npm:pi-subagents registered in .pi/settings.json — see docs/pi.md |
pi, with real role delegation instead of inline personas |
For agents without subagents, the persona files are adopted inline rather
than delegated — the skills reference roles through the agents.* indirection,
so they degrade cleanly. Pick targets explicitly with
install.sh --target claude-code,agents-md, or let detection choose.
A repo used by Claude Code and another agent installs both targets — but
only one physical payload. The skills/agents/scripts live in .agents/ +
.rig/, and the .claude/ entries are symlinks at them (Claude Code follows
symlinks), so there's a single source of truth to edit instead of two trees that
drift. Where symlinks aren't available (Windows without developer mode),
.claude/ falls back to its own copy and the install says so.
Open Claude Code in the project you want to onboard and paste one line:
Onboard this repo into Rig by following
https://github.com/agent-rig/rig/blob/main/skills/rig-onboard/SKILL.md
Claude fetches that onboarding skill, clones the kit to a temp dir, detects
your stack (package manager, test command, base branch, issue tracker, review
bot), asks only what it can't infer, writes .rig/config.json, and copies
in the skills, agents, and scripts you pick — offering CI workflows separately
with the exact secrets each needs. Nothing is installed globally and nothing is
committed for you; you review the changes and commit. That's the whole path — no
clone, no config editing, no prior install.
- Keep a local copy of the kit (handy if you'll onboard several repos):
then in your project just say
git clone https://github.com/agent-rig/rig ~/dev/rig/rig-onboard— it finds~/dev/rigautomatically. - No agent at all:
~/dev/rig/install.sh <target-project>copies the default set and drops a config stub for you to edit by hand. It auto-detects your agent target(s); override with--target claude-code,agents-md,pi. - pi users: the kit is also a pi package —
pi install git:github.com/agent-rig/riggets you the skills and the/rigdispatcher globally, updatable withpi update. You still wantinstall.sh --target pifor the per-project pieces; seedocs/pi.md.
Everything parameterizable is driven by .rig/config.json in your
project. Skills read it at runtime — they never hardcode your specifics. See
docs/config.md for every knob, rig.schema.json for
the machine-readable schema, and rig.config.example.json for a filled-in
reference (the origin project's own values).
- Config over forking. A parameterizable skill reads
.rig/config.jsonrather than being edited per project. Update the kit → re-run onboarding → get the improvement without re-diffing your local edits. - Graceful degradation.
tracker.provider: "none"strips all ticket steps;review.bot: "none"turnsrig-review fixinto a local-only loop. A skill never hard-fails because a project doesn't use a given tool. - CI is copy-in, not a plugin. GitHub Actions files must physically live in
.github/workflows/, so they're delivered as parameterized templates with an install guide, not as a runtime dependency. - Review knowledge compounds where the code is. The review catalog is a
tree of
REVIEWER.mdfiles (root repo-wide lenses + per-subsystem invariants colocated with the code, mirroring nestedAGENTS.md).rig-reviewresolves the scoped files a diff touches and asserts them as P1s, so a subsystem's hard-won invariants stop getting re-discovered in PR review. - Long runs keep state on disk, not in the transcript.
/rig-taskspans seven steps and four delegated agents./rig-epic runloops that over every child. When the transcript compacts mid-run, the acceptance criteria, the failing assertion, and which review findings are already fixed go with it. So every long skill keeps one small structured document per run under.rig/state/, andscripts/rig-state.tsvalidates each update outside the model. It rejects unknown keys, wrong types, and impossible states. A size budget stops the document drifting back into a transcript. Seedocs/state.md. - Agent output is written for humans. Agents produce a lot of prose — PR
bodies, ticket descriptions, review findings, plans, hand-backs — and left
alone they write it badly: buried conclusions, passive voice, hedge stacks,
filler. Every persona and every prose-emitting skill writes to one house style
(
templates/STYLE.md, following the Google developer documentation style guide), pointed at bystyle.guideFile. The core rules are also inlined in each persona, so they hold even when the file is missing.
MIT — see LICENSE.