Skip to content

evidence(OMN-15488): OCC DoD contracts + PASS receipts for OMN-15488 and OMN-15239 - #5759

Merged
jonahgabriel merged 3 commits into
devfrom
jonah/omn-15488-occ-dod-contracts-steel-wave2
Jul 31, 2026
Merged

jonahgabriel merged 3 commits into
devfrom
jonah/omn-15488-occ-dod-contracts-steel-wave2

Conversation

@jonahgabriel

@jonahgabriel jonahgabriel commented Jul 31, 2026 •

Copy link
Copy Markdown
Contributor

What this is

Authors the two OCC DoD contracts that the Steel dod_verify closeout is blocked on, plus their 17 PASS receipts. Net-new files only — no existing file is touched.

  • contracts/OMN-15488.yaml (10 evidence items)
  • contracts/OMN-15239.yaml (7 evidence items)
  • drift/dod_receipts/OMN-15488/*/command.yaml, drift/dod_receipts/OMN-15239/*/command.yaml

Scope correction vs the dispatch — 2 contracts, not 5

This lane was dispatched to author FIVE missing contracts (OMN-15488, 15239, 15535, 15490, 15493) after a closeout run reported CONTRACT_MISSING x5. Live readback of onex_change_control origin/dev at lane start found three of the five already landed in #5756 (9089ffa93):

$ for t in 15488 15239 15535 15490 15493; do
    git cat-file -e origin/dev:contracts/OMN-$t.yaml && echo "OMN-$t EXISTS" || echo "OMN-$t MISSING"; done
OMN-15488 MISSING
OMN-15239 MISSING
OMN-15535 EXISTS
OMN-15490 EXISTS
OMN-15493 EXISTS

The x5 finding was accurate when measured and stale by the time this lane ran. Only OMN-15488 and OMN-15239 were genuinely absent, so this PR authors two. No duplicate contracts are created.

Evidence binding

Every check pins an immutable squash-merge SHA on jonahgabriel/steel_onslaught main — never a feature-branch ref, never a workflow-run conclusion.

Ticket PRs Merge SHAs
OMN-15488 steel#235, #240, #241 ff5df34f…, a3b0d8aa… (executing pin), fa2bd9d4…
OMN-15239 steel#225 23a88d09…

steel#239 (4bae73ea…, Amendment 2) is already bound by contracts/OMN-15535.yaml from #5756 and is deliberately not re-asserted here.

The autobind trap, handled explicitly

node_dod_verify's evidence_collector autobinds PR references against _DEFAULT_GITHUB_ORG = "OmniNode-ai" (src/omnimarket/nodes/node_dod_verify/services/evidence_collector.py:110), which resolves nothing for a personal repo. Its fallback is _hardcoded_pr_bindings_in_value, which only accepts a (repo, pr_number) pair when both come from the same shell clause. Every check here therefore carries the PR number and --repo jonahgabriel/steel_onslaught in one clause, e.g.

gh pr view 235 --repo jonahgabriel/steel_onslaught --json state,mergeCommit --jq ...

Verification

All 17 checks were executed as written on the gate host (.200), both before and after the yamlfmt pre-commit reflow — the second run is the load-bearing one, since a reflow that re-wrapped a block-scalar shell command would silently break every check. 17/17 GREEN both times.

RED-proof, 17/17 flip:

Honest scope notes (carried in the contracts, not just this body)

  • OMN-15488 AC1/AC2/AC3/AC6 attest recorded results, not re-executed gates. The battery artifacts live in a local hermetic snapshot (~/.omnibase/battery_envs/omn15488-hermetic-20260730) no hosted runner can reach, so these checks pin the independent gates agent's document at an immutable SHA. The independence claim is itself checkable — §5 of that document records three distinct agents (gates / scoring assembler / scoring recompute verifier).
  • AC2 is a weaker discharge than it looks. It was satisfied by per-block invocations of check_contamination_gate.py, not one whole-lane run, because that script's load_battery_rows / check_seed_coverage interface compares all actual seeds against a single expected block and cannot express a three-phase lane. Interface limitation, not a skipped gate — stated as such.
  • AC1's margin is thin (+10m 43s) because Amendment 3 landed the morning of the run. Asserted rather than elided.
  • The battery's pre-registered primary landed NOT-SUPPORTED, and the confirmatory secondary DIRECTIONAL-ONLY. That is the ticket's own pre-declared band structure working, not an incomplete run. The AC5 check pins the computed statistics (D_ws = -0.003425, t = -0.570669, df = 57.644039) rather than a verdict word, so a favorable substitute statistic reported under the pre-registered name could not pass. The scoring document is titled DRAFT.
  • OMN-15488 deliverable-1 negative leg is scoped. No whole-file absence assertion is made for the literal max_value=3.0, because it legitimately survives at two prose sites documenting the very defect that was fixed; the executed call site is asserted positively via max_value=promote_cap, instead.

