Skip to content

Review Anthropic's Code Review Practices Against the Fleet Review Workflow for Cost and Backlog #3391

Open

Description

@ptr727

Context

The maintainer's main concern: the open issue count is not going down, while the monthly cost of agent sessions, Copilot reviews, and Actions minutes has roughly tripled. At the time of filing the hub holds 393 open issues, not counting the 5 open handoff links.

Anthropic's post on how it reviews code: https://claude.dev/blog/solving-code-review-at-anthropic/

Task

  1. Read the post and compare its practices with this fleet's review workflow: local-strict-review, drive-pr, pr-review-conduct, fleet-code-review, the Copilot and CodeRabbit rounds, and the promotion review.
  2. Name where this workflow spends review effort the post's approach would not, and where the post's approach finds what this one misses.
  3. Name where the review loop itself grows the backlog, such as findings filed as new issues faster than lanes close them, and say what the post does about that.
  4. Propose concrete changes, each with its expected effect on cost and on the net issue count, as separate issues or a single ranked proposal. Changes to the review rules or the merge gate are decision items for the maintainer.

Done When

A written comparison exists, with a ranked list of proposed changes, each one measurable against two numbers: the net open issue count per round and the review cost per merged pull request.

Activity

  1. ptr727 commented on Oct 23, 2026

    @ptr727
    OwnerAuthor

    Further context from the maintainer: the same pattern holds in other fleet repositories, not only the hub. Measured as wall time per shipped feature, the return is very low. Most of the time goes to prose and comment work and to waiting on Copilot reviews. Prose quality is improving and may bottom out, letting later work go to features, but at the current cost the funding runs out first. The goal of this issue is therefore cost and backlog first, and review quality second.

    The hub's open backlog at the time of this comment, not counting handoff links:

    • 394 open issues in total.
    • 64 are write guard reads, nearly all shell edge cases in how the guard parses a command.
    • 106 carry the prose, comments, or documentation label.
    • So about 43 percent of the backlog is guard hardening or wording, and most of it was filed by the review loop itself.

    Levers worth weighing here, each a maintainer decision:

    1. A stated threat model for the write guard. The guard backstops mistakes by an agent acting in good faith, and is not an adversarial sandbox. Under that model, a parse gap that only a contrived command reaches gets closed as out of scope rather than fixed, and the guard backlog shrinks to the cases an agent would plausibly type.
    2. One hosted review per change rather than one per pull request. A feature pull request into develop would carry the local pass alone, and Copilot would review once, at the promotion. That cuts both the waiting time and the Copilot cost on every feature pull request.
    3. A severity bar on filing. A review finding below that bar is declined on the pull request rather than filed as an issue, so the review loop stops growing the backlog with wording and style follow-ups.
  2. ptr727 commented on Oct 23, 2026

    @ptr727
    OwnerAuthor

    Re-review this in context of #1311 that laid out a plan to address the issue growth.

  3. ptr727 commented on Oct 23, 2026

    @ptr727
    OwnerAuthor

    Re-review against #1311: the pump moved from prose to the write guard, and two filing rules set the rate

    Live reads taken 2026-10-23 for 2026-10-16 to 2026-10-23 across ProjectTemplate, Financial-Modeling, HomeAutomation-Config, and ESPHome-NonRoot.

    1. What #1311 and #1631 changed, and what they did not

    2. This week, four repositories

    Repository Issues opened Handoff links Non-handoff still open Non-handoff closed PRs merged Open now
    ProjectTemplate 182 45 57 122 113 392
    Financial-Modeling 136 35 43 58 113 140
    HomeAutomation-Config 143 62 41 40 120 77
    ESPHome-NonRoot 19 9 1 9 36 2
    Total 480 151 142 229 382 611
    • 151 of 480 issues created (31 percent) are handoff chain links. Each is a create, a comment on the predecessor, and a close.
    • 108 of the 329 non-handoff issues (33 percent) carry pre-existing. That is the local-strict-review rule "a pre-existing one is filed once and blocks nothing" doing exactly what it says, on every pull request.
    • Issues filed per merged pull request: hub 1.2, Financial-Modeling 0.9, HomeAutomation-Config 0.7, against Why the Backlog Grows: Prose Review Has No Fixed Point, and a Plan to Keep the Rigor Without It #1311's target of below 1. Only the hub misses it, and the guard lane is why. The downstream backlogs are mostly features, bugs, and refactors the maintainer wants, so the concern there is the filing rate rather than the kind.

    3. Cost

    September, full month October, to the 23rd
    Actions Linux minutes 48,042 57,913, on pace for about 78k
    Copilot gross $89 $472
    Copilot review runs, this week, four repositories 418
    Workflow runs, this week, four repositories about 2,200

    The hub used 19,853 of the October minutes, a third of the fleet. #1631 measured agent spend at about $15.4k over two weeks on one machine at list rates, 82 percent of it after a pull request's first review.

    4. Against the Anthropic post

    The post drops style, diagnostics, and cleanup findings before posting, tags a pre-existing defect without filing it and leaves old bugs to a nightly sweep, runs several finders whose findings only post when verifiers agree, caps a pull request at three rounds and then asks the author to reconsider the approach, states its priority as real bugs first and fewer rounds second, tiers human approval by risk, and never re-runs review on identical content.

    The fleet posts every finding and files the pre-existing ones, runs the local pass and each hosted reviewer in series with a written outcome owed per finding, has a two-round local budget but no pull-request cap, requires every finding on head closed at the merge gate, and reviews a feature pull request and again its byte-identical promotion. It also spends where the post would not: a full-file-context adversarial pass per push, a handoff issue per session, and hardening a trusted-input guard against adversarial shells.

    5. Proposed changes, ranked by effect on net open issues and cost per merged pull request

    Each item marked decision is the maintainer's.

    1. Freeze the write guard under its stated threat model (decision). The model exists already: a good-faith agent's mistake, not an adversary. Apply it: a guard issue stays open only where the command shape is one an agent plausibly types in a session. Close the rest of the 61 as out of scope in one sweep, and state the model in one sentence at the top of the guard so the local pass stops filing parser gaps. Consider fail-closed on any command the guard cannot read plainly, which shrinks the code rather than growing it. Effect: about 55 fewer open now, about 15 fewer filed per week, and the hub's largest pull request lane stops.
    2. Stop filing pre-existing findings as issues (decision, rule change in local-strict-review and pr-review-conduct). A pre-existing finding is listed in the pull request body, or appended to one rolling ledger issue per repository, and filed on its own only where it is a correctness defect with a stated failure. Style, consolidation, and wording findings on untouched text are dropped, as the post drops them. Effect: about 100 fewer issues filed per week fleet-wide, and the largest cost-per-pull-request saving, since each filed issue later costs a lane, a pull request, and a review.
    3. Bulk-close the frozen prose backlog (decision). Why the Backlog Grows: Prose Review Has No Fixed Point, and a Plan to Keep the Rigor Without It #1311 froze the prose and procedure issues to close them as superseded when their units were rewritten. The rewrite never ran. Close the 102 with one comment naming this decision, keeping only those that state a claim the shipped code falsifies. Effect: about 90 fewer open hub issues.
    4. One hosted review per change (decision). Copilot at the promotion only, with feature pull requests carrying the local pass and CI, or the reverse with the byte-identical promotion skipped. Effect: Copilot runs roughly halve, Actions minutes fall with them, and promotion wall-clock falls.
    5. Thin the handoff chain (decision). One standing handoff issue per track updated by comment and closed when the track ends, or a link only when a session ends with work unfinished. Effect: about 150 fewer issues created per week and one fewer write per session. The open count does not change, since links close, but every backlog metric stops counting them.
    6. Close the Why the Backlog Grows: Prose Review Has No Fixed Point, and a Plan to Keep the Rigor Without It #1311 structural items that will not run (decision). P1: Define the Normative-Statement Format, Lint It, and Pilot It on "Verification Discipline" #1316 to P2: Add Weekly Backlog and Review-Cost Metrics #1324 have had no activity since September. Pick P2 (decision): Carry Only the Fleet Bootstrap Verbatim, and Reach Everything Else From the Hub #1321, which removes the fleet-wide re-review of every wording change, or close them so the backlog says what is planned.
    7. Add the metric P2: Add Weekly Backlog and Review-Cost Metrics #1324 asked for, cheaply. One script on the existing weekly sweep: non-handoff filed against closed per repository, issues per merged pull request, Copilot runs per merged pull request, Actions minutes per merged pull request.

    Not recommended: more prose rule work, more guard hardening, or deleting the prose rules, which #1631 measured at 2 percent of findings.

    Done when, measured

    • After items 1 to 3, hub open non-handoff issues below about 250 from 387.
    • After item 2 has run a week, pre-existing filings near zero and issues per merged pull request below 0.5 in every repository.
    • After item 4, Copilot review runs per week about half of 418.
    • After item 5, handoff issues created per week under 30.
  4. ptr727 commented on Oct 23, 2026

    @ptr727
    OwnerAuthor

    What landed on 2026-10-23 under the decisions above

    The maintainer approved all seven items, item 4 as Copilot at the promotion only, and extended item 1 to a rewrite of the guard.

    Queued under the same decisions, each in its own pull request: the pr_review.py split into gate core, Copilot adapter with JSON vocabulary, and cleanup script; the prose gate on Pygments and markdown-it-py with its vocabulary and exemptions in JSON and a repo-local override; the audit's self-test moved to tests/, PyYAML and markdown-it-py for its reading, and a check registry; and the two CODESTYLE rules that tests live in tests/ and a maintained parser replaces a hand-written one, with uv run --script as the dependency mechanism.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    agentsAgents instructionsenhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions