Ctrl K
ComunidadGuías…

docs/novaberg-memory-fakten_k.md

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Novaberg — Faktengedächtnis: der Speicher dessen, was der Fall ist

**Absicht:** Nova hält je Paar fest, was über eine Entität der Fall ist, als Tripel zwischen zwei Entitäten oder zwischen einer Entität und einem Wert, mit Herkunft. ~~Ein neuer Wert löst den alten bi-temporal ab, statt ihn zu überschreiben,~~ → Ein neuer Wert einer einwertigen Beziehung löst den alten bi-temporal ab, statt ihn zu überschreiben, bei einer mehrwertigen kommt er dazu (17.10.2026), und Zeit hängt nur an der Timeline. Zu einer Entität holt Nova die Mappe ihrer Fakten bis zum zweiten Grad in beide Richtungen. Schreiben darf allein die Fachabteilung, der Fakten-Agent.
**Stand:** 26. Oktober 2026, 07:51 UTC (`date -u`; §5 Punkt 4: die Commit-Kennung des Subjekttyps nachgetragen — Code-Tree `47256bf` ist `a4997ac`). Davor 23. Oktober 2026, 20:11 UTC (`date -u`; §1 Punkt 4 und §5 Punkt 3 auf `_e` A Nr. 41–43 nachgezogen — der Typ einer Entität ist ein Fakt aus der Liste der sechs, nicht `entitaeten.typ`; §5 Punkt 2: Nr. 45, die Fakten auch für eine gebundene Person im Namen eines akuten Objekts, entschieden, nicht gebaut; *Entschieden* nachgezählt). Davor 22. Oktober 2026, 22:24 UTC (`date -u`; am Code geprüft und berichtigt — §1 Punkt 4 und §5 Punkt 3: der Typ einer Entität, F7 nicht gebaut; §1 Punkt 5, §2.1, §2.5: Herkunft, Paar und Verfall gebaut; §2.3: der Verweis bleibt auf der ersten Zeile; §3.1: die Leser seit F1; §3.2: das Plugin gelöscht; §5: C4 und die Kennzeichnung in `[TERMINE]` gebaut, der Zeitbezug committet; die Ampeln; §3.2: Empfang, Rückfragen und vier Ausgänge der Entscheidung vom 17.10. als überholt markiert). Davor 22. Oktober 2026, 20:29 UTC (`date -u`; §5 Punkt 2 und 5: Regel (c) präzisiert, `_e` A Nr. 44; das Angebot der Sachlage mit den Fakten und der Erinnerungsanker gebaut und committet, Code-Trees `d810399`, `0d5f633`, `04f823e`; *Entschieden* nachgezählt). Davor 22. Oktober 2026, 05:27 UTC (`date -u`; §2.3 und §5 Punkt 4: der Weg im Turn, der den Typ `ereignis` schreibt, ist gebaut; S7, Typquelle und Nachfolger committet, die DDL am Betrieb angewandt). Davor 21. Oktober 2026, 20:11 UTC (`date -u`; §2.3 und §5 Punkt 4: der Typ `ereignis` steht in der Typquelle der Timeline, das Verschieben trägt den Nachfolger — gebaut, nicht committet, ohne Weg im Turn). Davor 21. Oktober 2026, 19:47 UTC (`date -u`; §5 Punkt 4: die Timeline je Paar gebaut, nicht committet, die DDL am Betrieb nicht angewandt). Davor 21. Oktober 2026, 18:51 UTC (`date -u`; §5 Punkt 1: das Fenster der Sachlage kommt aus dem Zeitbezug am Objekt, gebaut, nicht committet). Davor 21. Oktober 2026, 07:10 UTC (`date -u`; §2.3, §3.1, §5 Punkt 4 nach `_e` A Nr. 37 und 40 nachgezogen, Zähler). Davor 21. Oktober 2026, 06:13 UTC (`date -u`; §5 Punkt 7: die Tiefe der Mappe bleibt 2). Davor 21. Oktober 2026, 06:05 UTC (`date -u`; §5 Punkt 4: das Ereignis gehört dem Paar). Davor 21. Oktober 2026, 04:56 UTC (`date -u`; §1 Punkt 4, §5 Punkt 3: der Typ aus der Klassifikation statt einer Mindestähnlichkeit). Davor 17. Oktober 2026, 21:50 UTC (`date -u`; die Bauart angenommen: §5, Punkte 2 bis 5 entschieden, dazu ein- und mehrwertige Beziehungen, das Ereignis einer anderen Person und die Schemaänderungen im Grundsatz, `_e` A Nr. 13–22; nachgezogen in Absicht, §1, §2.3 bis §2.5, §3.1, §3.2 und §5; nichts gebaut). Davor 17. Oktober 2026, 20:29 UTC (`date -u`; §5, Punkt 1 entschieden und gebaut: ein Leseweg der Termine für Turn und Sachlage, `_e` C1). Davor 17. Oktober 2026, 17:05 UTC (`date -u`; §3.1 berichtigt: Die Leser von `fakten` sind gezählt, sechs statt vier). Davor 17. Oktober 2026, 15:40 UTC (`date -u`; umgebaut nach den Entscheidungen des Meisters vom 17.10.2026: Dieses Konzept beschreibt den Speicher. Hereinholen und Lernen in der Sachlage stehen als Scheibe 13 in [`novaberg-thinking-lage_k.md`](novaberg-thinking-lage_k.md), das Bestimmen einer Entität in [`novaberg-klaerung_k.md`](novaberg-klaerung_k.md) §2.3). Davor 17. Oktober 2026, 14:07 UTC (Erstfassung, nicht veröffentlicht)
**Umsetzung:** Featureliste §3.1 *Faktengedächtnis* mit ↳ *F1* bis *F7*, ~~je ⚫~~ → je mit ihrer Ampel (seit dem 20.10.2026 nicht mehr alle ⚫) — der Zustand steht dort, nicht hier
**Teile:** `_t`: keiner (~~die Ausarbeitung entsteht mit der Bauart, §5~~ → die Bauart ist am 17.10.2026 angenommen und steht vorerst bei den Bauteilen in `_b` §6; ein eigener Teil `_t` ist nicht angelegt) · [`novaberg-memory-fakten_b.md`](novaberg-memory-fakten_b.md) · [`novaberg-memory-fakten_e.md`](novaberg-memory-fakten_e.md) · `_m`: keiner (die beiden Messungen vor dem Bau stehen als Messpunkte in `_b`)
**Entschieden:** ~~12~~ → ~~21~~ → ~~23~~ → ~~28~~ → ~~40~~ → ~~41~~ → 45 (gezählt am 23.10.2026 als Zeilen in `_e` A: Nr. 41–43 vom 21.10.2026 stehen jetzt dort, dazu Nr. 45 vom 23.10.2026; 22.10.2026: Nr. 44, Regel (c) nach (A) ~~— die Nummern 41 bis 43 stehen in dieser Fassung von `_e` noch nicht~~; 17.10.2026: Nr. 13–21 nehmen die Bauart an; C1 steht entschieden in `_e` C, Nr. 22 ist eine Umsetzungsentscheidung; 19.10.2026 Nr. 23, kein Objekt-Merkmal; 20.10.2026 Nr. 24, **der Fakten-Agent ist passiv**, kein Entweder-oder mit den Notizen, und Nr. 25–28, seine Bauart; Nr. 29–33, Leser, Ort und Endpunkt der Mappe und die Last; 21.10.2026 Nr. 34–40) · **Offen beim Meister:** ~~0~~ → ~~1~~ → 0 (der Weg ist mit Nr. 25 entschieden) (Liste in [`novaberg-memory-fakten_e.md`](novaberg-memory-fakten_e.md); ~~offen sind Fragen der Bauart, §5~~ → die Fragen der Bauart sind seit dem 17.10.2026 entschieden, §5)
**Herkunft:** der Ausblick in [`novaberg-memory-synapsen_k.md`](novaberg-memory-synapsen_k.md) §3.2: *„Das Faktengedächtnis-Konzept entsteht als eigenes Konzeptpapier, sobald der LZG-Kern dieses Konzepts steht.“* Der Kern steht seit dem 02.08.2026 (P1–P10). Am 17.10.2026 ist die Voraussetzung als erfüllt entschieden. Das Schema des Speichers stammt aus [`novaberg-mem-knowledge-graph.md`](novaberg-mem-knowledge-graph.md).

