Write every extends target with its folder, as the frontmatter template says, so a reader of the field needs no second form

This commit is contained in:
2026-10-11 00:43:13 +02:00
parent eac30272ee
commit 6a408428d6
47 changed files with 47 additions and 47 deletions
@@ -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
@@ -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
+1 -1
View File
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
---
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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