First hour on the mill, then the settings that let a team walk away without a silent merge.

A millwright watches four glass lanes start to glow from a brass console, while a second hangs a helmet on a peg, ready to leave.

Stay for the gates. Then you can walk away.

Install, /setup, one real goal, sit through every human stop. After that the committed policy is what a teammate inherits.

Guide — first hour on the mill

01

Install Loomwright

Use the app you actually type in. Open the install steps. Do not paste /plugin into zsh — that is a chat command, not a file path.

02

See what is wired

/setup is a dashboard, not a wizard that overwrites you. Check observability, notifications, Twin, Beads, then turn on only what you want.

/setup
03

Pick a lane

One new goal: /autonomous. An existing PR: /review-pr. A pile of stories: /automate. Do not start all three at once.

/autonomous "add a daily challenge that resets at midnight UTC"
04

Stay for the gates

This is foreground-assisted, not fire-and-forget. Save or refine the brief. Answer rubric gates. Desktop banners fire when the mill needs you.

05

You merge

A healed PR is still an open PR. Read the diff. Merge it. Then run /dreaming after a week so the mill keeps the lessons you actually want.

/review-pr https://github.com/you/repo/pull/42
# bounded review → fix → re-review. Never merges.

Run it across a team

Four brass-and-glass mills in a sunlit loft, each run by tiny millwrights, all driven by one overhead shaft.
Four machines · one drive shaft · one committed policy

One person can hold a mill in their head. Four cannot. So the settings that matter are committed, the dangerous ones are off, and the ones that cost money are a flag you passed on purpose.

Three planes of authority. Human authority — CLAUDE.md, approving the brief, the merge, every promotion — always wins. Committed policy — supervisor config, house rules, branch protection, base branch — binds every run and travels with the repo. Advisory signals — System Twin, lessons, red-team, project memory — can only propose upward through a human gate and never gate a merge.
The rule that makes this safe to hand to a team: advisory can propose, only a human can promote, and only committed policy binds an unattended run.

Write your policy down

Flags live in one person’s shell history. .supervisor/config.json is committed, reviewed, and applies to every run in the repo, including the unattended ones. Toggle the knobs to build yours.

Commit this · .supervisor/config.json

{}

Pass this · per run

/autonomous "…"

The one place a merge can happen

Every other surface — /supervisor, /review-pr, the heal loop — terminates with the PR still open. Auto-merge exists in exactly one place, is off unless you pass --auto-merge, and needs all five of these to hold. Anything it cannot read counts as a failure.

The five-condition trusted auto-merge gate: the review drain returned READY and not under the severity floor; the head SHA is unchanged and the base is still main; review decision is not blocking and no human thread is unresolved; the branch has enforceable protection; required checks are green and the rubric is satisfied. Any false or unreadable condition parks the PR and notifies instead of merging.
Condition four is the one teams forget: a branch with no enforceable protection will not auto-merge unless you explicitly say you trust it.

What leaves the building

The usual first question from anyone who has to sign off on this. The mill reads your repo, your history, and your logs from where they already are. Three things can go outward, and all three are off until someone turns them on.

Boundary diagram. Staying local: session logs and supervisor state, project memory and System Twin, the insights dashboard, the Obsidian vault, and the Langfuse and OTel observability stack running in Docker on your machine. Crossing by default: branches, commits and pull requests to your own git remote, and prompts to Claude exactly as any Claude Code session sends them. Opt-in only: GitHub-issue telemetry, gate webhooks to a URL you set, and version-controlling memory stores behind a consent step.
The observability module points Claude Code’s own OpenTelemetry at a collector running on your machine. The plugin emits no spans of its own.

A rollout that survives contact

Do not hand a team /automate --auto-merge in week one. Earn each rung.

Week 1 · one person

Prove it on your own branch

One goal, watched end to end

Run /setup, then one /autonomous on real but unglamorous work. Sit through every gate. You are calibrating how good the brief has to be, not measuring throughput.

Week 2 · the repo

Commit the policy

Rules and config, in the repo

Seed /rules so a worker reads your conventions while writing, not after review catches them. Commit .supervisor/config.json. Set the real --base-branch. Now a second person gets your setup by cloning.

Month 2 · the team

Make the trunk defensible

Protection, review, and a scoreboard

Turn on branch protection with a required check. Turn on red_team_high_risk if you touch auth, money, or migrations. Run /insights weekly and /pr-postmortem on the PRs that took four review rounds.

Only then

And only where it is boring

Queues, and maybe a trusted merge

/automate on a backlog, parked at the gate for a human. Add --auto-merge only on a path where a wrong merge is cheap to revert: dependency bumps, copy changes, generated files. Never on the surface you would not let a new hire merge alone.

Managing it once it is running

A mill nobody inspects turns into a mill nobody trusts. These four are the operating loop.

Weekly · is it getting better

/insights

Local scoreboard: heal rate, review rounds, where sessions burn time. Rendered from your own logs, on your own machine. If the trend is flat, the brief is usually the problem, not the model.

When a PR churns

/pr-postmortem

Sorts every review round into a root cause and attributes it to a stage. Four rounds of the same nit means a missing house rule, not a bad reviewer.

When someone new arrives

/handoff

Decision, why, what was tried and rejected, current state, provenance, each with its own freshness. Two minutes to inherit context that would otherwise live in one person’s head.

Monthly · keep what worked

/dreaming + /rules

Distil sessions into proposed lessons and harvested conventions, delivered as a pull request your team reviews like any other. Accept item by item. Nothing writes itself in.

Roadmap — trust is earned, not scheduled

Now · v15

Shipped

The mill is live

Plan-first Launch Pad, parallel Supervisor, review-and-heal, stacked autonomous loops, automate queues, advisory Twin, dreaming, insights, house rules. You still merge.

Next

In the warp

Ground-truth verification

Run the software in the heal pass. Playwright for web apps. Headless loops against a corpus. A hard pass/fail — not a vibes score — before anything is allowed to gate.

Then

Evidence-gated

Twin starts enforcing

Flip advisory conformance to a real gate only after the benchmark has caught real regressions without a false-positive habit. No calendar flip.

Later

Four guardrails first

A proactive mill

A watcher that can open PRs unprompted — cadence expiry, per-run budget, circuit-breaker, heartbeat. Not started. Highest-risk rung. Intentionally last.

North star

Director model

Point at the repo. Own this.

You set intent and approve outcomes. Diff-review becomes optional because the mill already proved the behavior. Everyone else rents a coder who starts cold every morning.

Tiny millwrights sitting with a finished glowing orb on a workbench, the mill behind them standing empty.