No self-authored evidence

This lane (fable-steel-0731 wave-2) implemented none of the underlying steel work — it was built by the authorized-wave-0730 / fable-night-0730 / earlier steel lanes. Author ≠ implementer, per the no-self-authored-evidence rule.

Closeout note for whoever re-runs dod_verify

Per OMN-15369, the closeout re-run must set ONEX_EVIDENCE_ROOT or pass --output-path — otherwise no durable receipt is written and the run proves nothing.

Status

No Linear status is changed by this PR. A Done flip routes only through dod_verify with durable evidence. Landing belongs to Codex's merge sweep — this PR is not armed for auto-merge.

Cites OMN-15488, OMN-15239.

Summary by CodeRabbit

  • Documentation

    • Added enriched release contracts covering retry behavior, evidence requirements, acceptance criteria, and preregistered outcomes.
    • Documented merged changes, execution scope, immutable references, and adjudication rules for improved traceability.
  • Tests

    • Added comprehensive verification records confirming semantic-error recovery, retry-budget handling, boundary preservation, provider propagation, phase limits, overlay configuration, contract tests, and scoring outcomes.
    • Recorded successful checks with reproducible evidence and negative-test validation.

…l tickets still missing one (OMN-15488, OMN-15239)

Authors contracts/OMN-15488.yaml and contracts/OMN-15239.yaml plus 17 PASS
receipts under drift/dod_receipts/, closing the CONTRACT_MISSING gap that blocks
the Steel dod_verify closeout for these two tickets.

Scope correction vs the dispatch: the lane was scoped to FIVE missing contracts
(OMN-15488, 15239, 15535, 15490, 15493). Live readback of onex_change_control
origin/dev found three of them ALREADY landed in #5756 (9089ffa,
contracts/OMN-{15535,15490,15493}.yaml). Only 15488 and 15239 were genuinely
absent, so this PR authors two, not five. Re-verified per ticket with
`git cat-file -e origin/dev:contracts/OMN-<n>.yaml`.

Per-ticket binding (each contract pins its OWN merged PRs + merge SHAs, all on
jonahgabriel/steel_onslaught main):
  OMN-15488 -> steel#235 @ff5df34fdb374ddcffb9d14576a16b49ebf1c87e
               steel#240 @a3b0d8aa7f7392942f6d78c47bf7f98247c63d09 (executing pin)
               steel#241 @fa2bd9d4d3d94c8bab3d3696e274ca002c284eac (evidence docs)
  OMN-15239 -> steel#225 @23a88d09051565270f76cade8bc7b685cd790f38

Binding trap handled explicitly: node_dod_verify's evidence_collector autobinds
PR references against _DEFAULT_GITHUB_ORG="OmniNode-ai", which resolves nothing
for a personal repo. Every check therefore carries the PR number and
`--repo jonahgabriel/steel_onslaught` in the SAME shell clause, which is what
the collector's `_hardcoded_pr_bindings_in_value` same-clause extractor requires.

17 checks, all hosted-runnable and pinned to immutable merge SHAs (never a
feature-branch ref, never a workflow-run conclusion). Executed GREEN as written
on the gate host both before and AFTER the yamlfmt reflow, then RED-proven:
14 flip RED at their pinned commit's own first parent. The other 3 (the
OMN-15488 deliverable-1 source items) pin a3b0d8aa, whose first parent e3dbd017
ALREADY contains deliverable 1 -- it landed earlier in #235 -- so the naive
first-parent oracle is vacuous for them; they are RED-proven against be4dbe49,
the first parent of #235, and all three flip RED there. This is recorded in the
contract summary, not just here.

Honest scope notes carried in the contracts themselves:
- OMN-15488 AC1/AC2/AC3/AC6 attest the independent gates agent's RECORDED
  results at an immutable SHA; they do not re-execute the gates, because the
  artifacts live in a local hermetic snapshot no hosted runner can reach.
