Implements improvements 1-4 from the v3.8.36 release benchmark (_tasks/release-bench/v3.8.36/PLANO-MELHORIA.md):
1. Quality Ratchet decoupled from flaky coverage (ci.yml): the shard→coverage→ratchet
chain meant a single flaky Coverage Shard SKIPPED the whole Quality Ratchet on the
release PR (v3.8.36 #4854), so cycle drift only surfaced post-merge in #5029. The job
now runs on !cancelled(); coverage download is continue-on-error and the ratchet runs
--allow-missing, so the DETERMINISTIC gates (eslint/complexity/cognitive/duplication/
codeql) stay blocking even when coverage is unavailable.
2. Fast-path drift gates (quality.yml PR→release): added check:complexity,
check:cognitive-complexity, and a new lightweight check:pack-policy (pack-artifact
unexpected-files check WITHOUT a build, via --policy-only) so drift + stray-tarball-file
regressions are caught/rebaselined PER-PR instead of cascading onto the release PR.
3. Build heap default 4096→8192 MB (build-next-isolated.mjs): the clean graph peaks
~3.9 GB and brushed the old 4 GB ceiling; 8 GB gives headroom. Comment notes heap is
NOT the fix for a poisoned scope (run check:build-scope instead).
4. check:build-scope gate (new): fails if .ts/.tsx/.js/.jsx files in the tsconfig scope
exceed a threshold — catches worktrees/cruft leaking into the build scope (the v3.8.36
OOM root cause: 355,215 vs 4,547 files) BEFORE it detonates next build. Wired into the
fast-path.