From 6a408428d67c03574f411011381d49f163887ff1 Mon Sep 17 00:00:00 2001 From: jochen Date: Sun, 11 Oct 2026 00:43:13 +0200 Subject: [PATCH] Write every extends target with its folder, as the frontmatter template says, so a reader of the field needs no second form --- 02-DECISIONS/0008-a-context-owns-its-store.md | 2 +- 02-DECISIONS/0018-a-picture-is-read-from-what-runs.md | 2 +- 02-DECISIONS/0040-what-a-module-is.md | 2 +- 02-DECISIONS/0041-events-are-a-relationship.md | 2 +- 02-DECISIONS/0042-the-shape-of-an-event-on-the-wire.md | 2 +- ...3-a-module-broker-account-is-scoped-by-emits-and-consumes.md | 2 +- .../0044-a-public-name-is-provisioned-like-any-capability.md | 2 +- .../0045-a-machine-firewall-is-the-sum-of-what-it-listens-on.md | 2 +- ...-module-configuration-is-its-assignments-not-its-manifest.md | 2 +- ...ule-runs-its-code-as-its-own-process-with-its-own-account.md | 2 +- 02-DECISIONS/0051-shared-data-is-the-operators.md | 2 +- 02-DECISIONS/0052-a-step-that-runs-once-before-a-container.md | 2 +- 02-DECISIONS/0053-a-step-that-runs-on-a-schedule.md | 2 +- 02-DECISIONS/0054-model-usage-is-recorded-at-two-grains.md | 2 +- .../0055-model-access-is-answered-by-a-licence-or-a-node.md | 2 +- 02-DECISIONS/0066-public-routing-is-name-agnostic.md | 2 +- 02-DECISIONS/0067-genesis-is-a-pivot.md | 2 +- 02-DECISIONS/0068-the-lab-takes-requests.md | 2 +- 02-DECISIONS/0069-a-module-is-a-repository-and-a-path.md | 2 +- 02-DECISIONS/0070-the-catalogue-owns-the-module-graph.md | 2 +- 02-DECISIONS/0071-where-genesis-gets-its-source.md | 2 +- 02-DECISIONS/0072-two-graphs-and-the-build-chain.md | 2 +- 02-DECISIONS/0073-the-installer-carries-a-builder.md | 2 +- 02-DECISIONS/0074-the-wire-is-specified-not-the-types.md | 2 +- 02-DECISIONS/0075-two-stores-and-which-provides-what.md | 2 +- 02-DECISIONS/0076-the-sdk-is-a-published-package.md | 2 +- 02-DECISIONS/0077-the-controller-and-the-foundation.md | 2 +- 02-DECISIONS/0078-the-store-and-broker-are-modules.md | 2 +- .../0079-the-foundation-seats-are-named-after-their-servers.md | 2 +- 02-DECISIONS/0080-the-development-cycle-is-checked.md | 2 +- .../0081-a-decision-nothing-cites-is-not-yet-in-the-chain.md | 2 +- ...he-registry-is-reached-by-name-and-trusted-by-the-overlay.md | 2 +- 02-DECISIONS/0083-one-push-leaves-the-mesh-consistent.md | 2 +- 02-DECISIONS/0099-a-step-that-runs-once-names-what-it-reads.md | 2 +- .../0109-a-package-registry-seat-is-one-per-ecosystem.md | 2 +- .../0110-a-seat-is-a-module-assignment-from-a-closed-set.md | 2 +- .../0111-a-build-source-is-on-the-git-seat-or-external.md | 2 +- .../0112-a-module-definition-names-no-node-mesh-or-path.md | 2 +- .../0114-a-shared-credential-rotates-over-two-credentials.md | 2 +- 02-DECISIONS/0115-one-assignment-of-a-module-per-node.md | 2 +- 02-DECISIONS/0117-a-machines-uplink-is-a-seat.md | 2 +- ...8-undeclaring-gives-a-unit-back-the-state-it-was-found-in.md | 2 +- 02-DECISIONS/0119-a-taken-tunnels-predecessor-is-retired.md | 2 +- .../0120-a-roster-fact-carries-its-format-as-a-template.md | 2 +- ...-seat-is-named-for-its-scope-and-modules-define-their-own.md | 2 +- ...s-one-resolver-and-every-node-asks-it-for-the-meshs-names.md | 2 +- ...s-declares-its-zone-and-a-nodes-hosts-file-is-one-modules.md | 2 +- 47 files changed, 47 insertions(+), 47 deletions(-) diff --git a/02-DECISIONS/0008-a-context-owns-its-store.md b/02-DECISIONS/0008-a-context-owns-its-store.md index 8175dd4c..ab3c9968 100644 --- a/02-DECISIONS/0008-a-context-owns-its-store.md +++ b/02-DECISIONS/0008-a-context-owns-its-store.md @@ -4,7 +4,7 @@ status: accepted date: 2026-08-26 deciders: jochen reconstructed: false -extends: 0009-modules-and-the-graph.md +extends: 02-DECISIONS/0009-modules-and-the-graph.md --- # 8. A context owns its store, exclusively diff --git a/02-DECISIONS/0018-a-picture-is-read-from-what-runs.md b/02-DECISIONS/0018-a-picture-is-read-from-what-runs.md index 04d9d32d..2316672d 100644 --- a/02-DECISIONS/0018-a-picture-is-read-from-what-runs.md +++ b/02-DECISIONS/0018-a-picture-is-read-from-what-runs.md @@ -4,7 +4,7 @@ status: accepted date: 2026-08-24 deciders: jochen reconstructed: false -extends: 0017-a-test-defends-a-decision.md +extends: 02-DECISIONS/0017-a-test-defends-a-decision.md --- # 18. A picture of a system is read from the system, never from what asked for it diff --git a/02-DECISIONS/0040-what-a-module-is.md b/02-DECISIONS/0040-what-a-module-is.md index 84cc967a..8b025787 100644 --- a/02-DECISIONS/0040-what-a-module-is.md +++ b/02-DECISIONS/0040-what-a-module-is.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-03 deciders: jochen reconstructed: false -extends: 0009-modules-and-the-graph.md +extends: 02-DECISIONS/0009-modules-and-the-graph.md --- # 40. What a module is diff --git a/02-DECISIONS/0041-events-are-a-relationship.md b/02-DECISIONS/0041-events-are-a-relationship.md index 030037c2..83bf0b10 100644 --- a/02-DECISIONS/0041-events-are-a-relationship.md +++ b/02-DECISIONS/0041-events-are-a-relationship.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-03 deciders: jochen reconstructed: false -extends: 0040-what-a-module-is.md +extends: 02-DECISIONS/0040-what-a-module-is.md --- # 41. Events are a relationship, the lighter sibling of provisioning diff --git a/02-DECISIONS/0042-the-shape-of-an-event-on-the-wire.md b/02-DECISIONS/0042-the-shape-of-an-event-on-the-wire.md index 0479407c..d5633851 100644 --- a/02-DECISIONS/0042-the-shape-of-an-event-on-the-wire.md +++ b/02-DECISIONS/0042-the-shape-of-an-event-on-the-wire.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-03 deciders: jochen reconstructed: false -extends: 0041-events-are-a-relationship.md +extends: 02-DECISIONS/0041-events-are-a-relationship.md --- # 42. The shape of an event on the wire diff --git a/02-DECISIONS/0043-a-module-broker-account-is-scoped-by-emits-and-consumes.md b/02-DECISIONS/0043-a-module-broker-account-is-scoped-by-emits-and-consumes.md index cefd1111..1acfab82 100644 --- a/02-DECISIONS/0043-a-module-broker-account-is-scoped-by-emits-and-consumes.md +++ b/02-DECISIONS/0043-a-module-broker-account-is-scoped-by-emits-and-consumes.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-04 deciders: jochen reconstructed: false -extends: 0041-events-are-a-relationship.md +extends: 02-DECISIONS/0041-events-are-a-relationship.md --- # 43. A module's broker account is scoped by what it emits and consumes diff --git a/02-DECISIONS/0044-a-public-name-is-provisioned-like-any-capability.md b/02-DECISIONS/0044-a-public-name-is-provisioned-like-any-capability.md index 0aa0f9de..8be68a42 100644 --- a/02-DECISIONS/0044-a-public-name-is-provisioned-like-any-capability.md +++ b/02-DECISIONS/0044-a-public-name-is-provisioned-like-any-capability.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-04 deciders: jochen reconstructed: false -extends: 0027-a-provision-names-what-the-consumer-is-coupled-to.md +extends: 02-DECISIONS/0027-a-provision-names-what-the-consumer-is-coupled-to.md --- # 44. A public name is provisioned, not registered by hand diff --git a/02-DECISIONS/0045-a-machine-firewall-is-the-sum-of-what-it-listens-on.md b/02-DECISIONS/0045-a-machine-firewall-is-the-sum-of-what-it-listens-on.md index a5c61ac4..440d333a 100644 --- a/02-DECISIONS/0045-a-machine-firewall-is-the-sum-of-what-it-listens-on.md +++ b/02-DECISIONS/0045-a-machine-firewall-is-the-sum-of-what-it-listens-on.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-04 deciders: jochen reconstructed: false -extends: 0005-the-node-host.md +extends: 02-DECISIONS/0005-the-node-host.md --- # 45. A machine's firewall is the sum of what its modules listen on diff --git a/02-DECISIONS/0046-a-module-configuration-is-its-assignments-not-its-manifest.md b/02-DECISIONS/0046-a-module-configuration-is-its-assignments-not-its-manifest.md index 402c5baa..ffb4380c 100644 --- a/02-DECISIONS/0046-a-module-configuration-is-its-assignments-not-its-manifest.md +++ b/02-DECISIONS/0046-a-module-configuration-is-its-assignments-not-its-manifest.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-04 deciders: jochen reconstructed: false -extends: 0027-a-provision-names-what-the-consumer-is-coupled-to.md +extends: 02-DECISIONS/0027-a-provision-names-what-the-consumer-is-coupled-to.md --- # 46. A module's configuration is its assignment's, not its manifest's diff --git a/02-DECISIONS/0047-a-module-runs-its-code-as-its-own-process-with-its-own-account.md b/02-DECISIONS/0047-a-module-runs-its-code-as-its-own-process-with-its-own-account.md index 7201c0af..28a5bb76 100644 --- a/02-DECISIONS/0047-a-module-runs-its-code-as-its-own-process-with-its-own-account.md +++ b/02-DECISIONS/0047-a-module-runs-its-code-as-its-own-process-with-its-own-account.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-04 deciders: jochen reconstructed: false -extends: 0043-a-module-broker-account-is-scoped-by-emits-and-consumes.md +extends: 02-DECISIONS/0043-a-module-broker-account-is-scoped-by-emits-and-consumes.md --- # 47. A module runs its code as its own process, with its own account diff --git a/02-DECISIONS/0051-shared-data-is-the-operators.md b/02-DECISIONS/0051-shared-data-is-the-operators.md index ee7b9ced..f48954ba 100644 --- a/02-DECISIONS/0051-shared-data-is-the-operators.md +++ b/02-DECISIONS/0051-shared-data-is-the-operators.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-05 deciders: jochen reconstructed: false -extends: 0030-data-outlives-the-mesh-that-declared-it.md +extends: 02-DECISIONS/0030-data-outlives-the-mesh-that-declared-it.md --- # 51. Shared data is the operator's, and a module is granted access to it diff --git a/02-DECISIONS/0052-a-step-that-runs-once-before-a-container.md b/02-DECISIONS/0052-a-step-that-runs-once-before-a-container.md index 1f2e3860..96783bdb 100644 --- a/02-DECISIONS/0052-a-step-that-runs-once-before-a-container.md +++ b/02-DECISIONS/0052-a-step-that-runs-once-before-a-container.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-05 deciders: jochen reconstructed: false -extends: 0005-the-node-host.md +extends: 02-DECISIONS/0005-the-node-host.md --- # 52. An init step is a container run once to completion, gating what follows diff --git a/02-DECISIONS/0053-a-step-that-runs-on-a-schedule.md b/02-DECISIONS/0053-a-step-that-runs-on-a-schedule.md index b13d6e6c..865ce7a2 100644 --- a/02-DECISIONS/0053-a-step-that-runs-on-a-schedule.md +++ b/02-DECISIONS/0053-a-step-that-runs-on-a-schedule.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-06 deciders: jochen reconstructed: false -extends: 0052-a-step-that-runs-once-before-a-container.md +extends: 02-DECISIONS/0052-a-step-that-runs-once-before-a-container.md --- # 53. A scheduled step is a container run on a recurring schedule diff --git a/02-DECISIONS/0054-model-usage-is-recorded-at-two-grains.md b/02-DECISIONS/0054-model-usage-is-recorded-at-two-grains.md index 86b61e53..47336f84 100644 --- a/02-DECISIONS/0054-model-usage-is-recorded-at-two-grains.md +++ b/02-DECISIONS/0054-model-usage-is-recorded-at-two-grains.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-06 deciders: jochen reconstructed: false -extends: 0050-model-access-is-vendor-agnostic.md +extends: 02-DECISIONS/0050-model-access-is-vendor-agnostic.md --- # 54. Model usage is a vendor-neutral record, produced by the adapter, at two grains diff --git a/02-DECISIONS/0055-model-access-is-answered-by-a-licence-or-a-node.md b/02-DECISIONS/0055-model-access-is-answered-by-a-licence-or-a-node.md index 17aaa41a..d148d68a 100644 --- a/02-DECISIONS/0055-model-access-is-answered-by-a-licence-or-a-node.md +++ b/02-DECISIONS/0055-model-access-is-answered-by-a-licence-or-a-node.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-07 deciders: jochen reconstructed: false -extends: 0050-model-access-is-vendor-agnostic.md +extends: 02-DECISIONS/0050-model-access-is-vendor-agnostic.md --- # 55. Model access is answered by a licence, or by a node that hosts the model diff --git a/02-DECISIONS/0066-public-routing-is-name-agnostic.md b/02-DECISIONS/0066-public-routing-is-name-agnostic.md index 37fb663f..9bfdb5ee 100644 --- a/02-DECISIONS/0066-public-routing-is-name-agnostic.md +++ b/02-DECISIONS/0066-public-routing-is-name-agnostic.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-09 deciders: jochen reconstructed: false -extends: 0007-connectivity.md +extends: 02-DECISIONS/0007-connectivity.md --- # 66. Public routing is name-agnostic, its names are resolved inside the mesh, and an internal authority can certify them diff --git a/02-DECISIONS/0067-genesis-is-a-pivot.md b/02-DECISIONS/0067-genesis-is-a-pivot.md index 681b0539..060a7056 100644 --- a/02-DECISIONS/0067-genesis-is-a-pivot.md +++ b/02-DECISIONS/0067-genesis-is-a-pivot.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-10 deciders: jochen reconstructed: false -extends: 0006-the-substrate-and-the-control-plane.md +extends: 02-DECISIONS/0006-the-substrate-and-the-control-plane.md --- # 67. Genesis is a pivot: a temporary control plane installs the registry that makes it permanent diff --git a/02-DECISIONS/0068-the-lab-takes-requests.md b/02-DECISIONS/0068-the-lab-takes-requests.md index 12225d5c..f5ef5e43 100644 --- a/02-DECISIONS/0068-the-lab-takes-requests.md +++ b/02-DECISIONS/0068-the-lab-takes-requests.md @@ -4,7 +4,7 @@ status: superseded date: 2026-09-12 deciders: jochen reconstructed: false -extends: 0016-the-lab.md +extends: 02-DECISIONS/0016-the-lab.md superseded-by: 02-DECISIONS/0149-the-live-mesh-is-the-test-bed.md --- diff --git a/02-DECISIONS/0069-a-module-is-a-repository-and-a-path.md b/02-DECISIONS/0069-a-module-is-a-repository-and-a-path.md index 7c439176..82fa411a 100644 --- a/02-DECISIONS/0069-a-module-is-a-repository-and-a-path.md +++ b/02-DECISIONS/0069-a-module-is-a-repository-and-a-path.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-12 deciders: jochen reconstructed: false -extends: 0009-modules-and-the-graph.md +extends: 02-DECISIONS/0009-modules-and-the-graph.md --- # 69. A module is a repository and a path within it diff --git a/02-DECISIONS/0070-the-catalogue-owns-the-module-graph.md b/02-DECISIONS/0070-the-catalogue-owns-the-module-graph.md index 5c217537..ce5bba0e 100644 --- a/02-DECISIONS/0070-the-catalogue-owns-the-module-graph.md +++ b/02-DECISIONS/0070-the-catalogue-owns-the-module-graph.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-12 deciders: jochen reconstructed: false -extends: 0067-genesis-is-a-pivot.md +extends: 02-DECISIONS/0067-genesis-is-a-pivot.md --- # 70. The catalogue owns the module graph, and genesis builds rather than carries diff --git a/02-DECISIONS/0071-where-genesis-gets-its-source.md b/02-DECISIONS/0071-where-genesis-gets-its-source.md index 6ebb2016..3fdcc03f 100644 --- a/02-DECISIONS/0071-where-genesis-gets-its-source.md +++ b/02-DECISIONS/0071-where-genesis-gets-its-source.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-12 deciders: jochen reconstructed: false -extends: 0070-the-catalogue-owns-the-module-graph.md +extends: 02-DECISIONS/0070-the-catalogue-owns-the-module-graph.md --- # 71. Genesis clones from a mesh, and checks what it got diff --git a/02-DECISIONS/0072-two-graphs-and-the-build-chain.md b/02-DECISIONS/0072-two-graphs-and-the-build-chain.md index 354cf94c..45a69152 100644 --- a/02-DECISIONS/0072-two-graphs-and-the-build-chain.md +++ b/02-DECISIONS/0072-two-graphs-and-the-build-chain.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-12 deciders: jochen reconstructed: false -extends: 0070-the-catalogue-owns-the-module-graph.md +extends: 02-DECISIONS/0070-the-catalogue-owns-the-module-graph.md --- # 72. Two graphs, and a build chain that orders itself diff --git a/02-DECISIONS/0073-the-installer-carries-a-builder.md b/02-DECISIONS/0073-the-installer-carries-a-builder.md index 47fbc8ab..c83ac552 100644 --- a/02-DECISIONS/0073-the-installer-carries-a-builder.md +++ b/02-DECISIONS/0073-the-installer-carries-a-builder.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-13 deciders: jochen reconstructed: false -extends: 0070-the-catalogue-owns-the-module-graph.md +extends: 02-DECISIONS/0070-the-catalogue-owns-the-module-graph.md --- # 73. The installer carries a builder, and the registry stays where it is diff --git a/02-DECISIONS/0074-the-wire-is-specified-not-the-types.md b/02-DECISIONS/0074-the-wire-is-specified-not-the-types.md index e1ffe2f9..f0287a1f 100644 --- a/02-DECISIONS/0074-the-wire-is-specified-not-the-types.md +++ b/02-DECISIONS/0074-the-wire-is-specified-not-the-types.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-15 deciders: jochen reconstructed: false -extends: 0039-what-the-sdk-holds-and-refuses.md +extends: 02-DECISIONS/0039-what-the-sdk-holds-and-refuses.md --- # 74. The mesh defines a module protocol; an SDK is an implementation of it diff --git a/02-DECISIONS/0075-two-stores-and-which-provides-what.md b/02-DECISIONS/0075-two-stores-and-which-provides-what.md index 07be4d16..5205d385 100644 --- a/02-DECISIONS/0075-two-stores-and-which-provides-what.md +++ b/02-DECISIONS/0075-two-stores-and-which-provides-what.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-15 deciders: jochen reconstructed: false -extends: 0014-no-npm-workspace.md +extends: 02-DECISIONS/0014-no-npm-workspace.md --- # 75. An artifact store is a provision; a package registry is a different one diff --git a/02-DECISIONS/0076-the-sdk-is-a-published-package.md b/02-DECISIONS/0076-the-sdk-is-a-published-package.md index a1648a85..ffd1ae81 100644 --- a/02-DECISIONS/0076-the-sdk-is-a-published-package.md +++ b/02-DECISIONS/0076-the-sdk-is-a-published-package.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-16 deciders: jochen reconstructed: false -extends: 0075-two-stores-and-which-provides-what.md +extends: 02-DECISIONS/0075-two-stores-and-which-provides-what.md --- # 76. The SDK is a published package, and the toolchain resolves it by version diff --git a/02-DECISIONS/0077-the-controller-and-the-foundation.md b/02-DECISIONS/0077-the-controller-and-the-foundation.md index 1bdc5fde..d9cc7ebd 100644 --- a/02-DECISIONS/0077-the-controller-and-the-foundation.md +++ b/02-DECISIONS/0077-the-controller-and-the-foundation.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-16 deciders: jochen reconstructed: false -extends: 0006-the-substrate-and-the-control-plane.md +extends: 02-DECISIONS/0006-the-substrate-and-the-control-plane.md --- # 77. The parts are named controller, foundation, node — not control plane, substrate, master diff --git a/02-DECISIONS/0078-the-store-and-broker-are-modules.md b/02-DECISIONS/0078-the-store-and-broker-are-modules.md index 31e97edb..00c114b0 100644 --- a/02-DECISIONS/0078-the-store-and-broker-are-modules.md +++ b/02-DECISIONS/0078-the-store-and-broker-are-modules.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-16 deciders: jochen reconstructed: false -extends: 0033-the-substrate-is-a-store-and-a-broker.md +extends: 02-DECISIONS/0033-the-substrate-is-a-store-and-a-broker.md --- # 78. The store and the broker are ordinary modules diff --git a/02-DECISIONS/0079-the-foundation-seats-are-named-after-their-servers.md b/02-DECISIONS/0079-the-foundation-seats-are-named-after-their-servers.md index 578c99d1..6ccae0e1 100644 --- a/02-DECISIONS/0079-the-foundation-seats-are-named-after-their-servers.md +++ b/02-DECISIONS/0079-the-foundation-seats-are-named-after-their-servers.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-17 deciders: jochen reconstructed: false -extends: 0078-the-store-and-broker-are-modules.md +extends: 02-DECISIONS/0078-the-store-and-broker-are-modules.md --- # 79. The foundation seats are named after their servers diff --git a/02-DECISIONS/0080-the-development-cycle-is-checked.md b/02-DECISIONS/0080-the-development-cycle-is-checked.md index ee2f4bb2..50460553 100644 --- a/02-DECISIONS/0080-the-development-cycle-is-checked.md +++ b/02-DECISIONS/0080-the-development-cycle-is-checked.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-17 deciders: jochen reconstructed: false -extends: 0019-how-this-repository-works.md +extends: 02-DECISIONS/0019-how-this-repository-works.md --- # 80. The development cycle is checked, not trusted diff --git a/02-DECISIONS/0081-a-decision-nothing-cites-is-not-yet-in-the-chain.md b/02-DECISIONS/0081-a-decision-nothing-cites-is-not-yet-in-the-chain.md index 6087d83c..1f519992 100644 --- a/02-DECISIONS/0081-a-decision-nothing-cites-is-not-yet-in-the-chain.md +++ b/02-DECISIONS/0081-a-decision-nothing-cites-is-not-yet-in-the-chain.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-17 deciders: jochen reconstructed: false -extends: 0080-the-development-cycle-is-checked.md +extends: 02-DECISIONS/0080-the-development-cycle-is-checked.md --- # 81. A decision nothing cites is not yet in the chain diff --git a/02-DECISIONS/0082-the-registry-is-reached-by-name-and-trusted-by-the-overlay.md b/02-DECISIONS/0082-the-registry-is-reached-by-name-and-trusted-by-the-overlay.md index 4cac697a..ed6964a8 100644 --- a/02-DECISIONS/0082-the-registry-is-reached-by-name-and-trusted-by-the-overlay.md +++ b/02-DECISIONS/0082-the-registry-is-reached-by-name-and-trusted-by-the-overlay.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-17 deciders: jochen reconstructed: false -extends: 0072-two-graphs-and-the-build-chain.md +extends: 02-DECISIONS/0072-two-graphs-and-the-build-chain.md --- # 82. The registry is reached by name, and the overlay is its security diff --git a/02-DECISIONS/0083-one-push-leaves-the-mesh-consistent.md b/02-DECISIONS/0083-one-push-leaves-the-mesh-consistent.md index 88c5d77b..b181df99 100644 --- a/02-DECISIONS/0083-one-push-leaves-the-mesh-consistent.md +++ b/02-DECISIONS/0083-one-push-leaves-the-mesh-consistent.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-18 deciders: jochen reconstructed: false -extends: 0010-delivery.md +extends: 02-DECISIONS/0010-delivery.md --- # 83. One push leaves the mesh consistent diff --git a/02-DECISIONS/0099-a-step-that-runs-once-names-what-it-reads.md b/02-DECISIONS/0099-a-step-that-runs-once-names-what-it-reads.md index b18c94ae..e076bcda 100644 --- a/02-DECISIONS/0099-a-step-that-runs-once-names-what-it-reads.md +++ b/02-DECISIONS/0099-a-step-that-runs-once-names-what-it-reads.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-21 deciders: jochen reconstructed: false -extends: 0052-a-step-that-runs-once-before-a-container.md +extends: 02-DECISIONS/0052-a-step-that-runs-once-before-a-container.md --- # 99. A step that runs once names what it reads, and runs again when it changed diff --git a/02-DECISIONS/0109-a-package-registry-seat-is-one-per-ecosystem.md b/02-DECISIONS/0109-a-package-registry-seat-is-one-per-ecosystem.md index e89a7433..414abbaa 100644 --- a/02-DECISIONS/0109-a-package-registry-seat-is-one-per-ecosystem.md +++ b/02-DECISIONS/0109-a-package-registry-seat-is-one-per-ecosystem.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-25 deciders: jochen reconstructed: false -extends: 0075-two-stores-and-which-provides-what.md +extends: 02-DECISIONS/0075-two-stores-and-which-provides-what.md --- # 109. A package registry seat is one per ecosystem, not one for all of them diff --git a/02-DECISIONS/0110-a-seat-is-a-module-assignment-from-a-closed-set.md b/02-DECISIONS/0110-a-seat-is-a-module-assignment-from-a-closed-set.md index 82113244..99e4c966 100644 --- a/02-DECISIONS/0110-a-seat-is-a-module-assignment-from-a-closed-set.md +++ b/02-DECISIONS/0110-a-seat-is-a-module-assignment-from-a-closed-set.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-25 deciders: jochen reconstructed: false -extends: 0009-modules-and-the-graph.md +extends: 02-DECISIONS/0009-modules-and-the-graph.md --- # 110. A seat is held by one assignment, from a closed set, and it may deliver a provision diff --git a/02-DECISIONS/0111-a-build-source-is-on-the-git-seat-or-external.md b/02-DECISIONS/0111-a-build-source-is-on-the-git-seat-or-external.md index 02fb4327..7e577fa3 100644 --- a/02-DECISIONS/0111-a-build-source-is-on-the-git-seat-or-external.md +++ b/02-DECISIONS/0111-a-build-source-is-on-the-git-seat-or-external.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-25 deciders: jochen reconstructed: false -extends: 0069-a-module-is-a-repository-and-a-path.md +extends: 02-DECISIONS/0069-a-module-is-a-repository-and-a-path.md --- # 111. A build source is on the mesh's git seat, or it is an external repository diff --git a/02-DECISIONS/0112-a-module-definition-names-no-node-mesh-or-path.md b/02-DECISIONS/0112-a-module-definition-names-no-node-mesh-or-path.md index 54af58f6..f5890a26 100644 --- a/02-DECISIONS/0112-a-module-definition-names-no-node-mesh-or-path.md +++ b/02-DECISIONS/0112-a-module-definition-names-no-node-mesh-or-path.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-25 deciders: jochen reconstructed: false -extends: 0046-a-module-configuration-is-its-assignments-not-its-manifest.md +extends: 02-DECISIONS/0046-a-module-configuration-is-its-assignments-not-its-manifest.md --- # 112. A module definition names no node, no mesh and no path: everything it needs is a requirement the mesh resolves diff --git a/02-DECISIONS/0114-a-shared-credential-rotates-over-two-credentials.md b/02-DECISIONS/0114-a-shared-credential-rotates-over-two-credentials.md index a03831ab..19dee25c 100644 --- a/02-DECISIONS/0114-a-shared-credential-rotates-over-two-credentials.md +++ b/02-DECISIONS/0114-a-shared-credential-rotates-over-two-credentials.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-26 deciders: jochen reconstructed: false -extends: 0113-the-vault-makes-every-secret.md +extends: 02-DECISIONS/0113-the-vault-makes-every-secret.md --- # 114. A credential two parties hold rotates over two credentials; one a single party holds rotates in place, staged; and retiring a credential never removes what it reached diff --git a/02-DECISIONS/0115-one-assignment-of-a-module-per-node.md b/02-DECISIONS/0115-one-assignment-of-a-module-per-node.md index 59365291..5bfc9f85 100644 --- a/02-DECISIONS/0115-one-assignment-of-a-module-per-node.md +++ b/02-DECISIONS/0115-one-assignment-of-a-module-per-node.md @@ -3,7 +3,7 @@ topic: what runs on it status: accepted date: 2026-09-26 deciders: jochen -extends: 0112-a-module-definition-names-no-node-mesh-or-path.md +extends: 02-DECISIONS/0112-a-module-definition-names-no-node-mesh-or-path.md --- # 115. One assignment of a module per node: the module's name is the assignment's identity diff --git a/02-DECISIONS/0117-a-machines-uplink-is-a-seat.md b/02-DECISIONS/0117-a-machines-uplink-is-a-seat.md index d5e6f8f6..b9756bea 100644 --- a/02-DECISIONS/0117-a-machines-uplink-is-a-seat.md +++ b/02-DECISIONS/0117-a-machines-uplink-is-a-seat.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-26 deciders: jochen reconstructed: false -extends: 0110-a-seat-is-a-module-assignment-from-a-closed-set.md +extends: 02-DECISIONS/0110-a-seat-is-a-module-assignment-from-a-closed-set.md --- # 117. A machine's uplink is a seat: the mesh configures the manager, never the link diff --git a/02-DECISIONS/0118-undeclaring-gives-a-unit-back-the-state-it-was-found-in.md b/02-DECISIONS/0118-undeclaring-gives-a-unit-back-the-state-it-was-found-in.md index 7e11f52b..c32e499d 100644 --- a/02-DECISIONS/0118-undeclaring-gives-a-unit-back-the-state-it-was-found-in.md +++ b/02-DECISIONS/0118-undeclaring-gives-a-unit-back-the-state-it-was-found-in.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-27 deciders: jochen reconstructed: false -extends: 0102-the-mesh-writes-into-a-shared-file-never-over-it.md +extends: 02-DECISIONS/0102-the-mesh-writes-into-a-shared-file-never-over-it.md --- # 118. Undeclaring removes what the mesh made, and gives a unit back the state it was found in diff --git a/02-DECISIONS/0119-a-taken-tunnels-predecessor-is-retired.md b/02-DECISIONS/0119-a-taken-tunnels-predecessor-is-retired.md index 219c55cf..4b57cb72 100644 --- a/02-DECISIONS/0119-a-taken-tunnels-predecessor-is-retired.md +++ b/02-DECISIONS/0119-a-taken-tunnels-predecessor-is-retired.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-27 deciders: jochen reconstructed: false -extends: 0105-the-mesh-adopts-the-predecessors-tunnel-in-place.md +extends: 02-DECISIONS/0105-the-mesh-adopts-the-predecessors-tunnel-in-place.md --- # 119. A taken tunnel's predecessor is retired once the take is proven diff --git a/02-DECISIONS/0120-a-roster-fact-carries-its-format-as-a-template.md b/02-DECISIONS/0120-a-roster-fact-carries-its-format-as-a-template.md index c142cda5..7bcc58c0 100644 --- a/02-DECISIONS/0120-a-roster-fact-carries-its-format-as-a-template.md +++ b/02-DECISIONS/0120-a-roster-fact-carries-its-format-as-a-template.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-27 deciders: jochen reconstructed: false -extends: 0112-a-module-definition-names-no-node-mesh-or-path.md +extends: 02-DECISIONS/0112-a-module-definition-names-no-node-mesh-or-path.md --- # 120. A roster fact carries its format as a template: the mesh owns the data, the module owns the format diff --git a/02-DECISIONS/0121-a-system-seat-is-named-for-its-scope-and-modules-define-their-own.md b/02-DECISIONS/0121-a-system-seat-is-named-for-its-scope-and-modules-define-their-own.md index 9f32bfa5..a4120553 100644 --- a/02-DECISIONS/0121-a-system-seat-is-named-for-its-scope-and-modules-define-their-own.md +++ b/02-DECISIONS/0121-a-system-seat-is-named-for-its-scope-and-modules-define-their-own.md @@ -4,7 +4,7 @@ status: accepted date: 2026-09-27 deciders: jochen reconstructed: false -extends: 0110-a-seat-is-a-module-assignment-from-a-closed-set.md +extends: 02-DECISIONS/0110-a-seat-is-a-module-assignment-from-a-closed-set.md --- # 121. A system seat is named for its scope, and a module may define its own diff --git a/02-DECISIONS/0194-the-mesh-has-one-resolver-and-every-node-asks-it-for-the-meshs-names.md b/02-DECISIONS/0194-the-mesh-has-one-resolver-and-every-node-asks-it-for-the-meshs-names.md index 77614de9..5a9c10fc 100644 --- a/02-DECISIONS/0194-the-mesh-has-one-resolver-and-every-node-asks-it-for-the-meshs-names.md +++ b/02-DECISIONS/0194-the-mesh-has-one-resolver-and-every-node-asks-it-for-the-meshs-names.md @@ -6,7 +6,7 @@ deciders: jochen reconstructed: false supersedes-in-part: - 0121-a-system-seat-is-named-for-its-scope-and-modules-define-their-own.md -extends: 0191-the-meshs-resolver-holds-only-the-meshs-own-names.md +extends: 02-DECISIONS/0191-the-meshs-resolver-holds-only-the-meshs-own-names.md --- # 194. The mesh has one resolver, and every node asks it for the mesh's names diff --git a/02-DECISIONS/0199-a-module-that-answers-names-declares-its-zone-and-a-nodes-hosts-file-is-one-modules.md b/02-DECISIONS/0199-a-module-that-answers-names-declares-its-zone-and-a-nodes-hosts-file-is-one-modules.md index 2d1912b6..3c257d9d 100644 --- a/02-DECISIONS/0199-a-module-that-answers-names-declares-its-zone-and-a-nodes-hosts-file-is-one-modules.md +++ b/02-DECISIONS/0199-a-module-that-answers-names-declares-its-zone-and-a-nodes-hosts-file-is-one-modules.md @@ -4,7 +4,7 @@ status: accepted date: 2026-10-03 deciders: jochen reconstructed: false -extends: 0194-the-mesh-has-one-resolver-and-every-node-asks-it-for-the-meshs-names.md +extends: 02-DECISIONS/0194-the-mesh-has-one-resolver-and-every-node-asks-it-for-the-meshs-names.md --- # 199. A module that answers names declares its zone, and a node's hosts file is one module's