COMPASS-Doku

Die Form

Jeder Datensatz in COMPASS — ein Fakt, eine Regel, eine Entscheidung, eine Hypothese, ein Prozessschritt — folgt derselben Form. Diese Seite listet ihre Felder; was die Formen in der Praxis bedeuten, steht in Konzepte.

Subjekt

Feld Typ Hinweis
typ betrieb|athlet|klient|mandant Pflicht.
ref_id String, Zahl oder null Optionale externe Referenz.

Sache

Feld Typ Hinweis
slug String, Muster ^[a-z0-9][a-z0-9-]{1,80}$ Pflicht. Stabil wie eine Nummer.
titel String Pflicht.
frage String Pflicht. Die Frage, die diese Sache beantwortet.
bereich String oder null Bereich, für die Sichtbarkeits-Filterung genutzt.
stufe String oder null Slug einer Stufe, die dieser Mandant führt (GET /sachen-stufen). Untere Stufen dürfen obere konkretisieren, nie umgekehrt. Kein festes Vokabular — leer, bis der Mandant seine Stufen setzt.
eltern_slug String oder null Eltern-Sache.
subjekt_typ betrieb|athlet|klient|mandant

Aussage

Feld Typ Hinweis
id Zahl oder String
sache String Pflicht.
subjekt Subjekt
art fakt|regel|entscheidung|hypothese|prozessschritt Pflicht. lehre ist kein Wert hier — eine Lehre ist ein eigener Datensatz (compass_lehren), keine Aussage-Art; siehe Konzepte.
text String, max. 600 Zeichen Pflicht. Ein bis zwei Sätze, nur die Aussage.
gilt_seit Datum-Zeit oder null Seit wann sie gilt.
gilt_bis Datum-Zeit oder null Bis wann — null heißt: gilt noch.
beobachtet_am Datum-Zeit oder null Wann der zugrunde liegende Sachverhalt tatsächlich beobachtet wurde.
erfasst_am Datum-Zeit Wann COMPASS sie erfasst hat.
herkunft gemessen|gesagt|abgeleitet|entschieden|evidenz Pflicht. Wie sie entstand.
quelle String oder null Episode, Klick, Befehl, Studien-DOI, PR.
sicherheit Zahl 0–1 oder null
ort String oder null Wo sie wirkt: Datei, Einstellung, Tabelle, Code, Frame.
pruefweg String oder null Slug eines Prüfwegs.
beleg Array von Strings
ersetzt Zahl, String oder null Vorgänger derselben Sache; Pflicht, wenn ein geltender Vorgänger existiert.
status gilt|abgeloest|offen|vorlaeufig|widerlegt Pflicht.
frist Datum-Zeit oder null Pflicht, nur Hypothese.
prozess_slug / schritt_key String oder null
frame_ref String oder null z. B. 08-planning/planung#PL·SAISON-LEER.
angelegt_von String Pflicht. Actor-Kennung.

Eine Hypothese (art="hypothese") verlangt zusätzlich frist und pruefweg, und ihre sicherheit muss echt kleiner als 1 sein.

Prüfweg

Feld Typ Hinweis
slug String Pflicht.
titel String
typ shell|sql|http|grep|mcp Pflicht.
befehl String Pflicht. Rein lesend; beim Anlegen gegen eine Allowlist geprüft.
erwartung String Pflicht. Ein Ausdruck über das Ergebnis, z. B. count == 5.
laufumgebung host-ro|wegwerf-container|backend-ro Pflicht.
letzter_lauf Datum-Zeit oder null
letztes_ergebnis String oder null
abweichung Bool oder null

Prozess

Feld Typ Hinweis
slug String Pflicht.
titel String Pflicht.
subjekt_typ betrieb|athlet|klient|mandant
diagramm_md String Pflicht. Mermaid-Quelle.
version Zahl
gilt_seit / gilt_bis Datum-Zeit oder null
ersetzt_slug String oder null
schritte Array von Prozessschritt Pflicht.

Prozessschritt

Feld Typ Hinweis
key String Pflicht.
titel String Pflicht.
ort String oder null
frame_ref String oder null
regel_slugs Array von Strings
pruefweg String oder null
frei Bool, Standard false true = bewusst ohne Regel und Bild; sonst wird eine Lücke gemeldet.

Ereignis

Feld Typ Hinweis
typ chat|klick|messung|pr|lauf|vorlage Pflicht.
zeitpunkt Datum-Zeit Pflicht.
inhalt_ref String Pflicht.
verdichtet_zu Array von Zahl oder String

Invarianten

  • Höchstens eine Aussage der Art regel darf je Sache und Subjekt status=gilt tragen — ein partieller Unique-Index in Postgres, keine Anwendungsprüfung.
  • ersetzt ist Pflicht, wenn zur Sache bereits eine geltende Aussage derselben Art existiert; sonst scheitert das Schreiben mit 409 und der geltenden Aussage im Body.
  • Kein DELETE. Ablösen setzt gilt_bis = neue.gilt_seit und status = abgeloest auf der Vorgängerin.
  • Eine Hypothese ohne Frist und Prüfweg gibt es nicht.
  • Eine untere Stufe darf eine obere konkretisieren, nie umgekehrt. Welche Stufen es gibt und in welcher Ordnung, sagt der Mandant (GET/PUT /sachen-stufen, Vorgabe leer) — COMPASS bringt kein eigenes Vokabular mit. Eine Stufe, die der Mandant nicht führt, wird gemeldet (422 beim Schreiben, art=ungepruefte_stufe in GET /konflikte), nie stillschweigend als in Ordnung gewertet: ein Prüfer, der bei fehlenden Daten „in Ordnung" meldet, ist schlimmer als keiner.
  • Ein Prüfweg ist rein lesend. Sein Ergebnis wird als Fakt gespeichert, zeit- und build-gestempelt.