net-kingdom/security-case-types/_template
tegwick d8cf42bab6
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 4s
NK-WP-0048: canon accepted; SecurityCaseType schemas, validator and template (T01, T03)
security-case-types_v0.1 accepted by the founder 2026-10-08. Adds JSON schemas
for types and cases, tools/security-case-types/security_case_validator.py
(validate-type, validate-case, render via the scenario composer, plan-only),
and a runnable _template type with README sections, an example case and tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 5457@bnt-lap001
Assistant-Session: 792bf84a-3783-4f5d-a811-cded61dd2012
2026-10-08 22:29:13 +02:00
..
examples NK-WP-0048: canon accepted; SecurityCaseType schemas, validator and template (T01, T03) 2026-10-08 22:29:13 +02:00
tests NK-WP-0048: canon accepted; SecurityCaseType schemas, validator and template (T01, T03) 2026-10-08 22:29:13 +02:00
README.md NK-WP-0048: canon accepted; SecurityCaseType schemas, validator and template (T01, T03) 2026-10-08 22:29:13 +02:00
type.yaml NK-WP-0048: canon accepted; SecurityCaseType schemas, validator and template (T01, T03) 2026-10-08 22:29:13 +02:00

SecurityCaseType template

Copy _template/ to security-case-types/<type-id>/ and rewrite every section. Canon: canon/standards/security-case-types_v0.1.md. A type is acknowledged through informed-decision only when this README, type.yaml, the example cases and the tests are complete and green.

Purpose

Which recurring use case the type serves, and the hand-built instances it replaces or adopts (reference instances). For the template: a loopback bootstrap identity for one operator, composed from net-kingdom.local-identity.

Threat model

What the type protects, from whom, and how. Name the assets (credentials, sessions, signing keys), the actors (anonymous, low-assurance operator, tenant, compromised workload) and what each step does to prevent misuse. For the template: the store is loopback-only and private to its owner; the signing key is referenced from custody, never written into a case.

Alternatives considered

The other shapes this pattern could have taken and why they were not chosen. This is the part an informed-decision is mostly about.

Attended steps

Every step marked attended: true, why it cannot run unattended, and how ops-warden groups such steps into as few attended sessions as possible.

Known limits

What the type does not cover, and when a request should become a new type or a new major version instead of a case.

Verification and rollback

How the checks in type.yaml prove a case is live without reading any value, and how rollback restores the state from before the case.