**§ → Datei.** Die Abschnitte §1 bis §5 stehen in dieser Datei. §6, die Bauteile mit `ZIEL` / `TEST` / `MESSUNG` und die zwei Messpunkte vor dem Bau, steht in [`novaberg-memory-fakten_b.md`](novaberg-memory-fakten_b.md). Die Entscheidungen, die offenen Fragen der Bauart, die verworfenen Fassungen und die Befunde stehen in [`novaberg-memory-fakten_e.md`](novaberg-memory-fakten_e.md).

| Abschnitt der Erstfassung (14:07 UTC) | heute |
|---|---|
| §1 Was ein Fakt ist | §1, berichtigt in Punkt 4 |
| §2 Die Sachlage als Umschlagplatz (2.1 Hinein, 2.2 Klären, 2.3 Heraus) | Scheibe 13 der Lage: [`novaberg-thinking-lage_k.md`](novaberg-thinking-lage_k.md), *Aus §4*, und [`novaberg-thinking-lage_b.md`](novaberg-thinking-lage_b.md) §4. Das Klären einer Entität steht in [`novaberg-klaerung_k.md`](novaberg-klaerung_k.md) §2.3. Hier bleibt §3.3 als Anschluss |
| §3 Was entschieden ist | `_e` A |
| §4 Was ausdrücklich nicht dazugehört | §4 |
| §5 Was offen ist | §5, nur noch was offen ist. Die beantworteten Fragen stehen in `_e` A |
| §6 Die Bauteile | `_b` §6 |

---

## 1. Was ein Fakt ist

**Ein Fakt ist ein Tripel:** Subjekt → Beziehung → Objekt. Das Subjekt ist eine Entität. Das Objekt ist eine Entität (eine *Referenz*, rückwärts suchbar) oder ein Wert (nur vorwärts). Das ist dieselbe Unterscheidung wie Typ 1 und Typ 2 in [`novaberg-mem-knowledge-graph.md`](novaberg-mem-knowledge-graph.md) §4; die Tabelle `fakten` erzwingt sie mit einer Prüfbedingung. Beispiele, synthetisch:

- *Kassel liegt in Deutschland.*
- *Lena lebt in Kassel.*
- *Lena hat einen Hund.*
- *Der Mensch hat Winterreifen* (Objekt ein Wert).

Was daraus folgt:

