Skip to content

Commit 6004912

Browse files
unionalclaude
andcommitted
docs(web): add a glossary to the lattice model
The model is meant to be referenced by other repositories, so its vocabulary is a shared surface and needs one lookup page. Also records the terms deliberately not used — fabric, direction on a connection, procedural framing — with the reason each was rejected, so they are not re-proposed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NVUmAFcaehyGJRUSxUUtFU
1 parent 9c8b080 commit 6004912

3 files changed

Lines changed: 162 additions & 0 deletions

File tree

apps/web/astro.config.mjs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ export default defineConfig({
3535
],
3636
},
3737
{ label: 'Open questions', link: '/model/open-questions/' },
38+
{ label: 'Glossary', link: '/model/glossary/' },
3839
],
3940
},
4041
{
Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
---
2+
title: Glossary
3+
description: The model's vocabulary in one place — every term it defines, and the ones it deliberately avoids
4+
---
5+
6+
:::caution[Design, not implementation]
7+
Nothing described here is built. See [the model overview](/cyber-truss/model/).
8+
:::
9+
10+
The model is meant to be referenced by other repositories, which makes its vocabulary a
11+
shared surface. Every term below is defined on exactly one page; this page collects them
12+
and points at the definitions.
13+
14+
## Terms
15+
16+
### Artifact
17+
18+
One *type* of thing in a repository, never one file. Four vendor plugin manifests are one
19+
artifact. Defined in [Artifact-sets](/cyber-truss/model/artifact-sets/#artifact).
20+
21+
### Artifact-set
22+
23+
A group of artifacts, grouped along one of [two orthogonal axes](/cyber-truss/model/artifact-sets/#two-axes)
24+
— unit of change or governance target. The unit the model reasons about, and the node in
25+
[the lattice graph](/cyber-truss/model/lattice/#a-graph-of-interconnected-nodes).
26+
27+
### Completeness strain
28+
29+
A specification and its implementation disagree while both are in hand. Intra-unit-of-change,
30+
and it blocks. See [three kinds of strain](/cyber-truss/model/connections/#three-kinds-of-strain).
31+
32+
### Confluence
33+
34+
The guarantee: whichever artifact you change first, the repository settles into the same
35+
state. Claimed over [topology](#topology), not over bytes. See
36+
[Confluence](/cyber-truss/model/confluence/).
37+
38+
### Conformance strain
39+
40+
Criteria are unsatisfied with no counterpart implementation in the delta at all —
41+
evaluable on a cold repository, with no diff. The axis-2 strain.
42+
43+
### Connection
44+
45+
An **undirected** relation between two artifact-sets that must hold. Never a handler that
46+
fires, and never an arrow. It relates their [specifications](#specification), not their
47+
implementations. See [Connections](/cyber-truss/model/connections/).
48+
49+
### Controller
50+
51+
Whatever holds one artifact-set consistent, on a spectrum from agent definition through
52+
skill, instruction, and governance to deterministic code. A compiler is a controller. See
53+
[Controllers](/cyber-truss/model/artifact-sets/#controllers).
54+
55+
### Coordinates
56+
57+
The properties that are free to differ between two runs of the same change — prose,
58+
section order, file organisation. The complement of [topology](#topology).
59+
60+
### Criteria
61+
62+
The half of a [specification](#specification) stating what must be true of the outcome.
63+
Evaluable against the implementation as a blackbox, which is what makes criteria survive a
64+
change of representation.
65+
66+
### Discharge
67+
68+
Where a workflow requires strain on a crossing to be resolved. SDD's implementation gate is
69+
a discharge point. One of the four parameters of a [formal workflow](#formal-workflow).
70+
71+
### Distillation
72+
73+
Reducing an arriving change to a [Request](#request) plus the workflow that applies —
74+
separating intent from the particular expression of it. Irreducibly agentic, and the step
75+
that carries the confluence guarantee. See
76+
[Canonical execution](/cyber-truss/model/canonical-execution/#distillation-carries-the-weight).
77+
78+
### Formal workflow
79+
80+
A named policy over the lattice, fixing four things: which artifact-sets it spans, the
81+
shape of the connections between them, where discharge happens, and how much strain may
82+
cross. See [the catalog](/cyber-truss/model/workflows/).
83+
84+
### Governance target
85+
86+
[Axis 2](/cyber-truss/model/artifact-sets/#axis-2--governance-target). Artifacts the same
87+
criteria apply to. State-driven — it needs no diff.
88+
89+
### Implementation
90+
91+
The role an artifact holds on an edge where something else constrains it. A blackbox: the
92+
model reasons about its outcome, not its internals. A role, not a kind of artifact — see
93+
[Specification](/cyber-truss/model/specification/#specifies-is-a-relation-not-a-layer).
94+
95+
### Intent
96+
97+
The half of a [specification](#specification) stating what the thing is for and which
98+
direction it should move in. Argued with, not evaluated.
99+
100+
### Lattice
101+
102+
The concept the system is worked out from, in three readings: the crystal that settles
103+
back, the graph that redistributes load, and the order-theoretic structure with a join.
104+
Used in prose, never as the wordmark. See [The lattice](/cyber-truss/model/lattice/).
105+
106+
### Lifting
107+
108+
Raising a raw line diff into artifact-set vocabulary. A prerequisite for everything
109+
downstream, because an unlifted diff and a connection are written in different languages.
110+
111+
### Obligation strain
112+
113+
A specification whose implementation lives elsewhere — an accepted ADR constrains modules
114+
it does not contain. Does not block, must be tracked, and can be **declined**.
115+
116+
### Request
117+
118+
The distilled intent behind an arriving change, separated from its particular expression.
119+
Two different expressions of one intent must distil to the same Request.
120+
121+
### Specification
122+
123+
[Intent](#intent) and [criteria](#criteria) together. Also the role an artifact holds on an
124+
edge where it constrains something else — per-edge, so one artifact is a specification on
125+
one edge and an implementation on another. See
126+
[Specification](/cyber-truss/model/specification/).
127+
128+
### Staleness
129+
130+
What scoping identifies: which artifacts a change has left inconsistent with the rest of
131+
the system. The observable that strain describes.
132+
133+
### Strain
134+
135+
A connection whose relation does not currently hold. Comes in
136+
[three kinds](/cyber-truss/model/connections/#three-kinds-of-strain) that block
137+
differently: completeness, obligation, and conformance.
138+
139+
### Topology
140+
141+
The properties that must converge across entry points — scenarios, actors, and edges. The
142+
thing [confluence](#confluence) is claimed over, and the thing the model's acceptance test
143+
diffs.
144+
145+
### Unit of change
146+
147+
[Axis 1](/cyber-truss/model/artifact-sets/#axis-1--unit-of-change). Artifacts that must
148+
move together for a change to be complete — what belongs in one commit to be coherent.
149+
Delta-driven.
150+
151+
## Terms deliberately not used
152+
153+
Recorded so they are not re-proposed.
154+
155+
| Term | Why not |
156+
| --- | --- |
157+
| **Fabric** | A third near-synonym for lattice and topology makes all three fuzzy. What it reaches for — the subgraph a given change affects — needs an obviously different word, not an overlapping one. |
158+
| **Arrow**, **direction** on a connection | Direction is a property of where the delta landed, not of the relation. Writing it into the connection [bakes in one workflow](/cyber-truss/model/connections/#connections-are-undirected). |
159+
| **Handler**, **trigger** for a connection | A connection states a relation that must hold. Procedural framing needs one path per direction and [loses confluence immediately](/cyber-truss/model/connections/#declarative-never-procedural). |
160+
| **Truss** in prose | The wordmark, and the mental image behind it. The concept is *the lattice*. |

apps/web/src/content/docs/model/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ documentation are raised and discharged out-of-band.
7878
| [Formal workflows](/cyber-truss/model/workflows/) | Staged processes across eight fields, and the four parameters they all reduce to |
7979
| [Waterfall in the model](/cyber-truss/model/workflows/waterfall/) | One of them worked in full — and the half of it that turns out to be unnecessary |
8080
| [Open questions](/cyber-truss/model/open-questions/) | What is unresolved, and what breaks if it resolves badly |
81+
| [Glossary](/cyber-truss/model/glossary/) | Every term the model defines, and the ones it deliberately avoids |
8182

8283
## What this model is not
8384

0 commit comments

Comments
 (0)