Skip to main content

Quick Start

Three scripts. Report first, apply second, verify third.

SK=~/.claude/skills/prometheus-context-bootstrap
# or, from a checkout:
SK=path/to/prometheus-skill-pack/skills/process/prometheus-context-bootstrap

New project​

cd my-project
bash "$SK/scripts/bootstrap.sh" --path . --dry-run # plan only
bash "$SK/scripts/bootstrap.sh" --path .
bash "$SK/scripts/verify.sh" --path .

Stacks are detected from Cargo.toml, package.json, pubspec.yaml, go.mod, and pyproject.toml. Override with --stacks rust,typescript.

Existing project with a Prometheus Base Rules v3 file​

bootstrap.sh exits 2 on a v3 file rather than appending to it. Two constitutions in resident context degrade adherence to both, so it refuses and points at the migration.

bash "$SK/scripts/migrate.sh" --path . # report, writes nothing
bash "$SK/scripts/migrate.sh" --path . --apply # archive, then bootstrap
bash "$SK/scripts/verify.sh" --path .

Read .prometheus/MIGRATION-REPORT.md before committing. It lists every project section the migration deliberately did not place.

What gets written​

AGENTS.md # single source of truth
CLAUDE.md # symlink to AGENTS.md
.claude/settings.json # permissions, skill budget, hook wiring
.claude/hooks/*.sh # tier-guard, single-writer, sycophancy-gate, reanchor
.claude/rules/<stack>.md # path-scoped; free until a matching file is read
.claude/agents/artifact-critic.md
.prometheus/ # session-log, decisions, gotchas, postmortems/, knowledge/
.prometheus/model-fleet.md # which models read this repo
.kbd-orchestrator/current-waypoint.json
versions.toml # stub, if absent

Flags​

FlagMeaning
--path <dir>Project root. Default .
--dry-runPrint the plan and agent-file diffs. Write nothing
--forceRe-copy hooks, rules, settings. Never touches operator prose
--stacks a,bOverride detection
--profile pmixed (default), strict, lean. See Model Profiles
--no-hooksSkip hooks and the settings hook block
ExitMeaning
0Applied, or dry run completed
1Usage error
2Refused: v3 file, or corrupt marker pair

Three write modes​

Every path falls into exactly one, and the report names which applied.

CREATE — absent, written whole.

SPLICE — AGENTS.md exists and is not v3. Only the region between <!-- prometheus-base:start v1 --> and <!-- prometheus-base:end --> changes. Written to a temp file and moved, so an interrupted run never leaves a half-rewritten agent file.

SKIP — exists and is not marker-managed. Reported, untouched. --force promotes SKIP to CREATE for hooks, rules, and settings only — never for agent prose or .prometheus/ history.

Verify​

bash "$SK/scripts/verify.sh" --path .
PASS AGENTS.md markers well-formed
PASS AGENTS.md size 1396 managed words (profile mixed, ceiling 1500)
PASS CLAUDE.md symlink -> AGENTS.md (no double load)
PASS hooks executable 4 hook(s)
PASS tier-guard wired
WARN skill budget measured 2267 skills, ~163254 tok vs ~4000 — 40.8x OVER
PASS .prometheus layout complete

PASS 10 FAIL 0 WARN 2 SKIP 0

Four states, and the distinction matters.

PASS — checked and holds. FAIL — checked and does not hold. Exit 1. WARN — a real finding this repo cannot fix alone, such as the machine-wide skill budget. Does not change the exit code, because a gate that always fails stops being read. SKIP — could not run. Never counted as PASS. A check that did not run is unverified, and reporting it as passing is how a gate becomes decorative.

After bootstrap​

/kbd-init # project.json + constraints.md
bash "$SK/scripts/skill-budget.sh" --path . # measure, do not assume

Then write the project-specific content: real pins in versions.toml, real build and test commands in .claude/rules/<stack>.md, the fleet in .prometheus/model-fleet.md, and the first entry in .prometheus/decisions.md.

The bootstrap installs the frame. The content is yours.