docs(adr): correct three stale counts and anchor the ones that carry an argument - #808
Conversation
ADR-108 and ADR-094 both state the builtin count, and both were wrong by five. In ADR-094 the number is not colour: "covers all 41 builtins without 41 edits" is the reason the contract change was deferred, so a reader re-deriving that trade-off worked from the wrong denominator. ADR-108's first mention needed no number at all and now has none. The two that carry a magnitude keep one and gain the command that produces it, the way ADR-169 does: 46 today via `grep -l ToolInterface Classes/Service/Tool/Builtin/*.php | wc -l`, with 41 kept as what the record said when written. The second number in ADR-094's sentence was checked too, since correcting one and leaving the other is the defect this fixes: the seven explicit declarations are still exactly seven (`grep -l 'function getDataClass' Classes/Service/Tool/Builtin/*.php`). Neither decision changes. getDataClass() is still not on the contract, and 46 edits are still more than seven declarations. Closes #792 Signed-off-by: Sebastian Mendel <sebastian.mendel@netresearch.de>
The record enumerated twelve submodules; fourteen are parented to `nrllm`. The two it never named are use-case packs and MCP servers. The count is repeated three more times in the record and all four are corrected, with `grep -c "'parent' => 'nrllm'"` given as the source to re-derive rather than the sentence to trust. nrllm_aitasks is named explicitly as NOT part of the number. It is an nr_llm backend module parented to `web` on purpose (ADR-131), and the obvious way for a later reader to "fix" fourteen is to fold it in. The cost paragraph carried three more figures and every one had drifted: two setShortcutContext calls are 16, 33 references in 20 documentation files are 93 in 40, roughly 17 screenshots are 20. They are dropped rather than restated, because the record already discounts that argument — cost answers what it takes, not what is right. What they said is kept as history so the paragraph still reads as a record. The decision is untouched. ADR-119 stays Accepted (deferred) and its Revisit section still owns whether the modules move. Closes #791 Signed-off-by: Sebastian Mendel <sebastian.mendel@netresearch.de>
|
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
There was a problem hiding this comment.
Automated approval for maintainer PR
All automated quality gates passed. See SECURITY_CONTROLS.md for compensating controls.
|
Review record — no Copilot review exists for this diff (monthly, account-wide quota exhausted). What was checked: Every count was re-derived against The neighbour numbers were checked too, because correcting one and leaving the one beside it is the defect this PR is about. ADR-094's "seven explicit declarations" is still exactly seven. ADR-119's cost paragraph carried three more figures and all three had drifted — 2 calls are 16, 33 references in 20 files are 93 in 40, ~17 screenshots are 20; they are dropped rather than restated, because the record itself discounts that argument. Where a number carries an argument it is anchored, not just corrected — ADR-094's deferral rests on the ratio, so the grep that produces it stands next to it, the way ADR-169:308 already does.
No decision changes: ADR suites pass (65 tests, exit 0); the three repo checks pass. No PHP is touched. Merging on that basis. |



Two issues, one defect class: a record states a count, the thing counted grows, and nothing tells the record. Same shape as ADR-130 constraint 3, amended in #800.
#792 — the builtin-tool count
Classes/Service/Tool/Builtin/holds 46 classes and 5 traits. ADR-108 says "the other 40" and "all 41 builtins"; ADR-094 says "all 41 builtins without 41 edits".In ADR-094 the number is the cost argument, not decoration — it is the reason promoting
getDataClass()onto the contract was deferred — so a reader re-deriving that trade-off today works from the wrong denominator.`grep -l ToolInterface Classes/Service/Tool/Builtin/*.php | wc -l`→ 46. The 41 stays, marked as what the record said when it was written.The second number in the same ADR-094 sentence was checked too, because correcting one and leaving its neighbour is exactly the defect being fixed here. The seven explicit declarations are still exactly seven.
Neither decision changes:
getDataClass()is still not on the contract, and 46 edits are still more than seven declarations.#791 — the module inventory
ADR-119 opens with "twelve submodules". Fourteen are parented to
nrllm; the two it never named are use-case packs and MCP servers. The number is repeated three more times in the record and all four are corrected, with`grep -c "'parent' => 'nrllm'" Configuration/Backend/Modules.php`given as the thing to re-derive.nrllm_aitasksis now named as explicitly not part of the count. It is an nr_llm backend module parented towebon purpose (ADR-131, because the menu hides a child whose parent's access check fails), and folding it in is the obvious way for a later reader to "correct" fourteen in the wrong direction.Three more figures in that record had drifted and are only visible if you look, which is why they are in this PR: "two
setShortcutContextcalls" is 16, "33 references across 20 documentation files" is 93 across 40, "roughly 17 backend screenshots" is 20. They sit in the paragraph the record itself discounts — cost answers what it takes, not what is right — so they are dropped rather than maintained, with what they said kept as history.The decision is untouched. ADR-119 stays
Accepted (deferred)and its Revisit section still owns whether the modules move.Verification
Every count was re-derived against
origin/main, not read from the issues. That matters here: my first pass measured against themain/worktree, which was ten commits behind, and one claim in the sibling issue #793 turned out to be already fixed.Tests: the ADR suites pass (65 tests, exit 0) and the three repo checks pass. No PHP is touched and there is no CHANGELOG entry — these are corrections inside accepted records, not amendments, so no
:Amended:field and no second ADR.Closes #791, closes #792