diff --git a/schemas/cultnet/README.md b/schemas/cultnet/README.md index 2ca319c8..b21a5244 100644 --- a/schemas/cultnet/README.md +++ b/schemas/cultnet/README.md @@ -26,14 +26,17 @@ hand-maintained JSON registry. - `gamecult.persona_state.v0`: portable public Persona state. - `epiphany.work_organ_state.v0`: portable state for lean work organs. - `epiphany.pipeline.*.v1`: Eureka pipeline state (campaign, target, question, - ruling, cut spec, cut report, verdict, finding, follow-up, resolution), stored - per repo at `.epiphany/pipeline/pipeline.cc`. + ruling, cut spec, cut report, verdict, finding, follow-up, resolution, plus + instance, stewardship and hand-off), stored in an instance's mind and owned by + the Huginn memory organ. A store is canonical to exactly one instance, so the + instance document carries the identity, stewardship records which repos that + instance is assigned, and a hand-off records a reassignment in both minds. Pipeline wire note: each document payload is `[value]`, a one-element MessagePack array whose element is the named map the schema describes. These -contracts cross to Eureka MCP clients and the voidbot projection. The files are +contracts cross to the Huginn organ and its `eureka-state` client. The files are derived from the Rust value types and checked byte-for-byte by -`pipeline_published_schemas_match_derivation`; text bounds are UTF-8 bytes and +`epiphany-pipeline`'s `pipeline_published_schemas_match_derivation`; text bounds are UTF-8 bytes and enforced by admission, not by the schema. Evolution is additive: a new named field with a serde default keeps `epiphany.pipeline.epoch.v1`; a breaking change bumps the epoch, and the new binary refuses the old store.