Skip to content

outside-review-result: a clean structured review is unverified when Codex adds a check-results sentence after its conclusion #3469

Closed

Description

@Simba3696

What happens

After #3304, a no-findings statement counts only when it is the review's conclusion. Codex's structured review (codex review --base main, codex-cli 0.163.0-alpha, model gpt-6-luna) often adds one sentence about the checks after its conclusion, so a clean review is recorded as VERDICT: unverified / REASON: untagged_review. In one /ship session, 2 of 3 structured runs ended like this:

No actionable regressions were identified in the diff. Tests, lint, and build all pass.

The changes introduce no definite, actionable regressions. Tests, lint, and build all pass.

lib/outside-review-result.ts structured on gstack 1.91.239.0:

Review text Verdict
No actionable regressions were identified in the diff. clean
Tests, lint, and build all pass. No actionable regressions were identified in the diff. clean
No actionable regressions were identified in the diff. Tests, lint, and build all pass. unverified

Suggestion

Let a short closing sentence that only reports check results (tests, lint, build or typecheck pass) follow the no-findings conclusion without moving the conclusion off it. The #3304 safeguards would still apply to the no-findings sentence itself: no "but / however / except" and scoped to the whole change. That keeps the false-pass protection while accepting the way Codex usually signs off.

Related: #3294, #3304.

Activity

  1. added
    S3Severity 3: everything else
    on Oct 31, 2026
  2. itaywss commented on Nov 4, 2026

    @itaywss

    Same on gstack 1.92.55.0 / codex-cli 0.166.0 (model gpt-6.1-sol), and on the review (adversarial) gate, not only structured. Clean codex exec replies come back VERDICT: unverified / REASON: untagged_review when they:

    • add a caveat after the conclusion: "No additional production failures found ... Static review only; tests were not run."
    • use a noun outside FINDING_NOUN: "no additional exploitable production failure was identified"

    Workaround we use: tell Codex to end its reply with a final line that says exactly NO_FINDINGS (after the Recommendation line).

  3. capy-ai commented on Nov 7, 2026

    @capy-ai
    Contributor

    Fixed in #4130 (e58be61): a clean Codex outside review that signs off with its checks ("Tests, lint, and build all pass.") now reads clean. A clause that follows the scope still never reads clean. It ships in the next gstack release after 1.98.0.0. Thanks for the report.

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

    S3Severity 3: everything else

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions