Repository navigation
ci(OMN-20073): add repo-owned evidence caller for omniclaude, start S5 shadow count - #2588
Conversation
…5 shadow count Ticket OMN-20073 (OCC retirement OR.5, epic OMN-20068). The omnimarket canary cut over in omnimarket#3398; omnibase_core#1900 started its S5 shadow count with the same caller. Adds .github/workflows/call-repo-evidence-gate.yml, copied from omnimarket's caller shape: trigger pull_request_target on dev and main (types opened, synchronize, reopened, edited, ready_for_review), permissions contents read and pull-requests read, one job repo-evidence calling OmniNode-ai/omnibase_core/.github/workflows/receipt-gate.yml pinned at full sha 39ad8e5c88f607aed6a035a3241c96ed36d547a0 (omnibase_core#1886), evidence-source caller, verifier-version 0.4.294, compare-with-occ "true". compare-with-occ "true" is the S5 shadow: each run records the new-path verdict beside OCC's occ-preflight / eligibility verdict on the same head. The context repo-evidence / dod-verify is not required; no OCC context is removed. Adds contracts/OMN-20073.yaml with acceptance criteria AC1, AC2 and AC3, each bound by binds_ac to a test_passes item. Adds tests/ci/test_repo_evidence_caller_workflow.py with 3 tests: caller workflow shape, compare-with-occ for the S5 shadow count, and every repo contract binds every criterion.
…ary's sweep stays green The caller passes shadow "true" to the receipt-gate reusable (omnibase_core#1901), so repo-evidence / verify and repo-evidence / dod-verify conclude success and record their verdict as data; no EXTERNAL_SWEEP_EXCLUSIONS entry is added. Adds AC4 and four evaluate_external_sweep tests. The pin is the head of omnibase_core#1901 until it merges.
Bump the reusable receipt-gate.yml in .github/workflows/call-repo-evidence-gate.yml for omniclaude. Pin moves from 6d791925396535b44a5e72de2c3d4718a9ca72ed (pre-merge head of omnibase_core#1901) to 033db282217c224f8063b94966a7f3fdd26b7894 (squash commit of omnibase_core#1901 on dev, adds the shadow input). The PLACEHOLDER pin comment is removed. Caller stays shadow "true" and compare-with-occ "true". Repo-evidence caller test and receipt-gate pin test pass.
|
omnibase_core#1901 merged on dev as 033db282217c224f8063b94966a7f3fdd26b7894. This pull request now pins the reusable receipt-gate.yml to that commit; the PLACEHOLDER pin comment is gone. The "draft" and "PLACEHOLDER pin" statements in the PR description are out of date; the PR is now ready for review. The caller stays in shadow mode (shadow "true", compare-with-occ "true"); no required context changes. |
) * evidence(OMN-20073): author OCC companion for OmniNode-ai/omniclaude#2588 OCC companion by node_pr_lifecycle_fix_effect (OMN-13317 F1 / OMN-13990 / OMN-14285). Product PR head 8f6da66a850c96090778c6678dc4347ff3806aa2. * evidence(OMN-20073): self-bind OCC#13219 + rebind contract_sha256 --------- Co-authored-by: omnimarket-bot <bot@omninode.ai>
✅ Hostile Reviewer — PASSEDBlocking findings (critical/error): 0 Findings
Gate semantics (pilot phase)
Powered by omniintelligence.review_pairing.cli_review — node-based adversarial review via HandlerLlmCliSubprocess (OMN-8524) |
|
OCC autobind rebound this PR's evidence-source stamp line to The receipt gate's own eligibility validator, run against the change-control tree the gate pins for Reported by |
… so OCC main's validator accepts the contract Commit 23acb93 bumped the validate-contract pin to ce43a1c4f95e, causing a checkout failure at github.action_ref v4 in job 113026435139. This restores dev pin 47342e562a51. The onex_change_control validator rejects binds_ac on dod_evidence as extra_forbidden. contracts/OMN-20073.yaml drops the four binds_ac keys. Tests now check only contracts declaring binds_ac, matching the omnibase_infra shape. 8 focused tests pass and validate-yaml confirms the new contract is OK while the previous one is invalid.
|
Lab: host=h202 lane=occ-driver-2330 head=58f9a7db5b1305c4660c7f51ae08979ffaaab287 command="uv run pytest tests/ci/test_repo_evidence_caller_workflow.py -q" observed="8 passed"; command="uv run validate-yaml contracts/OMN-20073.yaml" from onex_change_control main a89a6f30fa observed="[OK] ... (ticket_contract)", and the same validator on the previous revision (23acb93) observed "dod_evidence.0.binds_ac: Extra inputs are not permitted [extra_forbidden]". ruff check, ruff format --check and mypy on the test file passed; pre-commit passed on commit and push. Not runtime-affecting, no compose-dev lab pass applies. |
Summary
Pull request omniclaude#2588 addresses ticket OMN-20073 (OCC retirement OR.5, epic OMN-20068). This PR adds a repo-owned evidence caller for omniclaude and initiates the S5 shadow count. The omnimarket canary cut over (omnimarket#3398 merged), and omnibase_core#1900 starts the same S5 shadow count there.
What changes
.github/workflows/call-repo-evidence-gate.ymlnow passesshadow"true" besidecompare-with-occ"true",evidence-sourcecaller, andverifier-version0.4.294. The comment explains the shadow shape.contracts/OMN-20073.yamlhas four acceptance criteria (AC1-AC4) and four evidence requirements, each backed by atest_passesitem. Its dod_evidence items carry nobinds_ac, because the validator thatcontract-validationruns (onex_change_control main, through the dev pin 47342e562a51) refuses that key as extra_forbidden. The binding test checks only contracts that declarebinds_ac, the shape omnibase_infra merged for this ticket.tests/ci/test_repo_evidence_caller_workflow.pygains 4 sweep tests and a test proving the binding check still fails on a contract that declares binds_ac with a missing criterion or a missing test file (8 tests in the file).shadow(default "false") to.github/workflows/receipt-gate.yml. With evidence-source caller and shadow "true",verifyruns as a reported no-op (success, not skipped), everydod-verifystep except Summarise has step-level continue-on-error, steps after a refused same-repository check or ticket resolution are gated so a fork head is never checked out, and Summarise writes one line "Shadow verdict: head= new_path=<verified|refused|exempt> refused_step=<step id|none> occ_difference=<outcome/reason_code|not_compared/unavailable|not_run>" to the job summary and a notice annotation. The existing "OCC difference:" summary line is unchanged.Why shadow mode and not a sweep exclusion
Earlier state of this PR: its caller would make omniclaude's CI Summary L5 default-deny sweep (
scripts/ci/ci_summary_gate.py,SWEEP_GOOD_CONCLUSIONS = {"success"}) go red on every pull request, because repo-evidence / verify concluded skipped and repo-evidence / dod-verify concludes failure on any refusal. A first draft asked for twoEXTERNAL_SWEEP_EXCLUSIONSentries. The orchestrator ruled that out as allowlist widening and set the shape: in shadow mode no repo-evidence job may produce a non-success check-run; each job records its verdict as data and concludes success.What does not change
EXTERNAL_SWEEP_EXCLUSIONSentry.receipt-gate.ymlis not edited in this repository..github/workflows/contract-validation.ymlis identical to dev. A bump of its validate-contract pin to ce43a1c4f95e was reverted: that action checks out its validators at github.action_ref, which resolved to v4 inside the composite, and the checkout failed.Verification
uv run pytest tests/ci/test_repo_evidence_caller_workflow.py: 8 passed.evaluate_external_sweep, withexclusions={}andconditional_exclusions={}): rows repo-evidence / verify success and repo-evidence / dod-verify success give no failure and both names are in the swept list; a dod-verify success row carrying a planted OCC disagreement (occ_difference=unclassified_difference/nonein its output) gives no failure; rows verify skipped and dod-verify failure still give two failures; neither name is inEXTERNAL_SWEEP_EXCLUSIONSorCONDITIONAL_SWEEP_EXCLUSIONS. The recording of a planted disagreement by the reusable is tested in omnibase_core#1901 (test_a_planted_disagreement_is_recorded_and_the_job_still_passes).uv run validate-yaml contracts/OMN-20073.yamlfrom onex_change_control main reports OK; the previous revision with binds_ac reports extra_forbidden.Status
pull_request_targetreads the base branch.Evidence-Ticket: OMN-20073
Evidence-Source: OCC#13230