What is missing
The functional spec still says anchored at / anchors at where §FS-terms.terms.5 says is located at / located at. Sweep it, in one pull request that answers for this word and for nothing else.
-
Row: §FS-terms.terms.5 — "anchor — a Markdown heading fragment only. Findings are located: replace anchors at / anchored at with is located at / located at; rule facts are keyed."
-
Size: 32 occurrences across 7 functional-spec file(s), 1 of them in a heading title. Measured at 4b2b647aaa. The raw grep -c is 34 and is not the number to plan from. Per file: FS-check.md (20), FS-rules.md (4), FS-inline-citation-style.md (3), FS-config.md (2), FS-errors.md (1), FS-lsp.md (1), FS-workspace.md (1).
-
Carve-outs: anchor as a noun is kept* where it means a Markdown heading fragment — that is the whole point of the row. Only the verb phrase about where a finding sits is retired. Rule facts are keyed, not located, so a sentence about RuleFacts takes the third word rather than the second.
-
Heading titles this renames:
FS-check.md:1018: #### 3.29.15 Every frontend renders it, anchored at the block's [workspace] line
Each one invalidates every Markdown link fragment reaching it. grund fmt --write repairs them in the same change (§FS-fmt.6.3). No coordinate moves — no retired word appears in a named section handle — so every §ID.section citation still resolves.
-
Also in scope: whatever this change breaks, wherever it lives, including README.md (§FS-examples.4 → §REQ-readme.2). Prose in docs/architecture/, in a released changelog under docs/changelog/, and in the frozen GOAL, REQ and decision-record texts is not — those keep the words they have (§FS-terms, FS-terms.md:38-45); grund fmt --write still repairs their link fragments.
-
Claims: this word and nothing else. It makes no claim about any other retired word, and certifying the completeness of unchanged prose beyond it is not part of the review (§FS-terms, FS-terms.md:62-64).
-
Bucket: A — mechanical: a distinctive compound with no competing sense. A sed and a reading pass.
Why it belongs in this tool
§FS-terms is grund's own specification of what its words mean, and a grund spec that uses a word it retired is the drift that declaration exists to close. FS-terms.md:38-45 says a commissioned pass is a permitted way to pay this debt and that it answers for the words it names — this is one such pass, for one word.
Two things a reviewer should not mistake. grund check exits 0 over every stale link fragment a heading rename leaves behind — an anchor is not a coordinate — so "grund check is green, therefore nothing broke" is wrong here. grund fmt --check names them, --write repairs them, and lychee reports Cannot find fragment independently. And a raw grep -c overstates this sweep by roughly 3× overall (37× on ref), which is why the size above is the measured residual.
What you do today instead
Nothing: the word is retired on paper and stands in the prose. A reader who takes the cheap lead read of a section gets a word the shared vocabulary says is not the word, and has to open FS-terms to find that out — the second file §GOAL-token-economy.1 charges for, and the exact failure §FS-terms says it exists to close.
Worked example: PR #306 (point size → coordinate-size: 11 files, +20/−18, including the heading rename, the nine fragment repairs and README.md). Parent: #291.
What is missing
The functional spec still says anchored at / anchors at where §FS-terms.terms.5 says is located at / located at. Sweep it, in one pull request that answers for this word and for nothing else.
Row: §FS-terms.terms.5 — "anchor — a Markdown heading fragment only. Findings are located: replace anchors at / anchored at with is located at / located at; rule facts are keyed."
Size: 32 occurrences across 7 functional-spec file(s), 1 of them in a heading title. Measured at
4b2b647aaa. The rawgrep -cis 34 and is not the number to plan from. Per file:FS-check.md(20),FS-rules.md(4),FS-inline-citation-style.md(3),FS-config.md(2),FS-errors.md(1),FS-lsp.md(1),FS-workspace.md(1).Carve-outs: anchor as a noun is kept* where it means a Markdown heading fragment — that is the whole point of the row. Only the verb phrase about where a finding sits is retired. Rule facts are keyed, not located, so a sentence about
RuleFactstakes the third word rather than the second.Heading titles this renames:
FS-check.md:1018: #### 3.29.15 Every frontend renders it, anchored at the block's[workspace]lineEach one invalidates every Markdown link fragment reaching it.
grund fmt --writerepairs them in the same change (§FS-fmt.6.3). No coordinate moves — no retired word appears in a named section handle — so every§ID.sectioncitation still resolves.Also in scope: whatever this change breaks, wherever it lives, including
README.md(§FS-examples.4 → §REQ-readme.2). Prose indocs/architecture/, in a released changelog underdocs/changelog/, and in the frozen GOAL, REQ and decision-record texts is not — those keep the words they have (§FS-terms,FS-terms.md:38-45);grund fmt --writestill repairs their link fragments.Claims: this word and nothing else. It makes no claim about any other retired word, and certifying the completeness of unchanged prose beyond it is not part of the review (§FS-terms,
FS-terms.md:62-64).Bucket: A — mechanical: a distinctive compound with no competing sense. A
sedand a reading pass.Why it belongs in this tool
§FS-terms is
grund's own specification of what its words mean, and agrundspec that uses a word it retired is the drift that declaration exists to close.FS-terms.md:38-45says a commissioned pass is a permitted way to pay this debt and that it answers for the words it names — this is one such pass, for one word.Two things a reviewer should not mistake.
grund checkexits 0 over every stale link fragment a heading rename leaves behind — an anchor is not a coordinate — so "grund checkis green, therefore nothing broke" is wrong here.grund fmt --checknames them,--writerepairs them, andlycheereportsCannot find fragmentindependently. And a rawgrep -coverstates this sweep by roughly 3× overall (37× on ref), which is why the size above is the measured residual.What you do today instead
Nothing: the word is retired on paper and stands in the prose. A reader who takes the cheap lead read of a section gets a word the shared vocabulary says is not the word, and has to open
FS-termsto find that out — the second file §GOAL-token-economy.1 charges for, and the exact failure §FS-terms says it exists to close.Worked example: PR #306 (point size → coordinate-size: 11 files, +20/−18, including the heading rename, the nine fragment repairs and
README.md). Parent: #291.