feat(gates): commit-bound construction contracts — self-hosting law (#2613) #2614

Open
conductor wants to merge 1 commits from fix/2613-self-hosting-gate into master
pull from: fix/2613-self-hosting-gate
Owner

Closes #2613

Contract: ADMIT-wave-self-hosting-gate
approval_ref: user:nick-self-hosting-law-2026-10-25
Commit: 61c5f5848c

What changed

  • Bind staged mutations to ADMIT-, BUILDER-, or contract: references in the commit message.
  • Require every named contract to be OPEN and cover the staged paths through the union of named scopes only.
  • Refuse missing, unknown, closed, and uncovered references; an unrelated open contract cannot launder coverage.
  • Keep sweep-race and blob checks in pre-commit; enforce message binding in commit-msg, where Git has the message.
  • Document Need -> contract -> scope -> independent verification -> earned closure in docs/SCAFFOLDING.md.

Red to green evidence

  • RED before implementation: the unrelated-open-contract and missing-reference regressions returned 0; named closed and unknown cases did not report the named id or reason.
  • GREEN: python3 -m pytest -q tests/test_check_landing.py tests/test_adversarial_escape_highs.py -k "not pathless and not remediation" -> 26 passed, 4 deselected in 4.68s.
  • The four deselected pathless/remediation cases are unrelated and failed on the untouched code before implementation.
  • ruff check scripts/check_landing.py scripts/admit_wave_self_hosting_gate.py tests/test_adversarial_escape_highs.py -> All checks passed.
  • henxels check -> all henxels hold.
  • Own commit ran both hooks GREEN with Contract: ADMIT-wave-self-hosting-gate.
  • Repository-wide lint_ratchet.py remains at its pre-existing baseline failure: BLE001 145/47 and S110 203/31; this diff adds no silent handlers.

Discharge: #2613 -> tests/test_adversarial_escape_highs.py

Closes #2613 Contract: ADMIT-wave-self-hosting-gate approval_ref: user:nick-self-hosting-law-2026-10-25 Commit: 61c5f5848c235f0d05e6e0191ec9bd13f85275f8 ## What changed - Bind staged mutations to ADMIT-, BUILDER-, or contract: references in the commit message. - Require every named contract to be OPEN and cover the staged paths through the union of named scopes only. - Refuse missing, unknown, closed, and uncovered references; an unrelated open contract cannot launder coverage. - Keep sweep-race and blob checks in pre-commit; enforce message binding in commit-msg, where Git has the message. - Document Need -> contract -> scope -> independent verification -> earned closure in docs/SCAFFOLDING.md. ## Red to green evidence - RED before implementation: the unrelated-open-contract and missing-reference regressions returned 0; named closed and unknown cases did not report the named id or reason. - GREEN: python3 -m pytest -q tests/test_check_landing.py tests/test_adversarial_escape_highs.py -k "not pathless and not remediation" -> 26 passed, 4 deselected in 4.68s. - The four deselected pathless/remediation cases are unrelated and failed on the untouched code before implementation. - ruff check scripts/check_landing.py scripts/admit_wave_self_hosting_gate.py tests/test_adversarial_escape_highs.py -> All checks passed. - henxels check -> all henxels hold. - Own commit ran both hooks GREEN with Contract: ADMIT-wave-self-hosting-gate. - Repository-wide lint_ratchet.py remains at its pre-existing baseline failure: BLE001 145/47 and S110 203/31; this diff adds no silent handlers. Discharge: #2613 -> tests/test_adversarial_escape_highs.py
conductor added 1 commit 2026-10-25 23:20:49 +00:00
feat(gates): commit-bound construction contracts (#2613)
deploy / deploy (push) Skipped
CI Pipeline / go-surface (push) Canceled after 0s
CI Pipeline / rust-surface (push) Canceled after 0s
CI Pipeline / canary (push) Canceled after 0s
CI Pipeline / best-practices (push) Canceled after 0s
CI Pipeline / documentation (push) Canceled after 0s
CI Pipeline / type-check (push) Canceled after 0s
CI Pipeline / gitea-offline (push) Canceled after 0s
CI Pipeline / required-checks (push) Canceled after 0s
CI Pipeline / CI Pipeline / notify-event-bridge (push) Canceled after 0s
CI Pipeline / lint (push) Canceled after 31s
CI Pipeline / unit-tests (push) Canceled after 31s
Auto-label / auto-label (pull_request) Successful in 0s
Spec gate (headless) / spec-gate (pull_request) Successful in 22s
Local-Model First-Pass Review (#131) / first-pass-review (pull_request) Successful in 28s
CI Pipeline / lint (pull_request) Failing after 1m0s
CI Pipeline / go-surface (pull_request) Failing after 35s
CI Pipeline / rust-surface (pull_request) Failing after 11s
CI Pipeline / unit-tests (pull_request) Failing after 1m44s
CI Pipeline / best-practices (pull_request) Successful in 6s
CI Pipeline / documentation (pull_request) Successful in 4s
CI Pipeline / type-check (pull_request) Failing after 1m4s
CI Pipeline / canary (pull_request) Failing after 1m25s
CI Pipeline / gitea-offline (pull_request) Successful in 27s
CI Pipeline / required-checks (pull_request) Failing after 0s
CI Pipeline / CI Pipeline / notify-event-bridge (pull_request) Failing after 7s
61c5f5848c
Contract: ADMIT-wave-self-hosting-gate

Bind staged mutations to named OPEN contract scopes at commit-msg, retain sweep-race checks at pre-commit, and document the self-hosting law.

Red: unrelated open coverage and missing references passed; closed/unknown reasons were absent. Green: 13 contract/hook tests and 13 landing-gate tests; Ruff and henxels green.

Discharge: #2613 -> tests/test_adversarial_escape_highs.py
gitea-actions Bot added the P2 — mediumfeatureinfrastructure labels 2026-10-25 23:20:57 +00:00

🤖 Headless spec gate (non-blocking, #204 first slice)

Spec-gate agent produced no text output — check runner logs.

Deterministic floors still govern the merge

This comment is advisory. Required checks (lint, tests, canaries, type-check, coverage, dependency lock, impact gate) remain the merge authority per docs/adversarial-review.md proportionality.

🤖 **Headless spec gate (non-blocking, #204 first slice)** Spec-gate agent produced no text output — check runner logs. <details><summary>Deterministic floors still govern the merge</summary> This comment is advisory. Required checks (lint, tests, canaries, type-check, coverage, dependency lock, impact gate) remain the merge authority per docs/adversarial-review.md proportionality.</details>
Some required checks failed
deploy / deploy (push) Skipped
CI Pipeline / go-surface (push) Canceled after 0s
CI Pipeline / rust-surface (push) Canceled after 0s
CI Pipeline / canary (push) Canceled after 0s
CI Pipeline / best-practices (push) Canceled after 0s
CI Pipeline / documentation (push) Canceled after 0s
CI Pipeline / type-check (push) Canceled after 0s
CI Pipeline / gitea-offline (push) Canceled after 0s
CI Pipeline / required-checks (push) Canceled after 0s
CI Pipeline / CI Pipeline / notify-event-bridge (push) Canceled after 0s
CI Pipeline / lint (push) Canceled after 31s
CI Pipeline / unit-tests (push) Canceled after 31s
Auto-label / auto-label (pull_request) Successful in 0s
Spec gate (headless) / spec-gate (pull_request) Successful in 22s
Local-Model First-Pass Review (#131) / first-pass-review (pull_request) Successful in 28s
CI Pipeline / lint (pull_request) Failing after 1m0s
CI Pipeline / go-surface (pull_request) Failing after 35s
CI Pipeline / rust-surface (pull_request) Failing after 11s
CI Pipeline / unit-tests (pull_request) Failing after 1m44s
CI Pipeline / best-practices (pull_request) Successful in 6s
CI Pipeline / documentation (pull_request) Successful in 4s
CI Pipeline / type-check (pull_request) Failing after 1m4s
CI Pipeline / canary (pull_request) Failing after 1m25s
CI Pipeline / gitea-offline (pull_request) Successful in 27s
CI Pipeline / required-checks (pull_request) Failing after 0s
Required
Details
CI Pipeline / CI Pipeline / notify-event-bridge (pull_request) Failing after 7s
This pull request has changes conflicting with the target branch.
  • store/scaffold/segments/observations.jsonl
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin fix/2613-self-hosting-gate:fix/2613-self-hosting-gate
git checkout fix/2613-self-hosting-gate
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: conductor/rune#2614