Repository navigation
chore(OMN-20074): move 80 ticket contracts from onex_change_control into omnibase_infra - #5262
Conversation
…nto omnibase_infra Moves 80 ticket contracts from the change-control repository (onex_change_control, commit 49cfc14c21a2c50f9964c1aeed4b66001ce279a3) into contracts/ in yamlfmt form, so the scheduled closer's contract resolver finds them. Adds a test for the moved set and records it as AC15 of contracts/OMN-20074.yaml.
|
Lab: host=h201 lane=cr0220-obinf head=55e757c799409c26bb24107770794a8fa21b18b6 command= |
There was a problem hiding this comment.
Hostile Reviewer — adversarial findings (OMN-17492)
Models succeeded: correctness, sonnet
Models failed: none
New finding threads: 6
Deduped (already posted on this PR): 0
Below quorum (one model only, reported not threaded): 123
Nit-level findings suppressed: 1
The model is the FINDER, never the gate: merge is gated only by the
deterministic Hostile Review Thread Gate, which blocks while
hostile-reviewer threads are unresolved. Resolve each thread after
addressing (or rejecting, with a reply) its finding.
Below quorum: 123 finding(s) raised by one model only (OMN-18479)
These are reported and NOT dropped, but they get no thread and do not block: a single model's finding no other model reproduced is not evidence enough to stop a merge. Read them; act on them if they are right.
-
[CRITICAL]
contracts/OMN-15330.yaml(correctness) — Unbound shell variables in contract checks cause silent failures | The contract files use shell variable expansion for PR numbers and repository names (e.g., ${PR_NUMBER}, ${REPO}) without defining th -
[CRITICAL]
contracts/OMN-15642.yaml(correctness) — Shell injection via unescaped variable in check_value | The check_value field contains the literal stringgh pr checks ${PR_NUMBER} --repo ${REPO}. If the contract validation engine executes this st -
[CRITICAL]
contracts/OMN-16322.yaml(correctness) — DoS via unbounded base64 decode in DoD check | The DoD check for OMN-16322 pipes the output ofgh api ... --jq .contentdirectly intobase64 -dwithout any size limit. Thegh apicommand returns -
[CRITICAL]
plan(correctness) — Unpinned GitHub Actions dependency | The diff does not contain any GitHub Actions workflow files. The dependency pinning rule applies touses:references in workflow files, which are absent from thi -
[MAJOR]
contracts/OMN-14953.yaml, contracts/OMN-14993.yaml, and all other contracts with occ-self-bind entries(correctness) — Self-referential PR_NUMBER in self-bind checks | The 'occ-self-bind-pr-*' dod_evidence entries use the template variable ${PR_NUMBER} in their check_value. In the context of a self-bind check, this va -
[MAJOR]
All contracts containing occ-self-bind-pr-* entries(correctness) — Self-bind check validates wrong PR when evaluated in product PR context | The self-bind checks are designed to verify that a companion OCC PR exists. However, they use ${PR_NUMBER} which, when the con -
[MAJOR]
contracts/OMN-15310.yaml(correctness) — Shell command injection risk in contract check values | The check_value fields contain shell commands that are executed in a CI environment. While the commands appear to use gh CLI, the use of shell i -
[MAJOR]
contracts/(correctness) — Missing schema validation for contract files | The 82 new and modified YAML contract files are added without any visible schema validation in the diff. If the contract schema (schema_version: "1.0.0") -
[MAJOR]
tests/ci/test_moved_ticket_contracts_cr0220_omn20074.py(correctness) — Test file only covers one contract, leaving 81 others untested | The PR adds a single test file (tests/ci/test_moved_ticket_contracts_cr0220_omn20074.py) that appears to test only the OMN-20074 contra -
[MAJOR]
contracts/OMN-15384.yaml(correctness) — grep -c 'class each' is not a valid Python class check | The DOD check in OMN-15384.yaml usesgrep -c 'class each'to verify the presence of a test class in test_flat_node_migration_shape_parity.py. -
[MAJOR]
contracts/OMN-15384.yaml(correctness) — Unpinned commit reference in DOD check | The DOD check in OMN-15384.yaml references a specific commit SHA80f4c0e17f91f4489ef705dab72ea89764a35c13in the GitHub API URL. While this is a full 40-char -
[MAJOR]
contracts/OMN-14060.yaml, contracts/OMN-15384.yaml(correctness) — DOD checks rely on external GitHub API without fallback | Multiple DOD checks usegh pr viewandgh apicommands that depend on the GitHub API and theghCLI being available and authenticated. I -
[MAJOR]
contracts/OMN-14060.yaml(correctness) — Case-sensitive grep against lowercase 'success' will fail on GitHub API output | The check_value for the AC4 falsifier and the attempt-1 stable check usesgrep -qx successto match the conclusion of -
[MAJOR]
contracts/OMN-14060.yaml(correctness) — Hardcoded commit SHA in check_value is a mutable reference | The check forocc-self-bind-pr-5629uses a hardcoded commit SHA4c6e8a2b2d285e0f54770ccf81fa4218489f69bain thegh apicommand to fet -
[MAJOR]
contracts/OMN-14060.yaml(correctness) — Missing validation that the pinned SHA in the workflow is actually the expected one | The checkgrep -qE 'merge-hold-gate-reusable[.]yml@[0-9a-f]{40}'verifies that the workflow file contains a 40-c -
[MAJOR]
contracts/OMN-15642.yaml(correctness) — Brittle grep -c check for test existence | The checkgrep -c 'def test_degraded_attach_readiness_does_not_degrade_gated_health_status'is used to verify the presence of a specific test function. `gr -
[MAJOR]
contracts/OMN-15807.yaml(correctness) — grep -c used as boolean gate returns non-zero on zero matches | The check_value for dod-OmniNode-ai-omnibase_infra-pr-2902 usesgrep -c 'class ModelBifrostLaneBackendBinding'. The-cflag prints a -
[MAJOR]
contracts/OMN-15741.yaml(correctness) — Pinned commit SHAs in evidence checks are not cryptographically verified | Multiple contracts pin evidence checks to specific commit SHAs (e.g., 11548f3, 3de828e -
[MAJOR]
contracts/OMN-15741.yaml(correctness) — Evidence checks lack error handling for API failures | Thecheck_valuecommands in multiple contracts usegh apiandgh pr viewwithout any error handling. If the GitHub API is rate-limited, the -
[MAJOR]
contracts/OMN-15837.yaml, contracts/OMN-15838.yaml, and similar contracts with templated commands(correctness) — Shell variable expansion in YAML command strings will not resolve | The evidence_requirements blocks use shell variable syntax (${PR_NUMBER}, ${REPO}) inside double-quoted YAML strings. If the consumi -
[MAJOR]
contracts/OMN-15837.yaml, contracts/OMN-15838.yaml, and similar contracts with hardcoded SHAs(correctness) — Hardcoded commit SHA in evidence check may become stale or invalid | The check_value in multiple contracts references a specific commit SHA (c6b51a8) to fetch a file f -
[MAJOR]
contracts/OMN-16171.yaml(correctness) — Unquoted YAML scalars with colons break parsing | In contracts/OMN-16171.yaml, the keys schema_version, ticket_id, and title are written without quotes. The values '1.0.0', 'OMN-16171', and 'Stop sour -
[MAJOR]
contracts/OMN-16056.yaml(correctness) — Commands in contracts execute arbitrary shell code | Thecheck_valuefields in the contract files contain shell commands that are executed by the CI system. For example, in OMN-16056.yaml, the comma -
[MAJOR]
tests/ci/test_moved_ticket_contracts_cr0220_omn20074.py(correctness) — Test file uses hardcoded PR numbers and repo names | The test filetests/ci/test_moved_ticket_contracts_cr0220_omn20074.pylikely contains hardcoded references to PR numbers and repo names. This mak -
[MAJOR]
contracts/OMN-14060.yaml(correctness) — Shell variable expansion inside YAML double-quoted scalar | The check_value for 'dod-infra-2818-new-handler' uses a YAML double-quoted scalar containing shell variables like $base_check and $head_body -
[MAJOR]
contracts/OMN-14060.yaml(correctness) — Shell script uses non-portable base64 -d flag | The check_value for 'dod-infra-2818-new-handler' uses 'base64 -d' to decode the GitHub API response. The '-d' flag is GNU coreutils syntax. On macOS (BS -
[MAJOR]
contracts/OMN-14060.yaml(correctness) — Shell script uses non-portable base64 -d flag in legacy-deleted check | The check_value for 'dod-infra-2818-legacy-deleted' does not use base64, but the 'dod-OmniNode-ai-omnibase_infra-pr-4581' check -
[MAJOR]
contracts/OMN-16322.yaml(correctness) — DoD check relies on hardcoded commit SHA | The DoD check for OMN-16322 uses a hardcoded commit SHA632b5350bd717b9d649ffe9dfd154ada05c93885to fetch the file content. This makes the check non-reprod -
[MAJOR]
contracts/(correctness) — Missing validation of YAML schema in new contracts | The PR adds 81 new YAML contract files. There is no evidence in the diff that these files are validated against a schema. If the YAML files contain -
[MAJOR]
tests/ci/test_moved_ticket_contracts_cr0220_omn20074.py(correctness) — Test file only covers one contract | The PR adds a test filetests/ci/test_moved_ticket_contracts_cr0220_omn20074.pythat appears to test only one specific contract (OMN-20074). Given that 81 new co -
[MAJOR]
contracts/OMN-14060.yaml(correctness) — grep -cFx pattern matches literal filename instead of glob | The check_value usesgrep -cFx '.github/workflows/application-acl-postgres16-proof.yml'. The -F flag treats the pattern as a fixed string -
[MAJOR]
contracts/OMN-14060.yaml(correctness) — Unpinned commit SHAs in gh api content checks | Multiple dod_evidence checks usegh api repos/.../contents/...?ref=<sha>where the SHA is a full 40-character commit. While full SHAs are compliant wi -
[MAJOR]
tests/ci/test_moved_ticket_contracts_cr0220_omn20074.py(correctness) — Test file only tests one contract, not the 81 added contracts | The PR adds 81 new contract YAML files but only includes one test file:tests/ci/test_moved_ticket_contracts_cr0220_omn20074.py. This -
[MAJOR]
contracts/OMN-16661.yaml, contracts/OMN-16769.yaml, and others(correctness) — grep -c returns exit code 1 on zero matches, breaking DoD validation | The DoD checks usegrep -c 'pattern'to verify the presence of a specific function or class in a remote file. Thegrep -ccom -
[MAJOR]
contracts/OMN-16661.yaml, contracts/OMN-16769.yaml(correctness) — Duplicate DoD checks within the same evidence entry | In several contract files (e.g., OMN-16661, OMN-16769), the samecheck_valuecommand is listed twice under the samedod_evidenceentry. This i -
[MAJOR]
contracts/OMN-16788.yaml(correctness) — evidence_artifact supersedes_dod_evidence may invalidate prior check | In OMN-16788.yaml, the checkdod-occ-evidence-admissibility-validatordeclares `evidence_artifact: "supersedes_dod_evidence:dod -
[MAJOR]
contracts/OMN-16788.yaml(correctness) — gh pr checks with ${PR_NUMBER} and ${REPO} may not be expanded | In OMN-16788.yaml, the evidence requirement usesgh pr checks ${PR_NUMBER} --repo ${REPO}. If these environment variables are not set -
[MAJOR]
contracts/OMN-14060.yaml(correctness) — Duplicate DoD check command in OMN-14060 | The 'dod-OmniNode-ai-omnibase_infra-pr-2957' evidence block contains two identical command checks that both grep for 'def _gap_shortfall' in the same file at -
[MAJOR]
contracts/OMN-14060.yaml, contracts/OMN-16926.yaml(correctness) — grep -c returns exit 1 on zero matches, breaking DoD gate | Multiple DoD checks use 'grep -c' to verify a symbol exists in a file. When the symbol is absent, grep -c prints '0' and exits with status 1 -
[MAJOR]
contracts/OMN-14060.yaml, contracts/OMN-16926.yaml(correctness) — DoD checks fetch arbitrary remote content without integrity verification | The 'gh api ... --jq .content | base64 -d' pattern downloads file content from a remote repository at a pinned ref and pipes -
[MAJOR]
contracts/OMN-16947.yaml, contracts/OMN-16961.yaml(correctness) — Unsubstituted shell variables in evidence commands | The evidence_requirements sections in multiple contracts (e.g., OMN-16947, OMN-16961) use shell variable syntax${PR_NUMBER}and${REPO}in com -
[MAJOR]
contracts/OMN-14060.yaml, contracts/OMN-17079.yaml, and other contract files with grep -c checks(correctness) — grep -c returns exit code 1 on zero matches, breaking command checks | The check_value commands usegrep -cto verify the presence of a symbol. When the target symbol is absent,grep -cprints '0' -
[MAJOR]
contracts/OMN-14060.yaml, contracts/OMN-17079.yaml, and other contract files with hardcoded SHAs(correctness) — Hardcoded commit SHAs in check_value commands are not verifiable at review time | Multiple contract files embed full 40-character commit SHAs ingh apicommands (e.g., `?ref=976add544c784450d63982d1 -
[MAJOR]
contracts/OMN-14060.yaml(correctness) — grep -ciE with multiple patterns is fragile and may match unintended files | The checkgrep -ciE 'nodes/|handlers/|runtime/|services/|docker|monitor_logs|deploy'in OMN-14060 uses a case-insensitive -
[MAJOR]
contracts/OMN-17135.yaml(correctness) — Truncated patch excerpts prevent verification of dod_evidence command syntax | The patch excerpt for contracts/OMN-17135.yaml is truncated atcheck_value: |-with no visible content. The same applie -
[MAJOR]
contracts/OMN-14060.yaml(correctness) — dod_evidence check_value uses shell variable expansion that may not be supported | In contracts/OMN-14060.yaml, thecommandfield underevidence_requirementsuses${PR_NUMBER}and${REPO}shel -
[MAJOR]
contracts/OMN-14060.yaml(correctness) — grep -c prints count to stdout, which may be interpreted as the check result | Whengrep -cis used in adod_evidencecommand check, it prints the match count to stdout. If the check framework cap -
[MAJOR]
contracts/OMN-17137.yaml(correctness) — grep -c exit code semantics break evidence verification | The check_value commands usegrep -cto verify the presence of specific symbols in source files.grep -cprints the count of matching line -
[MAJOR]
contracts/OMN-17137.yaml(correctness) — Unpinned commit SHAs in evidence checks allow tampering | The evidence checks reference specific commit SHAs (e.g.,ref=783633eb6fa5aa576bfe2554bb9cab166f36822c). While these are full 40-character S -
[MAJOR]
contracts/OMN-14060.yaml, contracts/OMN-17166.yaml, and all other contract files using ${PR_NUMBER}/${REPO}/${OMNI_HOME} in command fields(correctness) — Shell command injection via unquoted variable expansion in evidence commands | The evidence_requirements commands embed ${PR_NUMBER} and ${REPO} without quoting. If the invoking shell or CI runner exp -
[MAJOR]
contracts/OMN-14060.yaml, contracts/OMN-17166.yaml, and all contract files with piped gh api | base64 -d | grep -c patterns(correctness) — grep -c returns non-zero exit code when count is zero, breaking check semantics | The check_value commands use 'grep -c' to assert the presence of a symbol. grep -c prints the count and exits 0 when m -
[MAJOR]
contracts/OMN-14060.yaml(correctness) — grep -cFx with a single filename cannot distinguish 'file present' from 'file absent' in paginated output | The check 'gh api .../pulls/3031/files --paginate --jq '.[].filename' | grep -cFx 'tests/hel -
[MAJOR]
contracts/ directory, tests/ci/(correctness) — Contract files lack schema validation and are not machine-verifiable without external tooling | The 81 new YAML contract files are added without a corresponding JSON Schema, OpenAPI, or any validation -
[MAJOR]
contracts/OMN-17166.yaml(correctness) — dod_evidence check_value for test_passes omits the actual test command in OMN-17166 | In contracts/OMN-17166.yaml, the dod_evidence item 'dod-occ-diff-derived-behavior-proof-pr-4581' declares check_ty -
[MAJOR]
All contracts/*.yaml files containing gh api check_value commands(correctness) — gh api commands in contracts execute with ambient CI credentials, enabling information disclosure | The check_value commands invoke 'gh api' against public repository endpoints. In a CI environment, t -
[MAJOR]
contracts/OMN-17221.yaml(correctness) — grep -cFx with no match exits 1, breaking contract check | In OMN-17221.yaml the checkgh api ... | grep -cFx 'docs/runbooks/lab-prepush-host-table.md'usesgrep -cwhich prints the count and exit -
[MAJOR]
contracts/OMN-17277.yaml(correctness) — grep -cFx pattern in OMN-17277 has same exit-code ambiguity | The check `gh api repos/OmniNode-ai/omnibase_infra/pulls/3127/files --paginate --jq '.[].filename' | grep -cFx '.github/workflows/contract -
[MAJOR]
contracts/OMN-17221.yaml(correctness) — Unpinned commit SHA in gh api ref parameter | In OMN-17221.yaml the check `gh api repos/OmniNode-ai/omnibase_infra/contents/scripts/push_lanes/detect_foreign_prepush.py?ref=50d45a7f824acdbe7daeb8455cd -
[MAJOR]
contracts/OMN-17296.yaml(correctness) — Unsanitized variable interpolation in shell commands | The contract files embed shell commands that interpolate environment variables directly into command strings (e.g., `gh pr view ${PR_NUMBER} --re -
[MAJOR]
contracts/OMN-14060.yaml, contracts/OMN-17296.yaml(correctness) — Inconsistent variable usage across contract files | Some contract files use hardcoded repository names and PR numbers (e.g.,gh pr view 8000 --repo OmniNode-ai/onex_change_control), while others use -
[MAJOR]
contracts/OMN-14115.yaml, OMN-14953.yaml, OMN-14993.yaml, OMN-15330.yaml, OMN-15384.yaml, OMN-16418.yaml, OMN-16367.yaml(sonnet) — Evidence checks assert only that a PR or file exists, not behavior | Many generated dod_evidence checks aregh pr view ... --json number,stateor--json files. These exit 0 for any existing PR reg -
[MAJOR]
contracts/OMN-15358.yaml(sonnet) — Placeholder command shipped in evidence_requirements (OMN-15358) | Thetestsrequirement has the literal commanduv run pytest <hand-authored target> -q. In a shell,<is an input redirect, so t -
[MAJOR]
contracts/OMN-15741.yaml, OMN-15642.yaml, OMN-16788.yaml, OMN-16343.yaml, OMN-15484.yaml(sonnet) — Admissibility-validator item supersedes real PR evidence with a ticket-independent test | Many contracts adddod-occ-evidence-admissibility-validatorwith `evidence_artifact: supersedes_dod_evidence -
[MAJOR]
contracts/OMN-16293.yaml, contracts/OMN-16171.yaml(sonnet) — Cross-ticket and cross-repo evidence bound to the wrong contract | OMN-16293 binds PR #4581, whose proof target istest_catalog_service_modules_exist_omn17166.py. That file belongs to OMN-17166, whi -
[MAJOR]
contracts/OMN-17277.yaml, evidence_requirements[1](sonnet) — Placeholder pytest command is executable and shell-hostile | The evidence_requirements 'tests' command in OMN-17277 is the literal stringuv run pytest <hand-authored target> -q. If a gate runs it t -
[MAJOR]
contracts/OMN-17277.yaml, dod_evidence[1](sonnet) — Generic validator check supersedes the PR-specific check with no cwd | In OMN-17277,dod-occ-evidence-admissibility-validatorcarries `evidence_artifact: supersedes_dod_evidence:dod-OmniNode-ai-omni -
[MAJOR]
contracts/OMN-17152.yaml, contracts/OMN-17166.yaml, contracts/OMN-17277.yaml, contracts/OMN-14060.yaml(sonnet) — Self-bind and diff-scope checks pass on any existing PR | Several checks only prove that the referenced PR exists, not that it is merged, belongs to the ticket, or touches the claimed files. Examples: -
[MINOR]
contracts/OMN-15092.yaml(correctness) — Unquoted shell command with grep -cFx may misbehave on empty input | In OMN-15092, the check_value uses a pipeline: 'gh api ... | grep -cFx ...'. If the gh api command returns no files (empty output), -
[MINOR]
tests/ci/test_moved_ticket_contracts_cr0220_omn20074.py(correctness) — Test file covers only one contract pattern | The test file tests/ci/test_moved_ticket_contracts_cr0220_omn20074.py adds 117 lines of tests, but the PR adds 81 new contract files. The test likely cover -
[MINOR]
All contracts in this PR(correctness) — Inconsistent check_value templating across contract types | Some contracts use ${PR_NUMBER} and ${REPO} template variables (e.g., OMN-14953, OMN-14993), while others use literal values (e.g., OMN-1509 -
[MINOR]
contracts/OMN-15092.yaml(correctness) — grep -cFx returns count, not boolean, in pipeline context | The check 'grep -cFx pattern' outputs the number of matching lines. When used in a pipeline with 'gh api ... | grep -cFx ...', the exit code -
[MINOR]
contracts/(correctness) — Inconsistent contract structure across files | The contract files show inconsistent use of fields. Some files (e.g., OMN-15310.yaml) include evidence_requirements with kind: "ci" and kind: "tests", wh -
[MINOR]
contracts/OMN-15310.yaml(correctness) — Redundant API calls in contract checks | Some contract checks make multiple API calls that could be combined. For example, OMN-15310.yaml makes two separate gh api calls to check the same PR. This is -
[MINOR]
contracts/OMN-14060.yaml(correctness) — Missing schema_version in OMN-14060.yaml excerpt | The excerpt for OMN-14060.yaml starts with a comment line and does not show theschema_versionfield, unlike OMN-15384.yaml which explicitly includ -
[MINOR]
contracts/OMN-14060.yaml, contracts/OMN-15384.yaml(correctness) — Inconsistent DOD evidence structure across contracts | The DOD evidence structure varies between contracts. Some useevidence_artifactwithsupersedes_dod_evidence, others use directchecks. Thi -
[MINOR]
contracts/OMN-14060.yaml(correctness) — DoD evidence is not idempotent due to ephemeral API state | Thedod-OmniNode-ai-omnibase-infra-pr-2570check relies on the default behavior of the GitHub Jobs API, which returns the most recent atte -
[MINOR]
tests/ci/test_moved_ticket_contracts_cr0220_omn20074.py(correctness) — No test coverage for the contract validation logic | The PR adds 81 contract files and one test file. The test filetests/ci/test_moved_ticket_contracts_cr0220_omn20074.pyis 117 lines, but the diff -
[MINOR]
contracts/OMN-15642.yaml(correctness) — Inconsistent source and status fields in dod_evidence | Incontracts/OMN-15642.yaml, somedod_evidenceentries havesource: "generated"and nostatusfield, while others have `source: "manual" -
[MINOR]
tests/ci/test_moved_ticket_contracts_cr0220_omn20074.py(correctness) — Test file covers only one contract; no regression tests for the other 81 | The PR adds 82 files, but only one test file is included:tests/ci/test_moved_ticket_contracts_cr0220_omn20074.py. This tes -
[MINOR]
contracts/(correctness) — Inconsistent evidence check patterns across contracts | The contracts use a mix ofgh pr view,gh api, andgrep-based checks, with no consistent pattern. Some checks verify the existence of a PR -
[MINOR]
tests/ci/test_moved_ticket_contracts_cr0220_omn20074.py(correctness) — Test file only covers one contract, leaving 81 others untested | The PR adds 82 contract files but only includes a test for OMN-20074. The test file tests/ci/test_moved_ticket_contracts_cr0220_omn2007 -
[MINOR]
contracts/OMN-15837.yaml, contracts/OMN-15838.yaml, and similar contracts(correctness) — Duplicate evidence blocks across multiple contracts suggest copy-paste without adaptation | The evidence blocks in OMN-15837 and OMN-15838 are nearly identical, differing only in the ticket ID in the -
[MINOR]
contracts/OMN-15837.yaml, contracts/OMN-15838.yaml, and similar contracts(correctness) — grep -c returns a count, not a boolean, which may not match the check's intent | The check_value uses grep -c to count occurrences of a function definition. The check likely intends to verify the func -
[MINOR]
contracts/OMN-16056.yaml(correctness) — Missing error handling for gh api failures | The commands in the contract files usegh apito fetch file contents. If the API call fails (e.g., due to network issues, rate limiting, or a missing fil -
[MINOR]
contracts/OMN-14060.yaml(correctness) — Shell script in YAML check_value is not sanitized | The check_value fields contain shell scripts that are executed by the CI system. If the YAML file is compromised, an attacker could inject malicious -
[MINOR]
tests/ci/test_moved_ticket_contracts_cr0220_omn20074.py(correctness) — Test file added but no corresponding contract for the test | The PR adds a test file 'tests/ci/test_moved_ticket_contracts_cr0220_omn20074.py' but does not add a corresponding contract file for the te -
[MINOR]
contracts/(correctness) — Inconsistent DoD check types across contracts | The DoD checks in the new contracts use a mix ofcommandandmanualcheck types. Themanualcheck type is not verifiable by CI, which undermines t -
[MINOR]
contracts/OMN-16343.yaml(correctness) — Contract OMN-16343 references three repos but only one is in the infra repo | The contract OMN-16343 is located in the omnibase_infra repository but its evidence requirements and dod_evidence referenc -
[MINOR]
tests/ci/test_moved_ticket_contracts_cr0220_omn20074.py(correctness) — Test file test_moved_ticket_contracts_cr0220_omn20074.py is not shown in patch excerpt | The PR adds a test file tests/ci/test_moved_ticket_contracts_cr0220_omn20074.py (+117 lines) but the patch exce -
[MINOR]
contracts/(correctness) — 82 new contract files added in a single PR with no visible validation | The PR adds 81 new YAML contract files and modifies one existing contract (OMN-20074.yaml). There is no visible CI check in the -
[MINOR]
contracts/OMN-14060.yaml(correctness) — Missing error handling for gh api failures | The dod_evidence checks usegh apicommands without error handling. If the GitHub API is unavailable, the PR is deleted, or the commit is garbage-collect -
[MINOR]
contracts/OMN-14060.yaml(correctness) — Contract files reference external PRs without versioning | The contract files reference specific PR numbers (e.g., PR #3121, #3754, #3755) and commit SHAs. If these PRs are closed, merged, or the comm -
[MINOR]
contracts/OMN-14060.yaml, contracts/OMN-16661.yaml, and others(correctness) — Unpinned commit SHAs in DoD checks | The DoD checks reference specific commit SHAs (e.g.,ref=872ae88402d8d1e7c15c719e21ba1f8fd9439553). These are full 40-character SHAs, which is the required secur -
[MINOR]
contracts/OMN-14060.yaml(correctness) — Truncated hunk in OMN-14060.yaml | The patch excerpt for OMN-14060.yaml begins mid-file atsource: "generated"without theschema_version,ticket_id, ortitlefields. The hunk header shows `@@ -
[MINOR]
contracts/OMN-14060.yaml(correctness) — Test file references specific test paths that may not exist | In OMN-14060.yaml, thedod-occ-diff-derived-behavior-proofcheck runs `uv run pytest tests/unit/contracts/test_protocol_ownership.py tes -
[MINOR]
contracts/OMN-16788.yaml(correctness) — Multiple self-bind PRs for a single ticket | OMN-16788.yaml binds to three OCC companion PRs: #7322, #7330, and #7341. Each is checked with `gh pr view --repo OmniNode-ai/onex_change_control --jso -
[MINOR]
contracts/OMN-20074.yaml(correctness) — OMN-20074.yaml is modified, not added | File 73 in the list iscontracts/OMN-20074.yaml (modified, +17/-0). The patch excerpt for this file is not shown in the provided diff. The change adds 17 line -
[MINOR]
tests/ci/test_moved_ticket_contracts_cr0220_omn20074.py(correctness) — Test file for moved ticket contracts may have brittle assertions | The test filetests/ci/test_moved_ticket_contracts_cr0220_omn20074.py(117 lines) is added. Without the patch excerpt, the test log -
[MINOR]
contracts/OMN-14060.yaml(correctness) — OMN-14060 missing schema_version and ticket_id fields | The OMN-14060.yaml excerpt begins mid-document with a comment line and lacks the 'schema_version' and 'ticket_id' fields that are present in OMN -
[MINOR]
tests/ci/test_moved_ticket_contracts_cr0220_omn20074.py(correctness) — Test file for moved ticket contracts not shown in patch excerpt | The test file tests/ci/test_moved_ticket_contracts_cr0220_omn20074.py is listed as added (+117/-0) but no patch excerpt is provided in -
[MINOR]
plan(correctness) — 80 of 82 contract files have no patch excerpt in this chunk | Only two of the 82 changed files (OMN-14060 and OMN-16926) have patch excerpts in this review chunk. The remaining 80 files, including the -
[MINOR]
contracts/OMN-16947.yaml, contracts/OMN-16961.yaml(correctness) — Missing error handling for command execution | The contracts define commands to be executed (e.g.,gh pr view,uv run pytest), but there is no specification of how failures are handled. If a comma -
[MINOR]
contracts/OMN-16947.yaml(correctness) — Test file paths may not exist in target repo | Thedod-occ-diff-derived-behavior-proofcheck in OMN-16947 runs pytest on specific test files (e.g., `tests/unit/observability/runner_health/test_runne -
[MINOR]
contracts/OMN-14060.yaml, contracts/OMN-17079.yaml, and other contract files with occ-self-bind checks(correctness) — Contract files lack a mechanism to validate the OCC companion PR state | Theocc-self-bind-pr-*checks usegh pr view <number> --json number,stateto verify the existence and state of an OCC compa -
[MINOR]
contracts/OMN-14060.yaml, contracts/OMN-17079.yaml, and other contract files with test_passes checks(correctness) — Test paths in check_value may not exist in the target repository | Thedod-occ-diff-derived-behavior-proofchecks reference test files such as `tests/unit/nodes/node_evidence_autoclose_sweep_effect/ -
[MINOR]
contracts/OMN-17079.yaml and other contract files(correctness) — Contract files are generated but lack a schema validation step | The contract files are marked assource: "generated"but there is no evidence of a schema validation step that ensures the YAML struc -
[MINOR]
tests/ci/test_moved_ticket_contracts_cr0220_omn20074.py(correctness) — Test file test_moved_ticket_contracts_cr0220_omn20074.py is not reviewed in this chunk | The test filetests/ci/test_moved_ticket_contracts_cr0220_omn20074.pyis listed as a changed file but its pat -
[MINOR]
contracts/OMN-14060.yaml(correctness) — gh api commands in dod_evidence may leak repository content to logs | Thegh api ... --jq '.content' | base64 -d | grep -cpattern downloads and decodes file content from the repository. If the chec -
[MINOR]
contracts/(correctness) — 82 contract files added with no visible schema validation or CI check for YAML validity | The PR adds 81 new YAML contract files and modifies 1 existing one. There is no visible test or CI check that -
[MINOR]
contracts/OMN-17137.yaml(correctness) — Missing error handling for gh api failures | The evidence checks usegh apito fetch file contents. If the API call fails (e.g., due to network issues, rate limiting, or authentication errors), the -
[MINOR]
All contracts/*.yaml files(correctness) — No idempotency or re-execution semantics defined for dod_evidence checks | The contracts define check commands but do not specify what happens when a check is re-executed. The gh api commands are stat -
[MINOR]
tests/ci/(correctness) — Test file covers only one ticket out of 82 changed files | tests/ci/test_moved_ticket_contracts_cr0220_omn20074.py is the sole test file in the diff, and it is scoped to OMN-20074. The remaining 81 co -
[MINOR]
All contracts/*.yaml files with gh api ...?ref=<sha> patterns(correctness) — Commit SHA pinning in gh api refs is correct but fragile against repository force-push | The gh api content queries use full 40-character commit SHAs (e.g., 1fc3dad, c -
[MINOR]
contracts/OMN-17277.yaml(correctness) — OMN-17277 declares a test requirement with a placeholder command | Theevidence_requirementssection of OMN-17277.yaml includes akind: testsentry whosecommandis the literal string `uv run py -
[MINOR]
tests/ci/test_moved_ticket_contracts_cr0220_omn20074.py(correctness) — 80 of 82 files are new contract YAMLs with no visible validation | The PR adds 80 new contract YAML files and modifies one existing file (OMN-20074.yaml). The only test file added is `tests/ci/test_mo -
[MINOR]
contracts/OMN-17296.yaml(correctness) — Missing validation for variable substitution | The templated contracts rely on variables like${PR_NUMBER}and${REPO}being set in the execution environment. There is no visible mechanism in the -
[MINOR]
tests/ci/test_moved_ticket_contracts_cr0220_omn20074.py(correctness) — Test file name suggests specific scope but content is not fully visible | The test filetests/ci/test_moved_ticket_contracts_cr0220_omn20074.pyis added, but the patch excerpt is truncated. The name -
[MINOR]
contracts/OMN-16418.yaml, OMN-16420.yaml, OMN-16661.yaml, OMN-16769.yaml, OMN-16821.yaml, OMN-15642.yaml(sonnet) — Deploy-assessment gate satisfied by unrelated grep, with duplicated checks |dod-deploy-assessmentis described as clearing the deploy-gate (F-05). It is implemented as a grep for a function or clas -
[MINOR]
contracts/OMN-16293.yaml(sonnet) — Claimed assertion not enforced by the command (OMN-16293 scope check) | Thedod-infra-2818-scopedescription says it 'confirms the exact 35-file change set'. The command only prints `[.files[].path] -
[MINOR]
contracts/OMN-15484.yaml, contracts/OMN-16322.yaml(sonnet) — Mutable live-PR state used as durable evidence | Several checks read live GitHub state that changes over time:statusCheckRollupfiltered by name withgrep -qx SUCCESS,gh pr checks, and an unpi -
[MINOR]
contracts/OMN-16343.yaml(sonnet) — Evidence probe asserts presence of a tag-pinned action (OMN-16343) | The omnibase_core PR #1577 check counts occurrences ofcreate-github-app-token@v1in release.yml. This treats a tag-referenced ac -
[MINOR]
contracts/OMN-17166.yaml, evidence_requirements[1] and dod_evidence[3](sonnet) — Evidence item id does not match the id named in the description | In OMN-17166, the evidence_requirements description says the proof is 'Bound as dod_evidence item `dod-occ-diff-derived-behavior-proof -
[MINOR]
contracts/OMN-17152.yaml, contracts/OMN-17166.yaml, contracts/OMN-17221.yaml, contracts/OMN-14060.yaml(sonnet) — String-presence grep on pinned blob is weak behavior evidence | Several 'Evidence-Source autobind' checks fetch a file at a commit andgrep -cfor a class or def name, for example 'class ProcessInfo
Findings demoted from threads (anchor rejected)
-
[MAJOR] hostile-reviewer (correctness)
CI evidence checks use unbound variables, making them non-falsifiable | In contracts/OMN-16343.yaml, the evidence_requirements entries for CI checks use shell variables ${PR_NUMBER} and ${REPO} that are never defined or bound in the contract. The description text references specific PR numbers (2831, 433, 1577) and repos, but the command template does not substitute them. When executed, these commands will either fail with an undefined variable or, if the shell treats them as empty, produce a meaningless in
Resolve this thread when addressed — the
Hostile Review Thread Gateblocks while hostile-reviewer threads are unresolved (OMN-17492). -
[MAJOR] hostile-reviewer (correctness)
dod_evidence check for PR #2831 only verifies existence, not state | In contracts/OMN-16343.yaml, the dod-OmniNode-ai-omnibase_infra-pr-2831 entry checks
gh pr view 2831 --repo OmniNode-ai/omnibase_infra --json number,stateandgh pr view 2831 --repo OmniNode-ai/omnibase_infra --json files. The first command outputs the state but does not assert that the state is 'merged' or 'open'. The second command lists files but does not verify that the expected files are present. Neither check is falsifiable in thResolve this thread when addressed — the
Hostile Review Thread Gateblocks while hostile-reviewer threads are unresolved (OMN-17492). -
[MAJOR] hostile-reviewer (sonnet)
Ambiguous ${PR_NUMBER}/${REPO} placeholders on multi-PR contracts | OMN-16343 declares three evidence_requirements, each with the identical command
gh pr checks ${PR_NUMBER} --repo ${REPO}. Their descriptions refer to different PRs in different repos (#2831, #433, #1577). Substitution gives the commands no way to know which PR each one targets. The same placeholder pattern recurs on other contracts that bind several PRs, for example OMN-16367 and OMN-15642, which carry onecirequirement but many dod_evResolve this thread when addressed — the
Hostile Review Thread Gateblocks while hostile-reviewer threads are unresolved (OMN-17492). -
[MINOR] hostile-reviewer (correctness)
dod_evidence check_value for test_passes uses relative paths that depend on cwd | The
test_passescheck in contracts/OMN-14060.yaml usesuv run pytest tests/ci/test_bus_command_dto_no_literal_secret_omn17106.py ...withcwd: "${OMNI_HOME}/omnibase_infra". Thecwdfield uses a shell variable${OMNI_HOME}. If the check framework does not expand this variable, the cwd will be the literal string${OMNI_HOME}/omnibase_infra, which does not exist, and the test command will fail. This is the same variaResolve this thread when addressed — the
Hostile Review Thread Gateblocks while hostile-reviewer threads are unresolved (OMN-17492). -
[MINOR] hostile-reviewer (correctness)
OMN-14060.yaml excerpt is a fragment without schema context | The patch excerpt for OMN-14060.yaml shows only two lines: a
check_valueand acwd. The full file is 59 lines but the excerpt is truncated. Without theschema_version,ticket_id, anddod_evidencestructure, it is not possible to verify that this fragment is well-formed YAML or that thecheck_valueis attached to a validcheck_type. Thecheck_valuereferences a test file `tests/unit/infra/test_catalog_service_modules_exist_omn17166Resolve this thread when addressed — the
Hostile Review Thread Gateblocks while hostile-reviewer threads are unresolved (OMN-17492). -
[MINOR] hostile-reviewer (sonnet)
OMN-14060 contract carries evidence bound to OMN-17137 | contracts/OMN-14060.yaml includes self-bind items described as 'self-bind for OMN-17137'. It also runs pytest targets named for OMN-16422 and OMN-17137, and a separate contracts/OMN-17137.yaml is added in the same PR. Evidence for one ticket appears under another ticket's contract, which breaks the one-ticket-one-contract binding. This may be intended for moved tickets, but nothing in the visible diff documents it. Duplicate bindings can let one PR's
Resolve this thread when addressed — the
Hostile Review Thread Gateblocks while hostile-reviewer threads are unresolved (OMN-17492).
✅ Hostile Reviewer — REVIEWEDCritical findings: 4
Semantics (OMN-17492 — the model finds, thread resolution gates)
Powered by omniintelligence.review_pairing.cli_review — multi-model adversarial review; voters from the private CI overlay (OMN-8468/OMN-17492/OMN-20910/OMN-20923) |
Merges origin/dev at ef393dd into PR head e699aa0 of omnibase_infra#5178 because the PR was DIRTY (merge conflict). The only conflict was an add/add in contracts/OMN-18896.yaml: dev added the autobind contract via #5262 (moving contracts from onex_change_control). Resolution keeps the PR's version of the contract (requirements AC1-AC5 and its six dod_evidence items) and appends dev's three dod_evidence items (dod-OmniNode-ai-omnibase_infra-pr-4087, dod-occ-diff-derived-behavior-proof, occ-self-bind-pr-11153) and its two evidence_requirements, union by id. No product code changed. Release identity check passes (pyproject 0.38.76, no src change).
What moved and why
Moved 80 ticket contracts into
contracts/from the change-control repository at source commit 49cfc14c21a2c50f9964c1aeed4b66001ce279a3. The scheduled closer's contract resolver readscontracts/<id>.yamlfrom this repository's default branch.Count and source
The manifest had 84 ids; 1 was skipped and 3 removed, for a net of 80 moved.
Format rule
The only edit is yamlfmt output (pre-commit yamlfmt hook at pinned rev v0.17.2); the second run exited 0.
Equality proof
For all moved ids,
yaml.safe_loadof the change-control blob equalsyaml.safe_loadof the file, andticket_idequals theid:. Before removals: 83 equal, 0 bad; the 80 kept are a subset.Test runs
tests/ci/test_moved_ticket_contracts_cr0220_omn20074.pywas red at origin/dev contracts: 83 failed, 1 passed (run with the 83-id tuple before the removals).Hooks and tests
hook-preflightover the 82 staged files: ok (round 1). Tests run:test_contract_binds_ac_labels_omn20074,test_contract_validation_core_validator_omn20074,test_contract_dod_evidence_id_length_omn17427,test_contract_validation_pinned_validator_omn14186, and the new test: 97 passed.Removed ids
The public-repo-hygiene hook refuses them on added lines. 1 skipped:
contracts/OMN-17991.yamlalready exists on dev.contracts/OMN-20074.yamlgains requirementreq-moved-contracts-cr0220, acceptanceAC15, oneevidence_requirementsentry, anddod_evidencedod-moved-contracts-cr0220.Closes OMN-20074