Skip to content

docs(review): skip the challenger when there are no findings - #1009

Open
guyoron1 wants to merge 7 commits into
fullsend-ai:mainfrom
guyoron1:feat/review-challenger-skip
Open

docs(review): skip the challenger when there are no findings#1009
guyoron1 wants to merge 7 commits into
fullsend-ai:mainfrom
guyoron1:feat/review-challenger-skip

Conversation

@guyoron1

@guyoron1 guyoron1 commented Aug 25, 2026

Copy link
Copy Markdown

Heyaa : )

Revised 2026-09-08 after measuring it. The original cost argument was wrong;
the analysis is in the thread.

Step 6d dispatches the challenger unconditionally once steps 6a–6c have
produced a merged finding set, and the re-review rule says "always dispatch".
Neither says what to do when that set is empty. In production the orchestrator
already decides for itself: across 57 fullsend-ai/fullsend reviews that posted
zero findings, it skipped the challenger 26 times — every time when nothing
above info had come back, 24 of those times saying so in its reasoning — and
dispatched it 31 times, every time with at least one finding to adjudicate.
Not once was the challenger handed an empty list.

This PR turns that into a rule instead of a per-run judgment call. One file,
skills/pr-review/SKILL.md:

  • 6d: if the merged set from 6a–6c is empty, skip the dispatch and only the
    dispatch; 6e–6f still run and can add findings. A dimension failure cannot
    produce an empty set because step 5 records a sub-agent-failure finding for
    it, so a failed dimension still gets a challenger.
  • 3c re-review rule and table: the challenger is conditional on the
    current review's findings; prior findings alone do not qualify it.
  • 6e/6f: wording now refers to "the adjudicated set", which is the
    challenger's output, or the untouched 6a–6c set when it was skipped.

Verdict logic is unchanged. Dispatch mechanics, output parsing and the failure
fallback are untouched. The skip is noted in the orchestrator's own reasoning,
not the review body: the result schema is additionalProperties: false and
step 7 forbids footers.

What this does not claim. No cost saving. I originally argued the challenger
burns opus adjudicating empty lists; the transcripts say that never happens.
This buys determinism only.

One trade-off, disclosed: this forfeits the challenger's secondary, not-owned
allowance to flag something it notices while reading the diff. In the 26
observed skips the orchestrator had already forfeited it.

Prompt-only change (the baseline bump is bookkeeping); the challenger exists only on the claude review path.

Refs #1144

@github-actions

github-actions Bot commented Aug 25, 2026

Copy link
Copy Markdown

Functional tests did not run

Functional tests run automatically for org/repo members and collaborators on pull requests.

For other contributors, a maintainer must add the ok-to-test label after the latest push.

@qodo-code-review

qodo-code-review Bot commented Sep 1, 2026

Copy link
Copy Markdown

PR Summary by Qodo

Skip challenger dispatch when review findings are empty

✨ Enhancement 📝 Documentation 🕐 Less than 10 minutes

Grey Divider

AI Description

• Skip challenger dispatch when merged review findings are empty, reducing serial model cost and
 latency.
• Preserve approval behavior while recording the skip only in orchestrator reasoning for
 auditability.
• Align re-review dispatch guidance with the findings-dependent challenger rule.
Diagram

graph TD
  A["Merged findings"] --> B{"Findings exist?"}
  B -- Yes --> C["Challenger pass"] --> D["Final verdict"]
  B -- No --> E["Record skip"] --> D
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Always dispatch the challenger
  • ➕ Preserves the possibility of discovering incidental issues on otherwise clean reviews.
  • ➕ Keeps challenger invocation behavior unconditional.
  • ➖ Pays serial model cost and latency to adjudicate an empty list.
  • ➖ Requires rereading the diff despite having no findings to challenge.
