Remove the CDEB research line and its code - #860
Merged
Conversation
The owner terminated the study on 2026-08-23 and directed that everything belonging to it be discarded. This removes the code rather than archiving it: 871 files. `bench/cdeb/` accounts for 819 of them; the rest are the 45 `test/cdeb-*` suites, the mutation ratchet's own `guard-ratchet-outcomes` test, five scripts under `scripts/`, and `bench/results/cdeb/`. What made this safe to do in one commit is that `src/` never depended on any of it. The benchmark read the product; the product never read the benchmark. So the shipped CLI is untouched here -- every deletion is under `bench/`, `test/` or `scripts/`, and the six edited files are edited only where they named something that no longer exists. Two of those six are the ones worth reading. `.github/workflows/ci.yml` loses the `oci-matrix` and `guard-mutations` jobs and the four lines by which `gate` fanned in from them, leaving seven. `scripts/check-exact-head-ci.mjs` therefore drops the same two names from `REQUIRED_CHECKS` and re-pins `EXPECTED_CI_WORKFLOW_SHA256`, which is a lock on the reviewed workflow body and had to move with it. That pin is what caught the change: the twenty-two failures this commit had to clear were all on the digest and the check list, not on anything the deletion broke. `guard-mutations` was the mutation ratchet, so removing it needed checking rather than assuming. Its registry named ten distinct test files and every one of them was a `test/cdeb-*` suite. It was guarding the benchmark, not the product; there is no product coverage in this deletion. `scripts/render-evidence-matrix.mjs` goes with the rest because its only caller was a deleted npm script and its only input was the deleted v3r1 literature directory. Nothing tests for it -- the suite is green either way, which was confirmed by restoring it and running again rather than inferred. Corrected in passing: the comment above `REQUIRED_CHECKS` said `lint` was one of thirteen contexts that branch protection requires. Protection on `main` requires two, `lint` and `gate`. The claim was already wrong before this commit -- the entries under `gate` are what it fans in from, not protection contexts -- and rather than decrement thirteen to eleven and keep a number that had already drifted once, the sentence now says what the API says. Record-Id: r-cdebremoval Provenance: authored Certainty: firm Blast: system Undo: costly Ruled-out: archiving bench/cdeb to a tag or an orphan branch instead of deleting | the instruction was to discard it, and the history already holds every version; a tag would be a second place to keep something nobody is to consult Ruled-out: keeping guard-mutations and pointing its registry at product tests | it had never guarded a product test, so re-aiming it would be new work introduced under a removal, and it belongs in its own change if it is wanted Ruled-out: leaving the two jobs in ci.yml as no-ops so the workflow digest and REQUIRED_CHECKS could stay | a required check that cannot fail is the shape this repository's release gate exists to reject Limit: four documents still mention CDEB and are deliberately kept -- ADR-0033, the archived readiness SSOT, an archived handoff, and two CHANGELOG lines. They are the record of decisions that were made, and rewriting them would be deleting evidence rather than code Limit: one full-suite run in the middle of this work reported a single failure that the next two runs did not reproduce, with no relevant change between them. Its name was not captured before the output was discarded, so it is recorded as an unidentified flake rather than as something this commit fixed Verified: two consecutive full-suite runs are green at 3157 passed, 4 skipped, 0 failed -- one taken with render-evidence-matrix.mjs restored to the working tree and one without, so the deletion is not load-bearing for the result; tsc --noEmit exits 0; npm run bench:verify reports 1902 rows in 17 files valid; `git grep -in cdeb` outside the four kept documents returns nothing; gate now fans in from exactly the seven remaining jobs Unverified: the CI workflow has not run on this branch, so the re-pinned digest is checked here only by the release gate's own tests. `oci-matrix` removal means no OCI image was built to confirm nothing else consumed one. eslint was not run: this repository has no eslint config, and `npx eslint .` exits 2 as a usage error rather than reporting on any file
CommitLore — record lintTrailers: clean — 2 commits in Active constraints for the paths this PR touchesLimits (257)
Ruled out (423)
Truncated: 444 lines omitted — the comment hit GitHub's 65000 character limit. Trailer violations fail this check. Active constraints are informational — they are what the repository already decided, not a verdict on this PR. |
…ts digest CI caught what the local suite could not: `check` failed on both Node versions with "source checksum does not match this checkout". Nothing in `src/` changed here, which is why nothing local complained -- but `SOURCE_INPUTS` is `['package-lock.json', 'package.json', 'tsconfig.json', 'src']`, and the previous commit deleted eleven `bench:cdeb:*` scripts from `package.json`. That is a source change by the contract's definition even though it cannot reach the bundle. The canonical build was run rather than skipped, because the interesting question was whether the artifact moved with the source. It did not: `docker run ... node:24-bookworm sh -c "npm ci && npm run build"` reproduced `dist/` byte-identical, `git status` on `dist` is empty afterwards, and the regenerated manifest differs from the committed one in exactly one line -- `source.sha256`. The artifact digest was already correct and stays correct. Worth keeping in mind next time: a commit that touches no TypeScript at all can still require the canonical build, and the local suite gives no warning because `artifact:verify` runs in CI's `check` job rather than under vitest. Record-Id: r-cdebmanifest Provenance: authored Certainty: firm Blast: module Undo: easy Ruled-out: running `npm run artifact:manifest` alone without the canonical build | it would have produced this same one-line diff, but from an unverified assumption that dist could not have moved; the build is what turns that into an observation Ruled-out: putting the manifest update into the previous commit by amending it | that commit is pushed and force-pushing is not available here, so the correction is additive Limit: reproducibility is established for one run on one machine against the pinned image digest. The contract's own comment notes `node:24-bookworm` is mutable, and this says nothing about a rebuild on a different date Verified: `node scripts/verify-canonical-artifact.mjs` exits 0 and reports e8183a8fd3171c20b92c6234fc7ef0826cf4853d71471d421485b2bd71fc88fe; the docker build left `dist/` unmodified in git; the manifest diff is one changed line Unverified: CI has not yet re-run on this commit, so `check` is not yet observed green on either Node version
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The CDEB research line was terminated by the owner on 2026-08-23. This removes its
code rather than archiving it.
871 files deleted.
bench/cdeb/is 819 of them; the rest are the 45test/cdeb-*suites, the mutation ratchet'sguard-ratchet-outcomestest, fivescripts, and
bench/results/cdeb/.src/is untouched. The benchmark read the product; the product never read thebenchmark. Every deletion is under
bench/,test/orscripts/.Six files edited, only where they named something that no longer exists:
.github/workflows/ci.ymloci-matrixandguard-mutationsjobs;gatenow fans in from sevenscripts/check-exact-head-ci.mjsREQUIRED_CHECKS;EXPECTED_CI_WORKFLOW_SHA256re-pinned to the new workflow bodypackage.jsonbench:cdeb:*scripts removed;bench:verifyloses its cdeb half.gitignorebench/hooks-settings.ts,scripts/engine-floor.mjsOn removing
guard-mutationsThis was the mutation ratchet, so it was checked rather than assumed: its registry
named ten distinct test files and every one was a
test/cdeb-*suite. It guardedthe benchmark, not the product. No product coverage is lost here.
Correction carried in this PR
The comment above
REQUIRED_CHECKSclaimedlintwas one of thirteen contextsrequired by branch protection. Protection on
mainrequires two,lintandgate; the entries undergateare what it fans in from, not protection contexts.That claim was already wrong before this PR, so the sentence now states what the
API returns instead of carrying a corrected count that had already drifted once.
Verification
tsc --noEmitexits 0npm run bench:verify→ 1902 rows in 17 files validgit grep -in cdebreturns nothing outside four deliberately kept documentsWhat CI caught that the local suite could not
The first run failed
checkon both Node versions: source checksum does notmatch this checkout. No TypeScript changed here, but
SOURCE_INPUTSis['package-lock.json', 'package.json', 'tsconfig.json', 'src'], so deletingeleven
bench:cdeb:*scripts moved the source digest.artifact:verifyruns incheck, not under vitest, which is why nothing local complained.The canonical build was run rather than skipped, to find out whether the artifact
moved with the source. It did not:
dist/reproduced byte-identical under thepinned
node:24-bookwormimage, and the regenerated manifest differs in exactlyone line,
source.sha256. That is the second commit here.Not verified: reproducibility is established for one build on one machine
against the pinned image digest; the contract's own comment notes the tag is
mutable, so this says nothing about a rebuild on another date.
Kept on purpose
ADR-0033, the archived readiness SSOT, an archived handoff, and two
CHANGELOGlines still mention CDEB. They record decisions that were made; rewriting them
would be deleting evidence rather than code.