ForgeKitFORGEKIT

Build Log

Consolidating the Duplicated Predeploy Scanners

September 12, 2026

Moved 2 monorepo-wide predeploy checks out of 16 hand-copied package.json entries into one shared gate:predeploy:repo command, per an explicit design review.

ForgeKit OSGatesDeploy
16
predeploy scripts consolidated
1
shared root command
21
new regression tests

Timeline

Start
Design review received
Two reservations accepted: monorepo-wide checks duplicated across 16 predeploy scripts, and evidence-collapsing in the prior close ('live' used as a blanket claim)
Correction
Bounded close verification
3 commits confirmed reachable from origin/master via merge-base --is-ancestor; build-log publication re-verified via a real HTTP fetch, not git show
Build
check-predeploy-repo.mjs written and wired
16 apps' predeploy scripts each reduced to a single reference
Proof
21 regression tests
Enumeration + a real behavioral swap test proving centralization
Close
Committed, retro'd, pushed, deployed

What shipped

forgekit-os/scripts/check-predeploy-repo.mjs — the single shared definition of which monorepo-wide checks run at predeploy time

npm run gate:predeploy:repo — the root-level command every app's predeploy now references

All 16 apps' predeploy scripts edited to reference the shared gate once instead of duplicating the 2-command sequence

forgekit-os/scripts/tests/predeploy-repo-consolidation.test.mjs — 21 tests: per-app enumeration, a regression against the old direct-invocation shape, and a real behavioral proof that swapping the root script changes enforcement everywhere with zero app-file edits