Skip to content

workflows: Add issue-led PR readiness gate - #11

Merged
idy merged 10 commits into
mainfrom
codex/issue-10-pr-readiness
Jul 30, 2026
Merged

workflows: Add issue-led PR readiness gate#11
idy merged 10 commits into
mainfrom
codex/issue-10-pr-readiness

Conversation

@idy

@idy idy commented Jul 30, 2026

Copy link
Copy Markdown
Member

Summary

  • keep one copyable caller and one reusable OpenAI review workflow
  • create three fixed Check Runs on the exact PR head: OpenAI PR Review, OpenAI Issue Review, and OpenAI Code Review
  • check PR title/body/native Issue linkage first, review every linked Issue independently, then review code and Issue-plan conformance
  • publish one combined native ## 🤖 OpenAI PR review report; do not create a standalone Issue workflow or per-Issue Check names
  • cache validated PR, per-Issue, and code evidence independently
  • send only field-level PR/Issue snapshot diffs and descendant code diffs; unchanged stages consume zero model tokens
  • report per-stage mode, token usage, cache hit data, and estimated credits in the combined report
  • rerun on PR open/reopen/edit/ready/push, linked-Issue edits, authorized @codex requests, and manual recovery

Check contract

  • OpenAI PR Review fails for PR format, native linkage, actionable-thread, or PR-stage blockers.
  • OpenAI Issue Review aggregates deterministic and semantic design blockers from every linked Issue.
  • OpenAI Code Review fails for actionable code findings or Issue-plan conformance blockers.

Each Check is finalized independently as success, failure, or cancelled. Repositories that require the full Issue-first contract should configure all three fixed names as required checks.

The workflow still publishes only one native PR review. This automated result is not a GitHub approval and does not merge or deploy.

Incremental evidence

  • PR identity: title, body, and native linked-Issue identities/types.
  • Issue identity: repository, number, title, body, Issue Type, parent, and sub-issues; one ledger entry per Issue.
  • Code identity: trusted base, complete effective diff, linked-Issue plan hashes, policy, model, and effort.
  • First/missing/incompatible sessions run full stages.
  • Unchanged stages reuse validated evidence with zero tokens.
  • PR/Issue edits send only their field-level diff plus previous evidence.
  • Descendant pushes review only last_completed_head..current_head.
  • Issue edits revalidate plan conformance without resending the unchanged complete code diff.
  • Force-pushes, base/policy/runtime changes, missing sessions, and corrupt state fall back safely.

Validation

  • node .github/scripts/issue-review/test.mjs
  • node .github/scripts/pr-readiness/test.mjs
  • node .github/scripts/pr-review/test.mjs
  • actionlint -ignore 'property "workflow_(repository|sha)" is not defined'
  • git diff --check

Unit coverage includes all three Check names, stage-specific verdicts, full/incremental/reused modes, per-Issue invalidation, zero-token unchanged reuse, Issue-plan revalidation, checkpoint recovery, and token/credit aggregation.

Because the new caller definition is not yet on main, pre-merge integration uses workflow_dispatch from this branch. Automatic pull_request_target and issues event delivery remains a post-merge test.

Closes #10

The existing reviewer could publish actionable findings while its Check Run
still succeeded, and it did not verify that a PR followed an implementation-
ready Issue plan on every pushed head.

- Add deterministic and AI Issue-readiness review contracts based on write-issue
- Bind PR metadata, native Issue linkage, plan conformance, code findings, policy, and workflow source into PASS/FAIL evidence
- Publish a separate OpenAI PR readiness Check Run and refresh reviews on every relevant PR or Issue change
- Cover snapshot invalidation, format failures, incremental review, and fail-closed behavior with focused tests and rollout documentation

Generated with [Codex](https://github.com/openai)

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

❌ PR readiness: FAIL (1 blocker)

🤖 OpenAI PR review

❌ Conclusion: FAIL (1 actionable finding found)

Reviewed commit: 70f905afb9

Reviewed range: e16db5d052..70f905afb9

Review mode: full

Session key: repo-1309321116-pr-11-v2

Generation key: 075411674fc7b4159f7225572b6547631629bbff55010c92df4729c3f5255a49

Diff chunks: 1

Model: gpt-5.6-terra

Reasoning effort: medium

Review time: 1m 9s

Input tokens: 420,897

Cached input tokens: 366,500

Cache write tokens: 54,364

Cache hit ratio: 87.1%

Output tokens: 5,580

Reasoning tokens: 3,792

Total tokens: 426,477

Estimated Codex credits: 7.783

Credit rate per 1M tokens: 62.5 input / 6.25 cached / 375 output

Per-chunk and aggregation usage
Turn key Time Input Cached Cache hit Cache write Output Reasoning Total Est. credits
chunk:1/1:fb212634474f38b515bb197cfa4a0c0f2ace70fa9b8132384cef1e163e644ce6 1m 4s 313,016 260,534 83.2% 52,455 5,153 3,703 318,169 6.841
aggregate:075411674fc7b4159f7225572b6547631629bbff55010c92df4729c3f5255a49 5s 107,881 105,966 98.2% 1,909 427 89 108,308 0.942

Issue-led readiness

PR contract: PASS

Issue design and plan conformance: PASS

Code review: FAIL

Evidence: 17585bc90a04bd2a4d8d46345f18d9343e5fa8277e4ba3a5fffc22b61e2753d4

Readiness blockers

  • code-review .github/workflows/codex-openai-issue-review.yml:47: Keep the write-capable Issue token out of the model-review job

One security issue found.

1 inline finding published.

Comment thread .github/workflows/codex-openai-issue-review.yml Outdated
The Issue reviewer processed untrusted model input in the same job that held
write access to repository Issues, weakening the intended publication boundary.

- Keep deterministic and model Issue review in a read-only job
- Pass only structured review evidence to a dependent publication job
- Grant issues write permission exclusively to the comment publication job

Generated with [Codex](https://github.com/openai)

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

❌ PR readiness: FAIL (1 blocker)

🤖 OpenAI PR review

❌ Conclusion: FAIL (1 actionable finding found)

Reviewed commit: cda3f3e63c

Reviewed range: e16db5d052..cda3f3e63c

Review mode: full

Session key: repo-1309321116-pr-11-v2

Generation key: 3924adfcbb20c6be2ae3c6d09c184aee3f99f26037a9a5516679672b75b89edb

Diff chunks: 1

Model: gpt-5.6-terra

Reasoning effort: medium

Review time: 51s

Input tokens: 547,888

Cached input tokens: 474,348

Cache write tokens: 73,507

Cache hit ratio: 86.6%

Output tokens: 5,111

Reasoning tokens: 1,633

Total tokens: 552,999

Estimated Codex credits: 9.478

Credit rate per 1M tokens: 62.5 input / 6.25 cached / 375 output

Per-chunk and aggregation usage
Turn key Time Input Cached Cache hit Cache write Output Reasoning Total Est. credits
chunk:1/1:0a9dafec7ed59868f624e6f790851dd742d7858db43cd1b5b429fdc7582fffde 47s 401,705 330,359 82.2% 71,319 4,749 1,582 406,454 8.305
aggregate:3924adfcbb20c6be2ae3c6d09c184aee3f99f26037a9a5516679672b75b89edb 4s 146,183 143,989 98.5% 2,188 362 51 146,545 1.173

Issue-led readiness

PR contract: PASS

Issue design and plan conformance: PASS

Code review: FAIL

Evidence: 13aad7b2ac09076a52ddce99bbe77f054209df96c642a651c1fe76a6d2409e6e

Readiness blockers

  • code-review .github/workflows/codex-openai-issue-review.yml:82: Read the GraphQL repository object before resolving the Issue

The reusable Issue readiness workflow cannot resolve any Issue because it reads the GraphQL response at the wrong level.

1 inline finding published.

Comment thread .github/workflows/codex-openai-issue-review.yml Outdated
The Issue readiness workflow read the GraphQL response wrapper as though it
were the repository object, causing every Issue lookup to fail before review.

- Dereference the repository field before reading Issue and default-branch data
- Add a source-level regression assertion for the GraphQL response shape

Generated with [Codex](https://github.com/openai)

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

❌ PR readiness: FAIL (2 blockers)

🤖 OpenAI PR review

❌ Conclusion: FAIL (1 actionable finding found)

Reviewed commit: 335b9a87e2

Reviewed range: e16db5d052..335b9a87e2

Review mode: full

Session key: repo-1309321116-pr-11-v2

Generation key: 475d9df5942c9d243246c32dc2208cbfea714d1c392af0308b895a1996fbd56a

Diff chunks: 1

Model: gpt-5.6-terra

Reasoning effort: medium

Review time: 1m 24s

Input tokens: 388,838

Cached input tokens: 335,694

Cache write tokens: 53,111

Cache hit ratio: 86.3%

Output tokens: 6,572

Reasoning tokens: 4,532

Total tokens: 395,410

Estimated Codex credits: 7.884

Credit rate per 1M tokens: 62.5 input / 6.25 cached / 375 output

Per-chunk and aggregation usage
Turn key Time Input Cached Cache hit Cache write Output Reasoning Total Est. credits
chunk:1/1:103d61157e766c6df8c8d044f659e8228a597bf99ae905d67a1b32096e7231e5 1m 19s 283,549 232,981 82.2% 50,541 6,110 4,468 289,659 6.908
aggregate:475d9df5942c9d243246c32dc2208cbfea714d1c392af0308b895a1996fbd56a 5s 105,289 102,713 97.6% 2,570 462 64 105,751 0.976

Issue-led readiness

PR contract: PASS

Issue design and plan conformance: FAIL

Code review: FAIL

Evidence: 0d6630774afc31568341a689971885017dcc8f458b83e1cb950c90fbd7dc8ed6

Readiness blockers

  • plan-conformance The linked Issue requires tests for linkage variants, stale or failed Issue evidence, plan deviations, thread handling, API failures, same-head metadata and Issue invalidation, synchronize invalidation, and full PASS. The added issue-review and pr-readiness tests cover only small deterministic fixtures and a basic code-finding aggregation; they do not exercise those required scenarios.
  • code-review .github/workflows/codex-openai-review.yml:1373: Revalidate the complete readiness identity before publishing success

Readiness cannot pass: the gate can publish stale same-head evidence, and the required acceptance-test coverage is not implemented.

1 inline finding published.

Comment thread .github/workflows/codex-openai-review.yml Outdated
A PR or linked Issue could change during model review without changing the PR
head, allowing stale readiness evidence to be published against current state.

- Re-fetch PR metadata, native closing Issues, base/head, and review threads before publication
- Recompute the canonical snapshot and fail closed when it differs from reviewed evidence
- Canonically sort linked Issues and test both matching and stale identity paths

Generated with [Codex](https://github.com/openai)

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

❌ PR readiness: FAIL (1 blocker)

🤖 OpenAI PR review

❌ Conclusion: FAIL (1 actionable finding found)

Reviewed commit: 7dba682777

Reviewed range: e16db5d052..7dba682777

Review mode: full

Session key: repo-1309321116-pr-11-v2

Generation key: c03462ef9683b78944b5d39469e1ffa26c1836562413734afd6b605246cf2679

Diff chunks: 1

Model: gpt-5.6-terra

Reasoning effort: medium

Review time: 1m 2s

Input tokens: 291,474

Cached input tokens: 242,663

Cache write tokens: 48,784

Cache hit ratio: 83.3%

Output tokens: 5,379

Reasoning tokens: 3,407

Total tokens: 296,853

Estimated Codex credits: 6.584

Credit rate per 1M tokens: 62.5 input / 6.25 cached / 375 output

Per-chunk and aggregation usage
Turn key Time Input Cached Cache hit Cache write Output Reasoning Total Est. credits
chunk:1/1:19ccc8a12eb5fb08998561ec7d34f39a1a488f1bc0405b44391cfa1c3fcd0f6c 56s 194,763 147,781 75.9% 46,961 4,992 3,349 199,755 5.732
aggregate:c03462ef9683b78944b5d39469e1ffa26c1836562413734afd6b605246cf2679 6s 96,711 94,882 98.1% 1,823 387 58 97,098 0.852

Issue-led readiness

PR contract: PASS

Issue design and plan conformance: PASS

Code review: FAIL

Evidence: 587cda8722b74eaf775583c0c37bb0a3f76a71fd5bcfb09271d359a54723e6db

Readiness blockers

  • code-review .github/workflows/openai-issue-review-dispatch.yml:92: Refresh fork PRs after linked Issue edits

One regression prevents Issue edits from invalidating readiness for fork PRs.

1 inline finding published.

Comment thread .github/workflows/openai-issue-review-dispatch.yml Outdated

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

❌ PR readiness: FAIL (1 blocker)

🤖 OpenAI PR review

❌ Conclusion: FAIL (1 actionable finding found)

Reviewed commit: 7dba682777

Reviewed range: e16db5d052..7dba682777

Review mode: reused

Session key: repo-1309321116-pr-11-v2

Generation key: c03462ef9683b78944b5d39469e1ffa26c1836562413734afd6b605246cf2679

Diff chunks: 1

Model: gpt-5.6-terra

Reasoning effort: medium

Review time: 0s

Input tokens: 0

Cached input tokens: 0

Cache write tokens: 0

Cache hit ratio: N/A

Output tokens: 0

Reasoning tokens: 0

Total tokens: 0

Estimated Codex credits: 0.000

Credit rate per 1M tokens: 62.5 input / 6.25 cached / 375 output

Issue-led readiness

PR contract: PASS

Issue design and plan conformance: PASS

Code review: FAIL

Evidence: 587cda8722b74eaf775583c0c37bb0a3f76a71fd5bcfb09271d359a54723e6db

Readiness blockers

  • code-review .github/workflows/openai-issue-review-dispatch.yml:92: Refresh fork PRs after linked Issue edits

One regression prevents Issue edits from invalidating readiness for fork PRs.

1 inline finding published.

Comment thread .github/workflows/openai-issue-review-dispatch.yml Outdated

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

❌ PR readiness: FAIL (1 blocker)

🤖 OpenAI PR review

✅ Conclusion: PASS

Reviewed commit: 6069dc9a8d

Reviewed range: e16db5d052..6069dc9a8d

Review mode: full

Session key: repo-1309321116-pr-11-v2

Generation key: a4823bb5a470dcba9fbc62f1cb355ac9cc86deba61643318a3e8b04b5b17f5a6

Diff chunks: 1

Model: gpt-5.6-terra

Reasoning effort: medium

Review time: 58s

Input tokens: 464,717

Cached input tokens: 406,546

Cache write tokens: 58,135

Cache hit ratio: 87.5%

Output tokens: 4,841

Reasoning tokens: 3,074

Total tokens: 469,558

Estimated Codex credits: 7.992

Credit rate per 1M tokens: 62.5 input / 6.25 cached / 375 output

Per-chunk and aggregation usage
Turn key Time Input Cached Cache hit Cache write Output Reasoning Total Est. credits
chunk:1/1:262bf5dcae749ecb8f85f9b442534c4d63d348c5906d15e175d69a7d6beceb66 53s 349,214 292,851 83.9% 56,333 4,552 3,045 353,766 7.060
aggregate:a4823bb5a470dcba9fbc62f1cb355ac9cc86deba61643318a3e8b04b5b17f5a6 5s 115,503 113,695 98.4% 1,802 289 29 115,792 0.932

Issue-led readiness

PR contract: PASS

Issue design and plan conformance: FAIL

Code review: PASS

Evidence: 15554923623118cc36fef130e989df51c0403221bb9f0ee1fa7892c3a100d59c

Readiness blockers

  • plan-conformance The linked Issue requires tests for Task-only/cross-repository/text-only linkage, stale or failed Issue evidence, plan deviations, unresolved threads, API failures, full PASS, and fail-closed behavior. The added tests cover only a small subset of metadata and snapshot cases, so the claimed readiness gate lacks the required validation coverage.

Implementation readiness is blocked by incomplete acceptance-test coverage.

No actionable findings.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

❌ PR readiness: FAIL (1 blocker)

🤖 OpenAI PR review

✅ Conclusion: PASS

Reviewed commit: db78097417

Reviewed range: e16db5d052..db78097417

Review mode: full

Session key: repo-1309321116-pr-11-v2

Generation key: f1467ed33fcd0f0baf8c486eb3f1231a617c658efadfe25be54736e58db848c8

Diff chunks: 1

Model: gpt-5.6-terra

Reasoning effort: medium

Review time: 1m 6s

Input tokens: 498,157

Cached input tokens: 422,094

Cache write tokens: 76,033

Cache hit ratio: 84.7%

Output tokens: 6,098

Reasoning tokens: 2,907

Total tokens: 504,255

Estimated Codex credits: 9.679

Credit rate per 1M tokens: 62.5 input / 6.25 cached / 375 output

Per-chunk and aggregation usage
Turn key Time Input Cached Cache hit Cache write Output Reasoning Total Est. credits
chunk:1/1:8efd4ebcedce5828177a1b54cad0def1d4789d9cdd3eb32893cf3ebe5698c818 1m 1s 346,906 273,838 78.9% 73,044 5,745 2,854 352,651 8.433
aggregate:f1467ed33fcd0f0baf8c486eb3f1231a617c658efadfe25be54736e58db848c8 5s 151,251 148,256 98.0% 2,989 353 53 151,604 1.246

Issue-led readiness

PR contract: PASS

Issue design and plan conformance: FAIL

Code review: PASS

Evidence: 44909af71a87988b85ad74015cfb5d38e6634350cb1776fad941da8583e7f29a

Readiness blockers

  • plan-conformance The linked Issue requires live integration PR demonstrations for invalid metadata/linkage, incomplete Issues, plan deviations, code-review failures, metadata invalidation, synchronize behavior, and a full PASS. The PR body reports only local test and lint commands, with no evidence that these required live checks were performed or otherwise satisfied.

PR readiness is blocked by missing acceptance validation evidence.

No actionable findings.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

✅ PR readiness: PASS

🤖 OpenAI PR review

✅ Conclusion: PASS

Reviewed commit: db78097417

Reviewed range: db78097417..db78097417

Review mode: incremental

Session key: repo-1309321116-pr-11-v2

Generation key: 70114c7d525b1d726312a8440a364de09eb16c7ccf03fc68b318093c783f7547

Diff chunks: 1

Model: gpt-5.6-terra

Reasoning effort: medium

Review time: 10s

Input tokens: 312,413

Cached input tokens: 233,423

Cache write tokens: 78,978

Cache hit ratio: 74.7%

Output tokens: 767

Reasoning tokens: 94

Total tokens: 313,180

Estimated Codex credits: 6.683

Credit rate per 1M tokens: 62.5 input / 6.25 cached / 375 output

Per-chunk and aggregation usage
Turn key Time Input Cached Cache hit Cache write Output Reasoning Total Est. credits
chunk:1/1:0621443d3cdd98bc775c9dd9777082a70caccdc14d5b1f0eeaa4fc137b1da937 6s 154,903 76,636 49.5% 78,261 548 82 155,451 5.576
aggregate:70114c7d525b1d726312a8440a364de09eb16c7ccf03fc68b318093c783f7547 4s 157,510 156,787 99.5% 717 219 12 157,729 1.107

Issue-led readiness

PR contract: PASS

Issue design and plan conformance: PASS

Code review: PASS

Evidence: f39724c370c90e7988a27feee7b789cc6f5cc223810eba34ea5820c10a4c950d

No configured readiness blockers.

No changes were introduced in this generation, and no new readiness blockers are present.

No actionable findings.

The PR reviewer should expose one authoritative required Check instead of
separating execution success from Issue-led readiness in the PR Checks list.

- Make OpenAI PR review fail on PR, Issue, plan, thread, or code blockers
- Remove the standalone Issue dispatch and unused Issue-only review runtime
- Keep model execution read-only and document the single-Check rollout

Generated with [Codex](https://github.com/openai)

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

❌ PR readiness: FAIL (3 blockers)

🤖 OpenAI PR review

❌ Conclusion: FAIL (2 actionable findings found)

Reviewed commit: a685485e49

Reviewed range: e16db5d052..a685485e49

Review mode: full

Session key: repo-1309321116-pr-11-v2

Generation key: 4c4621ee02e5c96e69481d85a114e456fd50122f03e6f053caad1829d1f976d6

Diff chunks: 1

Model: gpt-5.6-terra

Reasoning effort: medium

Review time: 1m 31s

Input tokens: 568,977

Cached input tokens: 497,546

Cache write tokens: 71,395

Cache hit ratio: 87.4%

Output tokens: 8,369

Reasoning tokens: 4,731

Total tokens: 577,346

Estimated Codex credits: 10.712

Credit rate per 1M tokens: 62.5 input / 6.25 cached / 375 output

Per-chunk and aggregation usage
Turn key Time Input Cached Cache hit Cache write Output Reasoning Total Est. credits
chunk:1/1:7d107ebb440215b30df906fbf626dc6bbe379fd995551b74c841a51fe9aef14a 1m 24s 427,298 359,276 84.1% 67,992 7,773 4,576 435,071 9.412
aggregate:4c4621ee02e5c96e69481d85a114e456fd50122f03e6f053caad1829d1f976d6 7s 141,679 138,270 97.6% 3,403 596 155 142,275 1.301

Issue-led readiness

PR contract: PASS

Issue design and plan conformance: FAIL

Code review: FAIL

Evidence: ad91a7641019349a5b41924761884662864a75d071d1604f0b278b75ee16f86b

Readiness blockers

  • plan-conformance The linked Issue requires issue-change triggers and dependent-PR recalculation. This change provides only PR/comment/manual triggers, so an Issue edit can leave a passing readiness Check unrecalculated.
  • code-review .github/scripts/issue-review/common.mjs:76: Allow Task containers when a concrete Issue is also linked
  • code-review .github/workflows/codex-openai-review.yml:351: Fail closed when a linked Issue has more than 100 sub-issues

Readiness fails due to a missing linked-Issue recalculation lifecycle and two correctness gaps.

2 inline findings published.

Comment thread .github/scripts/issue-review/common.mjs
Comment thread .github/workflows/codex-openai-review.yml
The unified review Check must be recalculated when its linked Issue changes,
and its deterministic Issue evidence must not reject valid tracking layouts or
silently truncate native relationships.

- Route Issue events through the existing PR review caller
- Accept Task containers when a concrete implementation Issue is also linked
- Fail closed when native sub-issue evidence exceeds the query bound

Generated with [Codex](https://github.com/openai)

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

❌ PR readiness: FAIL (1 blocker)

🤖 OpenAI PR review

✅ Conclusion: PASS

Reviewed commit: 36d64978a8

Reviewed range: e16db5d052..36d64978a8

Review mode: full

Session key: repo-1309321116-pr-11-v2

Generation key: 7711554bed64f73f0bf37531ae43b880775c165786e4003052c03fac4fc406e9

Diff chunks: 1

Model: gpt-5.6-terra

Reasoning effort: medium

Review time: 1m 6s

Input tokens: 352,723

Cached input tokens: 301,225

Cache write tokens: 51,468

Cache hit ratio: 85.4%

Output tokens: 5,261

Reasoning tokens: 3,627

Total tokens: 357,984

Estimated Codex credits: 7.074

Credit rate per 1M tokens: 62.5 input / 6.25 cached / 375 output

Per-chunk and aggregation usage
Turn key Time Input Cached Cache hit Cache write Output Reasoning Total Est. credits
chunk:1/1:159f461fe2c173d256ba8272fab3a1341ff44c18d26ecd0f37861536977eeb92 58s 250,521 200,986 80.2% 49,511 4,924 3,587 255,445 6.199
aggregate:7711554bed64f73f0bf37531ae43b880775c165786e4003052c03fac4fc406e9 8s 102,202 100,239 98.1% 1,957 337 40 102,539 0.876

Issue-led readiness

PR contract: PASS

Issue design and plan conformance: FAIL

Code review: PASS

Evidence: 0af75498d210dd2cb8adf11e4d0eb4508f1861fd3f6b6790bcb94c525373e39f

Readiness blockers

  • plan-conformance The linked Issue’s Code Changes Tree and acceptance criteria require issue-review/prepare.mjs, run.mjs, review-output-schema.json, and tests for design quality, malformed output, retry/checkpoint behavior, and invalid plan/acceptance criteria. This chunk adds only issue-review/common.mjs plus format-only tests, while the PR body says the Issue-only runtime was removed. Update the linked Issue with this design change or implement and validate the promised Issue-review components before readiness can pass.

The implementation omits an Issue-owned review runtime and its required coverage, diverging from the linked Issue plan.

No actionable findings.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

✅ PR readiness: PASS

🤖 OpenAI PR review

✅ Conclusion: PASS

Reviewed commit: 36d64978a8

Reviewed range: 36d64978a8..36d64978a8

Review mode: incremental

Session key: repo-1309321116-pr-11-v2

Generation key: 1c174b19b8298415044ccae2df040931d40712c149b26d6643c1238c631ba62a

Diff chunks: 1

Model: gpt-5.6-terra

Reasoning effort: medium

Review time: 16s

Input tokens: 222,328

Cached input tokens: 165,207

Cache write tokens: 57,109

Cache hit ratio: 74.3%

Output tokens: 531

Reasoning tokens: 92

Total tokens: 222,859

Estimated Codex credits: 4.802

Credit rate per 1M tokens: 62.5 input / 6.25 cached / 375 output

Per-chunk and aggregation usage
Turn key Time Input Cached Cache hit Cache write Output Reasoning Total Est. credits
chunk:1/1:bdc72b0045659ae842faf12a3ce2f487e5b7a6cde5fdec4b76d0e24bf329fc80 7s 108,517 52,125 48.0% 56,386 362 92 108,879 3.986
aggregate:1c174b19b8298415044ccae2df040931d40712c149b26d6643c1238c631ba62a 9s 113,811 113,082 99.4% 723 169 0 113,980 0.816

Issue-led readiness

PR contract: PASS

Issue design and plan conformance: PASS

Code review: PASS

Evidence: 2f070dc2e8836008c4e4575413d507b7c4e7ed5bafa427089979b83f6dd25ac2

No configured readiness blockers.

No changes were introduced since the last completed review, and the updated linked Issue plan matches the implemented unified review design.

No actionable findings.

Create fixed PR, Issue, and Code Review checks on each reviewed head.
Cache PR metadata, each linked Issue, and code evidence independently so
unchanged stages consume zero model tokens and changed snapshots send only
their incremental evidence.

Report per-stage cache modes and token usage in the unified native review.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

❌ PR readiness: FAIL (1 blocker)

🤖 OpenAI PR review

❌ Conclusion: FAIL (1 actionable finding found)

Reviewed commit: 8214164b4f

Reviewed range: e16db5d052..8214164b4f

Review mode: full

Session key: repo-1309321116-pr-11-v2

Generation key: 3dd2580b68dc3e1bd2ac262544770a14d553391487be47f0ef4110cc2a02636f

Diff chunks: 1

Model: gpt-5.6-terra

Reasoning effort: medium

Review time: 1m 13s

Input tokens: 568,411

Cached input tokens: 503,388

Cache write tokens: 64,969

Cache hit ratio: 88.6%

Output tokens: 5,732

Reasoning tokens: 2,943

Total tokens: 574,143

Estimated Codex credits: 9.360

Credit rate per 1M tokens: 62.5 input / 6.25 cached / 375 output

Per-stage token and cache usage
Stage Mode Item Time Input Cached Cache hit Cache write Output Reasoning Total Est. credits
pr deterministic pr-format:deterministic 0s 0 0 0.0% 0 0 0 0 0.000
pr full pr:ef46c14053314ae37cbada3631756b04e421aedd5094f5d640c4e8aad814dce5 5s 19,637 9,250 47.1% 10,381 268 90 19,905 0.807
issue full Issue #10 5s 24,105 21,112 87.6% 2,987 297 77 24,402 0.430
code full code:chunk:1/1:a0f663936cd423b799a2455f4bc778f2e597da94e26798152fb91bd1207ef80c 59s 422,244 372,508 88.2% 49,700 4,832 2,747 427,076 7.249
code full code:aggregate:3dd2580b68dc3e1bd2ac262544770a14d553391487be47f0ef4110cc2a02636f 4s 102,425 100,518 98.1% 1,901 335 29 102,760 0.873

Issue-led readiness

OpenAI PR Review: PASS

OpenAI Issue Review: PASS

OpenAI Code Review: FAIL

Evidence: f2f2ceb0034605dfd848055e21a1725f6e2ce9d42bf1760a120100a4f4b60e17

Readiness blockers

  • code-review .github/workflows/codex-openai-review.yml:435: Fail closed when a linked Issue body is truncated

The full code generation has one actionable finding: linked Issue bodies are silently truncated before readiness validation and review.

1 inline finding published.

Comment thread .github/workflows/codex-openai-review.yml
Bind PR and Issue body truncation to canonical readiness snapshots and
surface deterministic blockers before semantic or code review can pass.
Use the same flags during publication-time identity verification.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

✅ PR readiness: PASS

🤖 OpenAI PR review

✅ Conclusion: PASS

Reviewed commit: abb2225344

Reviewed range: e16db5d052..abb2225344

Review mode: full

Session key: repo-1309321116-pr-11-v2

Generation key: b2a6dd784aa73263126892f887b2d02cd5c46646bc3b8faaea3421e8b9bb57c5

Diff chunks: 1

Model: gpt-5.6-terra

Reasoning effort: medium

Review time: 55s

Input tokens: 367,762

Cached input tokens: 302,941

Cache write tokens: 64,779

Cache hit ratio: 82.4%

Output tokens: 4,035

Reasoning tokens: 2,338

Total tokens: 371,797

Estimated Codex credits: 7.458

Credit rate per 1M tokens: 62.5 input / 6.25 cached / 375 output

Per-stage token and cache usage
Stage Mode Item Time Input Cached Cache hit Cache write Output Reasoning Total Est. credits
pr deterministic pr-format:deterministic 0s 0 0 0.0% 0 0 0 0 0.000
pr full pr:ef46c14053314ae37cbada3631756b04e421aedd5094f5d640c4e8aad814dce5 8s 29,691 18,872 63.6% 10,810 548 148 30,239 1.000
issue full Issue #10 4s 24,875 21,992 88.4% 2,877 305 71 25,180 0.432
code full code:chunk:1/1:778dd328b482131e146aab51ab565275ddbe30e358c186528a60c5c40bd38433 37s 211,637 163,375 77.2% 48,241 2,980 2,083 214,617 5.155
code full code:aggregate:b2a6dd784aa73263126892f887b2d02cd5c46646bc3b8faaea3421e8b9bb57c5 6s 101,559 98,702 97.2% 2,851 202 36 101,761 0.871

Issue-led readiness

OpenAI PR Review: PASS

OpenAI Issue Review: PASS

OpenAI Code Review: PASS

Evidence: 4278ae7bb074742eeea6ea77d74c8f83b30ffc043186f26f2fe35c836dd80cb0

No configured readiness blockers.

The single completed chunk has no actionable findings or plan-conformance blockers. No previous findings require preservation.

No actionable findings.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

✅ PR readiness: PASS

🤖 OpenAI PR review

✅ Conclusion: PASS

Reviewed commit: abb2225344

Reviewed range: e16db5d052..abb2225344

Review mode: reused

Session key: repo-1309321116-pr-11-v2

Generation key: b2a6dd784aa73263126892f887b2d02cd5c46646bc3b8faaea3421e8b9bb57c5

Diff chunks: 1

Model: gpt-5.6-terra

Reasoning effort: medium

Review time: 0s

Input tokens: 0

Cached input tokens: 0

Cache write tokens: 0

Cache hit ratio: N/A

Output tokens: 0

Reasoning tokens: 0

Total tokens: 0

Estimated Codex credits: 0.000

Credit rate per 1M tokens: 62.5 input / 6.25 cached / 375 output

Per-stage token and cache usage
Stage Mode Item Time Input Cached Cache hit Cache write Output Reasoning Total Est. credits
pr deterministic pr-format:deterministic 0s 0 0 0.0% 0 0 0 0 0.000
pr reused pr:reused 0s 0 0 0.0% 0 0 0 0 0.000
issue reused Issue #10 0s 0 0 0.0% 0 0 0 0 0.000
code reused code:reused 0s 0 0 0.0% 0 0 0 0 0.000

Issue-led readiness

OpenAI PR Review: PASS

OpenAI Issue Review: PASS

OpenAI Code Review: PASS

Evidence: 4278ae7bb074742eeea6ea77d74c8f83b30ffc043186f26f2fe35c836dd80cb0

No configured readiness blockers.

The single completed chunk has no actionable findings or plan-conformance blockers. No previous findings require preservation.

No actionable findings.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

✅ PR readiness: PASS

🤖 OpenAI PR review

✅ Conclusion: PASS

Reviewed commit: abb2225344

Reviewed range: abb2225344..abb2225344

Review mode: incremental

Session key: repo-1309321116-pr-11-v2

Generation key: b0797fec652188d0a45562033e5f4afa20df4ecc3d757f89bd8a36141256bafa

Diff chunks: 1

Model: gpt-5.6-terra

Reasoning effort: medium

Review time: 8s

Input tokens: 208,957

Cached input tokens: 103,826

Cache write tokens: 105,119

Cache hit ratio: 49.7%

Output tokens: 369

Reasoning tokens: 36

Total tokens: 209,326

Estimated Codex credits: 7.358

Credit rate per 1M tokens: 62.5 input / 6.25 cached / 375 output

Per-stage token and cache usage
Stage Mode Item Time Input Cached Cache hit Cache write Output Reasoning Total Est. credits
pr deterministic pr-format:deterministic 0s 0 0 0.0% 0 0 0 0 0.000
pr reused pr:reused 0s 0 0 0.0% 0 0 0 0 0.000
issue incremental Issue #10 4s 103,443 51,304 49.6% 52,133 192 23 103,635 3.651
code reused code:chunk:1:no-diff 0s 0 0 0.0% 0 0 0 0 0.000
code incremental code:aggregate:b0797fec652188d0a45562033e5f4afa20df4ecc3d757f89bd8a36141256bafa 4s 105,514 52,522 49.8% 52,986 177 13 105,691 3.707

Issue-led readiness

OpenAI PR Review: PASS

OpenAI Issue Review: PASS

OpenAI Code Review: PASS

Evidence: acccad742efb325b898ffe55868e8fc05b92ee6989c479af11c30aa1cdb500ff

No configured readiness blockers.

No code changed in this generation. The prior complete review has no findings or plan-conformance blockers to preserve.

No actionable findings.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

✅ PR readiness: PASS

🤖 OpenAI PR review

✅ Conclusion: PASS

Reviewed commit: abb2225344

Reviewed range: abb2225344..abb2225344

Review mode: incremental

Session key: repo-1309321116-pr-11-v2

Generation key: 82841bd8fc8624a26dd44415b011101d20a9d423dbf08b1264b6c8f291aad509

Diff chunks: 1

Model: gpt-5.6-terra

Reasoning effort: medium

Review time: 7s

Input tokens: 215,504

Cached input tokens: 211,547

Cache write tokens: 3,945

Cache hit ratio: 98.2%

Output tokens: 328

Reasoning tokens: 7

Total tokens: 215,832

Estimated Codex credits: 1.692

Credit rate per 1M tokens: 62.5 input / 6.25 cached / 375 output

Per-stage token and cache usage
Stage Mode Item Time Input Cached Cache hit Cache write Output Reasoning Total Est. credits
pr deterministic pr-format:deterministic 0s 0 0 0.0% 0 0 0 0 0.000
pr reused pr:reused 0s 0 0 0.0% 0 0 0 0 0.000
issue incremental Issue #10 4s 106,892 104,485 97.7% 2,401 170 7 107,062 0.867
code reused code:chunk:1:no-diff 0s 0 0 0.0% 0 0 0 0 0.000
code incremental code:aggregate:82841bd8fc8624a26dd44415b011101d20a9d423dbf08b1264b6c8f291aad509 3s 108,612 107,062 98.6% 1,544 158 0 108,770 0.825

Issue-led readiness

OpenAI PR Review: PASS

OpenAI Issue Review: PASS

OpenAI Code Review: PASS

Evidence: 06d4f15a40ba5baad3b8c64195103f9cde51b06f7ff670e4ac9276e811598e84

No configured readiness blockers.

No code changed in this generation. No prior findings or plan-conformance blockers require preservation.

No actionable findings.

@idy
idy merged commit a30f54f into main Jul 30, 2026
31 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ci: Add issue-led PR readiness review gate

1 participant