Skip to content

epic #470 C14: retire the core-decoupling ratchet; stacked on #808 - #813

Merged
Weegy merged 3 commits into
mainfrom
chore/470-c14-remove-ratchet
Aug 21, 2026
Merged

epic #470 C14: retire the core-decoupling ratchet; stacked on #808#813
Weegy merged 3 commits into
mainfrom
chore/470-c14-remove-ratchet

Conversation

@Weegy

@Weegy Weegy commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Epic #470 C14. Stacked on #808 (C13) — retarget to main once that merges.

The extraction is complete, so the guard that protected it is removed.

Why now

The core-decoupling ratchet was scaffolding for a migration in flight. It made the
file inventory's staleness survivable: a checklist goes stale on contact, a count does
not. It also stopped core re-acquiring a dependency mid-extraction, the realistic
failure mode for a multi-week epic touching ~200 files.

Both jobs are done. The Dev Platform lives in byte5ai/omadia-dev-platform, and C13
drove the count to 0 and pinned it there. What is left is a CI job that can only ever
pass and a number sitting in a JSON file for someone to edit. Reintroducing that
coupling is an ordinary architectural decision now — it should be argued for in
review, not deterred by a counter.

Its full run, measured

Date Total Milestone
2026-07-30 3,303 Landed with the epic (#539)
2026-08-07 3,448 Peak
2026-08-20 214 C10 — the ~49k LOC flip
2026-08-20 0 C13 — pinned permanently
2026-08-21 C14 — removed

Removed

  • scripts/check-core-decoupling.mjs (351 lines)
  • scripts/check-core-decoupling.test.mjs (103 lines, the colocated detector test)
  • specs/470-dev-platform-plugin/decoupling-baseline.json
  • CI job core decoupling ratchet (#470) in .github/workflows/ci.yml, including its
    Ensure ripgrep step, the TOTAL 0 grep and the detector-test step

No npm script referenced the checker (there is no root package.json, and neither
middleware/ nor web-ui/ wired it up), so nothing else had to be unhooked.

Not a silent CI change

Two things were checked before deleting the job, because "removing a job" and
"removing a required job" have very different consequences:

  • It is not a required status check. main's protection requires
    middleware (lint + typecheck + test), web-ui (lint + typecheck + vitest),
    schema (migrations on pgvector) and the two audit (high+critical block) legs —
    and nothing else. Worth flagging: the job's own comment claimed it was "kept for
    continuity as a required check". Branch protection disagrees.
    The comment was
    wrong, not the API. Nothing needs changing in protection settings for this to merge.
  • Nothing declared needs: decoupling. No job in any workflow waited on it, so no
    branch can end up blocked on a check that will never report.

Docs and dangling comments

Three comments in middleware/ used the ratchet as a live analogy and would have
pointed at a deleted path (check-test-typecheck.mjs, check-test-file-durations.mjs,
staticPublicPathsClosedSet.test.ts). They now name it in the past tense. The two
in-workflow analogies (the typecheck:test ratchet and PG_TEST_FLOOR, which is
explicitly the inverse convention) no longer say "the job above".

In specs/470-dev-platform-plugin/, the live Baseline **N** and "run the ratchet"
rows are replaced by a short closing note in README.md, acceptance.md, plan.md
and implementation.md. Two facts are deliberately kept because they outlive the
guard: it counted identifiers, not behaviour (zero was never sufficient for done —
§2/§3 of acceptance.md cover the rest, and neither is automated), and
services/githubAppJwt.ts stays in core, since moving it would recreate the
reverse dependency across a repo boundary. The checklist's baseline-raise log is
marked historical rather than deleted — it is the record of how the count moved.
implementation.md gains a C14 row. docs/CHANGELOG.md gets a ### Removed entry.

Verification

  • middleware: npm run build, npm run typecheck, npm run lint, and
    npm run typecheck:test (the test-tree ratchet) — all exit 0
  • web-ui: npm run lint — exit 0
  • actionlint .github/workflows/ci.yml — clean; the four remaining jobs
    (middleware, web-ui, schema, audit) still map exactly onto the five required
    checks. Pre-existing shellcheck findings in auto-release.yml, desktop-apps.yml
    and release.yml are untouched by this PR.
  • git grep -n 'check-core-decoupling\|decoupling-baseline\|decoupling ratchet' returns
    only the historical notes written here plus the existing C13 changelog entry. Greps
    for EXTRACTION_COMPLETE, TOTAL 0 and decoupling.txt return nothing.

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

@Weegy
Weegy changed the base branch from feat/470-c13-residue to main August 21, 2026 06:44
Weegy added 2 commits August 21, 2026 08:45
The guard has done its job. It ran from 2026-07-30 (#539) to 2026-08-21,
peaked at 3,448 counted Dev Platform references in core, fell to 214 at C10
and reached 0 at C13, where the floor was pinned permanently. The extraction
is finished and the Dev Platform lives in byte5ai/omadia-dev-platform.

A ratchet is scaffolding for a migration in flight: it makes a file
inventory's staleness survivable, because a checklist goes stale on contact
and a count does not. Once the count is zero and the move is done, the guard
has nothing left to guard — it only costs a CI job and leaves an editable
number behind. Reintroducing that coupling is now an ordinary architectural
decision, argued for in review.

Removed:
- scripts/check-core-decoupling.mjs and its colocated detector test
- specs/470-dev-platform-plugin/decoupling-baseline.json
- the CI job `core decoupling ratchet (#470)`, including its TOTAL 0 grep step

The job is not among main's required status checks and no other job declared
`needs: decoupling`, so nothing is left waiting on a check that will never
report. (The job's own comment claimed required-check status; branch
protection says otherwise.)

Three comments in middleware that used the ratchet as a live analogy now name
it in the past tense, so no comment points at a deleted path. The specs under
specs/470-dev-platform-plugin/ keep a short closing note where the live
"Baseline N" rows were, and the checklist's baseline-raise log is marked
historical rather than dropped.
@Weegy
Weegy force-pushed the chore/470-c14-remove-ratchet branch from 53ddf67 to 2300b8c Compare August 21, 2026 06:46
@Weegy
Weegy merged commit 2feceac into main Aug 21, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant