This repository has been archived on 2026-10-29. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
Epiphany/schemas/cultnet/README.md
Meta Vens d74e36aa06 Cut RS-L: the leaf gains Title, moves to epoch v2, and two grammar doors
Q-RS1 ruled B: a new bounded text type, Title (1-200 bytes, never empty),
replaces Short on all four leaf titles -- campaign, cut spec, and the two
new fields on question and ruling. The epoch moves anyway in this cut, so
tightening the two existing titles now avoids a second epoch bump later
just to make a title required.

PIPELINE_SCHEMA_EPOCH and all thirteen type ids move to .v2. The thirteen
schema files are renamed and regenerated, and index.json/README.md follow.

Two public doors join Slug::validate_slug on the same pattern:
OrgRepo::validate_org_repo and Label::validate_label, each delegating to
the grammar its own document field is already held to. RS-3 will read the
organ's repo and cut aliases through these.

Tests: the_org_repo_and_label_doors_are_the_grammar and
question_and_ruling_carry_a_title (37 total, up from 35). Mutation suite
tools/eureka-readside-leaf-mutations.psd1 (L1/L1L, L2/L2L, L3/L3L) verified
killed against M0.

No other consumer in this workspace depends on epiphany-pipeline as a
Cargo dependency; epiphany-core's runtime_spine stand-in hardcodes a
pipeline-shaped type id deliberately (RS-L's negative grep excludes it) and
is unaffected since its test only checks the "epiphany.pipeline." prefix.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-22 12:37:20 +02:00

3.4 KiB

CultNet Schemas

This folder contains Epiphany's JSON Schema publication artifacts for typed CultNet boundaries. Typed Rust documents registered in CultCache remain the runtime authority; these files help foreign consumers inspect the wire shape.

The product direction is project-native agency: clients should speak to a project or one of its Personas/Personas, then watch typed scheduling, memory, evidence, and authority surfaces do the structuring work. Aquarium is the most direct client, but Discord, voice/WebRTC rooms, stream overlays, native CLIs, and other trusted tools should discover the same contracts instead of inventing private command verbs.

What Lives Here

  • index.json: publication manifest for providers that expose these contracts.
  • *.schema.json: top-level JSON Schema receipts for payload/document shapes.

The catalog contains only contracts that cross an owned boundary. Runtime-local CultCache documents are discovered from the runtime's native registration and projected by their owning CultMesh provider. They are not copied into a second hand-maintained JSON registry.

Main Families

  • gamecult.persona_state.v0: portable public Persona state.
  • epiphany.work_organ_state.v0: portable state for lean work organs.
  • epiphany.pipeline.*.v2: Eureka pipeline state (campaign, target, question, 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 the Huginn organ and its eureka-state client. The files are derived from the Rust value types and checked byte-for-byte by 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.v2, and so does widening an enum such as PipelineKind, because these readers are ours and each ships with the variants it knows -- one that meets a kind it has never heard of refuses it on the kind, not on the epoch. A breaking change bumps the epoch, and the new binary refuses the old store.

Provider request contracts are owned by their provider boundary. The shared Codex contract lives in GameCult/CodexConnector; Epiphany's closed durable provider-request document is private Mind state, not a public CultNet promise.

The catalog publishes contracts the executable body actually produces or consumes. Editor capabilities are provider-owned CultMesh/Eve surfaces, not Epiphany-owned Rider or Unity command families. Brokkr owns Unity editor inspection and actuation; a future Rider daemon will own Rider integration.

Publication Path

The provider that owns a live CultMesh/CultNet surface owns its schema-catalog response. This directory supplies publication artifacts; it is not a second runtime registry and no standalone Epiphany catalog command impersonates a service. The native model preflight derives its accepted document types from the same CultCache registrations used to open the runtime Mind store.