Datenmodell

Wie Sonaloop alles als JSON in einem Graphen speichert.

Sonaloop speichert alles als JSON in einem Graphen. Drei Schichten erklären das Format — und jedes Konzept zeigt sein konkretes Schema, wenn du es öffnest.

Drei Schichten

1
Inhalt — fünf Primitive

Jedes Stück Inhalt in jedem Artefakt ist eines von fünf: Statement · Finding · Prompt · Ref · Stance. Ein Renderer pro Primitive — darum sieht „dasselbe Ding“ überall gleich aus.

2
Graph — Nodes & Edges

Jedes Artefakt (Persona, Council, Report, Prototyp, Notiz, Section) ist ein Node mit {id, kind, title, project_id, created_at}. Typisierte Edges verbinden sie (based_on, feeds_into, refines, answers).

3
Gedächtnis — zeit-indiziert

Persona-Erinnerung lebt in eigenen, datierten Records (Erlebnisse, Tages-Summaries, Pain-Points), sodass Recall und Zeitreise funktionieren.

Die fünf Primitive

Statement
Eine Persona-Aussage: Text, Haltung, Belege. Vereint Council-Beiträge, Report-Stimmen und Prototyp-Reaktionen.
{ "persona_id": "persona_…",
  "text": "…markdown, in the persona's voice…",
  "stance": { "value": 1, "label": "conditional" },   // optional
  "about":  { "kind": "prompt", "id": "q0" },         // what it responds to
  "refs":   [ { "kind": "memory", "text": "missed a deadline in March" } ] }
Finding
Ein Analyse-Item: Kernproblem, Empfehlung oder offene Frage — mit optionalem Score und Belegen.
{ "text": "…markdown…",
  "kind": "summary|key_problem|recommendation|open_question|risk|cluster|segment",
  "score": { "effort": 2, "value": 5 },   // optional
  "refs":  [ { "kind": "council", "id": "council_…" } ] }
Prompt
Das Gestellte: eine Frage, ein Vorschlag, ein Ziel oder ein Fokus.
{ "text": "…markdown…", "kind": "question|proposal|goal|focus|hypothesis", "id": "q0" }
Ref
Ein Beleg-Zeiger auf eine Erinnerung, ein Council, einen Prototyp-State oder ein Zitat.
{ "kind": "memory|council|synthesis|prototype_state|persona|external",
  "id": "council_…",      // when it points at a stored record
  "text": "…",            // when it is a free observed-state string
  "quote": "…" }          // optional supporting quote
Stance
Eine einzige Positivitäts-Skala (−2 ablehnend … +2 befürwortend). Vereint Haltung, Stimmung und Votes.
{ "value": -2, "label": "oppose" }
// −2 oppose · −1 skeptical · 0 neutral · +1 conditional · +2 support

Details & Migrationspfad: spec/unified-artifact-schema.md.

öffnen
Neu hier? Nimm die 60-Sekunden-Tour.

Feedback

Wird transparent mitgesendet: Seite · Version 0.2.0

Oder ein GitHub-Issue öffnen ↗