epic #470 C14: retire the core-decoupling ratchet; stacked on #808 - #813
Merged
Conversation
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
force-pushed
the
chore/470-c14-remove-ratchet
branch
from
August 21, 2026 06:46
53ddf67 to
2300b8c
Compare
6 tasks
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.
Epic #470 C14. Stacked on #808 (C13) — retarget to
mainonce 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 C13drove 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
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.jsoncore decoupling ratchet (#470)in.github/workflows/ci.yml, including itsEnsure ripgrepstep, theTOTAL 0grep and the detector-test stepNo npm script referenced the checker (there is no root
package.json, and neithermiddleware/norweb-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:
main's protection requiresmiddleware (lint + typecheck + test),web-ui (lint + typecheck + vitest),schema (migrations on pgvector)and the twoaudit (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.
needs: decoupling. No job in any workflow waited on it, so nobranch 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 havepointed 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 twoin-workflow analogies (the
typecheck:testratchet andPG_TEST_FLOOR, which isexplicitly the inverse convention) no longer say "the job above".
In
specs/470-dev-platform-plugin/, the liveBaseline **N**and "run the ratchet"rows are replaced by a short closing note in
README.md,acceptance.md,plan.mdand
implementation.md. Two facts are deliberately kept because they outlive theguard: it counted identifiers, not behaviour (zero was never sufficient for done —
§2/§3 of
acceptance.mdcover the rest, and neither is automated), andservices/githubAppJwt.tsstays in core, since moving it would recreate thereverse 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.mdgains a C14 row.docs/CHANGELOG.mdgets a### Removedentry.Verification
middleware:npm run build,npm run typecheck,npm run lint, andnpm run typecheck:test(the test-tree ratchet) — all exit 0web-ui:npm run lint— exit 0actionlint .github/workflows/ci.yml— clean; the four remaining jobs(
middleware,web-ui,schema,audit) still map exactly onto the five requiredchecks. Pre-existing shellcheck findings in
auto-release.yml,desktop-apps.ymland
release.ymlare untouched by this PR.git grep -n 'check-core-decoupling\|decoupling-baseline\|decoupling ratchet'returnsonly the historical notes written here plus the existing C13 changelog entry. Greps
for
EXTRACTION_COMPLETE,TOTAL 0anddecoupling.txtreturn nothing.Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.