1. **Die Fakten bilden einen Graphen.** Das Objekt des einen Fakts ist das Subjekt des nächsten: Lena → Kassel → Deutschland. Ein Fakt ist eine **Kante zwischen zwei Entitäten**, und jede Entität hat wieder eigene Fakten. Die Substanz liegt in der Kante, umgekehrt als im Erinnerungsgedächtnis ([`novaberg-memory-synapsen_k.md`](novaberg-memory-synapsen_k.md) §3.2).
2. **Wissen, das aus der Kette folgt, wird nicht gespeichert.** *Lena lebt in Deutschland* ergibt sich aus *Lena lebt in Kassel* und *Kassel liegt in Deutschland*. Es wird beim Lesen geschlossen. Ein berechneter Wert ist eine Funktion seiner Eingaben, kein abgelegter Zweitbestand ([`novaberg-convention-abgeleitete-werte.md`](novaberg-convention-abgeleitete-werte.md)).
3. **Weltwissen und Persönliches haben dieselbe Form und hängen ineinander.** Das Persönliche (*Lena*, der Mensch) hängt sich an das Weltwissen (*Kassel*, *Deutschland*). Beides steht im selben Graphen und gehört demselben Paar (§2.1).
4. **„ist ein …“ gibt der Entität ihren Typ:** Stadt, Land, Person, Tier. ~~Seit dem Rückbau des alten Langzeitgedächtnisses (P9) entstehen Entitäten ohne Typ.~~ → **Berichtigt am 17.10.2026:** Entitäten entstehen heute mit dem Typ `sonstiges`, und das liegt nicht an P9. Seit P3 legt der Magnet-Pfad des Kurzzeitgedächtnisses jede Entität so an `[Code, gelesen 17.10.2026: agents/kzg/magnete.py]`. Die Tripel-Extraktion der alten Promotion, die Typen vergab, endete mit P4. → **Seit dem 20.10.2026 legt auch der Fakten-Agent Entitäten an, mit einem Typ, der nicht aus der Klassifikation kommt** (am Code geprüft am 22.10.2026, `agents/fakten/suche.py`, `typen`): ein neues Objekt mit dem Typ seiner Beziehung aus dem Kanon (`ort`, `person` oder `tier`; `agents/fakten/beziehungen.py`, `_ENTITAETS_OBJEKTE`), ein neues Subjekt mit `sonstiges`. Die Fakten können den Typ zurückbringen. ~~Welches der drei vorhandenen Typsysteme dann gilt, ist offen (§5, Punkt 3).~~ → **Entschieden am 17.10.2026** (§5, Punkt 3; `_e` A, Nr. 14): Der Typ kommt aus der festen Liste ~~von `entitaeten.typ`~~ → als Fakt, nicht als Spalte der Entität (21.10.2026, `_e` A Nr. 43; am Ende dieses Punkts). → Die feste Liste ist Absicht: Die Spalte ist heute freier Text (`VARCHAR(50)`) mit der Vorgabe `sonstiges`, ohne Prüfbedingung (am Code geprüft am 22.10.2026, `db/init.sql`, Tabelle `entitaeten`). ~~Die freie Klasse aus *„ist ein“* wird über das Embedding dem nächsten Typ zugeordnet; unter einer Mindestähnlichkeit bleibt `sonstiges`.~~ → Den Typ wählt die Klassifikation des Fakten-Agenten aus der festen Liste mit, `sonstiges` eingeschlossen (21.10.2026, `_e` A Nr. 34; eine Mindestähnlichkeit trug am Embedding nicht, gemessen). → Entschieden, **nicht gebaut** (F7): ~~Das geprüfte Tripel der Klassifikation trägt kein Typfeld (`agents/fakten/klassifikation.py::vet_triple`)~~ → **Seit dem 25.10.2026 trägt es eines:** das Feld `typ` ist der Typ des **Subjekts**, ein Wert aus der Liste der sechs (`ENTITY_TYPES` in `agents/fakten/beziehungen.py`), und `vet_triple` prüft ihn gegen die Beziehung (`typ_form`, `subjekt_typ`; `_e` A Nr. 46, gebaut im Code-Tree `47256bf`, ~~nicht committet~~ → committet als `a4997ac`). Er wird geprüft, **nicht als Typ-Fakt geschrieben** — der Typ des Objekts und das Schreiben bleiben F7. *„Ist ein“* steht nicht im Kanon der Beziehungen (am Code geprüft am 22.10.2026). Ein Typ ist ein Stand des Wissens: Was noch fehlt, kommt mit späteren Fakten. → **Seit dem 21.10.2026 steht der Typ nicht in `entitaeten`** (`_e` A Nr. 41–43; Nr. 43 löst Nr. 41 und 42 ab, soweit sie den Typ an die Entität oder in eine Tabelle neben ihr legten): Der Typ ist ein Fakt — ein zwingender Wert aus der Liste der sechs (Person, Ort, Organisation, Tier, Objekt, `sonstiges`), geschrieben in die Faktentabelle. Er gehört dem Paar wie jeder Fakt (§2.1). *Zwingend* heißt: Sobald ein Typ bekannt wird — durch *„ist ein“* oder durch eine Beziehung des Kanons mit Objekt-Typ —, stammt sein Wert aus der Liste; ohne Typ-Fakt gilt eine Entität als `sonstiges`, vorab wird nichts geschrieben. Weitere Klassen (*Hund*, *domestiziert*) sind Fakten wie andere. Die Spalte `entitaeten.typ`, die der Fakten-Agent heute beim Anlegen setzt (oben), ist damit nicht der Ort des Typs. Nicht gebaut (F7).
5. **Ein Fakt hat eine Herkunft und kann falsch sein.** *„Das Mittelmeer ist ein Ozean“* ist falsch, es ist ein Nebenmeer. Ein Fakt trägt, woher er stammt: vom Menschen, von Nova, aus dem Modell oder aus einer Recherche. Er lässt sich berichtigen (§2.4). Für Mensch und Nova gibt es die Unterscheidung schon, als Schreiber eines Eintrags ([`novaberg-convention-paar-schema.md`](novaberg-convention-paar-schema.md) §2) und als Sprecher einer Eigenschaft der Sachlage. ~~Die Tabelle `fakten` trägt dafür heute keine Spalte.~~ Eine neue Spalte ist eine Schemaänderung und wird vor dem Bau angekündigt. → **Im Grundsatz freigegeben am 17.10.2026, ~~nicht gebaut~~ → gebaut am 18.10.2026** (`_e` A, Nr. 20): die Spalte `fakten.herkunft` (S1) mit den Werten Mensch, Nova, Modell und Recherche; angekündigt wird sie vor ihrem Bau trotzdem einzeln. → Sie ist Pflicht ohne Vorgabewert, ihre Werte prüft `chk_fakten_herkunft`, und der passive Weg schreibt heute nur `mensch` (am Code geprüft am 22.10.2026: `db/init.sql`; `agents/fakten/klassifikation.py`, `SPEAKER_ORIGIN`).
6. **Nicht alles ist ein Fakt.** Was erlebt wurde, bleibt Erinnerung im Langzeitgedächtnis. Eine triviale Aussage erzeugt keinen Fakt, sondern eine Erinnerung mit Magneten. Mindestens eine Seite muss eine echte Welt-Referenz sein (*„Kann man es auf ein Namensschild schreiben?“*), und die Aussage muss Gewicht haben ([`novaberg-convention-magneten.md`](novaberg-convention-magneten.md) §7).

---

## 2. Was für jeden Fakt gilt

### 2.1 Fakten gehören dem Paar

**Entschieden am 17.10.2026:** Alle Fakten gehören dem Paar aus Mensch und Figur, auch das Weltwissen. Das Faktengedächtnis ist Novas Gedächtnis wie ihre Erinnerungen. Was sie selbst ablegt, ist ihres, und was der Mensch ihr sagt, auch. Jede Figur hat ihr eigenes Faktengedächtnis.

Das bestätigt die Trennung der Magneten-Konvention: Die Entitäten sind global je Mensch, alles daran Hängende gehört dem Paar ([`novaberg-convention-magneten.md`](novaberg-convention-magneten.md) §6, *„Welt geteilt, Erinnerungen perspektivisch“*). Dieselbe Entität *Kassel* kann in zwei Paaren verschiedene Fakten tragen. Das ist gewollt: Paare dürfen verschieden sein. Die Spalte `character_id` steht in `fakten`. ~~Das Repository liest sie heute nicht (`FAKTEN-PAIR-IGNORED`); mit dem Fakten-Agenten wird sie gelesen.~~ → Seit dem 18.10.2026 filtert das Repository jede Abfrage nach dem Paar (am Code geprüft am 22.10.2026: `memory/repositories/fakten_repository.py`, `_check_pair`).

### 2.2 Weltwissen kommt aus dem Modell und aus dem Internet

**Entschieden am 17.10.2026:** Weltwissen kommt aus dem Modell. Weiß das Modell es nicht, kommt es aus einer Recherche im Internet; die Sachlage hat dafür schon die Suche ihrer Scheibe 8 (*„Nachgeschlagen zu …“*). Nova darf Weltwissen als Fakt lernen und speichern, je Paar (§2.1), mit der Herkunft *Modell* oder *Recherche*.

Damit ist die Grenze zu Novas Bibliothek gezogen ([`novaberg-autonomous-wissen_k.md`](novaberg-autonomous-wissen_k.md)). Die Bibliothek hält erarbeitete Texte zu einem Thema, das Faktengedächtnis einzelne Aussagen über Entitäten.

### 2.3 Zeit steht nur in der Timeline

**Entschieden am 17.10.2026:**

- **Ein Monat ist keine Entität.** *November* ist ein Zeitraum für alle. Ihn liest die Timeline als benannten Zeitraum über den ganzen Monat ([`novaberg-agent-timeline.md`](novaberg-agent-timeline.md) §4.2).
- **Ein Termin oder Ereignis im Monat ist ein Eintrag der Timeline.** Eine Spanne (*den ganzen November das Haus der Nachbarn hüten*, synthetisch) ist ein Termin mit Anfang und Ende und damit eine Referenz auf den Monat.
- **Ein Ereignis mit unklarem Zeitraum klärt die Sachlage** (*Lena zieht im November nach Kassel*, synthetisch). Aus dem Weltwissen bildet sie eine Annahme: Ein privater Umzug dauert ein bis zwei Tage, fällt also vermutlich auf ein Wochenende. Die Annahme bleibt eine offene Eigenschaft, bis sie geklärt ist, und Nova baut nicht darauf ([`novaberg-klaerung_k.md`](novaberg-klaerung_k.md) §2.3). **Das Ereignis selbst wird sofort eingetragen**, mit der Genauigkeit *Monat*, und nach der Klärung verschoben (entschieden am 17.10.2026, `_e` A, Nr. 19).
- **Ein Fakt, der durch ein Ereignis entsteht, gilt ab dem Ereignis.** *Lena lebt in Kassel* beginnt mit dem Umzug. Sein Beginn ist die bi-temporale Gültigkeit und verweist auf den Eintrag der Timeline; der Fakt trägt den Monat nicht als Wert. **Geschrieben wird er sofort**, nicht erst nach dem Ereignis, und die Mappe zeigt den abgelösten Wert mit *bis*, den neuen mit *ab* (Umsetzungsentscheidung vom 17.10.2026, `_e` A, Nr. 22). ~~Der Verweis (`fakten.timeline_id`) folgt dem Eintrag, wenn er verschoben wird~~ → Der Verweis (`fakten.timeline_id`) bleibt auf der ersten Zeile; wird der Eintrag verschoben, folgt der Leser dem Nachfolger bis zur aktiven Zeile (`timeline.nachfolger_id`; `_e` A, Nr. 20). So gebaut am 22.10.2026 in der Mappe (am Code geprüft am 22.10.2026: `memory/fakten_mappe.py` über `TimelineRepository.aktive_zeile`).

Der Grund ist die Regel *eine Achse, eine Quelle*. Zeit lebt in der Timeline, und kein anderer Speicher dupliziert Zeit-Logik ([`novaberg-convention-magneten.md`](novaberg-convention-magneten.md) §2.2, §8). Das Eigenschaftsgedächtnis der Sachlage hält es schon so: Eine Eigenschaft mit Tag oder Uhrzeit bekommt einen Verweis auf die Timeline, keinen Zeitwert ([`novaberg-thinking-lage_t.md`](novaberg-thinking-lage_t.md), Scheibe 11, *Der Zeitanker*). Die Timeline kennt heute kein Ereignis einer dritten Person (§5, Punkt 4). → Entschieden ist am 17.10.2026 ein eigener Typ dafür, `ereignis`; über der Grenze der Salienz trägt ihn der Timeline-Agent ohne Auftrag ein. ~~Gebaut ist er nicht~~ (`_e` A, Nr. 15). → Seit dem 21.10.2026 steht er in der Typquelle der Timeline; ~~geschrieben wird er von keinem Weg (nicht committet, `_b` §6, F6)~~ → committet; seit dem 22.10.2026 schreibt ihn über der Grenze der Ereignis-Weg, ein passiver Dienst im Paket des Timeline-Agenten (`_b` §6, F6). → Präzisiert am 21.10.2026 (`_e` A Nr. 37): ohne Auftrag nur ein Ereignis mit dauerhafter Folge oder Gewicht — Umzug, Hochzeit, Operation, Geburt —, keine Besorgung und kein Ausflug; die Grenze ist `KZG_SALIENZ_HIGH`.

### 2.4 Ablösen, nicht überschreiben

**Entschieden am 17.10.2026:** Es gilt das bestehende Schema, die bi-temporale Versionierung ([`novaberg-mem-knowledge-graph.md`](novaberg-mem-knowledge-graph.md) §7). ~~Kommt zu Subjekt und Beziehung ein neuer Wert, wird der alte invalidiert (`t_invalid`, `aktiv = FALSE`) und der neue angelegt.~~ → **Berichtigt am 17.10.2026** (`_e` A, Nr. 17): Kommt zu Subjekt und einer **einwertigen** Beziehung ein neuer Wert, wird der alte invalidiert (`t_invalid`, `aktiv = FALSE`) und der neue angelegt, beides in einer Transaktion. Bei einer **mehrwertigen** Beziehung kommt der neue dazu, und der alte bleibt aktiv: *Lena hat einen Hund*, danach *eine Katze*, ergibt zwei Haustiere. Ob eine Beziehung ein- oder mehrwertig ist, führt der Kanon der Beziehungen im Fakten-Agenten; einwertig sind etwa Wohnort, Beruf und Partner, mehrwertig Geschwister und Haustier. Das geschieht ohne Rückfrage. Beide bleiben stehen:

- Die aktiven beantworten *„Wo lebt Lena?“*.
- Alle zusammen beantworten *„Wo hat Lena früher gelebt?“*.
- Derselbe Wert legt keine neue Zeile an.

Das Konzept wählt dabei **Struktur statt Konfidenzwerte**: Nicht ein Gewicht entscheidet, welcher Wert gilt, sondern die Gültigkeit. Das Eigenschaftsgedächtnis der Sachlage folgt seit dem 13.09.2026 demselben Schema.

