Repository navigation
ci(OMN-15241): wire reject-required-check-skip-vector pre-commit hook in omnidash - #273
Conversation
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 52 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the 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 configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
…idash#273 (#5175) * evidence(OMN-15241): author OCC companion for OmniNode-ai/omnidash#273 OCC companion by node_pr_lifecycle_fix_effect (OMN-13317 F1 / OMN-13990 / OMN-14285). Product PR head d461b57c6cbaddf5f3e05c67c7a8bfc2ec976ad5. * evidence(OMN-15241): self-bind OCC#5175 + rebind contract_sha256 --------- Co-authored-by: omnimarket-bot <bot@omninode.ai>
What
Wires the OMN-14854 Required-Check Skip-Vector Guard as a local pre-commit hook in
omnidash.Two files:
.pre-commit-hooks/reject-required-check-skip-vector.sh(new) and the hook entry in.pre-commit-config.yaml.omnidashalready calls the guard in CI via.github/workflows/required-check-skip-guard-caller.ymlbut had no local hook, so a skip-vector violation committed with every local hook GREEN and was
caught CI-only — detection without local enforcement, the class root CLAUDE.md Rule #5 exists to kill.
How — DRY, not a re-implementation
The wrapper follows the
omnibase_infrafan-out pattern (OMN-14865), not theomnibase_corevendoring pattern: it executes the same
validate_no_required_check_skip_vectors.pythat the CIreusable workflow executes, resolved from
$OMNI_HOME/omniclaude. No validator logic is copied, solocal and CI verdicts cannot diverge on logic. Zero new detection surface, zero allowlist, no
skip-token.
Fail-loud (Rule #8 and the fail-loud pre-commit meta-gate): unset
OMNI_HOME, a missing validator, orno PyYAML-capable interpreter each exit 1 with remediation. There is no
exit 0degrade pathanywhere in the script.
One deliberate improvement over the
omnibase_infracopy: interpreter resolution is$PYTHON_BIN-> apython3that can actuallyimport yaml->uv run --no-project --with pyyaml python-> hard error. A barepython3on PATH is not guaranteed to have PyYAML (a uv-managed shimcommonly does not — reproduced on
.200this session), and a gate that hard-errors on everyworkflow-touching commit for a missing third-party import is a gate developers rip out.
Proof — seeded RED then clean GREEN (local,
.200)Seeded an OMN-15057 vector-5 violation (
needs:with noif:that provably runs regardless of theneeds result) into the required context
call-reject-skip-token / scan / reject-skip-gate-token— jobcall-reject-skip-tokenincall-reject-skip.yml— then ranthe hook through the pre-commit framework against this repo's real config:
Seed reverted, same command on the clean tree:
The commit-refusal path was additionally proven end-to-end in
omnibase_compat: with the seed staged,git commitran the full hook set, this hook reportedFailed, andHEADstayed at the base commit —the commit was refused, not merely warned about.
Baseline check before wiring: the canonical validator was run against all five target repos' current
devand returnedPASS: no required-check skip vectors foundin every one, so this hook lands GREENand blocks nothing that exists today.
Audit re-verification (ticket wording corrected)
OMN-15241 describes the five repos as carrying "the required guard". Re-probed live 2026-07-27 —
that is true for the caller workflow, not for the required status check:
modedevomnidash's own row ismode: ADVISORY. This does not weaken the hook: the validator iterates everymode: REQUIREDrow in.github/required-checks.yaml, and each of these repos has many otherREQUIRED contexts (the seeded RED above fired on one of them). It does mean the guard's own context
becomes load-bearing here only when the ADVISORY->REQUIRED branch-protection flip lands.
Scope / risk
Source-only. No lane mutation, no runtime touch, no branch-protection change, no merge.
proof_class: code-only+ local receipt-bound RED/GREEN.Gates were run on
.200(stickybeatz-studio) per CLAUDE.md rule 11a, remote-only mode: everymutation in this branch was made over
ssh, never with a localEdit/Write, so there is noedit-locality mismatch. Commit ran the repo's real pre-commit hook set; push originated on
.200.Evidence-Ticket: OMN-15241
Evidence-Source: OCC#5175