159b3f1eb9
Run 771c0b96 marked COMPLETE with a frontend that did not build. Two verification holes let a broken import through: 1. A MODULE build_expectation delegates to LSP and the execution gate returned Success trusting it — but tsserver failed to initialize every stage, so empty diagnostics read as clean. runExecutionGate now only trusts the MODULE->LSP short-circuit when the LSP run actually ran (new lspDiagnosticsSkipped projection); on skip it falls through to the real build command. 2. ExecutionPlanCompiler disabled the terminal whole-project auto build gate whenever ANY stage declared a build_expectation — so a MODULE (typecheck- only) declaration removed the real `npm run build` floor. Now only a real whole-project build (PROJECT/TESTS) suppresses the auto gate; MODULE/NONE do not. Extracted autoGateStages() helper. Two new compiler tests. core:kernel + infrastructure:workflow tests green; no new detekt. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>