canon: resolve work-record governance packets
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Python Tests / pytest (push) Successful in 21s

This commit is contained in:
codex 2026-08-22 22:35:37 +02:00
parent 3db3570b93
commit 8bda6e28b4
7 changed files with 255 additions and 11 deletions

View file

@ -8,6 +8,10 @@ kinds:
id_patterns:
- "^[A-Z]+-WP-[0-9]{4}$"
lifecycle: [proposed, ready, active, blocked, backlog, finished, archived]
legacy_patterns:
- pattern: "^MASON-0001$"
source: ops-mason bootstrap workplan created before WP infix convention
grandfathered: true
- kind: task
id_patterns:
- "^[A-Z]+-WP-[0-9]{4}-T[0-9]{2,3}$"
@ -20,6 +24,9 @@ kinds:
- pattern: "^[A-Z]+-WP-[0-9]{4}-LEGACY-T[0-9]{2}$"
source: archived-workplan legacy task renumbering
grandfathered: true
- pattern: "^MASON-0001-T[0-9]{2,3}$"
source: ops-mason bootstrap tasks created before WP infix convention
grandfathered: true
- kind: intake
id_patterns:
- "^[A-Z]+-IN-[0-9]{4}$"
@ -49,6 +56,8 @@ kinds:
- kind: register-entry
id_patterns:
- "^RISK-[0-9]{3}$"
- "^RISK-F-[0-9]{4}$"
- "^RISK-REG-[0-9]{4}$"
- "^TD-[0-9]+$"
- "^CAP-[0-9]+$"
- "^CCR-[0-9]{4}-[0-9]{4}$"
@ -69,3 +78,6 @@ origin_values_recommended:
residual: residual
handoff: handoff
legacy_suggestion_prefix: "legacy-suggestion:"
identity_reconciliation:
repeated_same_id_same_uuid: duplicate_source_occurrence
repeated_same_id_different_uuid: identity_collision

View file

@ -6,7 +6,7 @@ domain: custodian
status: active
version: "0.1"
created: "2026-07-20"
updated: "2026-07-22"
updated: "2026-08-22"
scope: fleet
related_workplans:
- CUST-WP-0060
@ -58,12 +58,12 @@ attention_cost, …) extend the spine; they never replace it.
| Kind | Id scheme | Meaning | Absorbs / legacy |
| --- | --- | --- | --- |
| `workplan` | `{PREFIX}-WP-NNNN` | structured, dependency-bearing body of work | |
| `task` | `{WP-ID}-TNN` (workplan) · `ADHOC-YYYY-MM-DD-TNN` | smallest executable unit | issue-core issues become external projections only |
| `workplan` | `{PREFIX}-WP-NNNN` | structured, dependency-bearing body of work | `MASON-0001` (single bootstrap record, grandfathered) |
| `task` | `{WP-ID}-TNN` (workplan) · `ADHOC-YYYY-MM-DD-TNN` | smallest executable unit | `MASON-0001-TNN` (grandfathered); issue-core issues become external projections only |
| `intake` | `{PREFIX}-IN-NNNN` | spark: idea, finding, directive, request | hub suggestions (legacy, read-only close-out); `AWQ-NNN` (grandfathered) |
| `decision` | `{PREFIX}-DEC-YYYY-NNN` | approval package + resolution | `DEC-YYYY-NNN` (binky, grandfathered as-is) |
| `engagement` | `{PREFIX}-ENG-YYYY-NNN` | scheduled external interaction (counterparty, prepared material, time window) | `OH-YYYY-NNN` (grandfathered) |
| `register-entry` | existing schemes: `RISK-NNN`, `TD-…`, `CAP-…`, `CCR-YYYY-NNNN`, `ADR-NNN` | risks, technical debt, capability requests, credential change requests, architecture decisions | unchanged semantics, brought under the spine |
| `register-entry` | existing schemes: `RISK-NNN`, `RISK-F-NNNN`, `RISK-REG-NNNN`, `TD-…`, `CAP-…`, `CCR-YYYY-NNNN`, `ADR-NNN` | risks/findings, regulatory records, technical debt, capability requests, credential change requests, architecture decisions | unchanged semantics, brought under the spine |
Rules:
@ -77,6 +77,13 @@ Rules:
follows the legacy-meter discipline of
`workplan-terminology-fleet_v0.1.md`.
Risk Nexus findings (`RISK-F-*`) and regulatory records (`RISK-REG-*`) are
registered as variants of `register-entry`, not as parallel work kinds. Their
lifecycles remain owned by the register convention. `RISK-N-*` notes are
deliberately not registered: a note has no lifecycle, so it does not meet the
core definition of a work record. A note becomes part of the backbone only
when an event promotes its substance into a lifecycle-bearing kind.
## Identity layering
- **UUIDv7 is primary** for bookkeeping, relations, dependencies, and
@ -87,6 +94,11 @@ Rules:
required reading.
- The hub writes the UUID back into the source file at first index
(pattern: today's `state_hub_*_id` fields).
- A repeated source block with the same canonical id **and the same UUID** is
one record with duplicate source occurrences. Index it once, retain every
source location as diagnostic provenance, and report the duplication for
governed cleanup. The repetition must not mint a second record. The same
canonical id with different UUIDs is an identity collision and fails closed.
## Abstract lifecycles (canon-fixed, minimal)