Fecha o resíduo da classe S6 da OPS119+ no resto de scripts/. F1: SCRIPTS_SPEC_PINNED (42 módulos scripts/** alcançáveis de specs unit+int) espalhado em HIGH_RISK_EXACT, sincronizado por invariante de igualdade que anda o grafo de imports dos specs (missing = lib nova pinada; stale = rename). F2: isCodePath cobre scripts/ (classifyStaticScope = code). Sem migration/access/Consent/UI. gate:fast verde.
1.8 KiB
OPS119++ — blast radius de scripts/: risk map das libs restantes + static scope (2026-09-16): fecha o resíduo da classe S6 que a OPS119+ (#1071) tinha tratado só para as libs de launch. F1: HIGH_RISK_EXACT (scripts/lib/test-affected-core.mjs) cobria só alguns dos scripts/lib/*.mjs unit-pinados — um diff que tocasse apenas uma lib como scripts/lib/worktree-env.mjs (pinada por tests/unit/worktree.unit.spec.ts e importada por scripts/lib/auto-unblock.mjs) classificava classifyTestScope como none e a suíte que a cobre nunca rodava. Novo grupo exportado SCRIPTS_SPEC_PINNED (42 caminhos scripts/** alcançáveis de specs unit+int, deduplicado no Set) espalhado em HIGH_RISK_EXACT, sincronizado por um invariante de igualdade em tests/unit/ciSkipInvariants.unit.spec.ts que recalcula o fechamento transitivo do grafo de imports dos specs (arestas relativas, inclusive via tests/helpers/src/): lib nova pinada falha como missing, rename/entrada morta falha como stale — o buraco não reabre em silêncio. F2: isCodePath passa a cobrir scripts/, então classifyStaticScope devolve code e typecheck/knip/cycles deixam de pular um diff só-scripts. classifyBuildScope/build_mode intocados. Pins de comportamento em tests/unit/testAffected.unit.spec.ts (classifyTestScope → full, classifyStaticScope → code, classifyBuildScope → none). Sem migration, sem access/Consent/UI/URL pública (Impeccable A). pnpm gate:fast verde (lint + typecheck + 3421 unit). Débitos diferidos da triagem /simplify (regex sem boundary; closure não cobre e2e; existência repo-wide) registrados no impl plan — nenhum vira Issue nova. Issue #1077. Impl plan: docs/plans/escala-dry-pos-scripts-blast-radius-impl.md.