An opinionated Claude Code starter kit, plus a crew system that spawns isolated Claude Code workers into their own git worktrees to ship tasks in parallel.
Not a boilerplate dump: memory, hooks, agents, and a crew system that already talk to each other.
CLAUDE.md with canary, error protocol, context rules, committed so teammates see the same thing.
Spawn Claude Code workers into isolated git worktrees (herdr or tmux), watch them, land finished work as a PR.
RTK (89% avg CLI output compression), Caveman (70% response compression), ctx7 live library docs.
24 lifecycle skills, grill-me / handoff / tdd / git-guardrails, Ponytail anti-overengineering.
session-start, pre-deploy-guard, privacy-guard, git-guard, auto-format, statusline, and more.
/commit /pr /ship /plan /spawn /review and six more.
crew/ spawns extra Claude Code sessions ("workers") into isolated worktrees, watches them, and lands finished work, so you're not stuck babysitting one task at a time.
herdr (default, agent-native terminal) or tmux (fallback, no extra install). Same adapter contract either way.
Every task gets git worktree add ../crew-worktrees/<slug>. The supervisor session never edits your project directly.
direct-pr (default, pushes and opens a PR) or local-only (fast-forward merge after explicit confirmation).
Four phases: opening a session, working a task, finishing it, shipping it. Nothing here is optional ceremony, every step maps to a hook or a command.
| Phase | What happens |
|---|---|
| Opening | The session-start hook fires automatically. Sets terminal tab title to the branch, surfaces any in-progress checkpoint. |
| Before anything non-trivial | /plan scaffolds Goal / Constraints / Acceptance Criteria / Unresolved Questions in .claude/plans/. |
| Unfamiliar library | Claude runs npx ctx7 library <name> <query> before writing API calls, never guesses from training data. |
| Every write | auto-format hook runs PROJECT_FMT in the background. All bash logged to .claude/bash.log. |
| Context getting long | /caveman halves output verbosity. /checkpoint saves exact state before stopping. |
| Need parallel hands | /spawn "fix the flaky login test" puts a worker in its own worktree, keeps working while you do something else. |
| Finishing a task | Every completed task ends with [Canary:PROJECT_NAME:TASK_NAME]. The keep-going hook nudges Claude to continue if it's missing. |
| Ending a session | /handoff instead of /compact, a precise surgical session doc, not lossy compression. |
| Shipping | /ship runs lint, build, test, commit, PR. Stops at the first failure. pre-deploy-guard gates raw deploy commands the same way. |
| Review | /review invokes the CodeReviewer agent on your current diff, returns a severity-tagged report. You decide what to act on. |
Slash commands wrap these inside Claude Code; the binaries work standalone too.
Slash-command form inside Claude Code: /spawn, /crew-status, /crew-send, /crew-teardown. Full docs: crew/docs/README.md (quickstart), lifecycle.md (spawn / watch / teardown state machine), backends.md (adapter contract, herdr/tmux setup), hooks.md (what the Stop hook can and can't do).
Line 1: model, repo name, git branch (* if dirty), plus wt:<name> for an active Claude Code worktree and agent:<name> if the session is a subagent. Line 2: active output style / reasoning effort, fast prefix if fast mode is on, context-window usage (color-coded), rolling 5-hour / 7-day rate-limit usage. Implementation: .claude/hooks/statusline.sh.
Already have a repo with its own .git and CLAUDE.md? Don't use install.sh, it wipes git history. Use install-existing instead.
If you already have one, it's backed up to .claude.backup-<timestamp>/ before the template's hooks, agents, commands, and rules are written in its place.
Copies in crew/ if you don't already have it; leaves an existing one alone. Same treatment for .mcp.json.
chmod +x on hooks and crew scripts. On Windows, run that step yourself in WSL or Git Bash afterward.
Claude detects your stack (package.json, pyproject.toml, Cargo.toml, go.mod, and so on), fills in real rtk subcommands, and merges template sections into your file, yours stays the base, nothing overwritten.
Nothing is committed for you, review the diff (git status, git diff) and commit when happy.
Clone it, run the install script, answer five questions: project name, description, runtime, formatter, canary codename.
The script installs all tooling, checks crew's backend deps (non-fatal), wipes the template git history, inits a fresh repo, then opens Claude to ask the five questions. On native Windows, hooks and crew are .sh scripts. install.ps1 checks for WSL and warns you to chmod +x them there if it can't reach WSL itself.
| Requirement | Why |
|---|---|
| Node.js 18+ | tooling runtime |
| Rust + Cargo | builds RTK |
| git, gh | /commit, /pr, /ship, crew's direct-pr delivery |
| jq | statusline + crew state |
| herdr or tmux | crew worker backend (optional) |
| Step | Do this |
|---|---|
| 01 | Fill in the rest of CLAUDE.md as the project takes shape: Test, Lint, Build, Deploy commands. |
| 02 | Create .claude/rules/ files as major directories emerge, see rules/example.md for the format. |
| 03 | Teammates run through ONBOARDING.md to get local settings configured. |
| 04 | Read SKILLS.md: exact trigger phrases for every bundled or recommended skill. |
| 05 | Run crew/bin/crew-doctor to confirm your crew backend is ready, if you plan to spawn workers. |
| 06 | Run /ponytail-audit once the codebase has real code, finds complexity to cut. |
| 07 | Check rtk gain after a few sessions, shows your actual token savings. |