**Zur Klärung:** Die Ablösung erfüllt die stillen Stufen der Klärung. Der alte Wert verschwindet nicht, und nichts wird stillschweigend überschrieben ([`novaberg-klaerung_k.md`](novaberg-klaerung_k.md) §2.1). Ob Nova bei einem Widerspruch nachfragt, entscheidet dort ihr Charakter; geschrieben wird ohne Rückfrage.

### 2.5 Der Verfall sitzt an der Kante

Die Verfallsregel gilt seit dem 16.08.2026 ([`novaberg-convention-verfall.md`](novaberg-convention-verfall.md) §1): Im Faktengedächtnis sitzt der Verfall dort, wo gesucht wird, an der Kante. Eine Entität, auf die anderswo verwiesen wird, verfällt nicht; die Bindung daran darf verfallen. Der Verfall ist von der Ablösung unabhängig: Er regelt die Stärke eines aktiven Fakts, nicht welcher Fakt gilt. ~~`fakten` trägt heute keine Verfallsgröße (`FAKTEN-BINDUNG-OHNE-VERFALL`).~~ → **Im Grundsatz freigegeben am 17.10.2026, ~~nicht gebaut~~ → gebaut am 18.10.2026** (`_e` A, Nr. 20, S3): Die Größe wird materialisiert, wie bei `lzg_knoten`, und ein täglicher Lauf pflegt sie, als Schritt des vorhandenen Verfallslaufs der Synapsen (`agents/synapsen_decay/`). Ein Verfall beim Lesen scheidet aus, denn er schriebe beim Lesen. → So gebaut (am Code geprüft am 22.10.2026): Ein täglicher Lauf schreibt je aktiver Kante `staerke_decay = exp(−0,0015 · Tage seit last_touched)` (`FaktenRepository.run_fakten_decay`, `FAKTEN_DECAY_RATE`), als Schritt 11 des Tageslaufs in `agents/synapsen_decay/agent.py`; eine Kante unter 0,1 ruht seit dem 21.10.2026 für die Mappe (`FAKTEN_MAPPE_MIN_STAERKE`).

Das Eigenschaftsgedächtnis der Sachlage ist dagegen ein protokolliertes Faktum und verfällt nicht. ~~Wie beides zusammengeht, ist offen (§5, Punkt 2).~~ → **Entschieden am 17.10.2026** (§5, Punkt 2; `_e` A, Nr. 13): Beide bleiben getrennt, zwei Silos mit zwei Blickpunkten.

---

## 3. Lesen und Schreiben

### 3.1 Die Mappe einer Entität

**Die Mappe einer Entität sind ihre Fakten.** Zu einer Entität holt Nova die Mappe über deren Kennung (`fakten.subjekt_id`, `fakten.objekt_id` → `entitaeten`), entschieden am 17.10.2026. Die Mappe enthält:

- **beide Richtungen:** die Fakten, in denen die Entität Subjekt ist, und die, in denen sie Objekt ist;
- **den zweiten Grad:** von jedem Nachbarn noch einmal seine Fakten, in beide Richtungen. Beispiel, synthetisch: Lena → ihr Hund → *der Hund kommt mit, wenn Lena zu Besuch kommt*. Der zweite Grad ist der Ausgangswert. ~~Ob er reicht, wird gemessen, bevor er fest wird~~ → gemessen und entschieden am 21.10.2026: er reicht, die Tiefe bleibt 2 (§5, Punkt 7; `_e` A Nr. 40);
- **Referenz- und Wert-Fakten.** Ein Lesen, das nur Entität→Entität verbindet, ließe die Wert-Fakten aus (`GV-WERT-FAKTEN-BLIND`);
- **nur aktive Fakten, nur die des Paares, gekappt.** Die alte Anreicherung lud alle Entitäten des Menschen mit allen Fakten, ohne Kappung, und erzeugte damit das Rauschen, wegen dem sie abgeschaltet ist (`FAKTEN-RAUSCH`, `FAKTENPLUGIN-OHNE-KAPPUNG`) → seit dem 21.10.2026 mit dem Plugin gelöscht.

**Ein Bestand, eine Lesefunktion.** ~~Heute lesen vier Stellen dieselbe Tabelle: die Anreicherung des Plugins, `fakten_abfragen`, `fakten_historie` und `_entity_kontext_laden` im Gesprächsvektor.~~ → ~~**Heute lesen sechs Stellen dieselbe Tabelle** (berichtigt am 17.10.2026, gezählt gegen `7b65297` mit einem Grep über `server/` ohne Tests auf die Tabelle und auf `FaktenRepository`): im Plugin die Anreicherung (`enrich_entries`, abgeschaltet), `fakten_abfragen` (nur über `execute` erreichbar, das keinen Auftrag bekommt) und `fakten_historie` (ohne Aufrufer); `_entity_kontext_laden` im Gesprächsvektor (eigenes SQL, ohne Aufrufer); `api/gedaechtnis.py::fakten_abrufen` (eigenes SQL, ohne Paar) und die Wiedervorlage (`agents/wiedervorlage/agent.py`, `find_wiedervorlage_faellig`). Nicht mitgezählt sind das Lesen im Schreibweg (`fakten_verarbeiten` prüft mit `find_aktiv`, ob schon ein Wert steht) und das Wartungswerkzeug `tools/reembed_all.py`, das jede Zeile neu einbettet.~~ → **Seit F1, committet am 21.10.2026, liest das Wissen über eine Entität nur noch die Mappe** (`memory/fakten_mappe.py::load_mappe` über `FaktenRepository.find_umgebung` und `find_historie`), auch der Endpunkt `GET /fakten/{user_id}/{entitaet_id}`; `GET /fakten/{user_id}` liest nur die Entitäten. Das Plugin, `_entity_kontext_laden` und das eigene SQL des Endpunkts sind entfernt. Die Wiedervorlage liest ihre Fälligkeitsliste getrennt (`find_wiedervorlage_faellig`, `_e` A Nr. 29). Nicht mitgezählt sind die Prüfung nach dem Schreiben (`agents/fakten/crud.py`, `find_by_id`) und `tools/reembed_all.py` (am Code geprüft am 22.10.2026, mit einem Grep über `server/` ohne Tests auf die Tabelle und auf `FaktenRepository`). Ein Silo hat einen Dienst; zwei Suchen über denselben Bestand ergeben zwei Rangfolgen ([`novaberg-convention-nmcp.md`](novaberg-convention-nmcp.md) §6a.1). Die Mappe wird deshalb einmal gebaut und von allen Lesern benutzt.

