Skip to content

Commit 4200dd5

Browse files
docs(#159): describe required merge and exact-head evidence precisely
1 parent ac3d949 commit 4200dd5

1 file changed

Lines changed: 15 additions & 15 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -64,21 +64,21 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6464

6565
### Fixed
6666
- **Stacked pull requests now carry two independent evidence planes:
67-
submitted-head evidence and proposed-merge evidence (issue #159 follow-up).**
68-
The first #159 repair added `push` filters for every documented agent prefix,
69-
but its verification evidence came from `pull_request` runs and
70-
automation-authenticated pushes are not a reliable proof surface because
71-
recursive workflow events can be suppressed. CI, QuTiP and Quality Contract
72-
therefore accept PRs against arbitrary base branches. Scientific CI, QuTiP
73-
and the head Quality Contract explicitly bind to
74-
`github.event.pull_request.head.sha`; the reusable Python pilot retains
75-
GitHub's synthetic merge ref. QuTiP additionally runs the full 3.11/3.12
76-
cross-check matrix on that proposed merge, and the Quality Contract runs its
77-
workflow-hardening, trigger-contract and claim-safety checks on the proposed
78-
merge as well. The trigger guard is adversarially tested against comment,
79-
path/type-filter, fake-head-ref and fake-reusable-caller bypasses and binds
80-
the merge smoke to the actual job-level reusable-workflow call. Main branch
81-
protection and workflow permissions remain unchanged.
67+
proposed-merge evidence in the existing required contexts and submitted-head
68+
evidence in additional jobs (issue #159 follow-up).** CI, QuTiP and Quality
69+
Contract accept PRs against arbitrary base branches. On `pull_request`, the
70+
historical required jobs deliberately retain GitHub's default synthetic merge
71+
ref so branch protection still validates the proposed integration state; new
72+
`*-head` jobs explicitly checkout
73+
`github.event.pull_request.head.sha` to prove the submitted subject state
74+
independently. The Python matrix therefore runs 3.10-3.14 on both states and
75+
QuTiP runs 3.11/3.12 on both states. The workflow contract binds these
76+
semantics to concrete PR-reachable, dependency-free jobs and adversarially
77+
rejects path/type suppression, comments, fake ref/use strings, block-scalar
78+
payloads (including indentation/chomping indicators), trigger-name
79+
impersonation outside top-level `on:`, and conditional/dependency skip
80+
paths. Main branch-protection context names, read-only permissions and
81+
full-SHA action pinning remain unchanged.
8282
- **Documented agent branches now receive exact-head verification (issue #159).**
8383
`AGENTS.md` defines `claude/**`, `codex/**` and `bot/**`, but the main CI and
8484
QuTiP workflows previously triggered branch pushes only for `claude/**`,

0 commit comments

Comments
 (0)