2. Sample clean reviews
  • ➕ Retains occasional independent checks for false-negative monitoring.
  • ➕ Reduces cost compared with unconditional dispatch.
  • ➖ Adds sampling policy and observability complexity.
  • ➖ Produces inconsistent latency and does not directly serve the challenger's adjudication role.

Recommendation: Use the PR's findings-dependent dispatch. It directly matches the challenger's primary responsibility, removes deterministic waste on clean reviews, preserves verdict semantics, and records the decision internally. Sampling clean reviews could be introduced separately if false-negative measurement becomes an explicit requirement.

Files changed (1) +22 / -1

Documentation (1) +22 / -1
SKILL.mdGate challenger dispatch on non-empty findings +22/-1

Gate challenger dispatch on non-empty findings

• Documents that the challenger is skipped when merged findings are empty and that the skip is recorded only in orchestrator reasoning. It also aligns re-review dispatch guidance while preserving challenger behavior, failure handling, and verdict logic for non-empty findings.

skills/pr-review/SKILL.md

@qodo-code-review

qodo-code-review Bot commented Sep 1, 2026

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📜 Skill insights (2)

Grey Divider


Action required

1. Empty set bypasses checks ✓ Resolved 🐞 Bug ≡ Correctness
Description
The new instruction says to proceed straight to the verdict with an empty set, bypassing step 6e
checks that run after the challenger and can independently add findings. A clean dimension review
could therefore approve a protected-path or scope-unauthorized PR without emitting the mandatory
finding.
Code

skills/pr-review/SKILL.md[R831-833]

+from steps 6a–6c is empty, skip the challenger dispatch entirely and
+proceed straight to the verdict with the empty set — the empty-findings
+approval path (step 7) is unchanged; this skip does not add anything to
Relevance

●●● Strong

The branch appears to bypass later mandatory checks that can independently produce findings.

PR-#49

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The added branch explicitly directs an empty merged set straight to the verdict, but step 6e
requires PR-specific checks after the challenger pass. Those checks include mandatory protected-path
findings, and step 6f determines the outcome only after merging findings produced by those checks.

skills/pr-review/SKILL.md[830-849]
skills/pr-review/SKILL.md[937-941]
skills/pr-review/SKILL.md[984-1010]
skills/pr-review/SKILL.md[1099-1115]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The empty-findings branch says to proceed directly to the verdict, which can skip mandatory orchestrator-only checks that occur after the challenger and may add findings.

## Issue Context
Only the challenger dispatch should be skipped. The workflow must continue through steps 6e, 6e-1, and 6f before reaching the verdict.

## Fix Focus Areas
- skills/pr-review/SKILL.md[830-849]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. Challenger skip lacks tests 📜 Skill insight ▣ Testability
Description
The operational review skill now skips the challenger when findings are empty, but the PR includes
no test change covering that behavior. A test should prove both that empty findings suppress
dispatch and that non-empty findings still dispatch the challenger.
Code

skills/pr-review/SKILL.md[R830-833]

+**Skip when there is nothing to adjudicate.** If the merged finding set
+from steps 6a–6c is empty, skip the challenger dispatch entirely and
+proceed straight to the verdict with the empty set — the empty-findings
+approval path (step 7) is unchanged; this skip does not add anything to
Relevance

●● Moderate

No close test-coverage precedent found for behavioral changes in operational skill documentation.

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The cited instructions introduce a new conditional dispatch path in the operational orchestrator
skill, while the PR diff changes only SKILL.md and contains no corresponding test update. This
violates the requirement that every behavioral change have test coverage.

skills/pr-review/SKILL.md[830-849]
Skill: code-implementation

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The new empty-findings challenger skip is an untested behavioral change.

## Issue Context
Add repository-standard behavioral coverage demonstrating that an empty merged finding set skips challenger dispatch and proceeds to approval, while a non-empty set still invokes the challenger.

## Fix Focus Areas
- skills/pr-review/SKILL.md[830-849]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended

