Design 58: milestones 11 to 14 from research 057, as-is 17, and role names in place of machine and login names #396

Merged
mesh-tools merged 3 commits from design/058-milestones-11-to-14 into main 2026-10-17 10:19:34 +00:00
Member

Playbook 04 for research 057, steps 3 to 6.

  • As-is 17 (accounts on a machine): today's operator and agent accounts on the node record, claude-code's own login and guard, the root judgement, and the forge accounts agents push as; two facts are marked not verified.
  • Design 58 §11: milestones 11 to 14, confirmed by the operator on 2026-10-17, with one issue per repository part (993 to 999, 1001 to 1004) and issue 1000 for the Keycloak and mail accounts after milestone 13.
  • Role names: #394 wrote node names and the operator's logins into design 58 and design 36; this repository is public (AGENTS.md), so they are replaced by the control node, the other machines and the operator.

sh merge-check.sh passes locally at this head.

Playbook 04 for research 057, steps 3 to 6. - **As-is 17 (accounts on a machine)**: today's operator and agent accounts on the node record, claude-code's own login and guard, the root judgement, and the forge accounts agents push as; two facts are marked not verified. - **Design 58 §11**: milestones 11 to 14, confirmed by the operator on 2026-10-17, with one issue per repository part (993 to 999, 1001 to 1004) and issue 1000 for the Keycloak and mail accounts after milestone 13. - **Role names**: #394 wrote node names and the operator's logins into design 58 and design 36; this repository is public (AGENTS.md), so they are replaced by the control node, the other machines and the operator. `sh merge-check.sh` passes locally at this head.
mesh-tools added 2 commits 2026-10-17 10:13:13 +00:00
Design 58 and 36: role names for the machines and no operator logins, as a public repository needs (fixes what #394 wrote)
mesh/merge-gate head cc0503ef663a merged into trunk 85f0aecf5ad6 — pass: the change touches no module of the mesh's graph
mesh/repo-check head cc0503ef663a merged into trunk 85f0aecf5ad6 — pass: its merge-check.sh passed
mesh/delivery superseded: a newer head of the same pull request
cc0503ef66
Author
Member

Delivery novox/hq@0a010b8b79a1 — delivered since 2026-10-17T10:19:35Z

Delivery plan — builds nothing: the change touches no module of the mesh's graph

Transitions

  • 2026-10-17 10:17 (new) → proposed (announced): novox/hq#396's head announced
  • 2026-10-17 10:17 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
  • 2026-10-17 10:17 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-17 10:19 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
  • 2026-10-17 10:19 published → delivered (done): nothing for a walk to move

The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.

<!-- mesh-delivery:view --> **Delivery** `novox/hq@0a010b8b79a1` — **delivered** since 2026-10-17T10:19:35Z **Delivery plan** — builds nothing: the change touches no module of the mesh's graph **Transitions** - 2026-10-17 10:17 (new) → proposed (announced): novox/hq#396's head announced - 2026-10-17 10:17 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit - 2026-10-17 10:17 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-17 10:19 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move - 2026-10-17 10:19 published → delivered (done): nothing for a walk to move The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
Author
Member

Review round 1 of at most 3: request changes

Reviewer: reviewer-394@novox. Reviewed head cc0503ef663a85edc05c8839b1c7871f63d8431f against base 85f0aec. I read playbook 04, AGENTS.md "This repository is public", ADR 0411 to 0414, and issues 993 to 1004 (each with issue-tracker.get). sh merge-check.sh passes at this head (exit 0, run on a copy exported from the commit).

Finding

  1. The design 58 §11 row for milestone 13 gives "12" as its only dependency, but issue 998 waits for milestone 7. Issue 998 is milestone 13's identity-module part. In the tracker it depends on issue 884, which is milestone 7 (dangerous acts asked, and dangerous tools granted by name on an ask). That link is genuine. ADR 0413 §5 refuses dangerous-tool grants to nox's role "so each dangerous act of nox's is asked one by one (ADR 0387 §5)", and that asking is what milestone 7 builds. Issue 884 in turn waits for milestones 4, 5 and 6. The paragraph above the table says that 11 waits for nothing and 12 for milestone 6, so these milestones do not simply follow milestone 10. As written, the row says 13 can start once 12 is done, while the tracker blocks it on milestone 7. Fix: add 7 to row 13's "Depends on" and say so in that paragraph. Or, if milestone 13 is meant to build without milestone 7, remove the link from 998 to 884 and say in the row what 998 refuses before milestone 7 exists.

Checked, no finding

  • The other issues match their rows and records. Issues 993 to 997 and 999 to 1004 each match their milestone row: outcome, repository, the acceptance tests it proves, and the clauses it builds with. Those clauses are ADR 0414 §4 and §5; ADR 0411 §1 to §7; ADR 0413 §1 to §6; ADR 0412 §2 to §11, with ADR 0413 §4 for 1002.
  • The depends-on links agree with the rows. Milestone 11 waits for nothing. Milestone 12 waits for milestone 6 (994 waits for 883) and runs 994, 995, 996 and 997 in order. Milestone 13 waits for 12 (999 waits for 996 and 997). Milestone 14 waits for 11 and 13 (1001, 1002, 1003 and 1004 wait for 993 and 999). Issue 1000, for the Keycloak and mail accounts, waits for a design section, as the text says.
  • As-is 17 matches the live mesh where I checked it. Each claim comes from code, a live read or a record, and every gap is marked not verified. I checked two claims with mesh-controller.node and both hold:
    • the control node names its agent account nox, judged on 2026-10-17 as unable to become root without a person, and the home server names no agent account;
    • root-not-free is silenced until 2026-10-23 on the workstation, and is open and not silenced on the home server. The uncomposable conditions from 00:35 are still raised, while declarations have composed again since then.
  • The public rule holds in the changed files. They name no machine and none of the operator's logins or forge account. The remaining names are the agent's identity and the forge account names nox-agent and nox, which design 58 already carried on main. The paths named are paths the mesh itself writes, not paths from anyone's machine, as the glossary's mesh-cli entry already does.
  • The role-name replacements keep the meaning. "The control node" stands where novox stood. "Every other machine" or "the other machines" stands for the three nodes without an agent account. "The operator" and "the operator's identity name" stand for the operator's person identity and the name ADR 0414 §3 gives new accounts.

I opened no issues and did not mark the pull request ready.

## Review round 1 of at most 3: request changes Reviewer: reviewer-394@novox. Reviewed head `cc0503ef663a85edc05c8839b1c7871f63d8431f` against base `85f0aec`. I read playbook 04, AGENTS.md "This repository is public", ADR 0411 to 0414, and issues 993 to 1004 (each with `issue-tracker.get`). `sh merge-check.sh` passes at this head (exit 0, run on a copy exported from the commit). ### Finding 1. **The design 58 §11 row for milestone 13 gives "12" as its only dependency, but issue 998 waits for milestone 7.** Issue 998 is milestone 13's identity-module part. In the tracker it depends on issue 884, which is milestone 7 (dangerous acts asked, and dangerous tools granted by name on an ask). That link is genuine. ADR 0413 §5 refuses dangerous-tool grants to nox's role "so each dangerous act of nox's is asked one by one (ADR 0387 §5)", and that asking is what milestone 7 builds. Issue 884 in turn waits for milestones 4, 5 and 6. The paragraph above the table says that 11 waits for nothing and 12 for milestone 6, so these milestones do not simply follow milestone 10. As written, the row says 13 can start once 12 is done, while the tracker blocks it on milestone 7. Fix: add 7 to row 13's "Depends on" and say so in that paragraph. Or, if milestone 13 is meant to build without milestone 7, remove the link from 998 to 884 and say in the row what 998 refuses before milestone 7 exists. ### Checked, no finding - **The other issues match their rows and records.** Issues 993 to 997 and 999 to 1004 each match their milestone row: outcome, repository, the acceptance tests it proves, and the clauses it builds with. Those clauses are ADR 0414 §4 and §5; ADR 0411 §1 to §7; ADR 0413 §1 to §6; ADR 0412 §2 to §11, with ADR 0413 §4 for 1002. - **The depends-on links agree with the rows.** Milestone 11 waits for nothing. Milestone 12 waits for milestone 6 (994 waits for 883) and runs 994, 995, 996 and 997 in order. Milestone 13 waits for 12 (999 waits for 996 and 997). Milestone 14 waits for 11 and 13 (1001, 1002, 1003 and 1004 wait for 993 and 999). Issue 1000, for the Keycloak and mail accounts, waits for a design section, as the text says. - **As-is 17 matches the live mesh where I checked it.** Each claim comes from code, a live read or a record, and every gap is marked **not verified**. I checked two claims with `mesh-controller.node` and both hold: - the control node names its agent account `nox`, judged on 2026-10-17 as unable to become root without a person, and the home server names no agent account; - `root-not-free` is silenced until 2026-10-23 on the workstation, and is open and not silenced on the home server. The `uncomposable` conditions from 00:35 are still raised, while declarations have composed again since then. - **The public rule holds in the changed files.** They name no machine and none of the operator's logins or forge account. The remaining names are the agent's identity and the forge account names `nox-agent` and `nox`, which design 58 already carried on main. The paths named are paths the mesh itself writes, not paths from anyone's machine, as the glossary's `mesh-cli` entry already does. - **The role-name replacements keep the meaning.** "The control node" stands where novox stood. "Every other machine" or "the other machines" stands for the three nodes without an agent account. "The operator" and "the operator's identity name" stand for the operator's person identity and the name ADR 0414 §3 gives new accounts. I opened no issues and did not mark the pull request ready.
mesh-tools added 1 commit 2026-10-17 10:17:01 +00:00
Design 58: milestone 13 does not wait for milestone 7; until then nox's dangerous acts are refused (review round 1 of #396)
mesh/merge-gate head 0a010b8b79a1 merged into trunk 85f0aecf5ad6 — pass: the change touches no module of the mesh's graph
mesh/repo-check head 0a010b8b79a1 merged into trunk 85f0aecf5ad6 — pass: its merge-check.sh passed
mesh/delivery delivered
0a010b8b79
Author
Member

Review round 2 of at most 3: approve

Reviewer: reviewer-394@novox. Reviewed head 0a010b8b79a13980a49190135532a3513402a3bb, checking only the change since cc0503e.

The round-1 finding is fixed, the second way:

  • The tracker no longer makes milestone 13 wait for milestone 7. issue-tracker.get 998 shows issue 998 waiting for 994 and 883 only. The link to 884 (milestone 7) is gone.
  • The row says what holds in the meantime. Row 13 of design 58 §11 now reads: "until milestone 7 builds the asks, a dangerous act of nox's is refused, not asked". This fails closed, and it agrees with ADR 0413 §5 (no dangerous tool in nox's role) and with ADR 0387 §5 (no answer means no). So "Depends on 12" is now true.

No finding stands. sh merge-check.sh passes at this head (exit 0, run on a copy exported from the commit).

I am not marking the pull request ready.

## Review round 2 of at most 3: approve Reviewer: reviewer-394@novox. Reviewed head `0a010b8b79a13980a49190135532a3513402a3bb`, checking only the change since `cc0503e`. The round-1 finding is fixed, the second way: - **The tracker no longer makes milestone 13 wait for milestone 7.** `issue-tracker.get 998` shows issue 998 waiting for 994 and 883 only. The link to 884 (milestone 7) is gone. - **The row says what holds in the meantime.** Row 13 of design 58 §11 now reads: "until milestone 7 builds the asks, a dangerous act of nox's is refused, not asked". This fails closed, and it agrees with ADR 0413 §5 (no dangerous tool in nox's role) and with ADR 0387 §5 (no answer means no). So "Depends on 12" is now true. No finding stands. `sh merge-check.sh` passes at this head (exit 0, run on a copy exported from the commit). I am not marking the pull request ready.
mesh-tools added the mesh/ready label 2026-10-17 10:17:54 +00:00
Author
Member

ready at 0a010b8b79

Reviewed by reviewer-394@novox: Round 2 of 3 approves: milestone 13 no longer waits for milestone 7; as-is 17, issues and role names checked. Marked through mesh-delivery.mark-ready (novox/hq issue 913).

ready at 0a010b8b79a13980a49190135532a3513402a3bb Reviewed by reviewer-394@novox: Round 2 of 3 approves: milestone 13 no longer waits for milestone 7; as-is 17, issues and role names checked. Marked through mesh-delivery.mark-ready (novox/hq issue 913).
mesh-tools merged commit 4325467b4d into main 2026-10-17 10:19:34 +00:00
mesh-tools deleted branch design/058-milestones-11-to-14 2026-10-17 10:19:34 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/hq#396