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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user