Skip to content

[Decision] Should the eager-closure budget be tightened below today's payload — absolute ceiling, true ratchet, or per-chunk budgets? #5468

Description

@claude

Follow-up owed by the seat that accepted #5324 / PR #5463#5466. ⛔ Filed as the fork only — not a grading and not a recommendation adopted. Dedupe done before filing: repo-scoped listing of all open issues, three pages, regex over titles and bodies for ratchet.*budget / per-chunk budget / vendor-objectstack / tighten.*ceiling / performance budget — the only hits are #5324 itself, #5359 (a specific regression, pm:blocked) and #5382 (unrelated). No twin.

Context

#5324 landed the eager-closure gauge (PR #5466). Per its dispatch, the dev shipped a truthful current-state ceiling and did not lower it unilaterally: 3,960,000 gzipped bytes = today's 3,881,609 plus 2.02% headroom, deliberately narrower than the 89 KiB #5266 regression it exists to catch (a repeat fails by 12.4 KB). Both constraints are expect()s in scripts/__tests__/check-eager-closure-budget.test.ts, so widening the ceiling past the regression size fails a test.

The gap that ceiling records is the point of this card. 3.79 MB gzipped before first render is a bad payload. Where the mass actually is, measured:

eager chunkgzippedshare of closure
vendor-objectstack1,493 KB38%
framework484 KB12%
ui-components380 KB10%

The fork

Dev's recommendation: A now, C next, B only if C proves insufficient — the shipped headroom (78,391 bytes) is already narrower than the regression it targets, so B's marginal value over A today is small relative to its queue cost, while C is the cheapest real tightening and points at where 38% of the mass sits.

Why this is a decision and not a seat's call

It sets how much friction CI imposes on every future PR, and B's failure mode lands on authors who did nothing wrong. Gate-strength policy is the maintainer's. ⛔ No seat should pick this.

Triage may re-grade the label; filing it in the decision inbox because the fork is already fully measured and there is nothing left to investigate before answering it.


Generated by Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions