3333// owner" shape as R7's SessionState ownership, applied to bin.ts's `--help` fast path.
3434// - Over PLATFORM PACKAGE COMPOSITION: six private metadata façades meet at the exact root
3535// composition file; premature implementation loading and forbidden cross-boundary edges fail (R13).
36- // - Over the DEVICES COMMAND CUTOVER: the handler calls the neutral inventory gateway and no
37- // superseded inventory module, import, or identifier remains in production (R13).
38- // - Over COMMAND-ATOMIC RUNTIME CUTOVERS: retired logs, network, and record routes/admission cannot
39- // coexist with their operation-fact-derived descriptor and handler paths (R14-R16) .
36+ // - Over COMMAND-ATOMIC RUNTIME CUTOVERS: one parametrized gate reads the migrated-command
37+ // table (devices R13, logs R14, network R15, record R16) and proves each command keeps
38+ // exactly one platform-execution path — retired routes, admission, modules, and widened
39+ // runtime access cannot coexist with its operation-fact-derived descriptor and handler.
4040// Only `(root)` is unranked among src/ zones (see `UNRANKED_ZONES` in model.ts):
4141// it holds entrypoints and composition roots. Extracted workspace package zones
4242// are classified separately and held behind R11 instead of the src folder spine.
@@ -87,31 +87,15 @@ import {
8787 platformPackagePolicySummary ,
8888} from './platform-package-policy.ts' ;
8989import {
90- checkDeviceInventoryCutover ,
91- deviceInventoryCutoverSummary ,
92- } from './device-inventory -cutover-policy.ts' ;
90+ checkRuntimeCommandCutover ,
91+ runtimeCommandCutoverSummary ,
92+ } from './runtime-command -cutover-policy.ts' ;
9393import {
9494 listUntrackedProductionTypeScriptFiles ,
9595 readTrackedPlatformPackageDeclarations ,
9696} from './platform-package-repository.ts' ;
9797import { policyLead , policyViolation , ZONE_POLICIES } from './zone-policy.ts' ;
98- import {
99- logsLegacyRouteViolations ,
100- logsRuntimeNarrowingViolations ,
101- logsSessionStateOwnershipViolations ,
102- sourceExecutedUsingDeclarationViolations ,
103- } from './logs-runtime-cutover-policy.ts' ;
10498import { contractsImplementationAuthorityViolations } from './contracts-implementation-policy.ts' ;
105- import {
106- networkLegacyRouteViolations ,
107- networkRuntimeNarrowingViolations ,
108- networkRuntimeRouteViolations ,
109- } from './network-runtime-cutover-policy.ts' ;
110- import {
111- recordLegacyRouteViolations ,
112- recordRuntimeNarrowingViolations ,
113- recordRuntimeRouteViolations ,
114- } from './record-runtime-cutover-policy.ts' ;
11599import { recordRuntimeDaemonMechanicsViolations } from './record-runtime-mechanics-policy.ts' ;
116100import { recordRuntimeRegistryJoinViolations } from './record-runtime-registry-policy.ts' ;
117101
@@ -191,16 +175,6 @@ function checkCycles(edges: readonly ResolvedImportEdge[]): LayeringViolation[]
191175 } ) ) ;
192176}
193177
194- function checkLogsRuntimeCutover ( sources : ReadonlyMap < string , string > ) : LayeringViolation [ ] {
195- const production = [ ...sources ] . map ( ( [ file , source ] ) => ( { path : file , source } ) ) ;
196- return [
197- ...logsLegacyRouteViolations ( production ) ,
198- ...logsRuntimeNarrowingViolations ( production ) ,
199- ...logsSessionStateOwnershipViolations ( production ) ,
200- ...sourceExecutedUsingDeclarationViolations ( production ) ,
201- ] ;
202- }
203-
204178function checkContractsImplementationAuthority (
205179 sources : ReadonlyMap < string , string > ,
206180) : LayeringViolation [ ] {
@@ -209,31 +183,15 @@ function checkContractsImplementationAuthority(
209183 ) ;
210184}
211185
212- function checkNetworkRuntimeCutover ( sources : ReadonlyMap < string , string > ) : LayeringViolation [ ] {
213- const production = [ ...sources ] . map ( ( [ file , source ] ) => ( { path : file , source } ) ) ;
214- return [
215- ...networkLegacyRouteViolations ( production ) ,
216- ...networkRuntimeNarrowingViolations ( production ) ,
217- ...networkRuntimeRouteViolations ( production ) ,
218- ] . map ( ( violation ) => {
219- const separator = violation . indexOf ( ': ' ) ;
220- return {
221- rule : 'R15 network-runtime-cutover' ,
222- file : separator < 0 ? '(network runtime)' : violation . slice ( 0 , separator ) ,
223- line : 1 ,
224- message : separator < 0 ? violation : violation . slice ( separator + 2 ) ,
225- } ;
226- } ) ;
227- }
228-
229- function checkRecordRuntimeCutover ( sources : ReadonlyMap < string , string > ) : LayeringViolation [ ] {
186+ /**
187+ * Record's daemon-mechanics and registry-join policies stay separate modules: they are
188+ * record-specific structural scans, not per-command cutover rows. They keep the R16 id.
189+ */
190+ function checkRecordRuntimeMechanics ( sources : ReadonlyMap < string , string > ) : LayeringViolation [ ] {
230191 const production = [ ...sources ] . map ( ( [ file , source ] ) => ( { path : file , source } ) ) ;
231192 return [
232- ...recordLegacyRouteViolations ( production ) ,
233193 ...recordRuntimeDaemonMechanicsViolations ( production ) ,
234- ...recordRuntimeNarrowingViolations ( production ) ,
235194 ...recordRuntimeRegistryJoinViolations ( production ) ,
236- ...recordRuntimeRouteViolations ( production ) ,
237195 ] . map ( ( violation ) => {
238196 const separator = violation . indexOf ( ': ' ) ;
239197 return {
@@ -618,7 +576,7 @@ function report(
618576 `inside its declared owner (R7); every zero-dep CI job resolves without ` +
619577 `node_modules (R8); ${ typeCycleNote ( typeCycle ) } ; ${ daemonModularitySummary ( ) } ; ` +
620578 `${ packageBoundariesSummary ( repoRoot ) } ; ${ platformPackagePolicySummary ( ) } ; ` +
621- `${ deviceInventoryCutoverSummary ( ) } ; and bin.ts imports normalizeCliCommandAlias, ` +
579+ `${ runtimeCommandCutoverSummary ( ) } ; and bin.ts imports normalizeCliCommandAlias, ` +
622580 `actually passes it into buildCommandUsageText, and holds no local alias literals ` +
623581 `(R12).\n` ,
624582 ) ;
@@ -657,10 +615,9 @@ export function main(): number {
657615 const violations = [
658616 ...checkLayeringRules ( edges ) ,
659617 ...checkCycles ( edges ) ,
660- ...checkLogsRuntimeCutover ( sources ) ,
618+ ...checkRuntimeCommandCutover ( sources ) ,
619+ ...checkRecordRuntimeMechanics ( sources ) ,
661620 ...checkContractsImplementationAuthority ( sources ) ,
662- ...checkNetworkRuntimeCutover ( sources ) ,
663- ...checkRecordRuntimeCutover ( sources ) ,
664621 ...checkContractsImplementationAuthority ( sources ) ,
665622 ...checkBackEdges ( edges ) ,
666623 ...checkTypeInversions ( edges ) ,
@@ -677,7 +634,6 @@ export function main(): number {
677634 readTrackedPlatformPackageDeclarations ( repoRoot ) ,
678635 { untrackedProductionFiles : listUntrackedProductionTypeScriptFiles ( repoRoot ) } ,
679636 ) ,
680- ...checkDeviceInventoryCutover ( sources ) ,
681637 ] ;
682638 return report ( sourceFiles , violations , typeCycle ) ;
683639}
0 commit comments