← Back to Articles & Artefacts
artefactswest

The Perplexity review checked against coaia-narrative 0.25.0

IAIP Research
miadi-review-2610221150-coaia-narrative-and-explain-its-schema-for-advanced-developper-team-t8-perplexityid-a73d7b8d-4dc0-4e97-a404-f8ced6cd40d9

The Perplexity review checked against coaia-narrative 0.25.0#

Checked 2026-10-22 by the T8 seat (tmux iq-miadi-review-2610221150-coaia-narrative-followup-2610221322). The version read is the one npm publishes, 0.25.0 (2026-10-20), whose source is commit b6c8e76 on branch feat/delayed-resolution-261019 of avadisabelle/coaia-narrative (worktree /a/src/coaia-narrative--delayed-resolution-261019). Line numbers are in src/types.ts at that commit. The published dist/src/types.d.ts carries the same declarations without the // comments.

main of the checkout /a/src/coaia-narrative is at 0.23.0 (6d0ed15) and has none of the delayed-resolution types; its src/types.ts is 299 lines against 364.

Claims in 00-review.perplexity.md#

#claimverdictwhere (0.25.0)
1A beat is not a top-level record type; it is a generic Entity whose beat semantics live in EntityMetadataholds. A beat is an Entity with entityType: 'narrative_beat'Entity L10 to 17; EntityMetadata L267 to 333; graph-manager.ts L1760, L1814, L1936
2Entity = type?, name, entityType, observations[], metadata?, index signatureholdsL10 to 17
3A beat is a node in a KnowledgeGraph beside Relation edges and optional JsonlRecord entries, persisted as JSONLholdsL350 to 356; jsonl-records.ts, jsonl-preservation.ts; this folder's own .coaia/*.jsonl
4Beat fields act, type_dramatic, perspective_types, universes (deprecated, pre-0.17), timestamp, narrative, fourDirections, sessionContext, sessionLineage, foundation, wampumBelt, source, githubholdsL282, L283, L285, L290, L291, L313, L307, L325, L323, L321, L327, L319, L318; their types at L156, L137, L114, L196, L100, L41
5Those fields are commented "Narrative beat specific metadata"holds in source; the comment is absent from the published .d.tsL281
6phase is germination, assimilation or completionholdsL270
7chartId, parentChart, parentActionStep, level place the beat in a chart hierarchyholdsL269, L276, L277, L278
8dueDate, completionStatus, delayedResolution, delayedResolutionHistoryholds. The two delay fields are 0.24.1 and 0.25.0 additionsL268, L271, L273, L275
9elementsOfPerformance is DESIGN or EXECUTIONholdsL292 to 295
10mmotEvaluations phases are acknowledge, analyze, update, recommitholds; each entry also carries direction? (South, East, West, North) and timestampL296 to 301
11Relation = from, to, relationType, metadata? (createdAt, strength, context, description, index signature)holds, incomplete: Relation also has type?: string and a top-level index signatureL335 to 348
12from and to are entity names, so Entity.name is the join keyholds at the type level (both string); graph-manager.ts has no rename method, so a renamed beat does orphan its edgesL336 to 338
13Use perspective_types, not universes; readers accept bothholds; the reader is readPerspectiveTypes() and the values are engineer, ceremony, story_engineL285 to 290; perspective-types.ts L18, L54
14Unknown fields are preserved through the index signaturesholdsL17, L332, L347
15WampumCeremonyLink references chartId and beatName; WampumBead.ceremonyLink carries the ceremony relationshipholdsL175 to 183; L191
16Validate JSONL strictly at ingestion, since the open signatures move enforcement to the reader/writer boundarya recommendation, not a schema claim. What exists: schema/data-model/ (entity, relation, knowledge-graph, storage-format, legacy-jsonl-data JSON schemas), validation.ts, argument-hygiene.tsschema/README.md, schema/DATA_FORMAT.md

What the review leaves out#

  • No version. Its statements are true of 0.25.0 and of 0.24.1; items 8 and 17 are false of main.
  • relationalAlignment?: { assessed, score, principles[] } on every entity (L302 to 306).
  • The 0.25.0 types that Episode 297 added: AgentSessionRef (L211 to 239, with trace and rehydrateWith at L229 and L234), DelayedResolutionOutcome (L241: rehydrated, released, resolved) and DelayedResolution (L250 to 265). The review names delayedResolution only as time-bound support.
  • Direction (L19) and the deprecated sync_target (L329) and github_ref (L331), kept for old records.
  • The JSON schema under schema/, which is where item 16's recommendation already has a home.

For T8#

The explanation to keep is: a beat is Entity with entityType: 'narrative_beat', its narrative payload under metadata from L281 on, joined to charts and other beats by Relation rows keyed on name, all of it one JSONL line per record. Any document T8 writes from this cites src/types.ts@b6c8e76 and says 0.25.0.