3. Fallback set drops failure finding ✓ Resolved 📜 Skill insight ≡ Correctness ⭐ New
Description
The new fallback definition says a challenger failure leaves the steps 6a–6c set unchanged,
contradicting step 6d’s requirement to add an info-level sub-agent-failure finding. As a result,
steps 6e–6f can proceed without preserving the required failure diagnostic in the final review set.
Code

skills/pr-review/SKILL.md[R861-863]

+Steps 6e–6f below refer to the *adjudicated set*: the challenger's
+`adjudicated_findings`, or the unchanged 6a–6c set when the challenger
+was skipped or fell back after a failure (step 4 below).
Relevance

●●● Strong

Recent history accepts documentation fixes closing logical gaps and preserving required failure
diagnostics.

PR-#1038
PR-#49

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
PR Compliance ID 1538375 requires technical algorithm documentation to be internally consistent. The
definition at skills/pr-review/SKILL.md:861–863 describes the fallback as the unchanged steps 6a–6c
set, while the failure procedure at lines 939–950 requires adding an info-level sub-agent-failure
finding for challenger timeout, error, or empty output; because step 6f evaluates the adjudicated
set, the documented flow provides no path for that diagnostic to enter the final set.

skills/pr-review/SKILL.md[861-863]
skills/pr-review/SKILL.md[939-950]
skills/pr-review/SKILL.md[1115-1118]
Skill: pr-review

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The adjudicated fallback-set definition excludes the info-level `sub-agent-failure` finding that step 6d requires recording when the challenger times out, errors, or returns empty output, allowing the diagnostic to disappear before final evaluation.

## Issue Context
Clarify that the fallback adjudicated set contains both the unchanged pre-challenger findings from steps 6a–6c and the recorded challenger `sub-agent-failure` finding, so steps 6e–6f preserve and evaluate the required diagnostic.

## Fix Focus Areas
- skills/pr-review/SKILL.md[861-864]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


4. Challenger examples stay unconditional ✓ Resolved 📜 Skill insight ≡ Correctness
Description
The updated rule makes challenger dispatch conditional on the current merged finding set, but the
re-review examples still list the challenger unconditionally based on prior findings. This internal
contradiction can cause the challenger to be dispatched after a successful re-review produces no
findings.
Code

skills/pr-review/SKILL.md[347]

+4. **Challenger** — always dispatch when findings exist (step 6d).
Relevance

●●● Strong

Recent reviews accept fixes resolving contradictory or duplicated documentation guidance in
SKILL.md.

PR-#753
PR-#1038

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
PR Compliance ID 1538375 requires technical algorithm documentation to be internally consistent. The
changed policy at line 347 conditions challenger dispatch on current findings, while lines 365–366
continue to list the challenger in re-review dispatch examples without that condition.

skills/pr-review/SKILL.md[347-347]
skills/pr-review/SKILL.md[365-366]
Skill: pr-review

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The challenger dispatch rule is conditional on findings, while the re-review examples still present challenger dispatch as unconditional.

## Issue Context
Update the examples to clarify that the challenger appears only when steps 6a–6c produce findings during the current review, including re-reviews.

## Fix Focus Areas
- skills/pr-review/SKILL.md[347-347]
- skills/pr-review/SKILL.md[354-366]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


5. Behavior change lacks authorization ✗ Dismissed 📜 Skill insight § Compliance
Description
The PR makes a non-trivial orchestrator behavior change with more than 20 changed lines but does not
link an authorizing issue. The explanatory PR description does not satisfy the rule's explicit
linked-issue requirement.
Code

skills/pr-review/SKILL.md[R830-833]

+**Skip when there is nothing to adjudicate.** If the merged finding set
+from steps 6a–6c is empty, skip the challenger dispatch entirely and
+proceed straight to the verdict with the empty set — the empty-findings
+approval path (step 7) is unchanged; this skip does not add anything to
Relevance

●● Moderate

No close authorization precedent found; applicability of the linked-issue rule is uncertain.

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The cited block begins a 21-line addition implementing a structural dispatch change, while the
supplied PR metadata contains no linked issue. Rule 1538390 requires explicit issue authorization
for non-trivial changes of this size.

skills/pr-review/SKILL.md[830-850]
Skill: pr-review

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The non-trivial challenger-dispatch change has no linked issue authorizing the work.

## Issue Context
The diff contains more than 20 changed lines and changes the review orchestrator's behavior. Link an issue that explicitly authorizes skipping challenger dispatch for empty finding sets.

## Fix Focus Areas
- skills/pr-review/SKILL.md[830-833]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Informational

6. Protected skill requires human review 📜 Skill insight § Compliance
Description
This PR modifies skills/pr-review/SKILL.md, which is a protected governance path that must not be
auto-approved. Human approval is required even though the PR description explains the change.
Code

skills/pr-review/SKILL.md[R830-831]

+**Skip when there is nothing to adjudicate.** If the merged finding set
+from steps 6a–6c is empty, skip the challenger dispatch entirely and
Relevance

● Weak

Recent protected-path governance guidance precedent was rejected by this team.

PR-#753

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The changed file is under the protected skills/ path, and the cited lines introduce new
orchestrator dispatch behavior. Rule 1538392 requires a protected-path finding and human approval
whenever such a file is modified.

skills/pr-review/SKILL.md[830-831]
Skill: pr-review

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The PR modifies a protected governance path and therefore cannot be auto-approved.

## Issue Context
`skills/` is explicitly protected by PR Compliance ID 1538392. Preserve the documented change, but route the PR through the required human governance review and record that approval.

## Fix Focus Areas
- skills/pr-review/SKILL.md[830-831]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Context sources
✅ Compliance rules (platform): 57 rules
✅ Skills: 4 invoked
  code-review
  code-implementation
  pr-review
  docs-review
Review mode: ⚖️ Balanced

Grey Divider

Tip of the day
💡 Did you know, you can turn these tips off under Display preferences

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Previous reviews

Review updated until commit d261673

Results up to commit c302b85 ⚖️ Balanced


🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0) 🎨 UX issues (0) 🔗 Cross-repo conflicts (0) 📜 Skill insights (0)


Remediation recommended
1. Challenger examples stay unconditional ✓ Resolved 📜 Skill insight ≡ Correctness
Description
The updated rule makes challenger dispatch conditional on the current merged finding set, but the
re-review examples still list the challenger unconditionally based on prior findings. This internal
contradiction can cause the challenger to be dispatched after a successful re-review produces no
findings.
Code

skills/pr-review/SKILL.md[347]

+4. **Challenger** — always dispatch when findings exist (step 6d).
Relevance

●●● Strong

Recent reviews accept fixes resolving contradictory or duplicated documentation guidance in
SKILL.md.

PR-#753
PR-#1038

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
PR Compliance ID 1538375 requires technical algorithm documentation to be internally consistent. The
changed policy at line 347 conditions challenger dispatch on current findings, while lines 365–366
continue to list the challenger in re-review dispatch examples without that condition.

skills/pr-review/SKILL.md[347-347]
skills/pr-review/SKILL.md[365-366]
Skill: pr-review

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The challenger dispatch rule is conditional on findings, while the re-review examples still present challenger dispatch as unconditional.

## Issue Context
Update the examples to clarify that the challenger appears only when steps 6a–6c produce findings during the current review, including re-reviews.

## Fix Focus Areas
- skills/pr-review/SKILL.md[347-347]
- skills/pr-review/SKILL.md[354-366]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Qodo Logo

