Files
gstack/review/sections/adversarial.md.tmpl
T
Garry TanandOpenAI Codex 06ed920a97 v1.89.0.0 feat: add shared-code extraction audit (#2925)
* feat: bind shared-code review advice to source and branch

* feat: add shared-code extraction audit and scoped review checks

* test: recognize complete source reads and explicit coverage legends

* chore: bump version and changelog (v1.88.0.0)

Co-Authored-By: OpenAI Codex <noreply@openai.com>

* test: capture native review questions and retain public evidence

Capture the actual first public native question with strict ownership and display matching. Preserve terminal failures and raw evidence, and retain SDK completion checks.

* test: recognize verified review evidence and complete fixtures

Recognize complete source and diagram evidence, concrete design and developer-experience decisions, and the complete planted scenario contracts. Preserve negative controls and grading thresholds.

* fix: preserve decision brief structure in native questions

Keep the required pros-and-cons heading and final Net field in native question text. Regenerate host outputs and document the release and evaluation repairs.

Co-Authored-By: OpenAI Codex <noreply@openai.com>

* docs: update project documentation for v1.88.0.0

Co-Authored-By: OpenAI Codex <noreply@openai.com>

* fix: correct eval retry accounting and ship workflow gates

* fix: capture native eval evidence and stabilize CI fixtures

* fix: keep shared-code eval skips read-only

Choose explicit no-change answers instead of mixed fix/preservation options.
Reuse the bounded revalidation prompt for path fixtures so required review
metadata is available without repeated discovery. Preserve source checks,
retry limits, and failed native terminal outcomes.

Add captured-question and callback regressions, plus evaluation selection
coverage for the affected fixtures.

---------

Co-authored-by: OpenAI Codex <noreply@openai.com>
2026-09-24 01:53:58 -04:00

16 lines
4.4 KiB
Cheetah
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{{ADVERSARIAL_STEP}}
### Before persisting Eng Review (Step 5.8)
If this pass applied any fixes (including adversarial fixes), repeat Steps 3–5.7 against the updated diff with a new REVIEW_START. A pass converges only when it completes without edits. Allow at most 3 fix cycles; if the third still applies fixes, persist `converged:false` and stop with the remaining findings. Do not capture a new token just to log the fixed tree.
Keep the invocation action list across those cycles. The final zero-edit pass verifies the resulting code; it does not replace earlier completed actions with an empty list. Merge final-pass decisions with accumulated actions once per structural identity and advisory/defect kind. An approved extraction that removed the original duplication retains its `fixed` record with the original `evidence_paths` and `helper_target`; recompute its fingerprint from that preserved metadata, not from an invented replacement candidate. Verify the resulting helper/caller behavior and tests without requiring the removed blocks to still exist. Carry a skipped advisory into the final saved findings only after re-reading all its evidence against the final snapshot and confirming the same supported proposal and decision still apply. If that cannot be established, report the earlier choice as history in the response without binding it as a reusable skipped finding. A prior fixed action never clears a recurring defect: final unresolved counts and completion still come from the current pass.
For each saved skipped shared-code advisory, record `snapshot_covered_paths` from the final snapshot eligibility checks in Step 5.0, including raw-byte equality with that snapshot's blobs. Recompute this list from actual reads; never copy coverage from earlier cycles, supplied findings, or prior records. Ineligible evidence can still support fresh advice, but omit it from the coverage list so the decision cannot be reused without revalidation. Persist an empty list when no path qualifies. Fixed advisories do not need reusable skip coverage.
For the Step 5.8 record, REVIEW_START is the token captured before this pass's Step 3 diff read. COMPLETED is true only if the checklist and dispatched specialists completed; missing coverage is false, never clean. CONVERGED is true only for a completed pass with zero edits. CYCLES counts fix cycles (0 for a first-pass completion). Preserve unavailable specialist/provider coverage in the summary; completion of one source does not imply completion of another.
- `specialists` = the per-specialist stats object compiled in Step 4.6. Each specialist that was considered gets an entry: `{"dispatched":true/false,"findings":N,"critical":N,"informational":N}` if dispatched, or `{"dispatched":false,"reason":"scope|gated"}` if skipped. Include Design specialist. Example: `{"testing":{"dispatched":true,"findings":2,"critical":0,"informational":2},"security":{"dispatched":false,"reason":"scope"}}`
- `findings` = array of per-finding records from Step 5 and the invocation action list, merged as above. For each finding (from core pass and specialists), include: `{"fingerprint":"path:line:category","severity":"CRITICAL|INFORMATIONAL","action":"ACTION"}` and preserve `advisory`, `evidence_paths`, and `helper_target` whenever present. For shared-code advisories, recompute the fingerprint with the same installed `sharedLibsFingerprint` helper from the core pass immediately before persistence; do not trust supplied or model-generated hashes. Recheck the supporting source after fixes, applying the fixed-versus-skipped rules above. ACTION is `"auto-fixed"` (Step 5b), `"fixed"` (user approved in Step 5d), or `"skipped"` (user explicitly chose Skip in Step 5c). Advisories may be `"fixed"` or `"skipped"`, never `"auto-fixed"`; silence is not a skip. If a user defers answering, preserve the pending advice in the response without inventing a saved decision. Findings suppressed from a persistent prior review in Step 5.0 are NOT included (they were already recorded); revalidated decisions from this invocation ARE included.
- The review logger discards caller-supplied binding fields and constructs trusted `review_binding`, including a digest of the validated captured branch. Do not manufacture a binding or capture a fresh start token solely to obtain a matching fingerprint. Excluding advisory counts does not relax start-token, completion, convergence, or missing-reviewer rules.