Part of novox/hq ADR 0244 (the mesh in domains, one word per thing).
retired-words — the copy of the words the hq glossary retires for the tools' descriptions (its Not: words with no scope or (tools)). hq's words.py compares it with the glossary when given a checkout of this repository. Vendor words are never on it, so a wrapped program's own users, releases or hosts are never findings.
checks/words (Go, no dependencies), run first in merge-check.sh over every module: fails when any string literal in a module's own non-test code (descriptions, answer notes, errors), or any description in a manifest, uses a retired word. Comments are not read.
Reworded what it and review found: the forge module's pull request comment heading "Change plan" -> "Delivery plan"; the lab's run script "build machine" -> "builder"; and, by review since "the host" is retired in hq prose only (an SSH server's own word here), the docker, systemd, nftables and slack strings that meant the node-engine. Descriptions and messages only; no tool name changed. Tests that matched the old text updated.
Run: sh merge-check.sh with the touched modules — words pass; docker, systemd and slack Go tests pass; nftables remove.test.ts passes locally; gitea's TypeScript tests are not runnable here (as the check says). Merging rebuilds docker, systemd, slack, gitea, nftables and lab for a text change.
Part of novox/hq ADR 0244 (the mesh in domains, one word per thing).
- **`retired-words`** — the copy of the words the hq glossary retires for the tools' descriptions (its `Not:` words with no scope or `(tools)`). hq's `words.py` compares it with the glossary when given a checkout of this repository. Vendor words are never on it, so a wrapped program's own users, releases or hosts are never findings.
- **`checks/words`** (Go, no dependencies), run first in `merge-check.sh` over every module: fails when any string literal in a module's own non-test code (descriptions, answer notes, errors), or any `description` in a manifest, uses a retired word. Comments are not read.
- **Reworded** what it and review found: the forge module's pull request comment heading "Change plan" -> "Delivery plan"; the lab's run script "build machine" -> "builder"; and, by review since "the host" is retired in hq prose only (an SSH server's own word here), the docker, systemd, nftables and slack strings that meant the node-engine. Descriptions and messages only; no tool name changed. Tests that matched the old text updated.
Run: `sh merge-check.sh` with the touched modules — words pass; docker, systemd and slack Go tests pass; nftables `remove.test.ts` passes locally; gitea's TypeScript tests are not runnable here (as the check says). Merging rebuilds docker, systemd, slack, gitea, nftables and lab for a text change.
mesh/merge-gate pass: builds docker, gitea, lab, nftables, slack, systemd → ace, g14, novox, shanks; no bus step; 4 wait(s) for a person; every machine com…
An agent meets the mesh's words most often in tool descriptions, and
nothing compared them with the glossary: several still said "the host"
for the node-engine and the forge's pull request comment was headed
"Change plan", a word retired twice over. retired-words is the copy of
the words the glossary retires for the tools, and checks/words fails the
repository check when any string a module's code can show, or any
manifest description, uses one. Those found are reworded here.
ace: receives docker, systemd; waits for a person: nftables
g14: receives docker, slack, systemd; waits for a person: nftables
novox: receives docker, gitea, systemd; waits for a person: nftables
shanks: receives docker, lab, slack, systemd; waits for a person: nftables
gitea provides npm-package-registry, git: its consumers are sent again after it
gitea keeps data (ADR 0233): what it holds is backed up before it moves
lab keeps data (ADR 0233): what it holds is backed up before it moves
nftables waits for a person: its policy records (module)
Machines
docker on ace: passed — healthy 3 times over 2m19s
systemd on ace: passed — judged with docker: healthy 3 times over 2m19s
slack on g14: passed — healthy 3 times over 3m25s
gitea on novox: passed — healthy 3 times over 5m32s
lab on shanks: passed — healthy 3 times over 4m50s
docker on the rest running it: sent
slack on the rest running it: sent
systemd on the rest running it: sent
gitea on the rest running it: sent
lab on the rest running it: sent
Transitions
2026-10-07 18:02 (new) → proposed (announced): novox/mesh-catalog#111's head announced
2026-10-07 18:04 proposed → checked (checked): the verdict names this commit
2026-10-07 18:04 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
2026-10-07 18:24 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
2026-10-07 18:24 published → delivering (go): its walk started: let go by this owner in its group's order, by a person, or on the controller's own path
2026-10-07 18:37 delivering → delivered (done): its walk is done: every machine of its deploy plan passed, or was left as its policy says
The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.
<!-- mesh-delivery:view -->
**Delivery** `novox/mesh-catalog@73bb597c1622` — **delivered** since 2026-10-07T18:37:55Z
**Delivery plan** — builds docker, gitea, lab, nftables, slack, systemd → ace, g14, novox, shanks; no bus step; 4 wait(s) for a person
- tier 0: docker, gitea, lab, nftables, slack, systemd
- ace: receives docker, systemd; waits for a person: nftables
- g14: receives docker, slack, systemd; waits for a person: nftables
- novox: receives docker, gitea, systemd; waits for a person: nftables
- shanks: receives docker, lab, slack, systemd; waits for a person: nftables
- gitea provides npm-package-registry, git: its consumers are sent again after it
- gitea keeps data (ADR 0233): what it holds is backed up before it moves
- lab keeps data (ADR 0233): what it holds is backed up before it moves
- nftables waits for a person: its policy records (module)
**Machines**
- docker on ace: passed — healthy 3 times over 2m19s
- systemd on ace: passed — judged with docker: healthy 3 times over 2m19s
- slack on g14: passed — healthy 3 times over 3m25s
- gitea on novox: passed — healthy 3 times over 5m32s
- lab on shanks: passed — healthy 3 times over 4m50s
- docker on the rest running it: sent
- slack on the rest running it: sent
- systemd on the rest running it: sent
- gitea on the rest running it: sent
- lab on the rest running it: sent
**Transitions**
- 2026-10-07 18:02 (new) → proposed (announced): novox/mesh-catalog#111's head announced
- 2026-10-07 18:04 proposed → checked (checked): the verdict names this commit
- 2026-10-07 18:04 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
- 2026-10-07 18:24 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
- 2026-10-07 18:24 published → delivering (go): its walk started: let go by this owner in its group's order, by a person, or on the controller's own path
- 2026-10-07 18:37 delivering → delivered (done): its walk is done: every machine of its deploy plan passed, or was left as its policy says
The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: docker, gitea, lab, nftables, slack, systemd)
mesh/repo-check: PASS — its merge-check.sh passed
Change plan — builds docker, gitea, lab, nftables, slack, systemd → ace, g14, novox, shanks; no bus step; 4 wait(s) for a person
ace: receives docker, systemd; waits for a person: nftables
g14: receives docker, slack, systemd; waits for a person: nftables
novox: receives docker, gitea, systemd; waits for a person: nftables
shanks: receives docker, lab, slack, systemd; waits for a person: nftables
gitea provides npm-package-registry, git: its consumers are sent again after it
gitea keeps data (ADR 0233): what it holds is backed up before it moves
lab keeps data (ADR 0233): what it holds is backed up before it moves
nftables waits for a person: its policy records (module)
read by no module's build: checks/words/go.mod, checks/words/main.go, merge-check.sh, retired-words
Run by the build seat on shanks as build-1791396168542678342 (builds --log build-1791396168542678342).
--- the gate: docker, gitea, lab, nftables, slack, systemd
docker: ok, 20 tool(s); WARNING: socket, runtime, prune stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
gitea: ok, keeps data (valuable); WARNING: server stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
lab: ok, keeps work (cache)
nftables: ok, 1 tool(s); WARNING: load stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
slack: ok, 4 tool(s)
systemd: ok, 1 tool(s)
long-running resources without health: 5
6 manifest(s) checked. Judged against the seats this binary carries; a claim on one of the mesh's own seats is judged fully at registration, and a seat declared by a module not given here reads as unknown. Identities judged on a 6-character machine name, against the bounds of the providers given here
judging 3 module(s) changed against 4 machine(s), as the snapshot of 2026-10-07T18:01:12Z says they run
composing every machine as the mesh is
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
composing every machine with the change
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
merge gate: PASS — every machine composes with the change as it did without (4 of 4 compose)
judged by controller development build against the facts of 2026-10-07T18:01:12Z
modules the change moves:
- gitea (changed)
- lab (changed)
- nftables (changed)
machines:
- a machine (f35): composes
- holds mesh-dns-resolver (idt): composes
- holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes
- a machine (yvbpsm): composes
a merge would rebuild 6 module(s) in 1 tier(s): docker, gitea, lab, nftables, slack, systemd
notes:
- checks/words/go.mod, checks/words/main.go, merge-check.sh and retired-words read by no module's build, and rebuild nothing (issue 280)
--- its merge-check.sh (go toolchain)
words: 12 retired words, none in the 26554 strings of 503 files
long-running resources without health: 70, as kept
testing modules/docker
ok docker/cmd/docker-tools 1.026s
NOT TESTED HERE: modules/gitea is TypeScript; the gate judges its manifest
NOT TESTED HERE: modules/lab is TypeScript; the gate judges its manifest
NOT TESTED HERE: modules/nftables is TypeScript; the gate judges its manifest
testing modules/slack
ok slack/cmd/slack-tools 1.273s
testing modules/systemd
ok systemd-tools/cmd/systemd-tools 1.010s
**Merge check** at `73bb597c`
- `mesh/merge-gate`: **PASS** — every machine composes with the change as it did without (4 of 4 compose) (modules: docker, gitea, lab, nftables, slack, systemd)
- `mesh/repo-check`: **PASS** — its merge-check.sh passed
**Change plan** — builds docker, gitea, lab, nftables, slack, systemd → ace, g14, novox, shanks; no bus step; 4 wait(s) for a person
- tier 0: docker, gitea, lab, nftables, slack, systemd
- ace: receives docker, systemd; waits for a person: nftables
- g14: receives docker, slack, systemd; waits for a person: nftables
- novox: receives docker, gitea, systemd; waits for a person: nftables
- shanks: receives docker, lab, slack, systemd; waits for a person: nftables
- gitea provides npm-package-registry, git: its consumers are sent again after it
- gitea keeps data (ADR 0233): what it holds is backed up before it moves
- lab keeps data (ADR 0233): what it holds is backed up before it moves
- nftables waits for a person: its policy records (module)
- read by no module's build: checks/words/go.mod, checks/words/main.go, merge-check.sh, retired-words
Run by the build seat on shanks as `build-1791396168542678342` (`builds --log build-1791396168542678342`).
```
--- the gate: docker, gitea, lab, nftables, slack, systemd
docker: ok, 20 tool(s); WARNING: socket, runtime, prune stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
gitea: ok, keeps data (valuable); WARNING: server stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
lab: ok, keeps work (cache)
nftables: ok, 1 tool(s); WARNING: load stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
slack: ok, 4 tool(s)
systemd: ok, 1 tool(s)
long-running resources without health: 5
6 manifest(s) checked. Judged against the seats this binary carries; a claim on one of the mesh's own seats is judged fully at registration, and a seat declared by a module not given here reads as unknown. Identities judged on a 6-character machine name, against the bounds of the providers given here
judging 3 module(s) changed against 4 machine(s), as the snapshot of 2026-10-07T18:01:12Z says they run
composing every machine as the mesh is
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
composing every machine with the change
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
merge gate: PASS — every machine composes with the change as it did without (4 of 4 compose)
judged by controller development build against the facts of 2026-10-07T18:01:12Z
modules the change moves:
- gitea (changed)
- lab (changed)
- nftables (changed)
machines:
- a machine (f35): composes
- holds mesh-dns-resolver (idt): composes
- holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes
- a machine (yvbpsm): composes
a merge would rebuild 6 module(s) in 1 tier(s): docker, gitea, lab, nftables, slack, systemd
notes:
- checks/words/go.mod, checks/words/main.go, merge-check.sh and retired-words read by no module's build, and rebuild nothing (issue 280)
--- its merge-check.sh (go toolchain)
words: 12 retired words, none in the 26554 strings of 503 files
long-running resources without health: 70, as kept
testing modules/docker
ok docker/cmd/docker-tools 1.026s
NOT TESTED HERE: modules/gitea is TypeScript; the gate judges its manifest
NOT TESTED HERE: modules/lab is TypeScript; the gate judges its manifest
NOT TESTED HERE: modules/nftables is TypeScript; the gate judges its manifest
testing modules/slack
ok slack/cmd/slack-tools 1.273s
testing modules/systemd
ok systemd-tools/cmd/systemd-tools 1.010s
```
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Part of novox/hq ADR 0244 (the mesh in domains, one word per thing).
retired-words— the copy of the words the hq glossary retires for the tools' descriptions (itsNot:words with no scope or(tools)). hq'swords.pycompares it with the glossary when given a checkout of this repository. Vendor words are never on it, so a wrapped program's own users, releases or hosts are never findings.checks/words(Go, no dependencies), run first inmerge-check.shover every module: fails when any string literal in a module's own non-test code (descriptions, answer notes, errors), or anydescriptionin a manifest, uses a retired word. Comments are not read.Run:
sh merge-check.shwith the touched modules — words pass; docker, systemd and slack Go tests pass; nftablesremove.test.tspasses locally; gitea's TypeScript tests are not runnable here (as the check says). Merging rebuilds docker, systemd, slack, gitea, nftables and lab for a text change.Delivery
novox/mesh-catalog@73bb597c1622— delivered since 2026-10-07T18:37:55ZDelivery plan — builds docker, gitea, lab, nftables, slack, systemd → ace, g14, novox, shanks; no bus step; 4 wait(s) for a person
Machines
Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.Merge check at
73bb597cmesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: docker, gitea, lab, nftables, slack, systemd)mesh/repo-check: PASS — its merge-check.sh passedChange plan — builds docker, gitea, lab, nftables, slack, systemd → ace, g14, novox, shanks; no bus step; 4 wait(s) for a person
Run by the build seat on shanks as
build-1791396168542678342(builds --log build-1791396168542678342).