distribution-vet
CommandMaintainer-only. Classifies every file that would newly ship to adopters against the written distribution-boundary categories,…
Runs the single post-init onboarding. Detects the situation and runs only the owed phases; safe to re-run. --reconfigure re-asks the sandbox (an admin's answer also sets the team sandbox-recommendation, asked on its own only when that answer cannot), isolation-policy,
$ npx -y skills add gaia-harness/gaia --agent claude-code
name: setup-gaia description: Runs the single post-init onboarding. Detects the situation and runs only the owed phases; safe to re-run. --reconfigure re-asks the sandbox (an admin's answer also sets the team sandbox-recommendation, asked on its own only when that answer cannot), isolation-policy, squash-only-merge, and statusline decisions. disable-model-invocation: true
Run this once after `/gaia-init`, and re-run it any time. `/setup-gaia` is the single onboarding command for a GAIA project. It detects the situation and runs only the phases this clone actually owes:
It is safe for **any developer** to run at any time. A phase is owed when its own gate says so, or when the shipped setup feature list (`.gaia/setup-features.json`) holds its feature with no recorded decision; each decision it makes is recorded. A plain (no-flag) re-run on a provisioned project whose decisions are all recorded prints the already-provisioned line and mutates nothing: it never re-provisions the repo or changes branch protection. The one exception is a repo admin re-running it on a repo whose required checks still lack `GAIA-Audit` (or still carry the stale `code-review-audit` context): that run owes the registration and makes it. Pass `--reconfigure` to re-ask the sandbox decision (Phase 2), whose answer from a repo admin also sets the team sandbox recommendation, the team git isolation policy (Phase 3.5), the squash-only-merge offer (Phase 3.7), and the statusline left-side choice (Phase 4.6).
Contents: Pre-flight: Worktree check; Argument parse; Phase 0: Prerequisites (toolchain floors first); Phase 1: Detect situation; Phase 2: Per-machine setup; Phase 3: GitHub repository; Phase 3.5: Team settings; Phase 3.7: Squash-only merges; Phase 4.5: Label sync; Phase 4.6: Statusline left side; Phase 5: Owed setup features; Phase 5.5: Land setup decisions; Phase 6: Finalize; Idempotence / re-run safety; On failure: re-run.
This command reads these references, all under `.claude/skills/gaia/references/setup/`. Read one only when a "Read ... now" line sends you there, and then read the whole file:
This command does per-machine and per-clone provisioning, writes `.gaia/local/setup-state.json`, and provisions the GitHub repository. If invoked from a linked worktree, reject hard: `gaia_refuse_if_worktree` (`.gaia/scripts/main-only-lib.sh`) asks the shared resolver which tree this is and refuses out loud, naming the main checkout (the clone's primary working directory, on any branch), when the answer is a worktree.
Detection (run this first, before anything else):
. .gaia/scripts/main-only-lib.sh gaia_refuse_if_worktree "/setup-gaia" || exit 1
Once the refusal has passed, mark setup as running so the statusline stops telling the user to run the command that is already running. A refused worktree run never reaches this call:
mkdir -p .gaia/local && touch .gaia/local/setup-running
Parse `$ARGUMENTS` for the `--reconfigure` flag. Cache the boolean as `RECONFIGURE`. It re-opens these settled decisions and nothing else: the sandbox decision in Phase 2, whose answer from an admin also sets the sandbox recommendation, the isolation policy in Phase 3.5 (and the sandbox recommendation there, only when Phase 2's answer did not set it), the squash-only-merge offer in Phase 3.7, and the statusline left-side choice in Phase 4.6. When `/gaia-init` reads this file inline at its last step, `$ARGUMENTS` is not substituted: `RECONFIGURE` is false.
These record no setup-state step.
Run this first.
bash .gaia/scripts/toolchain-check.sh --scope user
Exit 0: say nothing and continue. Exit 1: read `.claude/skills/gaia/references/toolchain.md` now and run its `## Below a floor` with this comma
Claude is raw power. GAIA is order and focus. A serious harness for Claude Code. It keeps Claude-shipped code production-grade as your team scales. The React frontend is handled. You build the rest of your app on top.
Maintainer-only. Classifies every file that would newly ship to adopters against the written distribution-boundary categories,…
Cleanses memory and auto-loaded files (CLAUDE.md, rules) of duplication with the wiki, contradictions with the wiki, and stale…
Drafts a guard (deterministic check, skill, or path-scoped rule) for a recurring code-audit finding class, with approval. Reviews…
Fixes the tech-debt backlog, a single issue, a recommended related batch, or an optional batch of small unrelated issues, highest…
Lints this project's Claude integration (skills, commands, agents, rules, hooks, settings, CLAUDE.md files, wiki) with a…
Turns a GAIA workflow misfire into a redacted, classified, filing-ready bug report in one read-only pass. Self-diagnoses config…
Implement tasks incrementally — build, test, verify, commit. Add "auto" to run the whole plan in one approved pass.