Drop the lint scan for fixed names and keep "no part fixes a name" as a guideline the code review reads

The operator, 2026-11-11: the scan was a flaky check, and the rule is a guideline, not a decision. The names
G's own work removes are removed by its subtasks; the exemption line and the scan's checks go with it.

Claude-Session: https://claude.ai/code/session_01JG73KK8HD1gufnqyFxMFdW
This commit is contained in:
2026-11-11 02:06:46 +01:00
parent 27c9c6f11f
commit 9bcd0ad197
5 changed files with 25 additions and 27 deletions
@@ -1622,7 +1622,7 @@ list:
that group's own heads, read from the check's record (ADR 0644, How it is checked), and no member of it was
delivered ahead of it.
27. **A new acting part needs no code elsewhere.** A fixture seat declaring a rule, with a fixture holder, gets its
edges with no code change elsewhere, and a search of the delivery parts' code finds no other module's name.
edges with no code change elsewhere; the code review reads that no delivery part's code names another module.
28. **Waits stay within their step.** A cycle among waits within one step is refused; an acting part acting on
itself, and two acting parts acting on each other in different steps, pass.
29. **A failed acting part leaves the mesh on what runs.** A build module whose new build fails, and one whose wait
@@ -1820,9 +1820,8 @@ milestone with more tests than it starts with (research 085, Direction, One mile
prerequisite; with one member passed and another still running no want is written until `group-ended` (whole,
indexer, gate, runner and assigner, mesh-delivery and mesh-catalog; live).
68. **R6, modules, never repositories.** A module whose watched branch is `beta` on one machine is delivered from it
there only; the lint step refuses a module, branch or repository name in a string, a constant or a table, and not
an import path (whole, assigner, mesh-delivery; unit, the Go build module's lint, mesh-catalog; live, a search of the
delivery parts' code).
there only (whole, assigner, mesh-delivery); the code review reads that no part fixes a module, branch or repository
name in its code, a guideline (design 47 G §7).
69. **R7, any size.** Values of one, ten and a hundred times the bus's per-value limit are stored, sent as a verb's reply
and as an event, and read back whole by a caller the sender's seat definition names and a consumer declaring its
event, and refused to a module that declares neither (whole, mesh-sdk, against the real bus).
@@ -92,10 +92,12 @@ check and deliver milestone G itself (ADR 0667 §2); each of them says so in a l
list when it is removed (*How milestone G itself is checked and delivered*). A registration holds no foundation
value. How it is checked: a unit test of the manifest validator refuses a template in the manifest of every part on
its list, the runner's included, and judges every other part's manifest as any part's.
- §7 **No part fixes a name.** Every branch, repository and module name a part needs is read from the registrations and the
catalog graph; the lint step refuses such a name in a string, a constant or a table of code logic, a Go import path
not being code logic (ADR 0666 §5). About 39 such names in 9 parts were found on 2026-11-09 (research 086, Findings);
milestone G removes them.
- §7 **No part fixes a name: a guideline the code review reads.** Every branch, repository and module name a part
needs is read from the registrations and the catalog graph, never fixed in its code. This is a guideline, not a
step: the code review reads it, and no lint step scans for names (the operator, 2026-11-11 about 00:05 CET: the scan was a flaky check; where
guidelines live is research 087's). It departs from ADR 0666 §5's refusal by the lint step, by the operator's choice,
and a later record brings it in line. The names G's own work removes (about 39 in 9 parts, found on 2026-11-09,
research 086, Findings) are removed by its subtasks, each naming the name it removes.
- §8 **The first registrations are one ask.** At its first start on G's build the indexer, holding no registration,
proposes one registration for every module its trunk revision holds, from what it took in (the origin and path of
each), its watched branch the repository's default branch read through the seat `git`, and the statuses the check
@@ -123,8 +125,7 @@ check and deliver milestone G itself (ADR 0667 §2); each of them says so in a l
the warrant writes nothing, and a declined one writes nothing; a change from `required` to `bypass` asks, showing
that line; `registration-changed` is said and `registrations` answers the history; the first start proposes the seed
as one ask, and `indexer_seed_again` asks it again after a Decline and after an expiry; a policy making code review
`required` is refused. Unit (the Go build module's lint step): a module name in a string, a constant and a table is
refused, an import path is not. Tests 75, 68 and 83.
`required` is refused. Tests 75, 68 and 83.
### Watched branches and the catalog graph per branch
@@ -197,7 +197,8 @@ names go, since every new acting part needed code changes elsewhere (research 08
(graph): an acting part acting on itself, two acting parts acting on each other in different steps, and a cycle
through a build module's edge each pass the cycle check, each new version first in its own step; a cycle among
waits within one step is refused. Unit (assigner): the Approve ask of a change that adds an acting rule, and of one
that widens one, names the rule. Live: a search of the delivery parts' code finds no other module's name.
that widens one, names the rule. The code review reads that no delivery part's code names
another module (§7).
## Nothing merges into a repository under check: removed
@@ -201,7 +201,7 @@ events are subscribed to): a new event of the seat `knowledge-base` would be a s
after the first pipeline after G's delivery has delivered a change end to end and on the operator's one word, its
buckets through `drop` after a snapshot whose restore is tested (ADR 0667 §12); the bundle of steps run before a merge; the Approve per
merge, the milestone ask and its three events, and the gate's merges; the gate's merge states, one key per pull request and its verbs `table`, `recheck` and
`close`; the trunk-only want; `source.main`, for one source revision per watched branch; every fixed branch,
repository and module name in code logic; the recovery merge verb this design sketched, never built; and the holders'
`close`; the trunk-only want; `source.main`, for one source revision per watched branch; the fixed branch,
repository and module names G's subtasks remove (§7); the recovery merge verb this design sketched, never built; and the holders'
trusted `callers` values, for the seat definitions' `callers`. The words **merge check**, **try**, **trunk commit**
and **merge turn** go to *Not:* lines with the as-is update after that delivery, as the glossary's entries say.
+11 -14
View File
@@ -71,16 +71,13 @@ record it follows from, and replaces the builder's own choice where one was made
build modules import; none keeps a copy. Why: code shared between modules lives in an SDK, and the delivery
domain's shared code is `mesh-delivery-sdk`'s (ADR 0635 §4); the copies were met in develop. How it is checked: a
search of the three build modules finds no fetch, release or step-run function of their own.
- §328 **Lint per language.** Go's lint step is the Go build module's linter with the fixed-names rule; TypeScript's is the
type-check with the fixed-names rule; an image's lint is the fixed-names rule over its build files;
an image has no unit or integration test step, so `steps` answers none for it and the seed has those `bypass`
(*A module's registration*). Why: ADR 0666 §5 has the lint step refuse fixed names in every language, and §7 lets a
build seat answer only the steps an artifact can run. How it is checked: whole (TypeScript and image build modules),
a fixture naming a module in code fails lint.
- §329 **What the fixed-names rule exempts.** It exempts a Go import path, a comment and a test file (`_test.go`,
`*.test.ts`), never a struct tag or any other string of code. Why: none of the three is code logic (ADR 0666 §5),
and a test fixture names modules. How it is checked: unit (lint rule), a name in a comment and in a test file
passes, in a struct tag fails.
- §328 **Lint per language.** Go's lint step is the Go build module's linter; TypeScript's is the type-check; an image
has no lint, unit or integration test step, so `steps` answers none for it and the seed has those `bypass` (*A
module's registration*). No lint step scans for module, branch or repository names (§7). Why: ADR 0666 §7 lets a
build seat answer only the steps an artifact can run; the scan's removal is the operator, 2026-11-11 about 00:05 CET. How it is checked: whole
(TypeScript and image build modules), `steps` answers the type-check for a TypeScript artifact and nothing for an
image.
- §329 **Withdrawn.** It named what the fixed-names scan exempted; the scan goes (§7, the operator, 2026-11-11 about 00:05 CET).
- §330 **The runner's own kept data age by its own deletes, in the step log's order.** The runner deletes its own
`pipelines` keys, `kept` entries and `step-outputs` objects by the retentions of *The runner's kept data*. It keeps,
in its old `state` section `aged`, three step-log sequences, one per retention (7, 30 and 90 days), each the last
@@ -121,8 +118,8 @@ record it follows from, and replaces the builder's own choice where one was made
fixtures.
- §333 **The runner hears the indexer's own event.** The runner's manifest `consumes` the indexer's own event
`take-in.taken` (ADR 0666 §13), which ADR 0596 §1 lets any module subscribe to; the indexer's name stands in that
manifest only, never in the runner's code. Why: ADR 0666 §13, in force, names that event. How it is checked: a search
of the runner's code finds no module name (lint).
manifest only, never in the runner's code. Why: ADR 0666 §13, in force, names that event. How it is checked: the code review
reads that no module name stands in the runner's code (§7).
- §334 **A publication's pipelines and their key.** `package-published` carries the package's artifact reference
(`<module>:<artifact>`, from the catalog entry), its version and digest, the watched branch and the source revision
its build was made from. The runner reads the dependents from that revision's catalog graph, the artifacts with a
@@ -287,14 +284,14 @@ record it follows from, and replaces the builder's own choice where one was made
- §364 **The node-engine claims its seat.** The node-engine's manifest claims the node seat `node-engine` (ADR 0563), and
the indexer and the node-engine's own guard read its holder from the seat list, keeping no module name. How it is
checked: lint finds no module name in either.
checked: the code review reads that neither fixes a module name (§7).
- §365 **The condition keeper reads its sources from the catalog.** The catalog graph entry carries each kept data a
manifest declares (its name and its section or template); the keeper takes a first view of the catalog half and
reads a module's `findings` wherever its entry declares a state `findings`, and the node-engine's holder from the
seat list. It joins the readers of *Every other reader of which modules exist*, reading every watched branch's newest catalog
revision, so a module watched on any branch is a source. A condition of a module that is in no branch's revision is
cleared, said with the reason `module left the catalog`. Before its first view the keeper keeps raising from the
sources it held, and says `view-waits` after five minutes (*A part with no view says it waits*). Why: no fixed names (ADR 0666 §5),
sources it held, and says `view-waits` after five minutes (*A part with no view says it waits*). Why: no part fixes a name (§7),
and the keeper reads findings (ADR 0564 §2). How it is checked: whole (keeper), a fixture module declaring `findings`
is read with no code change.