# Human Stewardship Registry — Architecture **Source of truth:** `src/platform/stewardship/hsg-registry.ts`. ## Root object `HumanStewardshipRegistry` canonical fields: `id`, `name`, `version`, `status`, `volumes`, `doctrines`, `principles`, `relatedConstitutionSections`, `relatedCapabilities`, `relatedProducts`, `validationRules`, `history`, `createdAt`, `updatedAt`. `createFoundationRegistry()` returns v1.0 in `foundation` status with all fifteen volumes seeded as `planned`, no doctrines, no principles, and pointers to the existing constitutional sources. ## Append-only semantics - `volumeAppendIsSafe(before, after)` — new volumes may be appended at the end; existing entries cannot be removed or reordered; a volume that is `ratified` or `amended` cannot regress in status or lose its `ratifiedAt`. - Principles and doctrines follow the same append-only stance enforced by `validatePrinciple` and future `validateDoctrine` history checks. ## Derivations - `volumeById(r, id)` — direct lookup. - `doctrineById(r, id)` — direct lookup. - `principleById(r, id)` — direct lookup. - `principlesFor(r, target)` — every principle that applies to a product target (universal principles included). - `doctrinesFor(r, target)` — every doctrine that applies to a product target. ## Registry validation `validateRegistry(r)` catches duplicate ids and dangling references across volumes, principles, and doctrines. It runs before every ratification and is safe to run in tests as a smoke check.