- AC2 was discharged by per-block invocations of check_contamination_gate.py,
  not one whole-lane run, because that script's interface cannot express a
  three-phase lane. Weaker than a single whole-lane exit-0; stated as such.
- AC5's scoring document is titled DRAFT, and the battery's pre-registered
  primary landed NOT-SUPPORTED (a reported negative, per the ticket's own
  pre-declared bands) -- the checks pin the computed statistics, not a verdict
  word, so a favorable substitute statistic could not pass.

Author is not the implementer: none of the underlying steel work was built by
this lane (fable-steel-0731 wave-2). No-self-authored-evidence holds.

No Linear status is changed here. Per doctrine a Done flip routes only through
dod_verify with durable evidence.

Cites OMN-15488, OMN-15239.
@coderabbitai

coderabbitai Bot commented Jul 31, 2026 •

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 46 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: b9e7ca64-f9e9-4fb7-8fa2-99ee6870dd1a

📥 Commits

Reviewing files that changed from the base of the PR and between 8840584 and 358a19b.

📒 Files selected for processing (4)
  • contracts/OMN-15239.yaml
  • contracts/OMN-15488.yaml
  • drift/dod_receipts/OMN-15239/occ-self-bind-pr-5759/command.yaml
  • drift/dod_receipts/OMN-15488/occ-self-bind-pr-5759/command.yaml
📝 Walkthrough

Walkthrough

Added enriched contracts and pinned DoD command receipts for OMN-15239 semantic retry behavior and OMN-15488 receipt evidence.

Changes

OMN-15239 semantic retry evidence

Layer / File(s) Summary
Semantic retry contract
contracts/OMN-15239.yaml
Defines bounded semantic retries, classified exhaustion, shared retry limits, boundary preservation, provider propagation, recovery tests, and dated preregistration amendments.
Semantic retry verification receipts
drift/dod_receipts/OMN-15239/...
Adds passing pinned-source and merge-state command receipts for the contract evidence.

OMN-15488 receipt evidence

Layer / File(s) Summary
Receipt contract and acceptance evidence
contracts/OMN-15488.yaml
Defines immutable merge references, overlay and Genesis checks, contract tests, preregistration timing, promotion limits, verdict quantities, and scoring results.
Receipt verification commands
drift/dod_receipts/OMN-15488/...
Adds passing command receipts for merged commits, source checks, tests, timing, verdicts, promotion, and scoring evidence.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Possibly related PRs

Suggested labels: occ:machine-minted

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the added DoD contracts and PASS receipts for both OMN-15488 and OMN-15239.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch jonah/omn-15488-occ-dod-contracts-steel-wave2

Comment @coderabbitai help to get the list of available commands.

…ts for both cited tickets

occ-preflight/eligibility resolves the tickets a PR owns from the title tokens
when the body carries no closing keyword, so this PR owns OMN-15488 and
OMN-15239 and each needs a PASS receipt bound to PR #5759. Appends the standard
occ-self-bind item + receipt to each contract, mirroring occ-self-bind-pr-5756
and occ-self-bind-pr-5544.

Append-only: every pre-existing dod_evidence entry is byte-intact and all 17
original receipts still hash-match their contract entries (per-entry hashing,
OMN-13888, which folds in only the receipt own entry plus the immutable header).
Binding stamp only; flips no Linear status.

Cites OMN-15488, OMN-15239.

