{"ok":true,"service":"build-regression-forensic-gate","mode":"build-regression-forensic-gate-layer","timestamp":"2026-06-26T14:59:10.439Z","dependencies":{"memoryContentFlowHubFoundation":"ready-summary","arenaRouteLoader":"ready-summary","actionPathCompressionGate":"ready-summary","navigationStaticBuildConsolidation":"ready-summary"},"summary":{"totalTargets":10,"targetFoundationReady":9,"targetReviewRequired":1,"totalSignals":10,"signalFoundationReady":8,"signalReady":2,"totalRules":8,"ready":8,"reviewRequired":0,"blocked":0,"buildRegressionForensicGateReady":true,"liveBuildMutationEnabled":false,"routeDeletionEnabled":false,"dynamicConversionRuntimeEnabled":false,"cssDeletionEnabled":false,"providerUpgradeRequired":false,"productionMutation":false,"reason":"Build Regression Forensic Gate is active as a diagnostic-only layer. TheoB can define build regression targets, signals, rules, and report shape, but it cannot delete routes, mutate CSS, convert routes, alter deployment infrastructure, or mutate production yet."},"forensicTargets":[{"targetId":"route-count-growth","status":"foundation-ready","purpose":"Measure route growth and identify whether static page count expanded beyond healthy deployment limits.","safeguard":"Route count is evidence, not blame."},{"targetId":"static-generation-surface","status":"foundation-ready","purpose":"Identify static pages that should be dynamic, consolidated, archived, or loaded through the arena.","safeguard":"Static should be reserved for public value, not internal readiness sprawl."},{"targetId":"page-data-collection-cost","status":"foundation-ready","purpose":"Detect pages with top-level data hydration, imported dependency chains, or heavy page-data collection.","safeguard":"A page should not hydrate the empire to render a signpost."},{"targetId":"top-level-get-call-detection","status":"foundation-ready","purpose":"Find page.js files that execute get* readiness functions at module scope before export default.","safeguard":"Top-level calls can silently tax every build."},{"targetId":"large-page-and-lib-detection","status":"foundation-ready","purpose":"Find oversized page files, lib core files, and repeated patterns that should become shared components or registries.","safeguard":"Big files are not always bad, but repeated big files are suspicious."},{"targetId":"global-css-growth","status":"foundation-ready","purpose":"Measure globals.css growth, duplicate selector families, repeated CSS blocks, and visual-layer bloat.","safeguard":"CSS is not free when it becomes a landfill."},{"targetId":"recent-commit-regression-window","status":"foundation-ready","purpose":"Compare the last 10 to 20 commits to find when route count, CSS size, dynamic status, or build time shifted.","safeguard":"Find the regression window before rewriting everything."},{"targetId":"readiness-layer-consolidation-candidates","status":"foundation-ready","purpose":"Identify readiness/foundation/gate/layer pages that can be consolidated into one dynamic System Hub or Arena route.","safeguard":"Keep the intelligence, collapse the page count."},{"targetId":"deployment-provider-fit","status":"review-required","purpose":"Evaluate whether Vercel build resources, GitHub runner strategy, or deployment pipeline upgrades are worth it after code-side fixes.","safeguard":"Do not buy horsepower before removing the trailer."},{"targetId":"content-flow-over-page-growth","status":"foundation-ready","purpose":"Confirm the strategic pivot from page expansion to Memory and Content Flow infrastructure.","safeguard":"The map was useful. Now build the transport system."}],"forensicSignals":[{"signal":"static-page-count-high","status":"foundation-ready","purpose":"Detect static page generation count above the target budget.","forensicUse":"static generation budget"},{"signal":"page-data-collection-slow","status":"foundation-ready","purpose":"Detect page data collection taking multiple minutes.","forensicUse":"build bottleneck"},{"signal":"route-count-high","status":"foundation-ready","purpose":"Detect app route count above the intended operating threshold.","forensicUse":"route graph pressure"},{"signal":"dynamic-patch-incomplete","status":"foundation-ready","purpose":"Detect readiness/internal pages that still lack force-dynamic exports.","forensicUse":"static-to-dynamic review"},{"signal":"client-order-safe","status":"foundation-ready","purpose":"Confirm use client remains first line where needed after dynamic patches.","forensicUse":"app router safety"},{"signal":"large-css-file","status":"foundation-ready","purpose":"Detect global CSS growth and repeated selectors.","forensicUse":"visual-layer compression"},{"signal":"top-level-hydration-risk","status":"foundation-ready","purpose":"Detect top-level get* calls in page files.","forensicUse":"page data collection risk"},{"signal":"readiness-route-sprawl","status":"foundation-ready","purpose":"Detect many readiness/foundation/gate/layer routes that may belong in a single dynamic hub.","forensicUse":"route consolidation"},{"signal":"provider-upgrade-not-first-fix","status":"ready","purpose":"Show infrastructure upgrades should follow forensic code findings.","forensicUse":"cost control"},{"signal":"production-mutation-disabled","status":"ready","purpose":"Show this forensic gate cannot alter production behavior.","forensicUse":"global lock"}],"readinessRules":[{"rule":"Measure Before Cutting","status":"ready","purpose":"Do not delete or consolidate pages until route, build, CSS, and dependency data are collected.","safeguard":"Scalpels, not chainsaws."},{"rule":"Static Pages Need A Reason","status":"ready","purpose":"Public marketing and core landing pages can be static; internal readiness routes should be dynamic or consolidated.","safeguard":"Static generation is a privilege, not a default."},{"rule":"One Hub Can Replace Many Readiness Pages","status":"ready","purpose":"Readiness layers can become registry records rendered inside a single dynamic hub instead of hundreds of separate routes.","safeguard":"Keep the knowledge. Collapse the hallway."},{"rule":"Page Data Collection Is The Prime Suspect","status":"ready","purpose":"When compilation is fast but page data collection is slow, look for static routes, top-level imports, and module-scope calculations.","safeguard":"The build is not slow everywhere; find the actual phase."},{"rule":"CSS Must Be Compressed","status":"ready","purpose":"Repeated CSS blocks should become shared utility classes or component-scoped patterns.","safeguard":"One style system, not a thousand snowflakes."},{"rule":"Provider Upgrades Are Secondary","status":"ready","purpose":"Vercel or CI upgrades may help later, but code-side route and static generation pressure must be fixed first.","safeguard":"Bigger engines do not fix square wheels."},{"rule":"Memory Flow Beats Page Growth","status":"ready","purpose":"The next architecture phase should prioritize retrieval, packets, capsules, pools, and content movement over new pages.","safeguard":"The fastest library is not one building per book."},{"rule":"No Production Mutation","status":"ready","purpose":"Build Regression Forensic Gate defines diagnostic posture only.","safeguard":"No writes. No sync. No surprise."}],"futureBuildRegressionReportShape":{"buildRegressionReportId":"stable build regression report id","routeCount":"number of app page routes","staticPageCount":"number of static pages generated","dynamicPageCount":"number of dynamic page routes","apiRouteCount":"number of app api route files","pageDataCollectionTime":"measured time","staticGenerationTime":"measured time","productionDeployTime":"measured time","globalCssLines":"number of lines","topLevelGetCallPages":"list of page.js files with module-scope get* calls","staticReadinessCandidates":"readiness/foundation/gate/layer pages missing dynamic export","largePageFiles":"largest page.js files","largeLibFiles":"largest lib files","recentCommitSuspects":"commits in regression window","recommendedAction":"dynamic/consolidate/archive/delete-css/extract-component/upgrade-provider/review","productionMutation":"false"},"allowedNow":["Render Build Regression Forensic Gate.","Define build regression targets.","Define route/static/dynamic scan requirements.","Define CSS growth scan requirements.","Define top-level get-call scan requirements.","Define readiness consolidation candidates.","Run local forensic scripts.","Keep live mutation disabled."],"notAllowedYet":["Delete routes automatically.","Convert routes automatically.","Delete CSS automatically.","Mutate deployment settings.","Upgrade providers automatically.","Archive pages automatically.","Mutate production."],"nextStructuralLayers":["Build Regression Forensic Gate final audit","Readiness Route Consolidation Plan","Static Page Budget Policy","Global CSS Compression Pass","Strategic Retrieval Location Registry"],"safeguard":"Build Regression Forensic Gate is read-only and diagnostic-only. It does not delete routes, mutate files, convert pages, change deployment settings, expose secrets, or mutate production."}