Huginn/schemas
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Eureka 1d6d468fc8 Desk door: emit CultLib d3025d3c reader shapes (raised_at, decider_count, answerer_count, nullable answerer)
The card gains raised_at (the question's first admission, UTC, nil when unknown; an import's
source time wins) and decider_count (1..64) right after deciders: 18 keys, DE 00 12. The record
gains answerer_count (distinct answerers over every stored answer, refusals included) fifth:
header 86. ForkDeskAnswer.answerer is a required nullable key. The reads now take the call's
subject: a subject in the call's deciders is a decider and is told the ids; any other reader gets
deciders empty, answerer nil and the counts. The card decoder refuses a count outside 1..64 or a
non-empty deciders of another length.

Huginn's types decode and re-encode all 14 vendored CultLib vectors byte for byte (replaces
huginn_types_do_not_yet_carry_the_pinned_shapes); vectors/fork-card-vectors.json re-vendored at
d3025d3c; entry-bearing golden fixtures for both views; desk request/response schemas regenerated;
docs/desk-feed-door.md describes the built shapes.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 21:13:53 +00:00
..
cultnet Desk door: emit CultLib d3025d3c reader shapes (raised_at, decider_count, answerer_count, nullable answerer) 2026-11-11 21:13:53 +00:00
README.md Rename the pipeline leaf to eureka-pipeline and take it as a path dependency 2026-10-09 14:09:16 +02:00

Schemas

This folder is the canonical paperwork shrine for the state contracts Huginn publishes and the pipeline leaf derives.

If a Persona field or Mind document matters enough to steer the machine, it should have a receipt here instead of living only in one Rust struct or one developer's damp recollection.

Canonical surfaces

  • cultnet/gamecult.persona_state.v0.schema.json: portable Persona state contract for Eureka's Persona, VoidBot repo Personas, and Ghostlight characters. It carries explicit provenance, public presentation metadata, typed candidateActions, and a non-authoritative extension bag for source-specific fields; social bonds, status reads, and doctrine stances are typed affect records rather than generic thought blobs. Timestamps use JSON Schema date-time, presentation is required, and custom enum values have companion custom-label fields.
  • cultnet/README.md: JSON Schema publication artifacts for typed CultNet boundaries. Live providers own their schema-catalog responses.

Source Of Truth

The living implementation is in code:

The rule is simple:

  • code owns executable truth
  • this folder owns human-readable contract receipts
  • vendored copies are downstream, not the throne

Update Discipline

When changing any of the following, update this folder in the same pass:

  • canonical organ-state or Persona family names
  • standing role trait names
  • schema version identifiers

If a change lands in code without a matching receipt here, assume the machine has started whispering to itself in the walls again.