raise the ceilings for a list of features, and say which kind of raise it is

core 2850 -> 3000, ext 2000 -> 3500, modules 6 -> 9.

ext was the binding one: 1975 of 2000, with syntax highlighting still to write,
so for that ceiling this is not anticipation but the difference between building
the next feature and not. The other two are bought ahead of a list of features
the human has signed for. DEPS_MAX 9 leaves room for chroma and its regexp2 —
which fill 6 exactly — plus two more.

Worth naming rather than glossing: a ceiling raised on evidence is a
measurement, and one raised on intent is a budget. The first two raises were the
first kind; this is the second, which is weaker. ADR-0041's test still stands —
if core approaches 3000 the question is again what belongs in ext, and the
answer is still feed.go and discover.go, waiting on a feature being able to own
a route.

Invariant 9 is measured by a number that has now moved three times. It says
something only because ext rose 75% where core rose 7%.

FILE_LOC_WARN and FUNC_LOC_WARN are untouched: they are about one file being
readable, and nothing about the plan changes that.
This commit is contained in:
Claude Opus 5
2026-08-02 00:09:01 +06:00
committed by bdeshi
parent f27193a036
commit 4c5bda98ab
3 changed files with 36 additions and 4 deletions
+20
View File
@@ -1224,3 +1224,23 @@ map where there was one map, and the bound is a constant rather than a setting,
thrash it has no knob. That is deliberate: a knob with one user is a knob nobody has asked for.
Revisit if: a real site evicts often enough to matter, which is a measurement and not a guess — and then the
question is the number, not the policy.
## ADR-0074 — The ceilings move for a list of features, not for one
Date: 2026-08-02 · Status: accepted (third raise of `CORE_LOC_MAX`, first of `EXT_LOC_MAX` and `DEPS_MAX`)
Decision: `CORE_LOC_MAX` 2850 → 3000, `EXT_LOC_MAX` 2000 → 3500, `DEPS_MAX` 6 → 9. `FILE_LOC_WARN` and
`FUNC_LOC_WARN` are unchanged, because they are about one file being readable and nothing about the plan
changes that.
Why: `ext` was the binding one at 1975 of 2000, with syntax highlighting still to write, so this is not
speculative for that ceiling — it is the difference between building the next feature and not. The other two
are anticipatory, and the human signed for them knowing a larger list of features is coming: `DEPS_MAX` 9
leaves room for chroma and its `regexp2` (which fills 6 exactly) plus two more, and core gets 150 lines for
the contract fields features keep needing. This is worth naming honestly: a ceiling raised on evidence is a
measurement, and a ceiling raised on intent is a budget. The first two raises were the first kind. This is the
second, which is weaker, and the mitigation is that ADR-0041's test still stands — if core approaches 3000,
the question is again what belongs in `ext`, and the answer is still `feed.go` and `discover.go` waiting on a
feature being able to own a route.
Consequence: cheap — the next several features fit without another conversation, which is the point of
budgeting ahead. Expensive — "core stops growing after Arc 2" (invariant 9) is measured by a number that has
now moved three times, and each move makes it a weaker claim. The two ceilings still say something only
because `ext` rose far more than core did: 75% against 7%.
Revisit if: core reaches 3000 — and then the answer is a route seam, not a fourth raise.