Glossary¶
Term collisions have been a recurring defect — artifacts/ as a directory
against Artifact the normative term, and DEC-P4 against principle P4.
Both were caught late, by a reader.
This file exists so the next one is caught early. Before introducing a term, check it here.
What counts as a collision¶
Two senses collide when both can be live in the same context — the same document, the same repository, or the same sentence in ordinary use.
Reuse across separated contexts is a homonym, and homonyms are fine. A codebase uses "key" for a cryptographic key and a map key without confusion, because no passage means both.
artifacts/ collided because the directory sat inside the repository that
defines ArtifactStatement — a reader could reasonably ask whether ARCH-0001
was itself an Artifact. DEC-P4 collided because it appeared in the same
document as principle P4.
Applying this test too eagerly is its own defect. An earlier revision of
this file listed tags and topic as live collisions and proposed renaming
28 files; neither survives the test above. Recorded below so the over-correction
is visible rather than repeated.
Collisions — currently live¶
persona — resolved 2026-10-14 by writing archetype for the template sense ✅¶
Passes the test: both senses were live on one page, PLAN-0002 §2.1, where the CS690 template's user persona and the wallet's persona would sit in the same table.
| sense | where | is now written |
|---|---|---|
| wallet persona — a key-identified principal: its keys, the contexts it acts in and the contexts it trusts; controlled by a person, organisation, service, AI agent or device | ARCH-0003, APP-0001 §4b | persona |
| template persona — a representative user, for product design | the CS690 Product Spec template; PLAN-0002 §2.1 | archetype |
And a third thing that had been mislabelled as both: domain author, issuer, relying party are roles — what one key does in one statement — not personas of either kind (ARCH-0003 §1).
D-n — resolved 2026-10-11 by renaming to MD-n ✅¶
The one that passed the test above, and the only one that has.
| sense | where | was | is now |
|---|---|---|---|
| dated decision | the weekly minutes, project/meetings/ |
D-1 … D-7 |
MD-1 … MD-7 |
| deliverable | PLAN-0001 §9, PLAN-0003, PROC-0004, the backlog's del column, issue titles |
D0 … D10 |
unchanged |
Why it collided where tags and topic did not. Both senses were live in
one table on one page — PLAN-0003 listed D-3 (the encoding decision) two
rows above D3 (the research reports), and D-5 (survey defaults) against D5
(the Oct 28 fixture package). That is the test, met exactly.
Why the decisions were the side that moved. The deliverables are the
wider-used of the two: they appear in GitHub issue titles, which cannot be
rewritten cleanly, and in the backlog's del column on every row.
Redirect — older text citing
D-nmeansMD-n. 129 citations were rewritten across both repositories on 2026-10-11 (75 inmofn, 54 inlibrary). Anything written before that date, including closed PRs, issue comments and merged design-log entries, uses the old form. A bareD-3in older text isMD-3, neverD3— which is the hazard that made the rename worth doing, since the deliverableD3still exists.Unaffected:
JCS-D-01andJCS-D-02in the RFC 8785 library record are Appendix D test vectors, a different family entirely.
Collisions — raised and withdrawn¶
Both were withdrawn on 2026-09-22 as DECISIONS-0001 register items 6b and
6c, and neither survives the test in the section above: they are homonyms across
separated repositories and documents, not senses live in one context. They are
kept here so the over-correction stays visible rather than being re-raised.
(An earlier revision of this file listed both under "currently live" with "needs resolving — register item", three weeks after the register withdrew them. That contradiction is corrected here.)
"Topic" — two senses, withdrawn ⊘¶
| sense | where | means |
|---|---|---|
| research topic | library/topics/<id>.yaml, PROC-0001 §4, PROC-0003 §2 |
the unit of parallel work: one bounded question, one owner, one branch |
| delegation topic | ARCH-0002 P2 — A says B can speak about (Domain, Topic) | a semantic scope within a domain of discourse |
These are unrelated — one is project management, one is authorization scope — but no passage means both, so no rename is owed. Should they ever meet in one document, the architectural sense has the claim on the word.
"Tag" — two senses, withdrawn ⊘¶
| sense | where | means |
|---|---|---|
| authorization tag | ARCH-0001 §4.1 Tag, R-M-08, DEC-004 |
the SPKI authorization value, with defined intersection semantics |
| library tag | library/schema/tags.yaml — subject, body, role |
a classification label on a bibliographic record |
Also unrelated: one composes under reduction, the other is a filing label. Same verdict — a homonym across two repositories, not a collision.
Settled terms¶
KSA — Key-centric Semantic Attestations: the protocol specified by SPEC-0001 to SPEC-0005, whose core is based on the sponsor's FKSA v0.2.1 (ADR-0003). Not wire-compatible with FKSA by design.
Anchor — an entry in a context's anchor list from which trust flows. May be an unsigned local decision, the owner's own trust statement, or a third party's signed trust statement accepted by a human- or organisation-controlled persona; a signature alone never makes an anchor (ADR-0003 D3, SPEC-0004 §4).
Persona — a key-identified principal: the key or keys that speak as it, the contexts it acts in, and the contexts it trusts. Its controller may be a person, an organisation, a service or script, an AI agent, a software implementation or a device. A wallet owns some personas (it holds their private keys) and knows others (ARCH-0003 §1, §3.2, W-01). Not the template's archetype.
Panel — a definition entry naming a set of keys that may speak on one topic — usually review — about a hashed object; at run time, a delegation whose subject is a set (ARCH-0003 §3.9).
Process — a definition entry declaring inputs (statements of a template,
from a panel, about one object), a declarative criteria rule (e.g. 2-of-3
approve, none reject, within 48h), the statement its result produces, and what
consumes it downstream. Cited by ProcessRef, by hash (ARCH-0003 §3.9).
Aggregate — the statement a process produces, citing the process and the hash of every input. Trusted only because any observer can recompute it (ARCH-0003 W-21).
Template — a definition entry a statement is issued from: target rules, required and fixed attributes, constraints, who may issue, and the sentence it renders as. A statement citing a template must conform to it (ARCH-0003 §3.6, W-17).
Role — what a key does in one statement: define, claim, delegate, review, approve, present, rely. A property of the statement, not of the person (ARCH-0003 §4).
Context — where, with whom and about what a persona acts. Holds the keys enabled there, the definitions in use, and the trust anchors for that context only (ARCH-0003 §3.4).
Definition — a vocabulary, schema or protocol, published by a definer key.
Identified by DefinitionId, the hash of its canonical encoding; a URL is a
retrieval hint, never its identity (ARCH-0003 §3.5). Generalises domain of
discourse (ARCH-0002 P4).
Capability — what the wallet will let a key sign: a role, a signing profile (with its domain-separation tag), and an optional scope (ARCH-0003 §3.3).
Artifact — RFC 9943 sense: a physical or non-physical item moving along a
supply chain; the thing a statement is about. ArtifactId,
ArtifactStatement. Never used for files, documents or build outputs — the
directory that misused it is now spec/ and project/.
Statement — the universal form, A says B has C (ARCH-0002 P2).
Speaker — the A in that form. A key, a key hash, or an alias resolving to one. Per SDSI/SPKI, the speaker is the key.
Says — the signature. Not metadata about a statement; the cryptographic act is the saying.
Attestation — the basic function: A says B has C.
Delegation — A says B can speak about (Domain, Topic). Scoped semantically, not only by tag.
Constraint — a narrowing over a schema of tag values, expressed as a statement. A function over the form, not a separate kind of object. A constrained object is a different object from its type.
Contract — a further statement function, not yet specified. DEC-009.
Type — a schema: representation, constraints on usage, semantic descriptions, and tags for human review of usage, with short descriptions that may be multilingual (ARCH-0002 P3). Not a bare label.
Domain of discourse — a hash-identified set of types (ARCH-0002 P4). The unit of meaning and, per P2, the unit of authority scope.
Valid — RFC 8949's middle level: meets the data model's own constraints. Distinct from well-formed (decodable) and expected (what the application requires). All three are required; failure at any is rejection, never repair.
Record — a library entry, library/records/<body>/<id>/. Unrelated to any
architectural term.
Summary (summary.md) — the primary human- and AI-facing document for a
record. Distillation (distilled/) — the FX-1 artifact set built when a
record is extracted against. They are not synonyms. (The directory was
distilled.md, a single file, before FX-1.)
Requirement — two senses, deliberately kept apart: an extracted
requirement comes from a source document (library/.../requirements/,
RFC 2119/8174 verb, actor, condition, locator); an authored requirement is
ours (R-M-*, R-O-* in ARCH-0001). Direction of travel matters: never file one
as the other.