Comment thread skills/pr-review/SKILL.md Outdated
Comment thread skills/pr-review/SKILL.md Outdated
Comment thread skills/pr-review/SKILL.md Outdated
@guyoron1
guyoron1 marked this pull request as draft September 1, 2026 12:15
@guyoron1
guyoron1 marked this pull request as ready for review September 1, 2026 12:55
Comment thread skills/pr-review/SKILL.md Outdated
@qodo-code-review

Copy link
Copy Markdown

Code review by qodo was updated up to the latest commit c302b85

@guyoron1

guyoron1 commented Sep 2, 2026

Copy link
Copy Markdown
Author

/review

@qodo-code-review

Copy link
Copy Markdown

PR Reviewer Guide 🔍

Warning

/review is deprecated. Use /agentic_review instead (removal date not yet scheduled).

Here are some key observations to aid the review process:

⏱️ Estimated effort to review: 1 🔵⚪⚪⚪⚪
🧪 No relevant tests
🔒 No security concerns identified
⚡ No major issues detected

@guyoron1

guyoron1 commented Sep 2, 2026

Copy link
Copy Markdown
Author

/agentic_review

@qodo-code-review

Copy link
Copy Markdown

Code review by qodo was updated up to the latest commit 7cf0f6a

@rh-hemartin

Copy link
Copy Markdown
Member

Hello! Could you attach transcripts so we can see how bad it is the challenger? So find multiple no findings reviews and scan their transcripts with the "analyze-transcript" skill on fullsend-ai/fullsend, also post the runs here.

@waynesun09 waynesun09 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review findings (2 inline comments, both MEDIUM).

Comment thread skills/pr-review/SKILL.md Outdated
Comment thread skills/pr-review/SKILL.md
@guyoron1

guyoron1 commented Sep 2, 2026

Copy link
Copy Markdown
Author

/agentic_review

Comment thread skills/pr-review/SKILL.md Outdated
@qodo-code-review

Copy link
Copy Markdown

Code review by qodo was updated up to the latest commit dfcd074

@guyoron1

guyoron1 commented Sep 2, 2026

Copy link
Copy Markdown
Author

/agentic_review

@qodo-code-review

Copy link
Copy Markdown

Code review by qodo was updated up to the latest commit c76ba43

@guyoron1
guyoron1 force-pushed the feat/review-challenger-skip branch from c76ba43 to 28c2610 Compare September 2, 2026 16:12
@guyoron1

guyoron1 commented Sep 2, 2026

Copy link
Copy Markdown
Author

/agentic_review

@qodo-code-review

Copy link
Copy Markdown

Code review by qodo was updated up to the latest commit 28c2610

@ralphbean ralphbean self-assigned this Sep 2, 2026
The challenger is an opus dispatch whose only inputs are the merged
findings from steps 6a-6c; on a clean PR it adjudicates an empty list
at the cost of a serial opus call and latency segment. Skip the
dispatch when the set is empty and proceed straight to the verdict -
the empty-findings approval path is unchanged. The skip is noted in
the orchestrator's own reasoning for auditability; there is no field
for it in the strict agent-result.json schema and it does not belong
in the posted review body.

Signed-off-by: guy oron <goron@redhat.com>
… sets

Address review findings on the challenger-skip change:

- The empty-findings branch told the orchestrator to proceed straight
  to the verdict, bypassing the orchestrator-only checks (6e) that run
  after the challenger and can add findings on their own (protected
  paths, scope authorization, PR metadata). Reword so only the
  challenger dispatch is skipped and the workflow continues through
  6e, 6e-1, and 6f; the no-findings approval applies only when the
  set is still empty after those checks.

- The re-review dispatch rule and examples still listed the challenger
  unconditionally. Clarify that step 6d's condition is the current
  review's 6a-6c findings — prior findings alone do not qualify it —
  and mark the example rows accordingly.

Signed-off-by: guy oron <goron@redhat.com>
…allenger mention

Address round-3 review findings:

