Skip to content

code-review-structural recipe: 47% incomplete-coverage rate today, vs 0% for plain code-review #124

Description

@mabry1985

Finding (2026-09-14, live telemetry)

While getting two PRs (homelab-iac#260, qaEngineer#57) past the promotion gate — both dispatched under `code-review-structural` because they touched a "sensitive path" (a CI workflow file / the Dockerfile) — every single round failed to reach `complete: true`, each time a different lane failing (`find_crossfile`, `find_conventions`, `structural_unavailable`, `find_conventions` again across 4 consecutive summoned retries on qaEngineer#57 alone).

Pulled the full day's telemetry to check whether this was bad luck on these two diffs specifically:

```
code-review-structural: 83 reviewed, 39 incomplete (47%)
code-review: 19 reviewed, 0 incomplete (0%)
```

So it's not these two PRs — `code-review-structural` is failing to complete essentially every other run, fleet-wide, today. Plain `code-review` (no structural/heavier panel) is completely clean.

What this means in practice

Combined with the (correct, intentional) design that an incomplete round caps the verdict at WARN and blocks promotion (#117's fix), any PR that touches a sensitive path has roughly a coin-flip chance of ever getting a clean, promotable review on a given round — it needs the panel to happen to complete cleanly, and can only get there via repeated manual @vera review summons or the sweep re-trying indefinitely. This is a real availability regression on exactly the PRs that most need a trustworthy review (sensitive paths are why the recipe escalates in the first place).

Ask

Root-cause which lane(s) are actually failing and why, specifically under `code-review-structural` vs `code-review` — the recipes presumably differ in which lanes run and/or their budgets/timeouts (the structural lane itself, or contention from running 5 lanes instead of 4, or something recipe-specific in how crossfile/conventions get invoked). This is bigger than the file-read-404 hypothesis already filed in #118 — that was diagnosed against a single PR; this is a whole-recipe reliability number that deserves its own investigation independent of any one diff's content.

Found while deploying v0.39.0 (which fixes related-but-distinct completeness bugs) and retrying two blocked PRs live.

Activity

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions