Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
fdf63f5
Add a local Claude review worker for essential pull request heads
seathatflowsinourveins Oct 10, 2026
85072f3
Harden the review worker after the security review and the live probes
seathatflowsinourveins Oct 10, 2026
f4db172
Run the review worker on one key, with the other two as cold spares
seathatflowsinourveins Oct 10, 2026
23b4106
Close a review's ledger ref only while its debit is open
seathatflowsinourveins Oct 10, 2026
637547b
Keep the reservation when a review's output has no readable record
seathatflowsinourveins Oct 10, 2026
00c1116
Post a review only while its head is current, and never post it twice
seathatflowsinourveins Oct 10, 2026
c27cad4
Make the offline L7, L8 and L9 checks fail when their calls are missing
seathatflowsinourveins Oct 10, 2026
7f575e5
Record the fixes after the GPT read, and paraphrase the routing row
seathatflowsinourveins Oct 10, 2026
b2344f7
Run each review inside Anthropic's sandbox runtime, allowing only the…
seathatflowsinourveins Oct 10, 2026
42f569e
Record the network boundary, its measurements and its limits
seathatflowsinourveins Oct 10, 2026
16703fa
Settle superseded comments durably and start srt without the key
seathatflowsinourveins Oct 10, 2026
b257449
Catch wrapped quotations and keep the final head check as open work
seathatflowsinourveins Oct 10, 2026
5341e4a
Take up the command center's P3 notes from its read at 3d0bead8
seathatflowsinourveins Oct 10, 2026
46c6166
Cite the Python behaviour the records-rule detector rests on
seathatflowsinourveins Oct 10, 2026
2bb4a4d
Fill the keys first, in order, and record each run's tokens
seathatflowsinourveins Oct 10, 2026
3718b24
Put anthropic-api-3 second in the fill-first order, and label each close
seathatflowsinourveins Oct 10, 2026
3e86c19
Correct the worker's text that #981 made false
seathatflowsinourveins Oct 11, 2026
317cdd3
Answer the CC's micro at a3881b19, with the owner's key order and cac…
seathatflowsinourveins Oct 11, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
724 changes: 724 additions & 0 deletions docs/decisions/2026-10-09-claude-review-worker.md

Large diffs are not rendered by default.

13 changes: 13 additions & 0 deletions docs/github-automation.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,19 @@ The Actions allow-list below was checked against live settings and pinned source
removed: the API refused every request that carried the action's attribution, on every stored Console key, while
the same keys work from the CLI and the Agent SDK. Reviews now come from the local Claude review worker, the GPT
and trading reads, and Codex's GitHub review; the required checks and the landing scripts enforce the gates.
- **Local review of essential heads** ([`tools/claude-review-worker/`](../tools/claude-review-worker/README.md), added
2026-10-09): a command-center-owned systemd user timer reviews, every 15 minutes, this repository's same-repository
heads that touch `blueprints/us-equities/`, `.github/`, `scripts/validate*.py`, `tools/credentials/`,
`adoption/hooks/` or `tools/local-pages/`, and every head of the private trading repository. Claude Code headless runs
on a stored API key inside a bubblewrap sandbox with no home directory (no gh login, no key store), the key passed by
`tools/credentials/credential_run.py` through the environment only; Read, Glob and Grep only, no CLAUDE.md memory
(`CLAUDE_CODE_DISABLE_CLAUDE_MDS=1`), a $10 client budget, an 11 USD bound per run and a 55 USD daily ceiling in the
api-actions ledger. A trading head's prompt also carries the owner's upstream-alignment rule: each claim about
external behaviour must cite an upstream pin or a vendor URL. A model-free step posts the commit
status `claude-review/local` (here the status only, its description built from parsed fields; on the private
repository also one sanitized comment), which the command center's landing scripts can require on essential pull
requests; the ruleset does not. Posting stays off until the command center installs it and sets
`CLAUDE_REVIEW_POST=1`, and no real review has run ([decision](decisions/2026-10-09-claude-review-worker.md)).
- **Against the final catalog of 2026-10-01** (`docs/final-catalog-20261001.md`, #595): the picks each blind model
family made for these layers. The clean-room definitive round announced there decides one pick per slot.
- git-github-automation: both families picked git, gh, Worktrunk and sem (the Claude pick keeps sem only if a
Expand Down
44 changes: 42 additions & 2 deletions manifests/evidence.json
Original file line number Diff line number Diff line change
Expand Up @@ -18625,6 +18625,11 @@
"sha256": "98947f11f2a3eb693c9c31b3fff6e58e1f20d476411aa49f42f66888d43c6d47",
"bytes": 54090
},
{
"path": "docs/decisions/2026-10-09-claude-review-worker.md",
"sha256": "8ac125de3ef17e149391e08175b00f67cf365d0ebcd8a5bb0a91f301d2e3337c",
"bytes": 62373
},
{
"path": "docs/decisions/2026-10-09-codex-native-review-trial.md",
"sha256": "337ec932d1e70994adc7b6e90458114e604d70ec065c49fc7d7ff8c2191e11fc",
Expand Down Expand Up @@ -18872,8 +18877,8 @@
},
{
"path": "docs/github-automation.md",
"sha256": "5b12ec4c5b5323d1ff39987a710de18cab5e2c1beb916c5a6918e076a42643d1",
"bytes": 102555
"sha256": "b3622e272e6cbfb083ebbb40e853f0451de066e8fcab2db9a2f91c07b5753f19",
"bytes": 104021
},
{
"path": "docs/grand-catalog-counts.md",
Expand Down Expand Up @@ -61455,6 +61460,11 @@
"sha256": "bc84e4527cbbd894ad524981ee5c90230552a42cb53e7088699ee9a0d2730093",
"bytes": 11326
},
{
"path": "tests/test_claude_review_worker.py",
"sha256": "890d644757305e86a3157c325f05ddeca2588ece27faa8d39f642b2901aa7691",
"bytes": 130675
},
{
"path": "tests/test_claude_spend_scan.py",
"sha256": "bd4994e38cdadfa5b4099351261c6908875540d5be54139aa9e4f8dae4691e4b",
Expand Down Expand Up @@ -62745,6 +62755,36 @@
"sha256": "3efdc4b54ba33b11c67f8f2449167de03b558e8c53c7e09cdb5a9f66593311a7",
"bytes": 22476
},
{
"path": "tools/claude-review-worker/README.md",
"sha256": "aaccf9237e8ad77968e452c0f6bfbfcc6ea23d77374d0aa0776ae9b8a891d4c5",
"bytes": 13873
},
{
"path": "tools/claude-review-worker/essential-paths.json",
"sha256": "68c9ea2f3f50d996da35491ff3a0d1892bb217b67006ca2fd07eae094030a9f3",
"bytes": 4190
},
{
"path": "tools/claude-review-worker/probes.py",
"sha256": "e8c6b5b00da9bd1011835a42a9768e31a427ce34b137ea9676d726010d311bf6",
"bytes": 51641
},
{
"path": "tools/claude-review-worker/systemd/claude-review-worker.service",
"sha256": "b6b5268e4a4a0cdb91ce351cf2c8554a02fe2c466fe2740d7bad15d33207be18",
"bytes": 2680
},
{
"path": "tools/claude-review-worker/systemd/claude-review-worker.timer",
"sha256": "b2a31d4cdadecf261f1a38a6ead9f170898a59013c900be4d9d86f4f7cf78503",
"bytes": 648
},
{
"path": "tools/claude-review-worker/worker.py",
"sha256": "30d5fbd68f6c521a3336a104df7b1cec223177ff6c3008d66cdfc7d7fef270a6",
"bytes": 129379
},
{
"path": "tools/credentials/canary_lane_consumer.sh",
"sha256": "e820394825eeea9a1cfcec3c2ec87ccb62400af28c929f6ab2d52a99cd0a810c",
Expand Down
Loading
Loading