**Die Mappe stößt die Erinnerung an** (entschieden am 17.10.2026). Die Mappe einer Entität aus der Sachlage stößt eine gezielte Suche im Erinnerungsgedächtnis an, mit der Mappe als Anker. Das ist der zweite Schritt der Sequenz aus [`novaberg-memory-synapsen_k.md`](novaberg-memory-synapsen_k.md) §3.2. Dort war der Enricher der Ort; der Ort hat sich geändert (Scheibe 13 der Lage), der Gedanke nicht. Heute läuft die Erinnerungssuche vor der Sachlage (§5, Punkt 5). → **Entschieden am 17.10.2026, nicht gebaut** (`_e` A, Nr. 16): Ein eigener Knoten zwischen Sachlage und Router, der Erinnerungsanker, holt die Mappe der gebundenen Entitäten, sucht mit ihnen im Langzeitgedächtnis und legt beides in den Gedächtniskontext desselben Turns.

**`verbindung` bleibt, was sie ist** (entschieden am 17.10.2026). Die Tabelle hält die Gedächtnis-Achse Turn → KZG → LZG und trägt keine Fakten, ohne neue Spalte. Fakten hängen über die Entität. Die Verbindungen einer Entität insgesamt abzufragen, also Erinnerungen, Termine und Fakten zusammen, ist ein späterer Schritt ([`novaberg-charakter-resonanz_t.md`](novaberg-charakter-resonanz_t.md) §4.2).

### 3.2 Wer schreibt

**Entschieden am 17.10.2026:** Ein Fakt wird nur vom **Fakten-Agenten** geschrieben, der Fachabteilung für Fakten, so wie der Timeline-Agent die Termine schreibt. Er bekommt den Auftrag ~~über den Empfang~~ → vom Dispatcher, ohne Empfang (der passive Weg, committet am 21.10.2026 mit `7bde8d7`), prüft ihn gegen seinen Bestand und hat Zugriff auf die Tabellen. ~~Er kann Rückfragen veranlassen, über den Klärfall am Objekt der Sachlage ([`novaberg-klaerung_e.md`](novaberg-klaerung_e.md) A, M0).~~ → Seit dem passiven Weg (21.10.2026, `7bde8d7`) veranlasst er keine Rückfrage: Zwei gleichnamige Entitäten ergeben `mehrdeutig`, und nichts wird geschrieben; die Frage gehört an den Klärfall am Objekt der Sachlage (F3, nicht gebaut; am Code geprüft am 22.10.2026, `agents/fakten/suche.py`). Er ~~antwortet auf einem der vier Ausgänge~~ → meldet seit dem passiven Weg (21.10.2026, `7bde8d7`) je Auftrag einen von neun Ausgängen und je Tripel einen von sechs (am Code geprüft am 22.10.2026, `agents/fakten/dispatch.py`), schreibt verifiziert und belegt sein Audit selbst ([`novaberg-convention-nmcp.md`](novaberg-convention-nmcp.md) §6, §8.4). Das Plugin `FaktenManager` wird zu diesem Agenten umgebaut (Backlog M2.5b). → Nach der Bauart, angenommen am 17.10.2026 (`_e` A, Nr. 21), ~~bleibt vom Plugin nur die Empfangsfläche, über die der Planner den Dienst findet~~ → ist das Plugin seit dem 21.10.2026 gelöscht, und der Dienst hat keine Empfangsfläche (`_e` A Nr. 28; am Code geprüft am 22.10.2026: kein `plugins/fakten_manager/`, `agents/fakten/agent.py` mit `zustellart = "queue"`); Anreicherung, Ausführung und die alten Lese- und Schreibwege entfallen (`_b` §6, F2).

**Die Sachlage schreibt keine Fakten.** Sie reichert an und klärt. ~~Das Speichern beauftragt sie nicht selbst; es läuft über den Empfang, wie bei Terminen und Notizen.~~ → Seit dem 21.10.2026 stellt sie in jedem gerechneten Turn den Schreibauftrag an den Fakten-Agenten aus, ohne Empfang (am Code geprüft am 22.10.2026: `graph/nodes/sachlage.py::build_fact_order`; nächster Absatz).

**→ Seit dem 20.10.2026 ist der Fakten-Agent passiv** (`_e` A Nr. 24–28): Der Schreibauftrag entsteht in jedem Turn aus der Sachlage und wird nach der Antwort vom Dispatcher ausgeführt; vorerst ohne Tor der Salienz und ohne Angebot; eine Merk-Bitte über eine Person ergibt eine Notiz und einen Fakt. Das Schreiben ist ein Dienst ohne Empfang, das Lesen ein Werkzeug (die Mappe). Was darunter über den Empfang und die Grenze der Salienz steht, gilt für Fakten nicht mehr.

~~**Auch ohne ausdrücklichen Auftrag** (entschieden am 17.10.2026):~~

- **Die Grenze ist die Salienz der Aussage**, zusammen mit ihrer Nähe zum Thema des Gesprächs.
- **Über der Grenze** ist das Thema wichtig. Nova stellt dem Fakten-Agenten zu, ohne dass der Mensch darum bittet, und je wichtiger, desto öfter.
- **Darunter** entscheiden Novas Pflichtbewusstsein und ihre Nähe zum Menschen, ob sie anbietet oder fragt (*„Soll ich mir das merken?“*). Das ist dasselbe Angebot wie bei Terminen und Notizen (Scheibe 12, Teil E). Wer mehr prüfen will, prüft mehr.
- **Vor dem Setzen der Grenze wird gemessen**, ob Aussagen über Menschen, die dem Menschen nahestehen, heute eine hohe Salienz bekommen (§5, Punkt 6). Sie sollen durch die emotionale Bindung als wichtig erkannt werden.

Das deckt sich mit der Entscheidung vom 18.05.2026: Der Fakten-Agent ist eine Fachabteilung wie die Timeline, *Router-getrieben mit Salienz-Fallback* ([`novaberg-memory-synapsen_e.md`](novaberg-memory-synapsen_e.md) G, K2).

### 3.3 Wo das Konzept an andere anschließt

