# Novaberg — Der Dateien-Dienst: ein Verzeichnis, das gelesen werden darf **Absicht:** Nova findet und liest Dateien in Verzeichnissen, die ein Mensch ihr freigegeben hat — nach Name, Thema und Inhalt —, erfährt in jedem Turn ungefragt, ob dort etwas Einschlägiges liegt, und weist es als Aufzeichnung mit Fundstelle aus, nicht als ihre Erinnerung oder ihr Wissen; kein Dienst des Verbunds schreibt eine Datei in einer freigegebenen Wurzel. **Stand:** 30. August 2026 (am 19.09.2026 in fünf Teile aufgeteilt, ohne inhaltliche Änderung) **Umsetzung:** Featureliste *Dateien-Dienst — Stufe 0* (entfallen) · *Stufe 1* 🟢 · *Stufe 2* 🟢 · *Stufe 3* 🟢 · *Stufe 4* 🟢 · *Stufe 5* ⚫ · *Die epistemische Grenze im Prompt* 🔴 · *Außenrand der Freigaben* 🟢 · *Rückweg der Rückfrage* 🟢 · *Änderungserkennung über den Inhalt* 🟢 · *Verborgenes wird nicht betreten* 🟢 · *Der Wächter trennt fort von nicht mehr betrachtet* 🟢 · *Die Kette schließt beim Wiedereintritt* 🟢 · *Archiviert sieht nicht aus wie geltend* 🟢 · *Rückweg ins Wissen* 🔴 · *Rückweg — Weg 3, der Verweis* 🟠 · *Dateien — Leseschicht* 🔴 · *Schreibschicht* 🟢 · *Versionierung im Dokument* 🟢 · *Auftragsform `DATEI: {json}`* 🟠 — der Zustand steht dort, nicht hier **Teile:** [`novaberg-agent-dateien_t.md`](novaberg-agent-dateien_t.md) · [`novaberg-agent-dateien_b.md`](novaberg-agent-dateien_b.md) · [`novaberg-agent-dateien_e.md`](novaberg-agent-dateien_e.md) · [`novaberg-agent-dateien_m.md`](novaberg-agent-dateien_m.md) **Entschieden:** 3 · **Offen beim Meister:** 6 (Liste in [`novaberg-agent-dateien_e.md`](novaberg-agent-dateien_e.md)) **§ → Datei.** Die Abschnittsnummern sind die des ungeteilten Konzepts; ein Verweis der Form `novaberg-agent-dateien_k.md §4b` findet seinen Abschnitt über diese Tabelle. `_k` ist diese Datei, `_t` ist [`novaberg-agent-dateien_t.md`](novaberg-agent-dateien_t.md), `_b` ist [`novaberg-agent-dateien_b.md`](novaberg-agent-dateien_b.md), `_e` ist [`novaberg-agent-dateien_e.md`](novaberg-agent-dateien_e.md), `_m` ist [`novaberg-agent-dateien_m.md`](novaberg-agent-dateien_m.md). | § | Datei | |---|---| | 1 · 1a · 1a.1 · 1a.3 | `_k` | | 1a.2 | `_t` | | 1a.5 | `_t`; der Kasten *Gemessen im Betrieb, 22.08.2026* in `_m`; der Kasten zum Zustand am Tag des Baus (dritte Wurzel, Außenrand) in `_b` | | 1a.4 | `_k`; der Kasten *`[gemessen]` — 18.08.2026* in `_m` | | 2 · 2.1 · 2.2 | `_k` | | 2a · 2a.1 · 2a.2 · 2a.3 | `_t` | | 3 · 3.0 | `_k` | | 3.0a | `_m` (Einleitung und die Unterabschnitte *Der Präzedenzwert hat der Prüfung nicht standgehalten* und *Der Median sagt etwas über den Korpus*); der Unterabschnitt *Was daraus für den Index folgt* in `_t` | | 3.0a-bis · 3.0b · 3.0d · 3.0c · 3.1 | `_t` | | 3a · 3a.2 · 3a.2a · 3a.3 | `_t` | | 3a.1 | `_b` | | 4 · 4.1 | `_t` | | 4a · 4a.1 · 4a.2 · 4a.3 | `_t` | | 4b · 4b.1 · 4b.1a · 4b.1a-bis · 4b.1b · 4b.2 · 4b.3 | `_t`; der Kasten *Gebaut am 18.08.2026* am Kopf von §4b in `_b` | | 4c | `_t` | | 5 · 5.1 · 5.2 · 5.2a · 5.3 · 5.4 · 5.5 · 5.5a · 5.5b | `_t` | | 5.6 | `_t`; der Absatz *Gemessen am 23.08.2026 gegen den echten Bestand* in `_m` | | 6 · 6.1 · 6.1a · 6.2 · 6.3 · 6.3a · 6.4 | `_t` | | 7 | `_t`; der Kasten *Gebaut am 18.08.2026* unter Regel 3 a) in `_b` | | 8 · 8.0 · 8.1 · 8.1b · 8.2 · 8.2a · 8.3 | `_t` | | 8.1a | `_m` | | 9 | `_e` (Abschnitt D) | | 10 | `_k` | | Quellen der Recherche (18.08.2026) | `_t` | | Versionshistorie | `_b` | | Befunde aus dem Betrieb — nachgetragen am 20.08.2026 | `_m` | | bisheriger Kopf (Projekt, Dokument, Stand, Pfad, Typ, Status, Voraussetzung, Abgrenzung) und der Zustandsteil | `_m` | | Entschieden, Offen beim Meister, verworfene Varianten, Befunde der Doku-Sichtung vom 19.09.2026 | `_e` | **Voraussetzung und Abgrenzung** — `novaberg-tool-dateien_k.md`, `novaberg-convention-nmcp.md`, `novaberg-convention-verfall.md`, `novaberg-autonomous-wissen_k.md` — stehen im bisherigen Kopf, ungekürzt in [`novaberg-agent-dateien_m.md`](novaberg-agent-dateien_m.md). --- ## 1. Was gebaut werden soll, in einem Satz > **Nova soll in freigegebenen Verzeichnissen Dateien finden und lesen können — nach Name, nach Thema und nach Inhalt —, sie soll in jedem Turn ungefragt erfahren, ob dort etwas Einschlägiges liegt, und sie soll dabei jederzeit wissen, dass es nicht ihres ist.** Der Zweck ist benannt und er ist der Grund für den Zuschnitt: Wer ihr die Projektdokumentation zugänglich macht, gibt ihr die Möglichkeit, **über sich selbst zu lernen**. Ein Dienst, der dabei schreiben könnte, wäre ein Dienst, der seine eigene Beschreibung ändern kann. --- ## 1a. Was in den Dateien steht, ist nicht sie — und das muss ankommen **Der tragende Satz dieses Konzepts, und er ist keine Formulierungsfrage:** > **Was in den Dateien steht, steht in Dateien. Das ist nicht ihr Gedächtnis, das ist nicht sie. Das ist Wissen, auf das sie zugreifen kann.** Daraus folgt die Sprechhandlung, die der Dienst ihr ermöglichen muss — und zugleich die, die er ihr verwehren muss: | Zulässig | Unzulässig | |---|---| | *„Ich habe hier Aufzeichnungen, die das belegen…"* | *„Ich weiß, dass…"* | | *„In den Unterlagen steht…"* | *„Ich erinnere mich…"* | | *„Da steht es anders, als ich es in Erinnerung habe."* | *„So ist es."* | ### 1a.1 Warum das gebaut werden muss und nicht bloß gesagt **Es gibt einen Präzedenzfall im Bestand, und er ist offen.** Nova hat die Biografie eines Menschen als ihre eigene übernommen — *„Nach 34 Jahren in meiner Praxis…"*. Die Zahl stammte aus dem Kontext, die Person nicht. Der Defekt ist geführt, und die dort vermerkte Abhilfe lautet: **die Grenze zwischen ihrer Erinnerung und fremder im Prompt benennen.** **Dateiinhalt ist derselbe Fall, eine Stufe weiter.** Eine fremde Erinnerung gehört wenigstens einem Menschen; ein Dokument gehört niemandem und kann zusätzlich **falsch oder veraltet** sein. Wer es unbeschriftet in denselben Block legt wie ihr Gedächtnis, bekommt genau denselben Fehler mit schlechterer Quelle. > **Hinweis zur Teilung.** §1a.2 (*Ein eigener Block, keine Zeile im Gedächtnisblock* — Wortlaut und tragende Eigenschaften des Blocks `[AUFZEICHNUNGEN]`) steht in [`novaberg-agent-dateien_t.md`](novaberg-agent-dateien_t.md). ### 1a.3 Drei Zustände, nicht zwei — und nur einer macht es zu ihrem Die Grenze verläuft **nicht** zwischen „Datei" und „Gedächtnis", sondern zwischen *benutzen* und *erarbeiten*: | Zustand | Was geschieht | Wird es ihres? | |---|---|---| | **Beilage** | der Block liegt im Prompt, ungefragt | nein | | **Auskunft** | sie **antwortet daraus**, ohne zu lernen | **nein** — die Datei bleibt, wo sie ist | | **Erarbeitetes** | sie findet eine Lücke, studiert, destilliert, legt ab (§3.0b) | **ja**, mit Herkunft | **Der mittlere Zustand ist der häufigste und war bis v0.8 nicht benannt.** Ein Mensch fragt nach etwas, das in den Unterlagen steht; sie beantwortet es. Damit ist nichts gelernt und nichts gespeichert — das Wissen liegt weiter in der Datei und ist beim nächsten Mal genauso erreichbar. **Sie muss nichts übernehmen, um auskunftsfähig zu sein.** > **Hinweis zur Teilung.** §1a.5 (*Nicht jede Wurzel trägt fremdes Material*) steht in [`novaberg-agent-dateien_t.md`](novaberg-agent-dateien_t.md); der Messkasten daraus in [`novaberg-agent-dateien_m.md`](novaberg-agent-dateien_m.md), der Baukasten in [`novaberg-agent-dateien_b.md`](novaberg-agent-dateien_b.md). ### 1a.4 Die Beschriftung trägt die Herkunft über den Gedächtnis-Übergang **Es gibt einen vierten Weg, und er geht an beiden Toren vorbei.** Eine Antwort — auch eine aus dem Zustand *Auskunft* — läuft durch den Gesprächsgraphen, und bei hoher Salienz wird ihr Inhalt gespeichert. Weder die Lückenprüfung noch das Ablage-Gate sind daran beteiligt; das ist die Gesprächsschiene, nicht die Wissensschiene. **Dass der Turn erinnert wird, ist richtig. Gespeichert wird aber ihre Formulierung** — und deren Inhalt stammt aus der Datei. Steht dort kein Hinweis darauf, liegt beim nächsten Mal eine herkunftslose Aussage im Gedächtnis, die sie als eigene vertritt. > **Das ist die Form des Präzedenzfalls aus §1a.1.** Auch dort hat sie nur formuliert, was im Kontext lag, und der Satz wurde ihrer. | was gespeichert wird | Folge | |---|---| | *„X ist so."* | Herkunft weg — eine Aufzeichnung ist zur Erinnerung geworden | | *„Ich habe Aufzeichnungen, die sagen, X."* | Herkunft überlebt den Übergang | > **Damit hat die Beschriftung des Blocks eine zweite Aufgabe, und sie ist die wichtigere.** Sie ist nicht nur Redlichkeit im Moment der Antwort — **sie ist das Einzige, was die Herkunft in das Gedächtnis hinüberträgt.** Fällt die Absicherung in der Antwort weg, pflanzt sich der Fehler über einen Weg fort, den kein Tor bewacht. > > **Und die Selbstbeschreibung ist der teuerste Fall.** Die Projektdokumentation besteht großenteils aus **Konzepten**; §10 sagt, dass ein Leser dort Beschreibungen von Dingen findet, die nicht gebaut sind. Über diesen Weg lernt sie bei hoher Salienz, Fähigkeiten zu haben, die es nicht gibt — und behauptet sie danach **ohne jeden Dateizugriff**, weil die Aussage inzwischen im Gedächtnis steht. **Das ist prüfbar und gehört in die Messung:** gespeicherte Einträge zu dateigestützten Turns daraufhin ansehen, ob die Herkunft im Wortlaut steht. > **Hinweis zur Teilung.** Der Kasten *„`[gemessen]` — 18.08.2026, und der Weg ist am Tag seines Baus gelaufen“* steht in [`novaberg-agent-dateien_m.md`](novaberg-agent-dateien_m.md), *Aus §1a.4*. --- ## 2. Zwei Korpora, und sie dürfen nicht in eine Tabelle Es gibt schon eine Tabelle mit `dateipfad`, `thema`, `zusammenfassung` und `themen_embedding`: `autonomous_wissen`, 463 Zeilen. Sie sieht aus wie das Gesuchte und ist es nicht. | | **Bibliothek** (`autonomous_wissen`) | **Index** (neu) | |---|---|---| | Inhalt | was Nova selbst erarbeitet hat | was jemand ins Verzeichnis gelegt hat | | Wer schreibt die Datei | Nova | der Mensch | | Wer schreibt die Zeile | Nova, beim Ablegen | der Wächter, beim Erkennen | | Zugriff des Dienstes | lesend **und** schreibend | **nur lesend** | | Verfall | ja — vier Spalten, mit Halbwertszeit | **nein** | | Paar-Schema | ja, an der Zeile (`user_id` × `character_id` × `beobachter`) | **an der Wurzel**, nicht an der Datei — §2.2 | | Verzeichnis | `knowledge/`, fest | **vom Menschen freigegeben**, mehrere möglich — §2a | ### 2.1 Der Verzicht auf Verfall folgt aus der bestehenden Regel — er ist keine Ausnahme Die Verfalls-Konvention trennt in einem Satz: > **Was als Gedächtnis dient, verfällt. Was als Faktum protokolliert, bleibt.** **Eine indizierte Datei ist das Zweite.** Der Indexeintrag behauptet nicht *„daran erinnert sich jemand"*, sondern *„diese Datei liegt dort und handelt davon"*. Das ist eine Tatsachenbehauptung über das Dateisystem. Sie wird nicht schwächer, wenn niemand sie liest; sie wird **falsch**, wenn die Datei sich ändert oder verschwindet — und dagegen wirkt kein Verfall, sondern der Wächter. > **Deshalb wäre ein Gewicht auf dem Index nicht bloß überflüssig, sondern irreführend.** Eine Datei mit sinkendem Gewicht sähe aus wie eine, die an Bedeutung verliert, während sie unverändert dort liegt. Das ist derselbe Fehler wie ein Default im plausiblen Wertebereich: eine Zahl, die etwas behauptet, was niemand gemessen hat. ### 2.2 Das Paar sitzt an der Wurzel, nicht an der Datei **Eine Datei hat keinen Beobachter.** Sie ist nicht die Erinnerung eines Menschen an etwas, sondern eine Datei; die Frage *„wessen Sicht ist das"*, die das Paar-Schema in den Gedächtnisschichten beantwortet, hat hier keinen Gegenstand. **Die Zuordnung entsteht trotzdem — eine Ebene höher.** Ein Verzeichnis wird nicht gefunden, sondern **freigegeben**: Ein Mensch legt fest, dass dieses Verzeichnis für diese Figur lesbar ist. Genau diese Festlegung trägt das Paar. | Ebene | Paar-Schema | Warum | |---|---|---| | **Wurzel** (die Festlegung) | **ja** — `user_id` × `character_id` | ein Mensch gibt einer Figur ein Verzeichnis frei | | **Indexzeile** (die Datei) | **nein**, nur `wurzel_id` | die Datei erbt ihre Zuordnung über die Wurzel | > **Das ist der saubere Schnitt, und er löst drei Fragen auf einmal.** Mehrere Verzeichnisse sind dann kein Sonderfall, sondern der Normalfall — es sind mehrere Festlegungen. Der Entzug ist symmetrisch zur Freigabe. Und ein Verzeichnis, das ein Mensch für eine Figur freigegeben hat, ist für ein anderes Paar nicht sichtbar, ohne dass die Indexzeile das wissen muss. **Die Indexzeile bleibt paar-frei, und das ist kein Kompromiss.** Läge das Paar an der Datei, stünde dieselbe Datei mehrfach im Index, sobald zwei Menschen dasselbe Verzeichnis freigeben — mit derselben Zusammenfassung, demselben Embedding und einem zweiten Modellaufruf beim Indizieren. Über die Wurzel steht sie einmal da und ist über beide Festlegungen erreichbar. --- > **Hinweis zur Teilung.** §2a (die Wurzeltabelle, die fünf Aktionen, der Entzug) steht in [`novaberg-agent-dateien_t.md`](novaberg-agent-dateien_t.md). ## 3. Zwei Zugänge, drei Dienste — und keiner schreibt eine Datei ### 3.0 Der Unterschied, der alles andere ordnet Die Aufzeichnungen erreichen Nova auf **zwei** Wegen, und sie sind verschieden in der Art, nicht nur im Auslöser. | | **Der Enricher-Weg** | **Der Auftrags-Weg** | |---|---|---| | Wann | **in jedem Turn**, ohne Zutun | wenn danach gefragt wird | | Was | Embedding-Nähe über die Indexmetadaten | gezieltes Suchen und Lesen im Inhalt | | Kosten | eine Abfrage, kein Modellaufruf | Dateizugriffe, ggf. viele | | Ergebnis | der Block `[AUFZEICHNUNGEN]` (§1a.2) | eine Antwort auf eine Frage | | Zustellentscheidung | **keine** — er läuft immer | ja, über einen Aushang | | NMCP | **nicht erfasst** — Lesepfad | erfasst | **Der Enricher-Weg ist der wichtigere und der billigere.** Er beantwortet die Frage, die niemand stellt: *„gibt es zu dem, was hier gerade läuft, etwas in den Unterlagen?"* Genau so arbeitet das Gedächtnis auch — es meldet sich, ohne gefragt zu werden. > **Und er ist ausdrücklich vom NMCP-Regelwerk ausgenommen.** Die Konvention nimmt den Lesepfad heraus: Mehrere Lesequellen laufen parallel ohne Datenfluss untereinander; sie brauchen keine Vorbedingung, nur eine Quelle. Ein Aushang wäre für ihn eine Forderung ohne Gegenstand — er wird nicht gewählt. **Die Bauart existiert und ist erprobt.** Die Bibliothek hängt bereits als Kontextquelle am Enricher und sucht über `such_vektor` — denselben Vektor, mit dem in diesem Turn auch Kurz- und Langzeitgedächtnis gesucht haben. Der Dateien-Index wird eine weitere Quelle derselben Art. > **Ein eigenes Embedding je Turn zu rechnen wäre der Fehler an dieser Stelle.** Es hieße, denselben Text ein zweites Mal einzubetten — Sekunden je Turn — und dabei die Wahrnehmungs-Gravitation zu verlieren, die im gemeinsamen Vektor steckt. > **Hinweis zur Teilung.** Die übrigen Unterabschnitte von §3 stehen in [`novaberg-agent-dateien_t.md`](novaberg-agent-dateien_t.md); §3.0a zum größten Teil in [`novaberg-agent-dateien_m.md`](novaberg-agent-dateien_m.md). Ebenso §3a bis §8 in [`novaberg-agent-dateien_t.md`](novaberg-agent-dateien_t.md) (§3a.1 in [`novaberg-agent-dateien_b.md`](novaberg-agent-dateien_b.md), §8.1a in [`novaberg-agent-dateien_m.md`](novaberg-agent-dateien_m.md)), §9 in [`novaberg-agent-dateien_e.md`](novaberg-agent-dateien_e.md). ## 10. Der Sonderfall, der beim Zweck mitkommt Der genannte Zweck ist, Nova die Dokumentation zugänglich zu machen, damit sie **über sich selbst lernen** kann. Das ist mehr als ein weiterer Korpus, und es gehört benannt: > **Ein System, das seine eigene Beschreibung liest, kann ihr widersprechen.** Die Dokumentation enthält Sätze über Novas Aufbau, ihre Konzepte und ihre offenen Defekte. Liest sie das, kann sie über sich Aussagen machen, die aus dem Dokument stammen und nicht aus ihrem Zustand — und die beiden sind in einer Antwort nicht mehr auseinanderzuhalten. Zwei Folgen, beide klein und beide nötig: - **Eine Fundstelle wird als Fundstelle ausgewiesen.** Was aus einer Datei kommt, trägt Datei und Zeile — nicht, damit es zitierfähig ist, sondern damit *„das steht so im Konzept"* von *„so bin ich"* unterscheidbar bleibt. - **Ein Konzept ist kein Beleg dafür, dass etwas existiert.** Der Satz gilt für jeden Leser der Dokumentation, und er gilt für sie genauso. Ein Dienst, der Konzepte liest, muss damit rechnen, Beschreibungen von Dingen zu finden, die nicht gebaut sind. ---