Skip to content

docs: add RUNNERS.md, correct the stale review-runner claims - #81

Merged
nkg merged 1 commit into
mainfrom
docs/runners-md
Sep 11, 2026
Merged

nkg merged 1 commit into
mainfrom
docs/runners-md

Conversation

@nkg

@nkg nkg commented Sep 11, 2026

Copy link
Copy Markdown
Owner

Two things: a doc that did not exist, and three that my own change made wrong.

I left the README stale in #80

v3.4.0 changed claude-code-review.yml from the self-hosted default to ubuntu-24.04. I did not update the README when I made that change, so three sections still told readers the opposite## Runner strategy, ### Choosing a runner, and ## Self-hosted runners all named claude-code-review.yml as defaulting to self-hosted.

Each is corrected and names the version the default changed in, so the history stays legible rather than silently rewritten. claude.yml genuinely does still default to self-hosted and is unchanged.

RUNNERS.md

The RUNNER_POOL and DIND_POOL conventions were documented nowhere — only in comments inside the workflows that use them (visible once you are already editing the file you would need to change) and in merged PR bodies (effectively write-only). Nothing said which repos have which toggle, which way each defaults, what is deliberately pinned, or how to reverse any of it.

The new doc covers:

  • both variables, and why they default in opposite directionsRUNNER_POOL to self-hosted because the safe default is the status quo; DIND_POOL to hosted because there, hosted is the fix and defaulting to a single contended dind runner would preserve the fault
  • flip and revert commands at repo and org scope, including that a malformed value breaks every job using it at runner assignment
  • the four jobs deliberately pinned to self-hosted — Komodo on the home-lab network, the two secret-rotation workflows, and monitoring_stack's existing opt-out — so nobody "fixes" them
  • the gotchas that cost time: floating ubuntu-latest, ubuntu-22.04 shipping Python 3.10, Dependabot PRs getting no secrets, the E2E concurrency guard that outlives its reason, and metered minutes not being poolable across orgs

It defers to the README for the runs-on input mechanics rather than restating them.

It deliberately does not tabulate current state

An inventory of state that lives in another system goes stale. In this fleet a version-pin table drifted three times in two days, twice while the PR carrying it was open. So the doc gives the commands to read the truth instead.

Those commands are verified rather than plausible — and one finding is worth the warning it now carries:

gh search code --owner sproncy vars.RUNNER_POOL   →  (empty)

gh search code does not index these private repos, and returns an empty result rather than an error — which reads as "nothing uses this". The doc warns against it and gives a workflow walk that actually works, tested against sproncy (finds all 8 files across 5 repos).

🤖 Generated with Claude Code

https://claude.ai/code/session_0114gaSKj6YinQCkmxVbDACv

v3.4.0 changed claude-code-review.yml from the self-hosted pool default to
ubuntu-24.04, and I did not update the README when I made that change. Three
sections still told readers the opposite -- Runner strategy, Choosing a
runner, and Self-hosted runners. Corrected, each noting the version the
default changed in so the history stays legible.

Adds RUNNERS.md for the consumer-side conventions the README does not cover,
because they live in the consuming repos rather than here: the RUNNER_POOL
and DIND_POOL variables, why they default in opposite directions, the flip
and revert commands, the four jobs deliberately pinned to self-hosted, and the
gotchas that cost time to find.

It deliberately does not tabulate current state. An inventory of state held in
another system goes stale -- a version-pin table in this fleet drifted three
times in two days, twice while the PR carrying it was open -- so the doc gives
the commands to read it instead. Those commands are verified: notably
`gh search code` does NOT work for private repos here, returning an empty
result rather than an error, so the doc warns against it and gives a workflow
walk that does work.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0114gaSKj6YinQCkmxVbDACv
@nkg
nkg merged commit 0677453 into main Sep 11, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant