security-canon/docs/adr-001-securitycanon-boundary.md
tegwick afb7a210d4 Use canonical decision id SECURITY-DEC-2026-001
The work-record type registry requires ^[A-Z]+-DEC-[0-9]{4}-[0-9]{3}$; SEC-DEC-0001
was flagged by fix-consistency C-31/C-35 as an unregistered species.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AUkN13CAqtXWPXuEiEtmJj

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 36656@bnt-lap001
Assistant-Session: 66d6eece-d245-43ca-85e8-68a1b5970a67
2026-09-20 21:36:23 +02:00

132 lines
5.8 KiB
Markdown

---
id: SEC-ADR-001
decision_record: SECURITY-DEC-2026-001
type: adr
title: "SecurityCanon boundary: abstraction layers, not content extraction"
repo: security-canon
status: accepted
decided: "2026-09-20"
decided_by: repository owner
supersedes_assumption: "SECURITY-WP-0001 as originally drafted"
---
# SEC-ADR-001 — SecurityCanon boundary
Owner decision of 2026-09-20, answering questions 1, 2, 4 and 5 of the
[Mode of Authority assessment](../history/260920-mode-of-authority-and-canon-structure.md).
Question 3 remains open and is treated in §6.
## Context
SecurityCanon was bootstrapped on the assumption that it is a destination for
IT-security material extracted from InfoTechCanon. Reviewing
`ModeOfAuthorityCanon-v0.1.md` showed that assumption was incomplete: the draft
is a native contribution, and it collides on terminology with InfoTechCanon's
CARING standard. Four questions were put to the owner.
## Decision
### D1 — CARING stays in InfoTechCanon
CARING is not migrated. It imports eleven InfoTechCanon models, and moving it
would cost more than it returns.
The governing principle the owner stated:
> SecurityCanon should help, not hinder, keeping InfoTechCanon practical.
Content migration is therefore **not urgent and not a goal in itself**. An
artifact moves only when moving it makes both canons more practical, and the
burden of proof is on the move.
### D2 — Auth Mode and CARING are different layers of abstraction
Mode of Authority is about **architecture**. CARING is about **implementation**.
| | Mode of Authority | CARING |
| --- | --- | --- |
| Question | In what relationship to a system is authority exercised? | How is this access-control implementation actually composed? |
| Layer | architecture / design reasoning | implementation analysis and governance |
| Use | describing intent before a system exists | describing and prescribing systems that exist |
| Home | SecurityCanon | InfoTechCanon |
They are not competitors and neither subsumes the other. The assessment's
"dimension collision" is therefore **not resolved by merging** but by keeping the
layers distinct.
**Direct terminology overlap must nonetheless be avoided.** Two different layers
may legitimately need related concepts, but they must not use the same word for
different things, nor silently define the same thing twice. The rule:
1. Where a concept is genuinely shared (Scope, Subject), one canon defines it and
the other imports it. InfoTechCanon owns the shared roots, so shared concepts
are defined there.
2. Where the concepts are genuinely different, the names must be visibly
different. `Operator` (CARING lifecycle role) and `OPERATE` (auth mode) are
the clearest offender and need explicit disambiguation, not renaming by
reflex.
3. Where one layer refines the other — MoA's Actor/Subject split against
CARING's single Subject — the relationship is recorded as a mapping, not a
redefinition. See §6.
### D3 — Identity is a shared root and stays in InfoTechCanon
Pulling identity into SecurityCanon would collapse too much into security.
Identity reaches into personhood and its philosophical underpinnings, which are
not security concerns.
A dedicated identity or personhood canon may eventually be right. That is
explicitly **deferred**, not rejected, and is not in scope for any current
workplan.
SecurityCanon imports identity concepts from InfoTechCanon. MoA's Principal Type
dimension is a security-side classification that references those concepts; it
does not define identity.
### D4 — No duplicated service surface
The requirement is **uniform integration**, not independent tooling:
> All the specific canons should integrate with InfoTechCanon properly and in
> the same way — commerce-canon, interface-canon, security-canon alike — and be
> referenced by InfoTechCanon in the same way.
Consequences:
- SecurityCanon ships **no** CLI, HTTP API, or validation service of its own.
- Integration uses the existing canon-federation interface card mechanism
(`infospace/interfaces/federation.yaml`, schema owned by InfoTechCanon,
authority `CUST-ADR-006`), exactly as CommerceCanon and InterfaceCanon do.
- InfoTechCanon's service surface is the single place canons are inspected and
validated. If SecurityCanon needs a check that does not exist, the change
belongs in InfoTechCanon's service, not in a second service here.
- Any divergence in how the three canons tie in is a defect to fix, not a local
choice. Coordinate through prj-canon-federation.
## Consequences
**The repository's purpose changes shape.** SecurityCanon is an
architecture-layer vocabulary canon that InfoTechCanon references, not an
extraction destination. Its first deliverable is the Mode of Authority
vocabulary and its federation card — not a migration.
**SECURITY-WP-0001 is re-scoped.** The disposition review narrows from "what
moves" to "where does each concept belong, and what is imported". The migration
handoff task is cancelled; nothing currently justifies a migration workplan.
**InfoTechCanon is not destabilised.** No artifact is removed from it under this
decision, so the invariant that InfoTechCanon validates clean is satisfied
trivially rather than by careful slicing.
## Open — Q3, the Actor/Subject split
Not decided. The owner asked for review and discussion of the implications
before deciding whether MoA's Actor/Subject split should change CARING's single
Subject dimension.
Under D2 the question is narrower than it first appeared: because the two are
different layers, the split does not have to propagate. The live options are a
mapping at the boundary, an additive relation field in CARING, or an upstream
change to a release-candidate standard. This is carried by
`SECURITY-WP-0001-T07` and treated in
[the Actor/Subject implications note](260920-actor-subject-implications.md).