Skip to content

evidence(OMN-15472): retire unfalsifiable dod-deploy-assessment via append-only supersession (OMN-14443 class) - #5768

Merged
jonahgabriel merged 3 commits into
devfrom
jonah/omn-15472-c3-supersede-vacuous-deploy-assessment
Jul 31, 2026
Merged

jonahgabriel merged 3 commits into
devfrom
jonah/omn-15472-c3-supersede-vacuous-deploy-assessment

Conversation

@jonahgabriel

Copy link
Copy Markdown
Contributor

OMN-15472 — retire the unfalsifiable dod-deploy-assessment evidence item (append-only supersession)

Ticket: OMN-15472. This PR adds evidence only; it changes no product source, flips no Linear status, and deletes or rewrites nothing.

Finding (lane C2 adversarial verify of the OMN-15472 evidence chain)

OMN-15472's code legs are merged and independently verified — omnimarket #1990, squash 46e5364db360da5dbb72f382ddfea93488fc01fa. The evidence chain was not clean.

contracts/OMN-15472.yaml item dod-deploy-assessment (landed on OCC bot companion #5758, merged 2026-07-31T20:44:33Z) runs:

gh pr diff 1990 --repo OmniNode-ai/omnimarket --name-only | grep -ciE 'nodes/|handlers/|runtime/|services/|docker|monitor_logs|deploy'

That greps PR #1990's own file list. #1990 is MERGED, so the list is immutable and permanently contains
src/omnimarket/nodes/node_projection_registration/handlers/handler_projection_registration.py — which matches both nodes/ and handlers/. The check therefore exits 0 unconditionally. No change to the product source, the deploy surface, or the runtime can ever drive it RED. It is unfalsifiable by construction — the OMN-14443 class — and a check that can never fail is not evidence of deploy scope; it is a green light wired to nothing.

OCC #5762 (merged 2026-07-31T21:13:54Z) neutralised this additively by adding dod-deploy-source-probe, but did not retire the vacuous item. It stayed live and eligible to be read as passing evidence. This PR retires it.

Change — one appended item

contracts/OMN-15472.yaml gains exactly one new dod_evidence entry, dod-deploy-assessment-falsifiable, carrying:

evidence_artifact: "supersedes_dod_evidence:dod-deploy-assessment"

Idiom and precedent: append-only supersession, per EvidenceCollector._resolve_supersessions (shipped under OMN-15382 / OMN-15390) — the superseded item resolves to status=superseded at dod_verify runtime and stays verbatim in the file for audit. Direct precedent: lane B3's OCC #5760, which superseded dod-omn15535-pr-239-merged-at-4bae73ea on contracts/OMN-15535.yaml the same way. Append-only is not stylistic here: a merged dod_evidence entry is immutable and its receipt pins the entry hash, so an in-place rewrite is rejected by validator_occ_append_only and would invalidate the receipt binding.

Replacement semantics (falsifiable)

Immutable-ref content probe of the deploy-relevant source at PR #1990's squash merge commit 46e5364d, asserting the OMN-15472 fix symbol _preserve_service_url is present both as a definition and at the registration create-path call site the fix exists to protect:

gh api 'repos/OmniNode-ai/omnimarket/contents/src/.../handler_projection_registration.py?ref=46e5364d...' --jq .content \
  | base64 -d | grep -F 'def _preserve_service_url(existing: object) -> str:' > /dev/null \
&& gh api '...same ref...' --jq .content \
  | base64 -d | grep -F '"service_url": _preserve_service_url(base.get("service_url")),' > /dev/null

dod_evidence — proven, not asserted (executed on .200, stickybeatz-studio)

Leg What ran Result
GREEN check_value verbatim under bash -euo pipefail rc=0
GREEN check_value verbatim under plain bash -c (no pipefail) rc=0
RED same probe repointed at #1990's first parent 8e27c27ab810d06386511cfada0c5b167ef445ca rc=1
RED same probe against a path lacking the symbol (README.md) rc=1
Parse yaml.safe_load(contracts/OMN-15472.yaml) OK, 7 items
Shape shlex.split(check_value)[0] 'gh'
Shape '$(' in check_value False
Gates uv run pre-commit run --files contracts/OMN-15472.yaml every applicable hook Passed

Falsifiability is demonstrated, not claimed — which is the entire point of the item being replaced.

Executor-shape notes

  • The first shlex token is gh, a resolvable executable, and the command contains zero command substitution. node_dod_verify shape-guards a check_value before executing it by tokenizing with shlex.split, which is not $()-aware; this shape cannot mis-branch on it. (OMN-15597 caution; the OMN-15535 INVALID_CHECK_VALUE_NOT_A_COMMAND false-RED class.)
  • Both legs terminate in grep -F ... > /dev/null on fully drained input — avoiding both the grep -q SIGPIPE exit-141 hazard and the grep -c | grep -qx N counting idiom that fails in both polarities under pipefail.

Authorship separation

Authored by session fable-ws0-0731/laneC3, which did not implement the OMN-15472 code legs. Implementer and evidence-author are separate for this item. A separate audit-trail disclosure is posted on #5758 and #5762 recording that #5762's author identity is not resolvable to human-vs-agent from GitHub metadata.

…alsifiable merge-SHA-pinned source probe

Append-only supersession. contracts/OMN-15472.yaml gains one new item,
dod-deploy-assessment-falsifiable, carrying
evidence_artifact: supersedes_dod_evidence:dod-deploy-assessment.
No existing item is deleted or rewritten.

The superseded item greps PR #1990 own merged --name-only file list. #1990 is
MERGED, so that list is immutable and the check exits 0 unconditionally: it
cannot be driven RED by any change to product source, deploy surface, or
runtime. Unfalsifiable by construction (OMN-14443 class). OCC #5762 neutralised
it additively by ADDING dod-deploy-source-probe but left the vacuous item live.

Replacement: immutable-ref content probe at squash merge commit
46e5364db360da5dbb72f382ddfea93488fc01fa asserting _preserve_service_url is
present both as a definition and at the registration create-path call site.
Proven GREEN and proven RED on .200 against first parent
8e27c27ab810d06386511cfada0c5b167ef445ca (rc=1) and against a symbol-free path
(rc=1).

Executor shape: first shlex token is gh; zero command substitution (OMN-15597
caution / OMN-15535 INVALID_CHECK_VALUE_NOT_A_COMMAND class). Both legs end in
grep -F > /dev/null on fully drained input, avoiding the grep -q SIGPIPE 141
hazard and the grep -c counting idiom.

Idiom precedent: lane B3 OCC #5760 on contracts/OMN-15535.yaml
(EvidenceCollector._resolve_supersessions, OMN-15382/OMN-15390).
@coderabbitai

coderabbitai Bot commented Jul 31, 2026 •

Copy link
Copy Markdown

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: 31 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: d7e71fef-c088-467b-a6a7-fa557864c542

📥 Commits

Reviewing files that changed from the base of the PR and between 3e022b2 and 5138f38.

📒 Files selected for processing (5)
  • contracts/OMN-14443.yaml
  • contracts/OMN-15472.yaml
  • drift/dod_receipts/OMN-14443/occ-self-bind-pr-5768/command.yaml
  • drift/dod_receipts/OMN-15472/dod-deploy-assessment-falsifiable/command.yaml
  • drift/dod_receipts/OMN-15472/occ-self-bind-pr-5768/command.yaml

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

@jonahgabriel
jonahgabriel enabled auto-merge (squash) July 31, 2026 21:45
…fiable

occ-preflight / eligibility and verify / verify both failed on
missing_or_nonpass_receipts=[OMN-15472:dod-deploy-assessment-falsifiable:command]
— a new dod_evidence item needs its own receipt under drift/dod_receipts/.

Net-new file. contract_entry_sha256 computed with
omnibase_core.validation.validator_receipt_gate.compute_contract_entry_sha256
against the committed contract, so it binds the entry (not the whole file) and
leaves every prior entry hash untouched.

Receipt records the real run on .200: check_value read back out of the contract
and executed verbatim (exit 0 under bash -euo pipefail and plain bash -c), plus
two RED legs — first parent 8e27c27a (rc=1) and a symbol-free path (rc=1).
occ-preflight moved past missing_receipt to reason=pr_ticket_mismatch:
"no PASS receipt for one or more tickets binds to PR #5768 or one of its
commit SHAs: OMN-14443, OMN-15472". Eligibility extracts every cited ticket
that has a contract in this repo; this PR cites OMN-14443 substantively (it
retires a live instance of that ticket unfalsifiable-check class), so both
tickets need a binding stamp.

Two appended items, both binding stamps, neither adjudicating anything:
occ-self-bind-pr-5768 on contracts/OMN-15472.yaml and on contracts/OMN-14443.yaml,
plus their receipts. Mirrors occ-self-bind-pr-5760 (OMN-15535) and
occ-self-bind-pr-4557 (OMN-14443). Append-only; no existing item touched.
@jonahgabriel
jonahgabriel merged commit 7d33955 into dev Jul 31, 2026
61 checks passed
@jonahgabriel
jonahgabriel deleted the jonah/omn-15472-c3-supersede-vacuous-deploy-assessment branch July 31, 2026 22:07
jonahgabriel added a commit that referenced this pull request Aug 2, 2026
…end-only) (#5937)

* fix(OMN-15418): supersede two unsatisfiable generated DoD probes (append-only)

Both probes carry source: generated (node_occ_companion_compute autogen
defect) and are structurally unsatisfiable, so dod_verify refuses OMN-15418
even though every product PR is merged.

Retired append-only via evidence_artifact supersedes_dod_evidence:<id>,
mirroring OCC #5768 (merge 7d33955). No existing contract entry or receipt
is edited or deleted.

* evidence(OMN-15418): self-bind stamp for OCC #5937

Binds OMN-15418 to this PR so occ-preflight eligibility can resolve a PASS
receipt from the PR's own checkout (OCC in-repo invariant I3). Mirrors the
occ-self-bind-pr-5768 precedent.
jonahgabriel added a commit that referenced this pull request Aug 17, 2026
…cuous gh-diff check (#6590)

* fix(OMN-16071): append falsifiable deploy-assessment probe, retire vacuous gh-diff check

The dod-deploy-assessment item ran `gh pr diff 2081 --name-only | grep -ciE '...deploy...'`
against PR #2081's own changed-path list -- immutable once pushed, so the check's
command-position tokens (gh, grep) never include a live-surface probe and the check
cannot go RED for any reason. Confirmed live via omniclaude's actual
validate_pr_deploy_required.py classify_check_value(): commands found ['gh', 'grep'],
none in LIVE_PROBE_COMMANDS. This is the OMN-14443 unfalsifiable-by-construction class,
and since OMN-16071 postdates the ratchet's grandfather snapshot it is held to the real
bar unconditionally -- deploy-gate fails closed on omnimarket#2081.

Appends dod-deploy-assessment-falsifiable (append-only supersession via
evidence_artifact: supersedes_dod_evidence:dod-deploy-assessment -- the superseded item
stays verbatim per OCC doctrine). The replacement is a merge-ref-pinned content probe of
the OMN-16071 fix's own new symbols (OCC_AUTHOR_TIME_LABELS in occ_autoauthor.py, and its
import in the runtime handler_occ_companion_effect.py) at PR #2081's head
a5bf9076a9e277e14824b0fe7cf7157b0b7bcaf9. Falsifiability demonstrated, not asserted: both
probes exit 1 when repointed at the PR's base commit ca90f81d, where neither symbol
exists. Mirrors the OCC #5768 precedent on contracts/OMN-15472.yaml.

Verified locally before commit:
- lint_contract_check_values.py: clean
- validator_occ_append_only (omnibase_core): ok:true, zero violations
- validate_pr_deploy_required.py (real CI validator): DEPLOY GATE PASSED
- both new grep legs: exit 0 at head a5bf9076, exit 1 at base ca90f81d (live gh api reads)

Evidence-Ticket: OMN-16071

* evidence(OMN-16071): receipt for dod-deploy-assessment-falsifiable

PASS receipt for the append-only supersession item added in the prior commit. Both
content-probe legs executed live against the GitHub contents API: exit 0 at PR #2081's
head a5bf9076, exit 1 at its base ca90f81d (RED-proven). contract_entry_sha256 computed
via omnibase_core.validation.validator_receipt_gate.compute_contract_entry_sha256 against
the committed contract. validator_occ_append_only (run locally) confirms zero violations
-- existing entries and receipts unchanged.

Evidence-Ticket: OMN-16071

* evidence(OMN-16071): self-bind PR #6590 to close pr_ticket_mismatch eligibility gap

occ-preflight/eligibility (job 95333685415) and verify/verify (job 95337046989) both fail
with reason=pr_ticket_mismatch: every existing receipt on this ticket binds to the prior
companion OCC#6550 or to product PR #2081, never to this PR (#6590) or its commit SHAs.
validator_occ_merge_eligibility requires at least one PASS receipt bound to the PR carrying
the evidence.

Appends occ-self-bind-pr-6590 (binding stamp, not substantive proof -- mirrors the merged
occ-self-bind-pr-6509/-6552 precedent on contracts/OMN-15922.yaml) plus its receipt.
Existing entries recompute to identical prior contract_entry_sha256 values -- no rebind.

Evidence-Ticket: OMN-16071
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