Repository navigation
ci(review): two automatic reviews per pull request, on Sonnet - #24
Merged
Merged
Conversation
Each Louise review is a Claude session, and every push started a new one: coracle.coffee ran 247 reviews on 100 pull requests in four days of October. - A gate job counts the earlier reviews from a count the post job writes on the comment's second line. A push starts a review only while there have been fewer than two. Opening, reopening, marking ready, and the new louise:review label always start one; the post job removes the label. - The session runs with --model sonnet, and CLAUDE_CODE_SUBAGENT_MODEL with _FORCE puts the louise:reviewer subagent on Sonnet too, over its model: opus, which a local session still uses. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 4, 2026
bowenforsoup
added a commit
to bowenlabs/louise-toolkit
that referenced
this pull request
Oct 4, 2026
## What changes The Louise review caller adds `labeled` to its `pull_request` types, so the `louise:review` label asks for another review. The label exists in this repository now. ## Merge order Merge bowenlabs/claude-plugins#24 first. That pull request limits a pull request to two automatic reviews, moves the CI review to Sonnet, and ignores labels other than `louise:review`. Until it's on `main`, a `labeled` event here would start a review for any label. This pull request is a draft so that opening it doesn't start a review on the current workflow. Mark it ready after #24 merges; that review then runs on Sonnet. ## Testing - `actionlint` 1.7.12: clean. Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
bowenforsoup
added a commit
to bowenlabs/astroidjs
that referenced
this pull request
Oct 4, 2026
## What changes The Louise review caller adds `labeled` to its `pull_request` types, so the `louise:review` label asks for another review. The label exists in this repository now. ## Merge order Merge bowenlabs/claude-plugins#24 first. That pull request limits a pull request to two automatic reviews, moves the CI review to Sonnet, and ignores labels other than `louise:review`. Until it's on `main`, a `labeled` event here would start a review for any label. This pull request is a draft so that opening it doesn't start a review on the current workflow. Mark it ready after #24 merges; that review then runs on Sonnet. ## Testing - `actionlint` 1.7.12: clean. Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Each Louise review is a Claude session that costs about $1.55 to $1.93 in API-equivalent usage, billed against the Claude subscription because CI signs in with
CLAUDE_CODE_OAUTH_TOKEN. Every push started a new one: coracle.coffee ran 247 reviews on 100 pull requests in the first four days of October. About 60% of them re-reviewed a pull request that already had one. The review bots made about 8,300 of the roughly 9,600 Louise MCP calls in the last 30 days. Each review also bills 5 to 6 Actions minutes, and private repositories have nearly used the Team plan's 3,000 included minutes for October.What changes
gatejob counts the earlier reviews before the review job starts. A push starts a review only while there have been fewer than two. Opening, reopening, marking ready for review, and the newlouise:reviewlabel always start one.postjob writes the count on the review comment's second line,<!-- louise-review-count: N -->, so the count survives the comment being replaced. A review posted before this change counts as one. The gate reads only bot comments.postjob removes thelouise:reviewlabel after posting, so adding it again asks for the next review.--model sonnet.CLAUDE_CODE_SUBAGENT_MODEL=sonnetwithCLAUDE_CODE_SUBAGENT_MODEL_FORCE=1puts thelouise:reviewersubagent on Sonnet over itsmodel: opus. A local session keeps Opus._FORCEneeds Claude Code 2.1.257 or later; the action installed 2.1.289 on today's runs.labeledto the event types.Rollout
Merge this before any caller adds
labeled. With the currentmain, alabeledevent would start a review for any label. A caller withoutlabeledstill works: a push past the cap is skipped, and marking the pull request as a draft and then ready for review asks for another. Each repository that wants the label path addslabeledto its caller's types and runsgh label create louise:reviewonce.Testing
jqon sample comments. An old review without a count reads as 1. A review with count 2 reads as 2. A human comment claiming count 99 is ignored. No comments gives 0.postjob'ssedon review files with the marker line and without it.actionlint1.7.12, with shellcheck on therun:scripts: clean.pnpm run lint:docs: 0 errors.Generated with Claude Code