This member. The checker's rules move into the package rules (levels, failure words, manifests, compiled programs, composition, the module graph's cycles from its edges) and the command mesh-checking-program (-seats, -verdict). The running checker gathers facts and asks the program built at the group's mesh-delivery head, else the trunk; the seat list goes to the manifest validator and the composer; JudgedBy is recorded and read by checker_verdicts and checker_pull. The input is kept in the checker's own state inputs (a day) and served by the seat verb input. A run ask unbegun is put again after 5 minutes and fails the check after 5 more (MESH_CHECKER_BEGIN_BOUND); a program that does not build or answer fails the check naming it; a failed seat list ends the check. The indexer's seat-file reading moves into the sibling module seatfiles, the one reading the indexer and the checker share. Facts measured: about 7.7 KB per member (was 78 KB for levels alone), against 256 KiB. Unit 791 (was 804), integration 71 (checker 8). The manifest validator at this head accepts the changed manifest in both cases.
Milestone 47/B0 (ADR 0644: the delivery's own parts checked and delivered by their own change, its one delivery first; issue 1921; design 47, row B0). A delivery group of four, pushed together: mesh-sdk, mesh-delivery, mesh-catalog, hq, each on its B0 branch.
The verb went first, alone. The first check of this group (2026-11-07 00:17) failed: gofmt on the checker's integration test (fixed in 35b800aa), and the composition held mesh-build-go and mesh-delivery-checker because the running manifest validator did not yet know the checker seat's verb input. That verb was released alone in mesh-sdk #171 (merged 2026-11-07 00:04 UTC); the indexer now accepts both manifests. This bends the milestone's "one delivery" rule, said to the operator.
The ordering window (said, as ruling Q5 asks). mesh-build-go invokes the checker's new verb input, so the module graph delivers mesh-delivery-checker first. Until the new mesh-build-go reaches a build node, a check's run ask to an old build module is dropped; the checker puts it again after 5 minutes and fails the check after 5 more, naming the missing job run. Loud, never silent; milestone G's acting rule for the build step closes it.
Review. One review of all four members (hq playbook 07, three rounds), by mesh-code-reviewer: round 1 found four faults (heads not read-only, facts too large, the design not as built, the milestone file), round 2 approved the three code members and traced which manifest validator judges the two changed manifests in this check (cmd/mesh-judge built at this group's mesh-delivery head with its mesh-sdk head: accepts) and at the take-in (the indexer built at the merged revision: accepts), round 3 approved hq. The seams-and-tools review's three musts on the prepare are met in the code (read by round 1). The operator chose the checker verb for the input (ADR 0596 §2) on 2026-11-06.
Tests. Every new row fails with its effect taken out. Integration rows were run once locally against an embedded bus, as playbook 07 allows: the checker's 8, mesh-build-go's new bus row under real bubblewrap.
**This member.** The checker's rules move into the package `rules` (levels, failure words, manifests, compiled programs, composition, the module graph's cycles from its edges) and the command `mesh-checking-program` (`-seats`, `-verdict`). The running checker gathers facts and asks the program built at the group's mesh-delivery head, else the trunk; the seat list goes to the manifest validator and the composer; `JudgedBy` is recorded and read by `checker_verdicts` and `checker_pull`. The input is kept in the checker's own state `inputs` (a day) and served by the seat verb `input`. A `run` ask unbegun is put again after 5 minutes and fails the check after 5 more (`MESH_CHECKER_BEGIN_BOUND`); a program that does not build or answer fails the check naming it; a failed seat list ends the check. The indexer's seat-file reading moves into the sibling module `seatfiles`, the one reading the indexer and the checker share. Facts measured: about 7.7 KB per member (was 78 KB for levels alone), against 256 KiB. Unit 791 (was 804), integration 71 (checker 8). The manifest validator at this head accepts the changed manifest in both cases.
Milestone 47/B0 (ADR 0644: the delivery's own parts checked and delivered by their own change, its one delivery first; issue 1921; design 47, row B0). A delivery group of four, pushed together: mesh-sdk, mesh-delivery, mesh-catalog, hq, each on its B0 branch.
**The verb went first, alone.** The first check of this group (2026-11-07 00:17) failed: gofmt on the checker's integration test (fixed in 35b800aa), and the composition held mesh-build-go and mesh-delivery-checker because the running manifest validator did not yet know the checker seat's verb `input`. That verb was released alone in mesh-sdk #171 (merged 2026-11-07 00:04 UTC); the indexer now accepts both manifests. This bends the milestone's "one delivery" rule, said to the operator.
**The ordering window (said, as ruling Q5 asks).** mesh-build-go invokes the checker's new verb `input`, so the module graph delivers mesh-delivery-checker first. Until the new mesh-build-go reaches a build node, a check's `run` ask to an old build module is dropped; the checker puts it again after 5 minutes and fails the check after 5 more, naming the missing job `run`. Loud, never silent; milestone G's acting rule for the build step closes it.
**Review.** One review of all four members (hq playbook 07, three rounds), by mesh-code-reviewer: round 1 found four faults (heads not read-only, facts too large, the design not as built, the milestone file), round 2 approved the three code members and traced which manifest validator judges the two changed manifests in this check (cmd/mesh-judge built at this group's mesh-delivery head with its mesh-sdk head: accepts) and at the take-in (the indexer built at the merged revision: accepts), round 3 approved hq. The seams-and-tools review's three musts on the prepare are met in the code (read by round 1). The operator chose the checker verb for the input (ADR 0596 §2) on 2026-11-06.
**Tests.** Every new row fails with its effect taken out. Integration rows were run once locally against an embedded bus, as playbook 07 allows: the checker's 8, mesh-build-go's new bus row under real bubblewrap.
Reviewed-by: b0-review@shanks at 35b800aaef684bdbca8b9894bad3c7a0eb837a11
https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
The checking program judges a check from its facts (milestone 47/B0,
ADR 0644, ADR 0656): the rules package holds Facts v1, the level rule,
the failure words and the verdict's outcome, and the running checker
records each level answer as a fact and calls the rules. A row of the
every-failure tests judges the gathered facts and finds the running
checker's verdict.
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
mesh-checking-program -verdict reads the facts from the file the build
seat's run step names, judges them with the rules package and answers
one versioned line; facts of a version it does not read are refused,
naming it, because the running checker of B0 runs G's programs
(milestone 47/B0, ADR 0644, ADR 0656).
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
The running checker records each failure where it is met and the node of each step it reads; the verdict is
rules.Judge of those facts, so the checking program, given the same facts, gives the same verdict. Its own
second outcome and its node set are gone.
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
The running checker records the manifest validator's cases, each fetch's programs and the engines' answers as facts,
and the rules package judges them, with the notes it gives a reader, so the checking program judges every rule the
running checker judged. The module graph's cycle stays with the asking: its facts are whole manifests, over a run's
input bound; G's program reads them from the heads.
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
Every asking function only records what it met; the one verdict is the rules' of the facts, so nothing in the
running checker judges beside the checking program.
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
Asked -seats, it reads every seat definition the heads carry, resolves the parts it includes and answers the list
with what it left out and why, so the running checker hands the manifest validator and the composer a list it does not
read itself (ADR 0636 §4, ADR 0644 §1).
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
The checking program's seat list parsed the definition format a second time beside the
indexer's judge. The indexer's reading moves whole into its own sibling module seatfiles
(a domain path, as takein), with ResolveRaw keeping every field as written for a request's
seats; the judge and the take-in read through it, and the checker's rules only find the
definitions and say why one is left out (the lead's ruling on D3, ADR 0634 §1).
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
The running checker asks the checking program twice on the build seat's job run: first the
heads' seat list, which the manifest validator's requests (change and trunk) and the
node-engine composer's carry; then the verdict of the facts it gathered. The program is built
at the group's mesh-delivery head, else at mesh-delivery's trunk, and its input is kept in the
checker's new state inputs as the exact bytes of its digest, read with checker_inputs. A run
ask no build node begins within 5 minutes is put once more, then fails the check naming the
job; a program that does not build or answer fails the check naming it, and the verdict
records who judged it (JudgedBy). A second step-seen hook on a context is added to the
first, so a try still sees its steps.
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
The fake build module of the integration tests answers a run ask with the checking program's
work over the input kept in the state inputs, as mesh-build-go does; the whole-module test
reads that the verdict names the program built at the group's mesh-delivery head, and the
keeps test reads inputs as readable.
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
A level's digest, unmet packages, kept packages' names and test packages are read by no rule: a mesh-catalog check
step's two levels were 78682 bytes as facts and are 4506. A build node with no job run held a check four begin bounds;
it now holds it two.
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
ADR 0656 §5 has every check judged by parts built from the change's heads, and no record keeps the cycle rule in the
running checker. The facts carry each ordering edge's two modules and kind, never manifests: the whole catalogue's
graph is 50 edges, 3195 bytes.
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
The operator's answer: mesh-build-go reading the checker's state inputs broke ADR 0596 §2. The run ask's input now names
the verb seat:mesh-delivery-checker.input; the checker's tools serve it from the state inputs (Reader.Input, checked
against its digest), and the state is the checker's own again, read by no other module.
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
Deliverynovox/mesh-delivery@35b800aaef68 — merged since 2026-11-07T00:32:52Z
Source — source.main moved to novox/mesh-delivery@bab05c66b3. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
composed together: pass — the checker's verdict at the members' heads (ee1c71a7e59b)
Transitions
2026-11-07 00:10 (new) → proposed (announced): novox/mesh-delivery#162's head announced
2026-11-07 00:10 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false)
2026-11-07 00:32 ready → merged (merged): on the trunk its modules follow: merged there
The commit's note under refs/notes/mesh-plan keeps every transition of this change up to its merge: git log --notes=mesh-plan.
<!-- mesh-delivery:view -->
**Delivery** `novox/mesh-delivery@35b800aaef68` — **merged** since 2026-11-07T00:32:52Z
**Source** — source.main moved to novox/mesh-delivery@bab05c66b3cb. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Group** `feat/b0-checking-program`: novox/hq@ec714857556d, novox/mesh-catalog@c8bcb2cdf567, novox/mesh-delivery@35b800aaef68, novox/mesh-sdk@1b073c23c2a5
- composed together: pass — the checker's verdict at the members' heads (ee1c71a7e59b)
**Transitions**
- 2026-11-07 00:10 (new) → proposed (announced): novox/mesh-delivery#162's head announced
- 2026-11-07 00:10 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false)
- 2026-11-07 00:32 ready → merged (merged): on the trunk its modules follow: merged there
The commit's note under `refs/notes/mesh-plan` keeps every transition of this change up to its merge: `git log --notes=mesh-plan`.
mesh-delivery: not merged. The merge of this pull request into main at 9c9ed7a1d8 was declined: the operator, via telegram (user id verified), chose Decline. A new head asks the operator again.
mesh-delivery: **not merged.** The merge of this pull request into main at 9c9ed7a1d8f11b5f7e2449fd2b123bade5ae9b16 was declined: the operator, via telegram (user id verified), chose Decline. A new head asks the operator again.
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.
This member. The checker's rules move into the package
rules(levels, failure words, manifests, compiled programs, composition, the module graph's cycles from its edges) and the commandmesh-checking-program(-seats,-verdict). The running checker gathers facts and asks the program built at the group's mesh-delivery head, else the trunk; the seat list goes to the manifest validator and the composer;JudgedByis recorded and read bychecker_verdictsandchecker_pull. The input is kept in the checker's own stateinputs(a day) and served by the seat verbinput. Arunask unbegun is put again after 5 minutes and fails the check after 5 more (MESH_CHECKER_BEGIN_BOUND); a program that does not build or answer fails the check naming it; a failed seat list ends the check. The indexer's seat-file reading moves into the sibling moduleseatfiles, the one reading the indexer and the checker share. Facts measured: about 7.7 KB per member (was 78 KB for levels alone), against 256 KiB. Unit 791 (was 804), integration 71 (checker 8). The manifest validator at this head accepts the changed manifest in both cases.Milestone 47/B0 (ADR 0644: the delivery's own parts checked and delivered by their own change, its one delivery first; issue 1921; design 47, row B0). A delivery group of four, pushed together: mesh-sdk, mesh-delivery, mesh-catalog, hq, each on its B0 branch.
The verb went first, alone. The first check of this group (2026-11-07 00:17) failed: gofmt on the checker's integration test (fixed in
35b800aa), and the composition held mesh-build-go and mesh-delivery-checker because the running manifest validator did not yet know the checker seat's verbinput. That verb was released alone in mesh-sdk #171 (merged 2026-11-07 00:04 UTC); the indexer now accepts both manifests. This bends the milestone's "one delivery" rule, said to the operator.The ordering window (said, as ruling Q5 asks). mesh-build-go invokes the checker's new verb
input, so the module graph delivers mesh-delivery-checker first. Until the new mesh-build-go reaches a build node, a check'srunask to an old build module is dropped; the checker puts it again after 5 minutes and fails the check after 5 more, naming the missing jobrun. Loud, never silent; milestone G's acting rule for the build step closes it.Review. One review of all four members (hq playbook 07, three rounds), by mesh-code-reviewer: round 1 found four faults (heads not read-only, facts too large, the design not as built, the milestone file), round 2 approved the three code members and traced which manifest validator judges the two changed manifests in this check (cmd/mesh-judge built at this group's mesh-delivery head with its mesh-sdk head: accepts) and at the take-in (the indexer built at the merged revision: accepts), round 3 approved hq. The seams-and-tools review's three musts on the prepare are met in the code (read by round 1). The operator chose the checker verb for the input (ADR 0596 §2) on 2026-11-06.
Tests. Every new row fails with its effect taken out. Integration rows were run once locally against an embedded bus, as playbook 07 allows: the checker's 8, mesh-build-go's new bus row under real bubblewrap.
Reviewed-by: b0-review@shanks at
35b800aaefhttps://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
Delivery
novox/mesh-delivery@35b800aaef68— merged since 2026-11-07T00:32:52ZSource — source.main moved to novox/mesh-delivery@bab05c66b3. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Group
feat/b0-checking-program: novox/hq@ec71485755, novox/mesh-catalog@c8bcb2cdf5, novox/mesh-delivery@35b800aaef, novox/mesh-sdk@1b073c23c2Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition of this change up to its merge:git log --notes=mesh-plan.mesh-delivery: not merged. The merge of this pull request into main at
9c9ed7a1d8was declined: the operator, via telegram (user id verified), chose Decline. A new head asks the operator again.