@coderabbitai coderabbitai 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.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@contracts/OMN-15488.yaml`:
- Around line 215-227: Strengthen the AC5 NOT-SUPPORTED verification by
replacing the bare token grep in contracts/OMN-15488.yaml lines 215-227 with an
exact check for the pre-registered band clause “NOT-SUPPORTED — D_ws <= 0.”;
apply the identical check_value change in
drift/dod_receipts/OMN-15488/dod-omn15488-ac5-primary-scored-as-prereg/command.yaml
line 7 and re-run the probe.
- Around line 192-206: Update the duplicated AC4 verification command so it
asserts the seed-4101 first promote-phase match and retains the budget-window
check, rather than checking the NO-PROMOTION phrase twice. Apply the identical
check_value change in contracts/OMN-15488.yaml lines 192-206 and
drift/dod_receipts/OMN-15488/dod-omn15488-ac4-promotion-within-budget/command.yaml
line 7, then re-run the probe to refresh the receipt.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 976c9872-c035-4617-94ab-32cc9d27b810

📥 Commits

Reviewing files that changed from the base of the PR and between 9089ffa and 8840584.

📒 Files selected for processing (19)
  • contracts/OMN-15239.yaml
  • contracts/OMN-15488.yaml
  • drift/dod_receipts/OMN-15239/dod-omn15239-bare-semantic-error-no-longer-escapes/command.yaml
  • drift/dod_receipts/OMN-15239/dod-omn15239-budget-shared-with-card-mode/command.yaml
  • drift/dod_receipts/OMN-15239/dod-omn15239-dated-prereg-amendment/command.yaml
  • drift/dod_receipts/OMN-15239/dod-omn15239-exhaustion-raises-catchable/command.yaml
  • drift/dod_receipts/OMN-15239/dod-omn15239-pr-225-merged-at-23a88d09/command.yaml
  • drift/dod_receipts/OMN-15239/dod-omn15239-repair-preserves-boundary/command.yaml
  • drift/dod_receipts/OMN-15239/dod-omn15239-tests-exhaustion-and-recovery/command.yaml
  • drift/dod_receipts/OMN-15488/dod-omn15488-ac1-prereg-timing-gate-exit-zero/command.yaml
  • drift/dod_receipts/OMN-15488/dod-omn15488-ac2-ac3-ac6-verdict-table-all-pass/command.yaml
  • drift/dod_receipts/OMN-15488/dod-omn15488-ac4-promotion-within-budget/command.yaml
  • drift/dod_receipts/OMN-15488/dod-omn15488-ac5-primary-scored-as-prereg/command.yaml
  • drift/dod_receipts/OMN-15488/dod-omn15488-d1-contract-tests/command.yaml
  • drift/dod_receipts/OMN-15488/dod-omn15488-d1-genesis-knob-phase-caps/command.yaml
  • drift/dod_receipts/OMN-15488/dod-omn15488-d1-overlay-mirror-stanza/command.yaml
  • drift/dod_receipts/OMN-15488/dod-omn15488-pr-235-merged-at-ff5df34f/command.yaml
  • drift/dod_receipts/OMN-15488/dod-omn15488-pr-240-merged-at-a3b0d8aa/command.yaml
  • drift/dod_receipts/OMN-15488/dod-omn15488-pr-241-merged-at-fa2bd9d4/command.yaml

Comment thread contracts/OMN-15488.yaml
Comment on lines +192 to +206
- id: "dod-omn15488-ac4-promotion-within-budget"
description: >-
AC4 — promotion fired inside the pre-registered promote budget of 15, so the alternative NO-PROMOTION
escape branch was not taken and, critically, no post-hoc budget extension occurred. At fa2bd9d4
the scoring document records that `policy_promoted` fires on the FIRST promote-phase match, seed
4101, against the declared `budget was 15 attempts, seeds 4101-4115`, and states in terms that `The
**NO-PROMOTION` escape does not trigger. Both legs are asserted: firing on the first attempt is
the fact, and the budget window being the pre-registered 4101-4115 (not a widened range) is what
forecloses the post-hoc-extension failure mode the ticket explicitly pre-declared against.
source: "manual"
status: "verified"
checks:
- check_type: "command"
check_value: |-
s="$(mktemp)" && gh api 'repos/jonahgabriel/steel_onslaught/contents/docs/evidence/2026-07-31-lgate2-decisive-battery-scoring.md?ref=fa2bd9d4d3d94c8bab3d3696e274ca002c284eac' --jq .content | base64 -d > "$s" && grep -qF 'NO-PROMOTION escape did not trigger' "$s" && grep -qF 'The **NO-PROMOTION' "$s" && grep -qF 'budget was 15 attempts, seeds 4101-4115' "$s" && rm -f "$s"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

AC4 asserts a promotion leg that its command does not check. One command string is duplicated in the contract and in its receipt. Both copies assert the NO-PROMOTION negative twice and the budget window once, and neither asserts that policy_promoted fires on the first promote-phase match at seed 4101, which the contract description claims.

  • contracts/OMN-15488.yaml#L192-L206: replace the duplicate grep -qF 'The **NO-PROMOTION' leg with a leg that pins the seed-4101 firing sentence, or narrow the description to the legs actually asserted.
  • drift/dod_receipts/OMN-15488/dod-omn15488-ac4-promotion-within-budget/command.yaml#L7-L7: apply the identical check_value edit and re-run the probe so the receipt records the corrected command.
📍 Affects 2 files
  • contracts/OMN-15488.yaml#L192-L206 (this comment)
  • drift/dod_receipts/OMN-15488/dod-omn15488-ac4-promotion-within-budget/command.yaml#L7-L7
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@contracts/OMN-15488.yaml` around lines 192 - 206, Update the duplicated AC4
verification command so it asserts the seed-4101 first promote-phase match and
retains the budget-window check, rather than checking the NO-PROMOTION phrase
twice. Apply the identical check_value change in contracts/OMN-15488.yaml lines
192-206 and
drift/dod_receipts/OMN-15488/dod-omn15488-ac4-promotion-within-budget/command.yaml
line 7, then re-run the probe to refresh the receipt.

Comment thread contracts/OMN-15488.yaml
Comment on lines +215 to +227
`p = 0.070306 >= 0.05`, landing DIRECTIONAL-ONLY; the three pre-registered bands are quoted verbatim
including `NOT-SUPPORTED — D_ws <= 0.`; and the negatives carry their own section titled `first-class,
not a footnote`. Pinning the numbers rather than the verdict is the discriminator between "the pre-registered
statistic was computed and reported honestly" and "a favorable substitute statistic was reported
under the pre-registered name". Two residuals recorded honestly: the document is titled DRAFT, and
the ticket's own Deliverables section had declared the scoring document follow-on work rather than
an OMN-15488 deliverable while its AC5 requires it — it landed in #241 either way.
source: "manual"
status: "verified"
checks:
- check_type: "command"
check_value: |-
s="$(mktemp)" && gh api 'repos/jonahgabriel/steel_onslaught/contents/docs/evidence/2026-07-31-lgate2-decisive-battery-scoring.md?ref=fa2bd9d4d3d94c8bab3d3696e274ca002c284eac' --jq .content | base64 -d > "$s" && grep -qF 'D_ws = -0.003425 <= 0' "$s" && grep -qF 't = -0.570669 (one-sided Welch, direction UP)' "$s" && grep -qF 'df = 57.644039 (Welch-Satterthwaite)' "$s" && grep -qF 'D_vent = +0.019604 > 0` but `p = 0.070306 >= 0.05' "$s" && grep -qF 'NOT-SUPPORTED' "$s" && grep -qF 'first-class, not a footnote' "$s" && rm -f "$s"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

The AC5 NOT-SUPPORTED leg is weaker than the description in both copies. The same command string appears in the contract and in its receipt. Both grep the bare token NOT-SUPPORTED rather than the pre-registered band clause that the description says is quoted verbatim.

  • contracts/OMN-15488.yaml#L215-L227: change the leg to grep -qF 'NOT-SUPPORTED — D_ws <= 0.' "$s".
  • drift/dod_receipts/OMN-15488/dod-omn15488-ac5-primary-scored-as-prereg/command.yaml#L7-L7: apply the identical check_value edit and re-run the probe.
📍 Affects 2 files
  • contracts/OMN-15488.yaml#L215-L227 (this comment)
  • drift/dod_receipts/OMN-15488/dod-omn15488-ac5-primary-scored-as-prereg/command.yaml#L7-L7
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@contracts/OMN-15488.yaml` around lines 215 - 227, Strengthen the AC5
NOT-SUPPORTED verification by replacing the bare token grep in
contracts/OMN-15488.yaml lines 215-227 with an exact check for the
pre-registered band clause “NOT-SUPPORTED — D_ws <= 0.”; apply the identical
check_value change in
drift/dod_receipts/OMN-15488/dod-omn15488-ac5-primary-scored-as-prereg/command.yaml
line 7 and re-run the probe.

…r_number + full commit_sha)

occ-preflight/eligibility failed CLOSED with reason=pr_ticket_mismatch:
"no PASS receipt for one or more tickets binds to PR #5759 or one of its
commit SHAs: OMN-15239, OMN-15488". Both self-bind receipts were PRESENT and
PASS in the receipt_ids list, so the defect was purely in how they bound.

Root cause, two fields, against the merged occ-self-bind-pr-5756 precedent:
  1. neither receipt carried the pr_number field at all
  2. commit_sha was the ABBREVIATED "8840584099", which matches no
     40-char PR commit SHA

Both fixed: pr_number: 5759, and commit_sha set to the full
8840584 (the commit that introduced the
contracts, an actual commit of this PR). Same shape as the merged
drift/dod_receipts/OMN-15535/occ-self-bind-pr-5756/command.yaml.

verify/verify failed on the SAME single root cause -- it invokes the same
eligibility resolver -- so both red checks are expected to clear together.

No contract entry changed, so every contract_entry_sha256 in all 19 receipts is
untouched and still hash-matches. Binding metadata only; flips no Linear status.

Cites OMN-15488, OMN-15239.
@jonahgabriel
jonahgabriel merged commit c356c4c into dev Jul 31, 2026
62 checks passed
@jonahgabriel
jonahgabriel deleted the jonah/omn-15488-occ-dod-contracts-steel-wave2 branch July 31, 2026 20:46
jonahgabriel added a commit that referenced this pull request Jul 31, 2026
…239 (executor-compat correction)

Remediation of the wave-2 OCC DoD-contract lane (OCC #5759). The four binding
check_values that lane authored were rejected PRE-EXECUTION by node_dod_verify,
so dod_verify returned status=failed on both tickets: OMN-15488 12 verified /
3 failed / 15 total, OMN-15239 9 verified / 1 failed / 10 total. The blocker
moved from CONTRACT_MISSING to FAILED; the closeout was NOT unblocked.

Root cause (not a flake, not a retry): evidence_collector._invalid_check_value_reason
shape-guards a check_value before executing it by tokenizing with
shlex.split(posix=True), which is not $()-aware. The embedded jq program
`.state + " " + (.mergeCommit.oid // "none")` closed the outer double quote, so
the guard judged the fragment `" + (.mergeCommit.oid // none)')"` as the command
name, took its relative-script-path branch on the embedded slash, and returned
INVALID_CHECK_VALUE_NOT_A_COMMAND without ever running the command. A false RED
against a command that exits 0 in a real shell -- but a hard FAIL on the verdict.

Fix: append one supersession item per defective binding, leading with a
resolvable first token (`test`) and splitting the two-field query into two
single-field queries so each --jq filter is a bare path expression with no quote
characters. Semantics preserved exactly: BOTH state MERGED AND the exact merge
SHA are asserted. Mirrors the merged OCC #5760 precedent for OMN-15535/15490/15493.

Append-only, NOT an in-place edit: merged dod_evidence entries are immutable
(validator_occ_append_only) and their receipts pin the entry hash. Net diff is
225 insertions / 0 deletions; no pre-existing entry or receipt is touched.

Also appended: dod-omn15488-summary-correction-pr239-title, a falsifiable
correction of a factual error in OMN-15488.yaml`s summary, which mislabels steel
PR #239 as "Amendment 2". Its real title is
"fix(OMN-15522): send programming response contract on delegation wire (r4)" and
OMN-15535`s contract binds it for the stdout-tail/CLI-diagnostics fix. The SHA
4bae73ea and the "bound under OMN-15535" claim in that summary are correct and
unchanged. Recorded as a check rather than PR-body prose so it cannot rot.

Proof is the artifact that runs, not a bare shell surrogate. node_dod_verify was
executed against these contracts:
  BEFORE: OMN-15488 failed (12/3/15), OMN-15239 failed (9/1/10)
  AFTER:  OMN-15488 verified 17/17 (superseded 3), OMN-15239 verified 10/10
          (superseded 1); exit 0 on both
Re-run AFTER the yamlfmt reflow with identical results, and every appended
receipt`s contract_entry_sha256 recomputed post-reflow and confirmed matching.
Each new check_value was also RED-proven by SHA (or title) substitution: exit 1.

Ticket: OMN-15488, OMN-15239
jonahgabriel added a commit that referenced this pull request Jul 31, 2026
… pr_ticket_mismatch, 3rd recurrence)

occ-preflight eligibility is evaluated PER-PR: it requires a PASS receipt bound to this PR number or a head SHA. Every stamp on these tickets binds an earlier PR (#5756/#5759 merged; #5763 CLOSED UNMERGED 21:42:59Z, branch deleted), so #5767 failed occ-preflight and verify with reason=pr_ticket_mismatch. Appends occ-self-bind-pr-5767 entries + PASS receipts. Append-only: no pre-existing entry or receipt modified; entry hashes computed post-yamlfmt.
jonahgabriel added a commit that referenced this pull request Jul 31, 2026
* docs(OMN-15488): guard-compatible binding checks for OMN-15488/OMN-15239 (executor-compat correction)

Remediation of the wave-2 OCC DoD-contract lane (OCC #5759). The four binding
check_values that lane authored were rejected PRE-EXECUTION by node_dod_verify,
so dod_verify returned status=failed on both tickets: OMN-15488 12 verified /
3 failed / 15 total, OMN-15239 9 verified / 1 failed / 10 total. The blocker
moved from CONTRACT_MISSING to FAILED; the closeout was NOT unblocked.

Root cause (not a flake, not a retry): evidence_collector._invalid_check_value_reason
shape-guards a check_value before executing it by tokenizing with
shlex.split(posix=True), which is not $()-aware. The embedded jq program
`.state + " " + (.mergeCommit.oid // "none")` closed the outer double quote, so
the guard judged the fragment `" + (.mergeCommit.oid // none)')"` as the command
name, took its relative-script-path branch on the embedded slash, and returned
INVALID_CHECK_VALUE_NOT_A_COMMAND without ever running the command. A false RED
against a command that exits 0 in a real shell -- but a hard FAIL on the verdict.

Fix: append one supersession item per defective binding, leading with a
resolvable first token (`test`) and splitting the two-field query into two
single-field queries so each --jq filter is a bare path expression with no quote
characters. Semantics preserved exactly: BOTH state MERGED AND the exact merge
SHA are asserted. Mirrors the merged OCC #5760 precedent for OMN-15535/15490/15493.

Append-only, NOT an in-place edit: merged dod_evidence entries are immutable
(validator_occ_append_only) and their receipts pin the entry hash. Net diff is
225 insertions / 0 deletions; no pre-existing entry or receipt is touched.

Also appended: dod-omn15488-summary-correction-pr239-title, a falsifiable
correction of a factual error in OMN-15488.yaml`s summary, which mislabels steel
PR #239 as "Amendment 2". Its real title is
"fix(OMN-15522): send programming response contract on delegation wire (r4)" and
OMN-15535`s contract binds it for the stdout-tail/CLI-diagnostics fix. The SHA
4bae73ea and the "bound under OMN-15535" claim in that summary are correct and
unchanged. Recorded as a check rather than PR-body prose so it cannot rot.

Proof is the artifact that runs, not a bare shell surrogate. node_dod_verify was
executed against these contracts:
  BEFORE: OMN-15488 failed (12/3/15), OMN-15239 failed (9/1/10)
  AFTER:  OMN-15488 verified 17/17 (superseded 3), OMN-15239 verified 10/10
          (superseded 1); exit 0 on both
Re-run AFTER the yamlfmt reflow with identical results, and every appended
receipt`s contract_entry_sha256 recomputed post-reflow and confirmed matching.
Each new check_value was also RED-proven by SHA (or title) substitution: exit 1.

Ticket: OMN-15488, OMN-15239

* docs(OMN-15488): bind OMN-15488/OMN-15239 to OCC #5763 (occ-preflight pr_ticket_mismatch repair)

Adds the occ-self-bind-pr-5763 stamp both contracts were missing. Without it occ-preflight/eligibility and verify/verify fail with reason=pr_ticket_mismatch: every receipt in this PR binds OCC#5759, none binds #5763, and eligibility is evaluated per-PR not per-ticket-ever. The sibling repair PR #5760 carried the analogous occ-self-bind-pr-5760 and passed. Append-only: no pre-existing contract entry or receipt is modified.

* docs(OMN-15488): bind OMN-15488/OMN-15239 to OCC #5767 (occ-preflight pr_ticket_mismatch, 3rd recurrence)

occ-preflight eligibility is evaluated PER-PR: it requires a PASS receipt bound to this PR number or a head SHA. Every stamp on these tickets binds an earlier PR (#5756/#5759 merged; #5763 CLOSED UNMERGED 21:42:59Z, branch deleted), so #5767 failed occ-preflight and verify with reason=pr_ticket_mismatch. Appends occ-self-bind-pr-5767 entries + PASS receipts. Append-only: no pre-existing entry or receipt modified; entry hashes computed post-yamlfmt.
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.

1 participant