Three-ceremony spec/build/test discipline. Skills, slash commands, hooks, watchdog, and the multi-model gauntlet calibration corpus, all in one repo.
The deployed locations under ~/.claude/{skills,hooks,commands,scripts}/ are symlinks back into this repo. Edit here, edit there — same file.
| Ceremony | What it does | Skill | Command |
|---|---|---|---|
| goatrodeo | Pressure-test a spec through interrogation, live research, twin review. Produces battle-tested REQ-IDs. | ceremonies/goatrodeo/skill.md |
/goatrodeo |
| goatrodeo (design variant) | Same engine, design-spec domain knowledge. | ceremonies/goatrodeo/design-variant/skill.md |
/design-goatrodeo |
| postrodeo | After build: audit what was built vs what was specced. L4 gate before ship. | ceremonies/postrodeo/skill.md |
/postrodeo |
| gauntlet | Multi-model test-authoring quality validation across canary problems. | ceremonies/gauntlet/skill.md |
(script-driven) |
Plus two goatrodeo feeders that run upstream:
feeders/ruthless-interrogator.md— Stage 1, only asks questions until zero assumptions remain.feeders/uncompromising-executor.md— Stage 2, produces 8 canonical docs +TEST_PLAN.mdfrom interrogation output.
Goat Rodeo decides whether a spec is fit to build. Postrodeo decides whether the build is fit to ship. Gauntlet decides whether AI-authored tests are real tests. Without one project they have no shared spec, no version log, no regression tests for themselves, and no run ledger. Anything that gates every meaningful build needs one place to manage it.
goatrodeo/
├── ceremonies/
│ ├── goatrodeo/
│ │ ├── skill.md, command.md, v3.2-draft.md
│ │ ├── design-variant/{skill.md,command.md}
│ │ ├── feeders/{ruthless-interrogator.md, uncompromising-executor.md}
│ │ └── mx-goatrodeo/ # build-ledger fixtures (ticket-A1..A4)
│ ├── postrodeo/{skill.md,command.md}
│ └── gauntlet/
│ ├── skill.md
│ ├── scripts/{worktree-isolate.sh, sanity-baseline.sh}
│ └── research/ # 5 research docs + calibration/{canary_01..03}
├── hooks/ # goatrodeo-guard.py + 3 rodeo hooks
├── guard/ # watchdog (mac launchd + homebox-cron)
├── docs/
│ ├── decision-tree.md # which ceremony fires when
│ └── adr/
├── runs/ # one file per ceremony run
├── tests/ # regression tests for the harness itself
├── SPEC.md, CHANGELOG.md, .gitignore
Symlinks. No build step. Verify with make verify.
| Deployed path | → points into project |
|---|---|
~/.claude/skills/{goatrodeo,design-goatrodeo,postrodeo,ruthless-interrogator,uncompromising-executor,goatrodeo-v3.2-draft,gauntlet-test-authoring}.md |
ceremonies/.../skill.md (or feeder/draft path) |
~/.claude/skills/mx-goatrodeo/ |
ceremonies/goatrodeo/mx-goatrodeo/ |
~/.claude/skills/research/ |
ceremonies/gauntlet/research/ |
~/.claude/commands/{goatrodeo,design-goatrodeo,postrodeo}.md |
ceremonies/.../command.md |
~/.claude/hooks/{goatrodeo-guard.py, pre-tool-use-rodeo-step-guard.sh, post-tool-use-rodeo-state-updater.sh, statusline-rodeo.sh} |
hooks/ |
~/.claude/scripts/gauntlet-{worktree-isolate,sanity-baseline}.sh |
ceremonies/gauntlet/scripts/ |
~/projects/goatrodeo-guard |
guard/ |