Skip to content

Retire "walk, walked, walking" from functional-spec prose in favour of "scan" #324

Description

@vjovanov

What is missing

The functional spec still says walk, walked, walking where §FS-terms.terms.4 says scan. Sweep it, in one pull request that answers for this word and for nothing else.

  • Row: §FS-terms.terms.4 — "Displaces walk and walk root."

  • Size: 215 occurrences across 14 functional-spec file(s), 24 of them in a heading title. Measured at 4b2b647aaa. The raw grep -c is 303 and is not the number to plan from. Per file: FS-check.md (93), FS-config.md (60), FS-workspace.md (20), FS-fmt.md (17), FS-show.md (6), FS-errors.md (4), FS-init.md (3), FS-lsp.md (3), FS-cli.md (2), FS-cover.md (2), FS-id.md (2), FS-init-fixtures.md (1), FS-list.md (1), FS-output-shapes.md (1).

  • Carve-outs: The walk.rs module and the --walk-adjacent names stay. Read FS-config before rewriting it: the config-discovery sentence "walk up to a grund.toml" is about ascending the directory tree, which is not what a scan does — a scan reads a scope. 93 of the 215 are in FS-check.md and 60 in FS-config.md, so those two files carry two thirds of the work and probably two different senses. The compound walk root is a separate issue; do that one first or take it with this one, but say which.

  • Heading titles this renames:

    • FS-check.md:150: #### 1.3.1 The walk covers the whole config root
    • FS-check.md:154: #### 1.3.2 The wider walk reads a superset, each file once
    • FS-check.md:683: #### 3.14.3 Resolution sees the whole walk
    • FS-check.md:699: #### 3.14.7 A wider walk can fail wider
    • FS-check.md:992: #### 3.29.9 Every command that walks reports it, not check alone
    • FS-check.md:996: #### 3.29.10 Knowable only from the walk
    • FS-check.md:1000: #### 3.29.11 The scope is the walk the run already makes
    • FS-check.md:1004: #### 3.29.12 An unlisted block outside the walk is unreported
    • FS-check.md:1160: #### 4.7.2 Every command that walks says it, not just check``
    • FS-check.md:1268: #### 4.10.7 Every command that walks says it, and each block says it once
    • FS-config.md:1: # FS-config: grund reads a TOML config file found by walking up
    • FS-config.md:577: #### 3.4.7 scan — a place that is listed, not walked
    • FS-config.md:596: ##### 3.4.7.2 Not walked, however the walk arrives
    • FS-config.md:596: ##### 3.4.7.2 Not walked, however the walk arrives
    • FS-config.md:802: ### 3.5 [scan] — what gets walked
    • FS-config.md:842: ##### 3.5.2.1 The walk root keeps the path the run was handed
    • FS-config.md:854: #### 3.5.5 A link the walk cannot resolve is reported, and not walked into
    • FS-config.md:854: #### 3.5.5 A link the walk cannot resolve is reported, and not walked into
    • FS-config.md:866: #### 3.5.7 include is walked from the config root
    • FS-config.md:870: #### 3.5.8 Every configured kind home is walked
    • FS-config.md:874: #### 3.5.9 A walk root outruns every rule about descent
    • FS-config.md:878: #### 3.5.10 Why every home is walked
    • FS-fmt.md:74: ##### 2.3.1.1 A Python docstring is walked for its content
    • FS-workspace.md:1379: ### 8.8 Discovery follows grund check's walk-up

    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: B — bounded judgement: one dominant retired sense with a named carve-out to respect. Each occurrence is read, but the rule for reading it is stated above.

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions