Bootstrap security-canon governance and extraction plan

Scaffold the repository to the repo-manager standard and establish its
governance surface: INTENT declaring the Taxonomy-layer claim and boundary
against NetKingdom, flex-auth, key-cape, OpenBao and whitehat-security; GOAL
with migration invariants and success gates; SCOPE listing the extraction
candidates and the unresolved boundary questions; AGENTS repo identity; repo
classification.

Add SECURITY-WP-0001 covering registration, the disposition review of
InfoTechCanon's security material, the reference-impact survey, the federation
interface card, and the handoff to a migration workplan. No canon content is
moved yet — the migration waits on the reviewed disposition.

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
This commit is contained in:
tegwick 2026-09-20 20:32:05 +02:00
parent 3980b841ea
commit 1ac4f56783
8 changed files with 1706 additions and 1 deletions

11
.repo-classification.yaml Normal file
View file

@ -0,0 +1,11 @@
repo_classification:
standard: Repo Classification Standard
version: '1.0'
classified_at: '2026-09-20'
classified_by: agent
category: project
domain: infotech
secondary_domains: []
capability_tags: [canon, security, access-governance, terminology, knowledge]
business_stake: [technology, product, operations]
business_mechanics: [coordination, operation]

30
AGENTS.md Normal file
View file

@ -0,0 +1,30 @@
# Agent instructions — security-canon
## Repo Identity
**Purpose:** Orthogonal vocabulary and canonical model for security-related concepts, extending InfoTechCanon.
**Domain:** infotech
**Repo slug:** security-canon
**Topic ID:** `fe2aaa78-9c20-4feb-b3d2-4fe0529572a3`
**Workplan prefix:** `SECURITY-WP-`
**Upstream canon:** info-tech-canon
Orient: INTENT.md → GOAL.md → SCOPE.md → workplans/.
## State Hub Integration
<!-- BEGIN STATE-HUB-ACCESS -->
| Context | URL |
|---------|-----|
| Local workstation | `http://127.0.0.1:8000` |
| Remote (railiance01, in-cluster) | `http://10.43.68.154:8000` |
| Optional local edge relay | `http://127.0.0.1:18080` |
Do not instruct a remote agent to use `http://127.0.0.1:18000`. That reverse tunnel is retired; on railiance01 reach the hub at the in-cluster address above.
<!-- END STATE-HUB-ACCESS -->
## Cross-repo waits
If blocked on another repo, look for a `prj-` driver workplan and follow `coordination-engine` `spec/cross-owner-wait-mode-v0.1.md`. Do not mint a stranded `wait`, implement `flavor: residual`, or message `ops-warden` for secrets.

49
GOAL.md Normal file
View file

@ -0,0 +1,49 @@
---
repo: security-canon
repo_flavor: project
project_status: draft
started: "2026-09-20"
---
# Goal — security-canon
## Outcome
InfoTechCanon's IT-security material lives in SecurityCanon as a coherent,
independently reviewable canon: security terminology, the CARING access
governance standard and its Kubernetes RBAC benchmark, published with declared
imports from InfoTechCanon, a federation interface card, and preserved
provenance — while InfoTechCanon retains only the shared roots those artifacts
import and carries no dangling references.
## Invariants
- InfoTechCanon remains valid at every step: `make check` passes and its
validation reports zero errors before and after each migration slice.
- Migrated artifacts keep their provenance and their InfoTechCanon history;
extraction is a move with recorded lineage, not a rewrite.
- Concepts are imported from their owning canon, never redefined on both sides.
- No concept is left unowned, and no concept is claimed by two canons.
- The State Hub stays a read model: workplan files here are authoritative and
are registered by `fix-consistency`, never by hand.
## Success gates
1. Repository registered in the State Hub with a topic, classification, and
federation interface card; reciprocal navigation with InfoTechCanon passes
the canon-federation validator.
2. A reviewed disposition record naming, for every security artifact in
InfoTechCanon, whether it moves, stays, or splits — with rationale.
3. Migration complete: the artifacts dispositioned as `move` are present here
with provenance, and absent from InfoTechCanon.
4. Both canons validate clean after migration, with no unresolved cross-canon
references in either direction.
5. At least one worked profile or benchmark demonstrates the canon is usable by
a consumer, and its scope statement is reviewed against intent.
## Project retirement
Archive this repository only if the extraction is abandoned and the material
returns to InfoTechCanon. On success this repository does not retire — it
becomes a standing canon and its project flavor is reconsidered, as
CommerceCanon and InterfaceCanon were.

90
INTENT.md Normal file
View file

@ -0,0 +1,90 @@
# Intent
SecurityCanon provides an implementation-neutral vocabulary and canonical model
for security-related concepts. It extends InfoTechCanon in the same architectural
role that CommerceCanon serves for commercial terminology and InterfaceCanon for
interface terminology: import shared roots, contribute a focused domain model,
and avoid redefining concepts another canon already owns.
## Origin and demand
The initial demand is the repository owner's 2026-09-20 request to refine
InfoTechCanon by moving its IT-security material into a dedicated canon.
InfoTechCanon has accumulated security content — a security model, an access
control model, a DevSecOps model, the CARING access governance standard, and the
CARING Kubernetes RBAC benchmark — that is orthogonal to its taxonomy-layer role
and better served by a canon with its own review cadence and consumers.
Extraction is a migration, not a rewrite. Source artifacts keep their provenance,
and InfoTechCanon retains the shared roots that security terminology imports.
## Layer and boundary
SecurityCanon declares itself part of the **Taxonomy** layer under the NetKingdom
Security Layer Model. It produces security terminology, semantic contracts, and
compatibility rules for independently owned systems.
SecurityCanon owns security concept definitions and their cross-canon mappings.
It does not own a runtime position, enforcement, or state on which another layer
depends:
- **NetKingdom** owns its security architecture, its standards of record,
including the security layer model, and any NetKingdom-specific profiles that
import this canon.
- **flex-auth** owns authorization decisions; **key-cape** and Keycloak own
login, OIDC, and MFA; **OpenBao** owns secret custody. SecurityCanon describes
those concepts; it does not perform them.
- **whitehat-security** owns adversarial evidence and findings practice.
- **InfoTechCanon** remains the authority for the shared roots — artifact,
ownership, relationship, mapping, assimilation, profile, pattern, conformance,
provenance, and interface mechanisms — that this canon imports.
- Consumers own their own adoption evidence and importing profiles.
A generic security semantic contract belongs here; a security obligation imposed
on a concrete estate belongs to the owner of that estate.
## Primary utility
SecurityCanon helps turn security integration by interpretation into integration
by declared semantic contract. It provides:
- canonical security concepts with clear ownership,
- orthogonal security standards that import rather than redefine,
- mappings to external security standards, frameworks, and regulations,
- benchmarks that test a standard against a concrete native access model,
- application profiles for concrete implementation contexts,
- and retrieval-friendly markdown artifacts for humans, agents, and tools.
## Design stance
SecurityCanon follows InfoTechCanon's stance: markdown-first but machine-readable,
network-shaped rather than purely hierarchical, pattern-oriented rather than merely
taxonomic, externally mappable without being externally constrained, and
orthogonal without becoming isolated.
External standards influence SecurityCanon through mappings and assimilation.
They do not define its internal semantics directly.
## Core commitments
1. Every canonical security concept has a clear owner.
2. Concepts are imported from their owning canon, never redefined.
3. Mappings to external bodies of knowledge are explicit, versioned, scoped, and justified.
4. Migrated artifacts preserve provenance and their InfoTechCanon history.
5. Profiles constrain standards for concrete implementation contexts.
6. Artifacts are useful to both humans and agents.
7. Evolution preserves provenance, compatibility information, and rationale.
## Non-goals
SecurityCanon does not replace external standards such as NIST, ISO 27001, CIS,
OWASP, or MITRE ATT&CK. It does not define one mandatory security model every
system must fully implement, operate consumer systems, enforce policy, issue
credentials, or provide production authorization or detection services.
## Direction of travel
The repository should initially establish the canon skeleton and federation
interface, then receive the security material extracted from InfoTechCanon with
its provenance intact, then publish mappings and at least one worked profile.
Stable promotion requires reviewed mappings and concrete consumer evidence.

View file

@ -1,3 +1,26 @@
# security-canon
Othogonal vocabulary and canonical model for security related concepts.
Orthogonal vocabulary and canonical model for security-related concepts.
SecurityCanon extends InfoTechCanon with a focused security domain model, in the
same architectural role that [CommerceCanon](../commerce-canon) holds for
commercial terminology and [InterfaceCanon](../interface-canon) for interface
terminology. Its initial content is the IT-security material extracted from
InfoTechCanon: the security, access control, and DevSecOps models, the CARING
access governance standard, and the CARING Kubernetes RBAC benchmark.
| | |
| --- | --- |
| **Flavor** | project |
| **Domain** | infotech |
| **Workplan prefix** | `SECURITY-WP-` |
| **Upstream canon** | [InfoTechCanon](../info-tech-canon) |
Start with [INTENT.md](INTENT.md), [GOAL.md](GOAL.md), and [SCOPE.md](SCOPE.md).
Agent instructions are in [AGENTS.md](AGENTS.md); active work is in
[workplans/](workplans/).
## Status
Bootstrap. The repository is registered and governed, but holds no migrated
canon content yet. See [SECURITY-WP-0001](workplans/SECURITY-WP-0001-bootstrap-and-extraction-plan.md).

52
SCOPE.md Normal file
View file

@ -0,0 +1,52 @@
# SCOPE
Reviewed: 2026-09-20 (Europe/Berlin).
## Current repository scope
Bootstrap. The repository carries governance files — INTENT, GOAL, SCOPE,
AGENTS, repo classification — and one active workplan. It holds no canon
content and no service code yet.
## Ownership and boundaries
Following [INTENT.md](INTENT.md), SecurityCanon occupies the Taxonomy layer and
owns security concept definitions and their cross-canon mappings. It imports
shared roots from InfoTechCanon and does not redefine them.
Out of scope, with the owner named:
- security architecture and standards of record for the estate — NetKingdom
- authorization decisions — flex-auth
- login, OIDC, MFA — key-cape / Keycloak
- secret custody and credential issuance — OpenBao, ops-warden
- adversarial evidence and findings practice — whitehat-security
- shared artifact/ownership/mapping/profile mechanisms — InfoTechCanon
- consumer runtime state, enforcement, observation, and adoption evidence — the consumers
## Planned scope
The extraction candidates in InfoTechCanon, pending the disposition review in
`SECURITY-WP-0001-T02`:
| Source path in info-tech-canon | Kind |
| --- | --- |
| `infospace/models/security/` | model |
| `infospace/models/access-control/` | model |
| `infospace/models/devsecops/` | model |
| `infospace/standards/caring/` | standard |
| `infospace/standards/caring/benchmarks/kubernetes-rbac/` | benchmark |
Open boundary questions the disposition review must answer, not assume:
- whether `infospace/models/identity/` is security terminology or a shared root
that stays in InfoTechCanon;
- how the small-saas profile's security artifacts (policy, control, evidence,
incident) split between the two canons;
- which InfoTechCanon concepts become declared imports rather than moves.
## Exclusions and evolution
No service surface, CLI, HTTP API, or validation tooling is in scope until the
canon content exists and a demand for them is recorded. Whether SecurityCanon
reuses InfoTechCanon's Python service or ships its own is deferred.

1346
spec/ModeOfAuthorityCanon-v0.1.md Executable file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,104 @@
---
id: SECURITY-WP-0001
type: workplan
title: "Bootstrap security-canon and plan the InfoTechCanon security extraction"
domain: infotech
repo: security-canon
status: active
owner: claude
topic_slug: security-canon
created: "2026-09-20"
updated: "2026-09-20"
---
# Bootstrap and extraction plan
The repository owner asked on 2026-09-20 to refine InfoTechCanon by moving its
IT-security material into a dedicated canon. This workplan establishes
SecurityCanon as a governed, registered repository and produces the reviewed
disposition that the migration itself will follow.
Scope is bootstrap and planning. The migration of artifacts is deliberately not
in this workplan: it depends on the disposition review in T02 and gets its own
workplan once the boundary is settled. See [INTENT.md](../INTENT.md) for the
layer claim and [GOAL.md](../GOAL.md) for the success gates.
## Establish repository governance and registration
```task
id: SECURITY-WP-0001-T01
status: done
priority: high
```
Clone the Forgejo stub to the workstation, scaffold the repository to the
repo-manager standard, and write the governance files: INTENT, GOAL, SCOPE,
AGENTS with repo identity, README, and repo classification. Register the
repository and this workplan in the State Hub by committing the files and
running `statehub fix-consistency` — never by hand.
## Disposition review of InfoTechCanon security material
```task
id: SECURITY-WP-0001-T02
status: todo
priority: high
```
Produce a reviewed disposition record naming, for every security artifact in
InfoTechCanon, whether it moves to SecurityCanon, stays, or splits — with
rationale and the resulting import declarations. Candidates are the security,
access control, and DevSecOps models, the CARING access governance standard, and
its Kubernetes RBAC benchmark.
Resolve the open boundary questions rather than assuming them: whether the
identity model is security terminology or a shared root; how the small-saas
profile's policy, control, evidence, and incident artifacts split; and which
InfoTechCanon concepts become declared imports instead of moves. Record the
answers as a decision, since they bind both canons.
## Reference-impact survey
```task
id: SECURITY-WP-0001-T03
status: todo
priority: medium
```
Enumerate every inbound reference to the extraction candidates — InfoTechCanon
relationships, indexes, generated views, agent briefs, profiles, evaluations,
mappings, and its Python validation checks — plus references from other repos.
The survey sizes the migration and is the checklist that keeps InfoTechCanon
validating clean after each slice.
## Federation interface card and reciprocal navigation
```task
id: SECURITY-WP-0001-T04
status: todo
priority: medium
```
Publish SecurityCanon's interface card with actual imports, available exports,
source authority, maturity, and peer references, following the pattern
CommerceCanon and InterfaceCanon established. Add reciprocal navigation with
InfoTechCanon and pass the canon-federation validator. Coordinate with
prj-canon-federation rather than amending federation governance here.
## Migration workplan handoff
```task
id: SECURITY-WP-0001-T05
status: wait
priority: medium
```
With the disposition (T02) and reference survey (T03) reviewed, draft the
migration workplan — slice order, provenance handling, and the per-slice
validation gate for both canons. Waits on T02 and T03.
## Out of scope
No canon content is authored or moved under this workplan. No service surface,
CLI, HTTP API, or validation tooling is built for SecurityCanon; whether it
reuses InfoTechCanon's Python service is deferred until content exists.