- The skip rationale cited a sub-agent-failure "info finding below",
  but the dimension-failure finding is recorded in step 5 above (high
  for Opus-tier, info for Sonnet-tier) and keeps the 6a-6c set
  non-empty, so the "regardless of why the set is empty" case was
  unreachable and the citation pointed at the challenger-failure
  fallback instead. State it correctly: a failed dimension cannot
  produce an empty set, and an empty set means every dispatched
  dimension came back clean.

- Remaining unconditional challenger language contradicted the
  findings-gated rule: qualify the 3c parallelism note and the 6d
  opener, and define the adjudicated set (challenger output, or the
  unchanged 6a-6c set on skip or failure fallback) once in 6d so 6e,
  6e-1, and 6f no longer presume the challenger ran.

Signed-off-by: guy oron <goron@redhat.com>
…inding

The adjudicated-set definition said a challenger failure leaves the
6a-6c set unchanged, but 6d step 4's fallback also records an
info-level sub-agent-failure finding; as written the definition would
drop it before 6e-6f. On failure the adjudicated set is the 6a-6c
findings plus that recorded finding.

Signed-off-by: guy oron <goron@redhat.com>
@ralphbean
ralphbean force-pushed the feat/review-challenger-skip branch from 28c2610 to c122fdf Compare September 2, 2026 22:11
@ralphbean
ralphbean enabled auto-merge September 2, 2026 22:11
@guyoron1

guyoron1 commented Sep 3, 2026

Copy link
Copy Markdown
Author

@rh-hemartin Can't produce that from here — I don't have a runner with org access to execute real reviews against fullsend-ai/fullsend, and there's no skill literally named analyze-transcript in this repo's skills/ (closest are finding-agent-runs and retro-analysis). I'm not going to fabricate transcripts to fill this in.

If you can point me at a handful of recent real "no findings" review runs (or grant this a runner), I'll pull and analyze the actual transcripts rather than guess at the challenger's false-positive rate.

Conflict in skills/pr-review/SKILL.md (3c paragraph): main reworded
risk-assessment as composed in 3c-2 among the parallel sub-agents;
this branch gates the challenger on step 6d. Kept both.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: guy oron <goron@redhat.com>
auto-merge was automatically disabled September 7, 2026 03:34

Head branch was pushed to by a user without write access

@ralphbean

Copy link
Copy Markdown
Member

Oh, he meant this skill: https://github.com/fullsend-ai/fullsend/tree/main/skills/analyze-transcript (from the fullsend-ai/fullsend repo).

You should be able to scrape the gh workflow runs history in this repo and the other one to find cases that support this change - even without org membership. All those logs are public.

@ralphbean
ralphbean enabled auto-merge September 9, 2026 18:16
The skip rule's rationale claimed a cost saving that transcripts do not
bear out: the orchestrator already skips the challenger on every clean
run and dispatches whenever a finding exists. State the rule as
codifying that behaviour, name the info-only case as open, and drop
the cost claim. Raise the skill's context-budget ceiling for the added
sentences.

Signed-off-by: guy oron <goron@redhat.com>
auto-merge was automatically disabled September 10, 2026 12:44

Head branch was pushed to by a user without write access

@guyoron1

Copy link
Copy Markdown
Author

@rh-hemartin @ralphbean — Ralph, thanks, that unblocked it. I was wrong on 09-03, twice. analyze-transcript does exist, in
fullsend-ai/fullsend/skills/analyze-transcript/, exactly where you said. And the
transcripts are run artifacts on a public repo, so a token with read access pulls
them; my first download died on a blob timeout and I read that as a permission
wall. Sorry for the bounce. Here is what you asked for.

