Skip to content

docs(adr): correct three stale counts and anchor the ones that carry an argument - #808

Merged
CybotTM merged 2 commits into
mainfrom
docs/adr-stale-counts
Aug 18, 2026
Merged

docs(adr): correct three stale counts and anchor the ones that carry an argument#808
CybotTM merged 2 commits into
mainfrom
docs/adr-stale-counts

Conversation

@CybotTM

@CybotTM CybotTM commented Aug 18, 2026

Copy link
Copy Markdown
Member

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.

  • ADR-108's first mention needed no number and now has none: "Every other builtin ships text-parity …".
  • The two that need a magnitude keep one and gain the command that produces it, the way ADR-169:308 already does: `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_aitasks is now named as explicitly not part of the count. It is an nr_llm backend module parented to web on 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 setShortcutContext calls" 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 the main/ 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

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>
@CybotTM
CybotTM requested a review from a team as a code owner August 18, 2026 06:16
Copilot AI lite review requested due to automatic review settings August 18, 2026 06:16
@sonarqubecloud

Copy link
Copy Markdown

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@github-actions

Copy link
Copy Markdown
Contributor

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Aug 18, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval for maintainer PR

All automated quality gates passed. See SECURITY_CONTROLS.md for compensating controls.

@CybotTM

CybotTM commented Aug 18, 2026

Copy link
Copy Markdown
Member Author

Review record — no Copilot review exists for this diff (monthly, account-wide quota exhausted). What was checked:

Every count was re-derived against origin/main, not read from the issues. 46 builtin classes and 5 traits; 14 modules parented to nrllm plus nrllm_aitasks outside the tree. That mattered: my first pass measured against the main/ worktree, which was ten commits behind, and one claim in the sibling issue #793 turned out to be already fixed.

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.

nrllm_aitasks is named as explicitly not part of the fourteen, because folding it in is the obvious way for a later reader to "correct" the number in the wrong direction.

No decision changes: getDataClass() is still off the contract, and ADR-119 stays Accepted (deferred) with its Revisit section owning the placement question. No :Amended: field — a stale count inside an accepted record is an edit, not an amendment.

ADR suites pass (65 tests, exit 0); the three repo checks pass. No PHP is touched.

Merging on that basis.

@CybotTM
CybotTM added this pull request to the merge queue Aug 18, 2026
Merged via the queue into main with commit cf0db6f Aug 18, 2026
94 of 95 checks passed
@CybotTM
CybotTM deleted the docs/adr-stale-counts branch August 18, 2026 07:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ADR-108 and ADR-094 count 40/41 builtin tools; there are 46 ADR-119 counts twelve submodules; there are fourteen, plus one outside the tree

2 participants