Skip to content

docs: bring the README current and document what it actually takes to run this#18

Merged
mabry1985 merged 1 commit into
mainfrom
docs/readme-current
Jul 23, 2026
Merged

docs: bring the README current and document what it actually takes to run this#18
mabry1985 merged 1 commit into
mainfrom
docs/readme-current

Conversation

@mabry1985

Copy link
Copy Markdown
Member

The README was materially wrong in ways that would waste a newcomer's day.

Stale facts, now corrected

said actual
github-plugin v0.2.0 v0.3.0
pr-reviewer v0.5.0 v0.17.0 (12 releases behind)
base protoagent:0.106.0 0.108.0
identity "GitHub webhook + gh authenticated" a GitHub App minting installation tokens

Version claims are now checked against protoagent.bundle.yaml and the Dockerfile rather than written from memory.

The part that was missing entirely: what it takes to run this

A Requirements section covering the four things that must be true before a single review runs — ordered so the two that fail silently come first.

1. The GitHub App. Permissions table derived from the API calls the plugin actually makes (/pulls, /contents, /check-runs, /issues, /collaborators, graphql), and — critically — the webhook events:

An App subscribed only to pull_request accepts the summon feature happily and then never delivers a single command. Correct code, no event, no error anywhere.

That cost us a day. It's now called out with the health endpoint that diagnoses it in one request.

2. Inference with enough context. The panel is five parallel finders at ~37k tokens each. Documented: context ≥ 64k with headroom, no aggressive TPM cap, and the two failures we actually hit — a 32,768-token total ceiling (prompt plus output) that exhausted the panel on every large diff, and a 12,000 TPM free tier that rejected a single finder. Plus the honest cost: nine LLM steps, 5–9 minutes, ~$0.12–0.15 a review hosted.

3. Host tooling. git, gh, clawpatch — and that a missing clawpatch degrades rather than fails.

4. Config. The knobs an operator actually reaches for, noting they resolve live now.

Two judgement calls written down

Don't skip to hard branch protection. Requiring the QA review to approve before merge sounds like the end state and isn't — this panel produced a twice-confirmed hallucinated blocker where the correct outcome was an adjudicated merge past it. If you want a merge-time guard, require that a verdict exists, not that it approves.

Other orgs: self-hosting is documented as the supported path. A multi-tenant hosted App is a different product with different problems (per-org secrets, budget isolation, noisy neighbours on a shared panel), and saying so beats leaving it implied.

Also new

What the deterministic machinery does that prompts can't (confinement, grounding, convergence, dispositions, fail-closed exhaustion, guard telemetry), the on-demand command surface, and a callout that the config volume is seed-once — which is why the operator state has env fallbacks.

🤖 Generated with Claude Code

… run this

Stale: github-plugin v0.2.0 -> v0.3.0, pr-reviewer v0.5.0 -> v0.17.0 (twelve
releases behind), base 0.106.0 -> 0.108.0, and it described a repo webhook plus
an authenticated `gh` when the reviewer is a GitHub App minting installation
tokens. Version claims are now checked against the manifest and Dockerfile
rather than written from memory.

Adds the section that was missing entirely: what it actually takes to run this,
ordered so the two requirements that fail SILENTLY come first.

The GitHub App section carries a permissions table derived from the API calls
the plugin really makes, and the webhook events — an App subscribed only to
`pull_request` accepts the summon feature and then never delivers a command.
Correct code, no event, no error. That cost a day; it is now documented with the
health endpoint that diagnoses it in one request.

The inference section documents both failures we hit for real: a 32768-token
TOTAL ceiling (prompt plus output) that exhausted the panel on every large diff,
and a 12000 TPM free tier that rejected a single finder. Five parallel finders
at ~37k tokens each is the requirement; nine LLM steps and 5-9 minutes is the
cost.

Writes down two judgement calls: don't skip to hard branch protection (require
that a verdict EXISTS, not that it approves — this panel has produced a
twice-confirmed hallucinated blocker), and self-hosting is the supported path
for other orgs, because multi-tenant hosting is a different product.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mabry1985
mabry1985 merged commit a502540 into main Jul 23, 2026
1 check passed
@mabry1985
mabry1985 deleted the docs/readme-current branch July 23, 2026 10:58
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