Method. Every fullsend-ai/fullsend PR in my earlier corpus (updated since
#861 merged, carrying a risk comment and a review) whose current posted review
has zero findings: 58 scanned, 57 clean (one request-changes run with a single low is excluded below). For each, the review run matching the posted
head SHA, downloaded, and the challenger sub-agent's own prompt read for its
### Findings to challenge payload. Per-PR records: https://gist.github.com/guyoron1/0edcad34583bc56ef3734bc74dc75cba (scan-v2.jsonl, stats-v2.json).

Result: the case this PR's description targets does not occur.

count
zero-finding reviews examined 57
challenger dispatched 31
challenger's input was empty 0
challenger not dispatched 26

All 31 dispatches had something to adjudicate, between 1 and 13 findings,
median 1.5. The reviews still posted clean because the challenger downgraded
most of what it was given to info, which is below the posting threshold, or
removed it. Cost across those 31: 21 min wall clock, 63,516 output
tokens, 5.2M cached input, 30 of 31 on claude-opus-4-6 (one on haiku). Not wasted.

The 26 skips are the actual finding. Every one succeeded and approved
with zero findings. In 24 of the 26 the orchestrator says why in its reasoning,
always some form of "pre-challenger finding set is empty, nothing to
challenge"; the other two (#6751, #7028) skip without mentioning it. Reading
the dimension outputs, they split three ways:

  • 9 where every dispatched dimension returned [] — a genuinely empty set.
  • 1 (#6709, a full
    first review: correctness, security, style, docs-currency, intent all ran)
    where intent-coherence returned three info findings and the orchestrator
    skipped anyway, "per step 6d" — a rule 6d does not contain.
  • 16 that ran during the Vertex sonnet outage in
    Sonnet 4.5 model unavailable on Vertex causes review sub-agent failures and wasted retries fullsend#6922. Their sonnet-tier dimensions crashed with "model
    not available"; the orchestrator then re-dispatched them (retries returned
    []), or reviewed those dimensions itself inline, or in #6751 said nothing
    at all. None recorded the info sub-agent-failure findings step 5
    requires, which would have made the set non-empty.

So 6d says dispatch unconditionally after 6a–6c, and in practice the
orchestrator skips whenever it judges there is nothing above info to
adjudicate, 26 out of 26, and dispatches when there is, 31 out of 31. The
instruction and the behaviour already disagree, and the behaviour is the
right one.
Two smaller drifts in the same transcripts, for what it's worth:
three runs where the challenger emptied a one-item set and the orchestrator
posted clean instead of applying 6d's "treat as failure" fallback, and four
where it kept a low or medium that the final review then dropped. I
haven't chased those.

One design question this raises for the PR: as written the skip fires on an
empty set. The observed behaviour is closer to "nothing above info". If
you'd rather codify that, it's a one-line change and I'll make it.

What that means for this PR. The cost argument is dead and I've cut it from
the description. What's left is alignment: the skill tells the orchestrator to
do something it demonstrably doesn't do, and this makes the rule match the
behaviour so it stops being a per-run judgment call. No measurable saving, and
I'm not claiming one. If you'd rather carry the drift than the diff, say so and
I'll close it.

Runs where no challenger was dispatched (PR · run id):

6601 · 32883020213 | 6619 · 32923569525 | 6623 · 32926932646 | 6639 · 33014604876 | 6641 · 32975833205 | 6692 · 33290305617 | 6709 · 33119185132 | 6722 · 33167094492 | 6723 · 33171507849 | 6724 · 33176354922 | 6727 · 33354041541 | 6751 · 33354051186 | 6774 · 33434745778 | 6786 · 33336906484 | 6819 · 33435583475 | 6823 · 33438242023 | 6881 · 33561248443 | 6896 · 33582655967 | 6924 · 33696464676 | 6935 · 33688286645 | 6938 · 33694247039 | 6969 · 33833291809 | 6995 · 33833269991 | 7002 · 33854676062 | 7028 · 33928582960 | 7062 · 34183658348

Largest and smallest challenger inputs: #6801 n=13, #6909 n=8, #6804 n=7, #6839 n=6, #6378 n=1, #6606 n=1, #6622 n=1, #6657 n=1.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants