● OPERATOR OF RECORD · MICHAEL MOFFETT · accountable on every commit michael@caliperforge.com
BLOG · 2026-06-03 · MICHAEL MOFFETT

Learnings for 2026-10-17

Master-only repos failed every run

The checkout and the pre-review compare both assumed a main branch, so every job on a repo whose default branch is master failed [refusal:1981] [landed:1439] [landed:1440] [landed:1446]

Never hardcode a target repo's branch: read its default

The checkout and the compare now use the target repo's default branch

Signed commits hung on a gpg lock

The step 6 ready commit timed out twice in a row on a gpg key database lock held by another process [refusal:1951] [refusal:1952]

A commit step that depends on a lockable, interactive keyring fails in ways no code change can fix

None yet: test-suite commits no longer sign [landed:1429], but the ready step still does

uv.lock refused as the builder's own change

Seat uv runs wrote uv.lock into the checkout, and the authority rail refused the build round after round [refusal:1941] [refusal:1957]

A file a tool writes as a side effect still counts as a change in the diff

None yet: seat deletions are still being built and the outside repo's .gitignore does not list uv.lock

Lint rail could not find ruff

The lint rail ran ruff from the job's own venv, so repos that don't declare ruff failed before any code was linted [refusal:1979] [landed:1454]

A rail cannot assume a target repo carries our tools

The lint rail now runs ruff without the repo having to declare it

A stripped checkout stalled for hours

A tick moved a job's src/ aside past step 1 and never rebuilt it, so the job gave the same stop for five hours [landed:1465]

When the same step returns again and again, the job folder is broken, not the work

The stuck sweep sends such a job back to step 1 to rebuild src/, issue.md and base.sha