For every repository your agents touch

Rules your agent can't skip.

Your agent reads rules as advice. Claudinite checks the work — at the stop, and in CI — from plain files in every repo you own.

Plain files in your repo. No server, no account.

Two gates between a session and main Three agent sessions each send a change along a lane toward main. The first gate, at session stop, checks the diff and the session; the second, in CI, checks the repository. A change that fails a gate turns red, carries a tag naming the fix, and returns to its session before coming back green. Only changes that pass both gates stack up on main.
two gates · the finding names the fix · main only holds what got through

“Claude treats them as context, not enforced configuration.”

Claude Code docs, on CLAUDE.md

Arrived is not followed

Every tool checks the rules arrived. One checks they were followed.

  • Rule-distribution tools — file matches source. Drift, not conduct.
  • Orchestrators, cockpits — rule files listed, never read back.
  • Plugins, marketplaces — capability in; nothing enforced per repo.
  • Claudinite — diff, transcript and repo checked. Door held.

Whatever runs your agents, this sits under it.

The agent stack as a building, in cross-section Four floors, top to bottom: who does the work — orchestrators, many sessions; how do you watch it — cockpits, grids of sessions; how does capability reach a session — plugins, marketplaces, rule delivery; what file does the agent read — CLAUDE.md, AGENTS.md, SKILL.md. The ground floor, in the accent colour, asks whether the rule was followed: Claudinite, stamped “checks run here”. 4 · Who does the work? orchestrators, many sessions 3 · How do you watch it? cockpits, grids of sessions 2 · How does capability arrive? plugins, marketplaces, rule delivery 1 · What file does the agent read? CLAUDE.md, AGENTS.md, SKILL.md ground · Was the rule followed? Claudinite checks run here

Caught before the commit, again in CI

A check is a compiler error, not a comment.

Hooks decide by exit code, not by what the model says.

  • Start — rules loaded, 7 probes passed.
  • Tool call — guarded calls denied.
  • Stop — diff and transcript checked; blocking holds the session.
  • CI — repo checks gate the PR.

Clean tree, instant exit. Repo checks again in CI; transcript checks never.

claude — your-repo

◆ SessionStart · 10 packs · 67 checks · self-test 7 probes passed

> implement the signup flow

◆ PreToolUse · denied: deleting a remote branch

… edits, commits, tries to end …

◆ Stop · checks on the diff and the transcript

blocking no commit references an issue

  why: the issue is the change’s record   fix: reference it — “refs #42”

> git commit --amend -m "Add signup flow (refs #42)"

✓ all green — session ends

◆ SessionEnd · transcript captured

◆ CI · repo-state checks green → merge

  • 14 days

    advisory before a new check blocks

  • 1 reason

    recorded, silences a finding

  • 2 tries

    then the stop lets go

A check costs no context

Prose spends attention. A check spends none.

Every rule dilutes every other. Higher rung: less context, harder bind.

Your session’s first line prints the price.

  1. proseevery sessionthe agent may apply it
  2. skillon demandthe agent may apply it
  3. checkno contextit blocks
  4. hookno contextit denies the call
  5. settingno contextthe platform refuses

Fix it once. Every repo inherits it.

One canon. Every tap.

  • Daily — one PR per repo.
  • Green CI — lands itself. Or waits for review, one setting.
  • Migrations ride along. No hand-edits across forty repos.
  • Upkeep on schedule — every change a PR, through your CI.

No pin, no rollback yet — each repo’s CI gates each cycle.

What one repo learns, all repos keep

Fought once. Remembered everywhere.

  • Transcript → a branch in your repo, scrubbed, pruned.
  • Lesson → local pack, in a PR you review.
  • Portable → canon, gated PR → every repo by morning.
  • Weekly — prose that can be a check, becomes one.
The growth ring Five nodes round a ring, with arrows running clockwise: session, transcript, local pack, canon, every repo, and back to session. The canon node is highlighted. session transcript local pack canon every repo a lesson, once

Nothing leaves your repo

A paper map, not a subscription.

  • In — the canon, as a PR.
  • Out to Anthropic — the session, as before.
  • Out to the canon — promoted lessons, reviewed, opt-out.
  • Bots hold — your Actions token, 1 routine token.
  • To leave — delete tracked files: the tree, the settings, 6 hooks, 1 import, 2 workflows, 1 CI step.
What flows in and out of your repository Your repo, holding the vendored tree, the settings file and the workflows, sits in the centre. From the public canon a daily pull request flows in; promoted lessons flow back to the canon as a dashed, opt-out arrow. The session goes out to Anthropic exactly as before. There is no other arrow, and no Claudinite server. your repo .claudinite/ .claude/settings.json .github/workflows/ canon public Anthropic

The unit that travels

The pack carries it.

  • Rules — every session.
  • Checks — blocking or advisory, fix named.
  • Skills, tasks — on demand, on schedule.
  • Manifest — catalog, interview, seeded files.

In the canon now

Who it’s for

One repo. A fleet. An organisation.

  • One developer, one repo

    Stricter every session.

  • A shop or agency

    One canon, many client repos, a local pack each.

  • An organisation

    Shared packs; every repo visibly current.

Not yet

What it doesn’t do.

  • Claude Code only

    Others read the rules; CI still checks their PRs.

  • GitHub only

    Issues, Actions, PRs.

  • One canon

    Public, shared. Private canons: not yet.

  • No pin, no rollback

    Next cycle reaches every repo; your CI gates it.

  • No fleet roll-up

    Per repo: PRs, issues, CI runs.

  • One hand-wired step

    One routine, one token, by hand.

  • No published price

    A public repo, no price yet.

Adopt

One conversation, then one wire-up.

  1. Point Claude Code at the canon. “Adopt Claudinite — follow missingbulb/Claudinite’s bootstrap.md.”
  2. Answer the interview. One green PR: canon, hooks, scheduler, CI.
  3. Merge, wire the runner once. Then it runs itself.
  • No server, no account.
  • Works alongside your CLAUDE.md.
  • Every automated change is a PR.
claude — acme/payments

$ claude

>

◆ fetching canon · running the adoption interview…

✓ canon vendored at .claudinite/shared/

✓ packs declared · interview answered

✓ hooks registered · scheduler wired · CI sweep added

✓ conformance sweep green — bootstrap PR opened

FAQ

Fair questions

What if Anthropic ships this natively?

Distribution ships fast; nothing yet checks conduct, converges a fleet or shares lessons.

What if you disappear?

Files keep working; updates stop.

How is this different from a scorecard?

It observes from outside; this fixes inside the repo.

Is there a SOC 2?

No — nothing hosted to certify.

What is the licence?

None published yet.

Does it help with an AI policy or the EU AI Act?

A codified, distributed stance; no formal mapping.

Can a developer disable it locally?

A local edit can. CI still runs.

Windows? Monorepos?

Node and bash — WSL on Windows. A monorepo is one repo.

Does it work in Claude Code on the web and in CI containers?

Yes — the corpus is in the checkout.

Will it fight my CLAUDE.md?

No — it imports through it, keeps it lean.