| Anschluss | Wo es steht |
|---|---|
| Die Sachlage holt Fakten, Termine und Weltwissen herein und gibt Neues über den Empfang weiter | [`novaberg-thinking-lage_k.md`](novaberg-thinking-lage_k.md), *Aus §4*, Scheibe 13 |
| Ist ein Name mehrdeutig, klärt Nova, welche Entität gemeint ist | [`novaberg-klaerung_k.md`](novaberg-klaerung_k.md) §2.3 |
| Die Mappe als Anker der Erinnerung | [`novaberg-memory-synapsen_k.md`](novaberg-memory-synapsen_k.md) §3.2 |
| Die Termine selbst | [`novaberg-agent-timeline.md`](novaberg-agent-timeline.md) |

---

## 4. Was ausdrücklich nicht dazugehört

- **Keine neuen Spalten an `verbindung`** und keine Tripel-ID dort.
- **Kein gespeichertes abgeleitetes Wissen.** Was aus der Kette folgt, wird beim Lesen geschlossen (§1, Punkt 2).
- **Kein Ersatz für das Erinnerungsgedächtnis.** Das Langzeitgedächtnis bleibt episodisch: *was wurde erlebt*. Das Faktengedächtnis ist semantisch: *was ist der Fall* ([`novaberg-memory-synapsen_k.md`](novaberg-memory-synapsen_k.md) §3.2).
- **Keine Zeit im Fakt.** Monat, Tag und Zeitraum stehen in der Timeline (§2.3).
- **Kein Schreiben durch die Sachlage**, den Enricher oder die Salienz. Geschrieben wird nur vom Fakten-Agenten (§3.2).
- **Keine Anweisung an die Figur als Fakt über den Menschen**, kein Rollenspiel und keine Metapher als Fakt. Abgelegt wird, was neu und dauerhaft ist. Die alte Extraktion legte beides ab (`FAK-LECK`, `FAKTEN-RAUSCH`, archiviert). Ob eine Aussage dauerhaft oder situativ ist (`FAK1`), beurteilt der Fakten-Agent gegen seinen Bestand.
- **Nicht in dieses Konzept:** die Termine selbst (Timeline), die Notizen und die Bibliothek. Sie bleiben eigene Speicher.

---

## 5. Was offen ist

~~Offen sind nur Fragen der Bauart und zwei Messungen.~~ → **Seit dem 17.10.2026 sind die fünf Fragen der Bauart entschieden** (`_e` C; A, Nr. 13–21), ~~nur die erste ist gebaut~~ → gebaut und committet sind C1 und C4 (C4 mit F6, am 22.10.2026), C3 (F7) ist nicht gebaut, zu C2 und C5 die Punkte 2 und 5 (am Code geprüft am 22.10.2026). ~~Offen bleibt M2, die Tiefe der Mappe;~~ → M2 ist am 21.10.2026 gemessen und entschieden, die Tiefe bleibt 2 (Punkt 7); M1 ist am 17.10.2026 gemessen, setzt die Grenze aber nicht (Punkt 6, `_b` M1). Die Absicht ist entschieden (`_e` A). Die Fragen stehen mit ihrem Anlass in ~~`_e` B~~ → `_e` C.

**Vor dem Bau zu entwerfen** (→ entschieden am 17.10.2026):

