From 65970f8e12fa306bd091f00b1aab383fd69b7b23 Mon Sep 17 00:00:00 2001 From: Kyle Sexton <153232337+kyle-sexton@users.noreply.github.com> Date: Thu, 5 Nov 2026 14:37:07 -0500 Subject: [PATCH 1/2] docs(upstream-drift): record the cleaned-state gate deferral and its trigger Records owner decision Q-9759-2 (b) of 2026-11-05: the cleaned-state CI gate is deferred until a disposition sweep applies at least one disposition. Adds the re-derive trigger and what is built then, and a 4.2.1 patch entry in the contract changelog. Refs #9759 Co-Authored-By: Claude Opus 5.5 --- docs/contracts/upstream-drift/CHANGELOG.md | 6 ++++++ docs/contracts/upstream-drift/README.md | 22 ++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/docs/contracts/upstream-drift/CHANGELOG.md b/docs/contracts/upstream-drift/CHANGELOG.md index f37fa887d06..85d2ea78821 100644 --- a/docs/contracts/upstream-drift/CHANGELOG.md +++ b/docs/contracts/upstream-drift/CHANGELOG.md @@ -4,6 +4,12 @@ Notable changes to the upstream-drift contract (SemVer). Changing a required par name, or an enforceability verdict is a major bump; additive guidance is a minor bump; docs-only clarification is a patch. +## [4.2.1] - 2026-11-05 + +Patch: records the owner's decision that the cleaned-state CI gate is deferred until a sweep applies +a disposition, with its re-derive trigger, in the enforceability section. No required part, +canonical name, or enforceability tier changes. + ## [4.2.0] - 2026-11-05 Minor under this contract's own rule: no required part, canonical name, or enforceability tier diff --git a/docs/contracts/upstream-drift/README.md b/docs/contracts/upstream-drift/README.md index f025ced9010..f5b87f3f1db 100644 --- a/docs/contracts/upstream-drift/README.md +++ b/docs/contracts/upstream-drift/README.md @@ -520,6 +520,28 @@ real signal into noise with an approved silencer. upstream restatement from an in-repo one without a suppression list. Either event reopens the shape question; neither is a date. +### Recorded decision: the cleaned-state gate is deferred until a sweep applies a disposition + +**Decided 2026-11-05 UTC: no CI step fails a pull request on a new fix-eligible attribution +finding yet.** The owner chose to turn the gate on only after a sweep applies dispositions +([#9759, Q-9759-2 (b)](https://github.com/melodic-software/claude-code-plugins/issues/9759#issuecomment-6662333491)). + +Why: + +- The [disposition sweep of 2026-11-04](https://github.com/melodic-software/claude-code-plugins/issues/3465#issuecomment-6633945050) + applied 0 dispositions. +- The owner ruled on 2026-10-30 that no class is fix-eligible yet (owner-decisions record, "Q1 and Q2 + (Backlog HITL numbering), 2026-10-30"), so the gate has nothing to fail on. +- The sweep's zero is not evidence the repository is clean: most files got only the automatic scan + and most closures hold candidates no panel judged ([CHANGELOG 4.2.0](CHANGELOG.md)). It does not + show the gate would pass, or that a predicate for it would be right. + +- **Re-derive trigger**: the first disposition sweep that applies at least one disposition, recorded + on [#3465](https://github.com/melodic-software/claude-code-plugins/issues/3465) or its successor + sweep record. +- **Built then**: a gate step in `pr-require-checks.yml` that fails on a new fix-eligible finding, + with a failing and a passing `.test.sh` fixture. + ## Adopters The rows below were migrated at this contract's 1.0.0 to the single name, each citing this doc with From 89f6a5b979e101c4936dabf136b4eb213535d787 Mon Sep 17 00:00:00 2001 From: Kyle Sexton <153232337+kyle-sexton@users.noreply.github.com> Date: Thu, 5 Nov 2026 14:46:43 -0500 Subject: [PATCH 2/2] docs(upstream-drift): correct the gate deferral reason and trigger label State that near-verbatim findings are fix-eligible since 2026-11-02 and the gate waits on the first applied disposition, and use the canonical "Recheck trigger" label. Refs #9759 Co-Authored-By: Claude Opus 5.5 --- docs/contracts/upstream-drift/CHANGELOG.md | 2 +- docs/contracts/upstream-drift/README.md | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/contracts/upstream-drift/CHANGELOG.md b/docs/contracts/upstream-drift/CHANGELOG.md index 85d2ea78821..913b964a7b7 100644 --- a/docs/contracts/upstream-drift/CHANGELOG.md +++ b/docs/contracts/upstream-drift/CHANGELOG.md @@ -7,7 +7,7 @@ clarification is a patch. ## [4.2.1] - 2026-11-05 Patch: records the owner's decision that the cleaned-state CI gate is deferred until a sweep applies -a disposition, with its re-derive trigger, in the enforceability section. No required part, +a disposition, with its recheck trigger, in the enforceability section. No required part, canonical name, or enforceability tier changes. ## [4.2.0] - 2026-11-05 diff --git a/docs/contracts/upstream-drift/README.md b/docs/contracts/upstream-drift/README.md index f5b87f3f1db..d2949331a06 100644 --- a/docs/contracts/upstream-drift/README.md +++ b/docs/contracts/upstream-drift/README.md @@ -530,13 +530,15 @@ Why: - The [disposition sweep of 2026-11-04](https://github.com/melodic-software/claude-code-plugins/issues/3465#issuecomment-6633945050) applied 0 dispositions. -- The owner ruled on 2026-10-30 that no class is fix-eligible yet (owner-decisions record, "Q1 and Q2 - (Backlog HITL numbering), 2026-10-30"), so the gate has nothing to fail on. +- One class is fix-eligible: the owner declared fingerprint-confirmed near-verbatim findings + eligible on 2026-11-02 (`plugins/attribution/CHANGELOG.md` 0.15.0; [CHANGELOG 4.2.0](CHANGELOG.md)), + superseding the 2026-10-30 ruling that none was. No sweep has applied one, so the gate waits on the + first applied disposition, not on an eligible class. - The sweep's zero is not evidence the repository is clean: most files got only the automatic scan and most closures hold candidates no panel judged ([CHANGELOG 4.2.0](CHANGELOG.md)). It does not show the gate would pass, or that a predicate for it would be right. -- **Re-derive trigger**: the first disposition sweep that applies at least one disposition, recorded +- **Recheck trigger**: the first disposition sweep that applies at least one disposition, recorded on [#3465](https://github.com/melodic-software/claude-code-plugins/issues/3465) or its successor sweep record. - **Built then**: a gate step in `pr-require-checks.yml` that fails on a new fix-eligible finding,