1. **Zwei Lesewege der Timeline und das Lesen ohne Router.** ~~Die Sachlage liest Kalenderzeilen schon selbst, über `TimelineRepository.find_by_keyword` im Frame-Auflöser (Scheibe 6).~~ → bis zum 17.10.2026. Der Turn liest Termine hinter dem Router, über `memory/timeline_reading.py::read_appointments` mit dem Fenster aus `graph/appointments.py`. ~~Das sind zwei Wege über einen Bestand.~~ → Seit dem 17.10.2026 ist es einer. Entschieden ist, dass die Sachlage über das ausgelagerte Lesewerkzeug liest, ohne den Router (`_e` A, Nr. 4). ~~Offen ist, wie das Fenster aus dem Objekt der Sachlage entsteht und ob der Kalenderweg des Auflösers im gemeinsamen Leseweg aufgeht.~~ → **Entschieden und gebaut am 17.10.2026** (`_e` C1): Der Kalenderweg geht im gemeinsamen Leseweg auf; das Fenster entsteht je Objekt ~~aus `time_window` (ein Zeitraum) oder `search_window` (ein Titel)~~ → seit dem 21.10.2026 (gebaut, ~~nicht committet~~ → committet mit `250a5c1`) aus dem Zeitbezug des Objekts, nicht aus seinem Namen — `range_window` für einen Zeitraum, `search_window` für einen Titel ([`novaberg-thinking-lage_e.md`](novaberg-thinking-lage_e.md) Nr. 36) —, gelesen mit `read_appointments` und der Uhr des Turns.
2. **Verfall der Kante gegen das Eigenschaftsgedächtnis.** Die Kante eines Fakts verfällt (§2.5), eine Eigenschaft der Sachlage nicht. Beide halten Objekt → Eigenschaft → Wert mit Ablösung, und das Eigenschaftsgedächtnis bindet sein Objekt später an eine Entität. ~~Offen ist, ob Eigenschaft und Fakt zusammengelegt werden oder getrennt bleiben, und wie dann keiner dasselbe zweimal hält.~~ Das Frame-Konzept sieht zwei Schichten vor, Lager und Tripel ([`novaberg-thinking-frames_t.md`](novaberg-thinking-frames_t.md) §9.3). → **Entschieden am 17.10.2026** (`_e` C2; A, Nr. 13): Eigenschaft und Fakt bleiben getrennt. Dasselbe steht nicht zweimal, weil es nur die Richtung Eigenschaft → Fakten-Agent gibt, eine von der Mappe gedeckte Eigenschaft den Fakt als Quelle trägt und im Angebot eines gebundenen Objekts die Mappe vor der Eigenschaft geht. → **Präzisiert am 22.10.2026** (`_e` A Nr. 44): Eine Eigenschaft aus einem Fakt fehlt im Angebot nur, wenn genau dieser Fakt angeboten ist. Gebaut am selben Tag, committet (Code-Tree `d810399`; `_b` §6, *Das Angebot der Sachlage*). → **Erweitert am 23.10.2026** (`_e` A Nr. 45): Angeboten werden die Fakten auch für eine gebundene Person, die nur im Namen eines akuten Objekts steckt (synthetisch *„Paket an Lena“*); gemessen war die erfragte Person am Modell nur in 43 von 92 Läufen akut. Nicht gebaut (Backlog `SACHLAGE-FAKTEN-PERSON-IM-OBJEKTNAMEN`).
3. **Drei Typsysteme.** `entitaeten.typ` (~~eine geschlossene Liste~~ → freier Text mit der Vorgabe `sonstiges`, ohne Prüfbedingung, am Code geprüft am 22.10.2026 in `db/init.sql`; heute fast nur `sonstiges`), die Klasse eines Objekts der Sachlage (der Kanon der Frames) und die freie Klasse aus *„ist ein“* (Stadt, Planet). ~~Offen ist, welches F7 setzt.~~ → **Entschieden am 17.10.2026** (`_e` C3; A, Nr. 14): F7 setzt ~~`entitaeten.typ`~~ → einen Typ-Fakt (21.10.2026, `_e` A Nr. 43: ein zwingender Wert aus der Liste der sechs, in der Faktentabelle, dem Paar gehörend; §1 Punkt 4) aus der festen Liste; ~~die freie Klasse wird über das Embedding dem nächsten Typ zugeordnet, unter einer Mindestähnlichkeit bleibt `sonstiges`~~ → die Klassifikation des Fakten-Agenten wählt den Typ aus der festen Liste mit, `sonstiges` eingeschlossen (21.10.2026, `_e` A Nr. 34; eine Mindestähnlichkeit trug am Embedding nicht, gemessen). → **Nicht gebaut** (F7). Heute legt der Fakten-Agent ein neues Objekt mit dem Typ seiner Beziehung aus dem Kanon an (`ort`, `person`, `tier`) und ein neues Subjekt mit `sonstiges` (seit dem 20.10.2026; am Code geprüft am 22.10.2026, `agents/fakten/suche.py`, `typen`). Die Klasse der Sachlage bleibt die Sicht des Gesprächs.
4. **Ein Ereignis einer dritten Person in der Timeline.** Die Timeline kennt die Typen `termin`, `geburtstag`, `deadline`, `jahrestag`, `erinnerung` und den Erinnerungs-Anker, aber kein Ereignis, das einem anderen Menschen geschieht (*Lenas Umzug*). ~~Ein neuer Typ samt seinen Verhaltensmerkmalen ist eine Bauart-Frage.~~ → **Entschieden am 17.10.2026, nicht gebaut** (`_e` C4; A, Nr. 15, 18, 19): der Typ `ereignis`. Er bindet die Zeit des Menschen nicht, löst keine Erinnerung aus und wird nicht gegen andere Einträge geprüft. Über der Grenze der Salienz trägt ihn der Timeline-Agent ohne Auftrag ein, darunter fragt Nova. → Präzisiert am 21.10.2026 (`_e` A Nr. 37): ohne Auftrag nur ein Ereignis mit dauerhafter Folge oder Gewicht — Umzug, Hochzeit, Operation, Geburt —, keine Besorgung und kein Ausflug; die Grenze ist `KZG_SALIENZ_HIGH`. Mit bekanntem Monat und offenem Tag steht er sofort mit der Genauigkeit *Monat* in der Timeline, und im Block `[TERMINE]` steht er gekennzeichnet, mit der Person. **Er gehört dem Paar wie seine Fakten** (entschieden am 21.10.2026, `_e` A Nr. 38); die Timeline bekommt dafür `character_id` (`TIMELINE-PAIR-MISSING`) → gebaut und getestet am 21.10.2026, ~~nicht committet, die DDL am Betrieb steht aus~~ → committet, die DDL am 21.10.2026 angewandt und gemessen (`_b` §6, S7). → Am selben Abend gebaut, ~~nicht committet~~ → committet: der Typ `ereignis` in einer Quelle der Typen, mit seinen Merkmalen, und `timeline.nachfolger_id` mit dem Verschieben in einer Transaktion (`_b` §6, F6, S5); ~~der Weg im Turn, der ihn schreibt, fehlt~~ → der Weg im Turn, der ihn schreibt, ist seit dem 22.10.2026 gebaut; ~~die Kennzeichnung im Block `[TERMINE]` fehlt noch~~ → seit dem 22.10.2026 auch die Kennzeichnung im Block `[TERMINE]`, committet: nach den Terminen unter eigener Kopfzeile, mit der Person (am Code geprüft am 22.10.2026: `graph/format/appointments.py`, `EVENTS_HEADER`) (`_b` §6, F6).
5. **Die gezielte Erinnerungssuche nach der Sachlage.** Das Erinnerungsgedächtnis wird heute im Enricher gelesen, vor der Sachlage (`reducer → sachlage_node → router`). Die Mappe einer Entität der Sachlage gibt es erst danach. Für die Suche mit der Mappe als Anker braucht es einen Schritt hinter der Sachlage. → **Entschieden am 17.10.2026,** ~~nicht gebaut~~ → **gebaut am 22.10.2026, committet** (Code-Trees `0d5f633`, `04f823e`; `_e` C5; A, Nr. 16): Dieser Schritt ist ein eigener Knoten zwischen `sachlage_node` und `router`, der Erinnerungsanker (`graph/nodes/erinnerungsanker.py`; `_b` §6, *Der Erinnerungsanker*).

**Vor dem Festlegen zu messen** (Messpunkte in `_b`):

6. **Die Salienz von Aussagen über nahe Menschen.** Bekommen Aussagen über Menschen, die dem Menschen nahestehen (Familie, enge Bindung), heute eine hohe Salienz? Gemessen an der bestehenden Salienz, bevor die Grenze aus §3.2 gesetzt wird. → **Gemessen am 17.10.2026** (`_b` M1): Die Salienz trennt Person von Sache, nah aber nicht von fremd (`SALIENZ-TRAEGT-NAEHE-NICHT`). Gesetzt ist die Grenze damit nicht.
7. **Die Tiefe der Mappe.** Reicht der zweite Grad, und was kostet er im Prompt? → **Gemessen am 21.10.2026 und entschieden** (`_b` M2, `_e` A Nr. 40): Der zweite Grad reicht, die Tiefe bleibt 2.

---

## 6. Die Bauteile

Sie stehen mit `ZIEL`, `TEST`, `MESSUNG` und Gegenprobe in [`novaberg-memory-fakten_b.md`](novaberg-memory-fakten_b.md) §6. Jedes ist eine Zeile der Featureliste ~~mit ⚫~~ → mit ihrer Ampel (seit dem 20.10.2026 nicht mehr alle ⚫):

- **F1** — die Mappe lesen
- **F2** — der Fakten-Agent
- **F3** — Entitäten klären
- **F4** — lernen ohne Auftrag
- **F5** — ablösen statt überschreiben
- **F6** — Zeit über die Timeline
- **F7** — typisieren

Dazu zwei Messpunkte vor dem Bau: **M1**, die Salienz bei nahen Menschen, und **M2**, die Tiefe der Mappe.