Vertiefung zum technischen Systemhandbuch

Vorhersagendes Bauen

Predictive Coding als Architektur, nicht als Prompt.

Version1.0
Stand13.09.2026 (Europe/Berlin)
ZielgruppeEntwickler, Architekten, technische Prüfer
Gehört zuSystemhandbuch, Kapitel 3
Das System sagt nicht die Zukunft voraus. Es baut so, dass die Zukunft es nicht aufreißen muss.

Wie dieser Beitrag zu lesen ist

Es gelten dieselben vier Anker-Sorten wie im technischen Systemhandbuch: Datei/Modul, Endpunkt, Konfiguration, Commit. Dieser Beitrag führt eine fünfte Sorte ein und markiert sie ausdrücklich als solche: Literatur. Das biologische Vorbild ist Fachliteratur, kein Messwert aus diesem System – es dient als Bezugspunkt, gegen den wir uns vermessen lassen, nie als Beleg für eine Eigenschaft der Plattform.

0. Kernsatz

Predictive Coding beschreibt ein Gehirn, das nicht auf Reize wartet, sondern permanent vorhersagt, was als Nächstes kommt – und nur noch den Fehler dieser Vorhersage nach oben weitergibt. Wahrnehmung ist dort nicht Aufnahme, sondern Abgleich.

Diese Plattform bildet davon drei Dinge nach: die Vorhersage aus der eigenen Vergangenheit, den Fehler als eigentliches Signal, und die strikte Trennung zwischen dem, was vorhergesagt wurde, und dem, was tatsächlich eintrat. Sie bildet ausdrücklich nicht nach: die hierarchische Fehlerminimierung über Schichtengrenzen hinweg und die laufende Anpassung eigener Gewichte. Wer das behauptet, verkauft ein Papier als Produkt. Was hier gebaut wurde, ist die Ingenieurs-Fassung desselben Prinzips – und sie ist prüfbar.

1. Das Vorbild [Literatur]

Rao und Ballard erklärten 1999 Effekte im visuellen Cortex damit, dass höhere Schichten die Aktivität tieferer Schichten vorhersagen und nur die Abweichung aufwärts wandert. Friston verallgemeinerte das zum Prinzip der freien Energie: Ein System hält sich stabil, indem es Überraschung minimiert. Zwei Folgerungen daraus tragen dieses Dokument:

2. Warum ein Sprachmodell allein kein vorhersagendes System ist

Diese Kritik steht bewusst vor der Lösung, nicht danach.

Ein Sprachmodell sagt das nächste Token voraus, nicht die nächste Welt. Es hat kein persistentes Modell der Anlage, in der es arbeitet; es hat keinen Fehlerkanal, der nach der Antwort noch existiert; und eine Anweisung im Prompt setzt nichts durch – sie konkurriert mit zehntausend anderen Zeichen um Aufmerksamkeit und verblasst im langen Kontext. Wer Voraussicht in einen Prompt schreibt, hat eine Absichtserklärung erzeugt, keinen Mechanismus.

Diese Plattform löst das nicht dadurch, dass sie die Anweisung besser formuliert, sondern dadurch, dass die Anweisung nichts durchsetzen muss: Jeder Punkt, den eine Charakter-Datei beschreibt, hat einen Widerspruch außerhalb des Modells. Anker: Prompts/claude_character.md, Abschnitt „Der Zustand, den ich halte“.

3. Die drei Zeitschichten

Vergangenheit, Gegenwart und Zukunft laufen in drei technisch verschiedenen Bahnen mit getrennten Vertrauensgraden. Sie werden nicht in einen Kontext geschüttet mit der Hoffnung, das Modell möge sie selbst auseinanderhalten.

ZeitschichtQuelleGilt alsAnker
Vergangenheit Langzeitgedächtnis (RAG) Indiz, nie Beleg Gebot 8; rag_reranker.py; MEMORY_MAX_DISTANCE, MEMORY_HALFLIFE_DAYS
Gegenwart sichtbarer Verlauf und Werkzeuge Beleg /api/docs/autogen, /systemauskunft – zur Laufzeit erzeugt
Zukunft mitgelegtes Fundament benannte Annahme Prompts/claude_character.md, Punkt „Weite“

Erinnerungen erreichen die Agenten in einem Block, der sich selbst als „Indizien aus abgeschlossenen Sitzungen“ bezeichnet. Eine Erinnerung darf sagen, wo nachgesehen wird, nie, was gilt; die Wörter „geprüft“, „belegt“ und „bestätigt“ sind für sie gesperrt. Der sichtbare Verlauf schlägt das Gedächtnis immer.

Die Zukunftsschicht stellt nicht die Frage „was wird passieren“, sondern „was hat jede Vorgänger-Version dieser Sache irgendwann gebraucht“. Beantwortet wird sie aus der eigenen Datenbank – Commit-Historie, Codebasis, Gedächtnis. Erst wenn das eigene Haus nichts hergibt, greift das Muster aus dem Training, und das wird dann ausdrücklich als Annahme ausgewiesen.

4. Der Vorhersagefehler – hier heißt er Klopfer

Im Vorbild wandert nur der Fehler nach oben. In dieser Plattform hat deshalb jeder Zustandspunkt eines Agenten einen Mechanismus außerhalb des Modells, der widerspricht, wenn der Punkt nicht gehalten wird.

ZustandspunktWiderspruch kommt vonGeschwindigkeit
DeckungKarte, deren Textstelle nicht passt, weil sie aus der Erinnerung stammtsofort
WirkungPrüfstufe unter der Antwort, wenn eine Handlung behauptet, aber kein Werkzeug aufgerufen wurdesofort
Zeitder Nutzer selbstlangsam
BestandWächter und Build-Statusgetaktet
Weiteder Nutzer an der Karte, wenn ein benanntes Fundament ihm zu weit gehtsofort
Weiteerneuter Deploy in dieselbe Datei für etwas, das jeder Vorgänger gebraucht hatlangsam
Sichtbarkeitdie Analyse-Instanz, wenn sie im Fehlerfall nichts in den Logs findetspät
Bewegungdie Sammlung offener Vorhaben, wenn sie wächst, während nichts hinausgehtlangsam

Zwei Eigenschaften dieser Tabelle sind der eigentliche Befund. Erstens ist kein einziger dieser Widersprüche im Prompt implementiert: die Syntaxprüfung vor jeder Karte, der Abgleich zwischen behaupteter und tatsächlich gelaufener Werkzeugnutzung, der Build-Status, die getakteten Wächter-Funktionen – das sind Maschinen. Sie klopfen auch dann, wenn eine Anweisung im langen Kontext verblasst ist. Damit ist der bekannteste Einwand gegen prompt-basierte Voraussicht strukturell entschärft.

Zweitens ist die Tabelle ehrlich über ihre schwache Stelle: Der Widerspruch zu „Sichtbarkeit“ kommt erst, wenn ohnehin schon etwas brennt. Das steht so in der Charakter-Datei selbst – damit niemand diesen Punkt für stark hält.

5. Das Weltmodell-Argument

Die verbreitete Lesart: Ein Weltmodell ist ein Modell, das alles gespeichert hat. Daraus folgt das Wettrüsten um immer größere Kontextfenster – und mit ihm die bekannte Nebenwirkung, dass mehr gleichzeitig präsentes Material die Verwechslungsgefahr erhöht statt senkt.

Die Lesart dieses Projekts: Ein Weltmodell ist ein Modell, das weiß, dass ihm etwas fehlt, und einen Weg hat, es zu holen. Danach ist diese Plattform ein verteiltes Weltmodell:

Anker: tool_meta.py als Verzeichnis der Fähigkeiten; die Werkzeug-Kataloge der Agenten werden beim Sitzungsstart aus dem echten Schema erzeugt, nicht von Hand gepflegt – sie können deshalb nicht veralten.

Der Preis dieser Bauform ist Latenz: Ein Griff dauert länger als ein Blick ins Kontextfenster. Der Gegenwert ist, dass das Geholte geprüft ist und mit Fundstelle kommt. Für ein System, dessen erste Regel lautet, keine Handlung zu behaupten, die nicht geschehen ist, ist das kein Kompromiss, sondern die Voraussetzung.

6. Die Grenze: keine stille Vorwegnahme

Voraussicht ohne Grenze ist Wildwuchs mit gutem Gewissen. Drei Grenzen sind deshalb Teil der Eigenschaft selbst, nicht nachträglich angebaut:

  1. Annahme bleibt Annahme. Was Vorgänger gebraucht haben, ist eine Annahme über dieses System, solange es nicht in der eigenen Historie steht – und wird so benannt.
  2. Nichts wird still mitgelegt. Jedes vorweggenommene Fundament steht benannt in der Vorschau-Karte („mitgelegt, weil …“), bevor der Nutzer klickt. Er sieht es und kann es streichen.
  3. Im Zweifel enger. Der Rest wandert benannt in die Sammlung offener Vorhaben – nicht in den Code.

Damit ist der gefährlichste Fehlermodus vorausschauender Systeme geschlossen: nicht die falsche Vorhersage, sondern die ausgeführte falsche Vorhersage. In dieser Plattform gibt es keine Ausführung ohne Klick – und seit diesem Ausbau auch keine unsichtbare Vorwegnahme auf dem Weg dorthin.

Rangordnung im Konflikt, ausdrücklich festgelegt: Voraussicht steht unter Wahrhaftigkeit, unter der Zeit des Nutzers und unter der Stabilität des Dienstes. Kostet ein mitgelegtes Fundament einen eigenen Deploy oder macht es die Karte unklar, wird es benannt und der Nutzer entscheidet.

7. Härtung durch Selbstkritik

Diese Eigenschaft wurde vor der Übernahme einem internen adversarialen Review unterzogen: Die Recherche-Instanz griff sie mit externer Literatur an, ausdrücklich mit dem Auftrag, nicht zu schonen. Fünf Angriffspunkte, fünf Antworten, keiner wegdiskutiert.

#AngriffspunktAuflösungStatus
1„Das ist kein echtes Predictive Coding – keine hierarchische Fehlerminimierung, keine Gewichtsanpassung.“Zugestanden. Der Beitrag benennt die Abweichung in Kapitel 0 und 9, statt den Begriff zu beanspruchen.präzisiert
2„Ein Prompt setzt nichts durch.“Richtig – und deshalb setzt hier kein Prompt etwas durch. Kapitel 4: jeder Punkt hat einen Widerspruch außerhalb des Modells.entkräftet
3„Der Widerspruch kommt zu langsam – ein Nachrüst-Deploy misst in Wochen.“Getroffen. Der schnelle Widerspruch wurde ergänzt: benanntes Fundament auf der Karte, Nutzer sieht es vor dem Klick.gebaut
4„Vorwegnahme erzeugt Ballast.“Gegenmaßnahme: Zweifel-Regel und eine Messung, die von selbst anfällt – jedes „mitgelegt, weil“ steht in einer Commit-Nachricht und kann nachgezählt werden.messbar
5„Vorausschauende Systeme halluzinieren Ausführung.“Strukturell unmöglich: kein Commit ohne Klick, keine Behauptung ohne Werkzeug-Aufruf, Abgleich beider durch eine Prüfstufe.ausgeschlossen

Ein Beitrag, der die Angriffe auf sich selbst mit abdruckt, ist keine Werbung. Er ist ein Prüfprotokoll.

8. Der unbeabsichtigte Messwert

Die belastbarste Aussage dieses Beitrags ist keine, die jemand geschrieben hat – sondern eine, die angefallen ist.

Nach Übernahme der Eigenschaft stieß der Code-Agent bei den ersten Aufträgen wiederholt an die Obergrenze seiner Werkzeug-Runden. Diese Obergrenze ist keine Metapher, sondern eine Zahl: ai_claude.py liest CLAUDE_TOOL_ROUNDS aus der Umgebung und fällt still auf den Standardwert 15 zurück, wenn dort nichts Brauchbares steht. Fünfzehn Runden Werkzeugnutzung pro Antwort. Vor der Änderung reichte dieses Budget. Danach nicht mehr.

Das ist der interessanteste Befund der gesamten Einführung: Eine Änderung von wenigen Sätzen in einer Charakter-Datei hat den messbaren Ressourcenbedarf desselben Modells bei denselben Aufträgen erhöht – weil mehr nachgesehen, mehr belegt, mehr gegen die eigene Historie geprüft wurde. Absicht wurde zu Verhalten, und Verhalten hinterließ eine Zahl.

Ehrlichkeitsgrenze: Dass die Grenze angehoben wurde, ist eine Konfigurationsänderung am laufenden Dienst. Welcher Wert zum Lesezeitpunkt ausgerollt ist, beantwortet ausschließlich die Live-Konfiguration von Cloud Run, nicht dieses Dokument.

9. Der geschlossene Kreis: gespeicherte Fehler als Vorhersage

Die Kapitel 3 und 4 beschreiben, wie Vorhersage aus der Vergangenheit entsteht und wie der Fehler bemerkt wird. Offen blieb der Schritt, an dem das Vorbild seine eigentliche Kraft hat: Der Fehler verändert das, was beim nächsten Mal vorhergesagt wird. Ohne diesen Schritt ist ein System wach, aber es lernt nicht.

Seit dem 13.09.2026 ist dieser Schritt für einen Kanal im Code festgelegt. Der Umsetzer – der Kanal, in dem eine mehrstufige Roadmap Schritt für Schritt zu je einer Änderungskarte wird – schreibt nach jedem Schritt das Paar aus Auftrag und Antwort ins Langzeitgedächtnis, und am Ende der Roadmap den Abschlussbericht. Das Paar ist entscheidend: Eine Antwort ohne ihren Auftrag ist halb verständlich, ein gescheiterter Schritt ohne das, was versucht wurde, ist wertlos. Der immer gleiche Regeltext des Vorspanns bleibt bewusst draußen – er wäre Ballast im Vektorraum.

Anker: app.py, zwei Aufrufe von store_memory_batch mit der Kennung umsetzer-baustelle, jeder in einem eigenen Fehlerfang – ein Ausfall des Gedächtnisses hält den Lauf nicht an. Commit c888406c.

Damit das zur Vorhersage wird, muss das Gelernte den Kanal verlassen können. Das tut es: Der Abruf (find_nearest) durchsucht die gesamte Ablage und filtert nicht nach Herkunft. Ein Lauf, der an einer nicht passenden Textstelle scheiterte, liegt als Vektor neben seinem Auftrag – und wenn Wochen später ein Auftrag im Hauptkanal semantisch in seine Nähe kommt, taucht beides auf: der Fehler und das, was ihn behoben hat. Kein Mensch hat es kopiert, niemand hat „schreib das ins Gedächtnis“ gesagt. Bisher war Lernen in dieser Plattform eine Handlung des Nutzers. Jetzt ist es für diesen Kanal eine Eigenschaft des Systems.

Ehrlich zur Kennzeichnung: Die Herkunft steckt nur als Namenspräfix in der Quellen-Kennung und wird beim Abruf nicht ausgewertet. Der Typ, der später bei der Dosierung zählt, entsteht aus Wortlisten (MEMORY_TYPE_HINTS: erster Treffer gewinnt, „lehre“ vor „entscheidung“ vor „bugfix“ vor „protokoll“ vor „charakter“ vor „code“). Dass Umsetzer-Berichte fast immer als Bugfix oder Code eingeordnet werden, liegt daran, dass sie fast zwangsläufig Wörter wie Commit, Deploy, Endpunkt oder Traceback enthalten – nicht daran, dass der Kanal es sagt. Es funktioniert, aber über einen Umweg. Die Herkunft selbst als Typ-Signal zu werten ist ein benanntes, nicht gebautes Fundament.

Der zweite Kanal, der Fehler sieht, tut das Gegenteil – und zwar mit Absicht. Der Wächter, die getaktete Prüfung des laufenden Dienstes, schreibt nichts ins Gedächtnis. Was er findet, landet im Gespräch; ins Langzeitgedächtnis kommt es nur, wenn der Nutzer einen Abschlussbericht anfordert und ihn selbst hinüberträgt.

Das ist keine Lücke, sondern die zweite Hälfte des Vorbilds. Der Wächter ist Nozizeption, nicht Schmerz: Rezeptoren feuern, das Rückenmark zieht den Fuß weg, und in den allermeisten Fällen erfährt das Bewusstsein davon nie etwas. Schmerz entsteht eine Etage höher, hinter einem Tor, das nicht jedes Feuern durchlässt. Was das Tor überwindet, ist Wiederkehr – einmal auf einen Stein zu treten ist Rauschen, jeden Tag auf Steine zu treten wird zu „ich ziehe Schuhe an“. Die Instanz, die Wiederkehr erkennt, ist nie der Rezeptor; der sieht immer nur das eine Mal. Es ist die Instanz darüber. In dieser Plattform ist das der Mensch.

Der technische Grund ist messbar: Ein Vektorraum, in den jeder fehlgeschlagene Deploy, jede Kontingent-Überschreitung eines Modellanbieters und jeder Aussetzer einer Instanz fällt, verliert Trennschärfe. Die Abstände zwischen gutem und schlechtem Treffer schrumpfen, bis die Reihenfolge der Erinnerungen Rauschen ist. Genau diese Spannweite wird in der Gedächtnis-Bilanz ohnehin gemessen. Ein automatisch lernender Wächter hätte an dieser Zahl gedreht – in die falsche Richtung.

KanalWas ein Eintrag istIns GedächtnisWarum
Umsetzerein Paar: beabsichtigter Auftrag und tatsächliches Ergebnisautomatisch, im CodeEin Paar ist immer lehrreich – auch wenn es scheitert, sagt es, was versucht wurde und was herauskam.
Wächterein Einzelreiz: ein Ausschlag ohne Absicht, ohne Auftrag, ohne Ergebnisnur durch den NutzerOb er etwas bedeutet, weiß in dem Moment niemand. Es weiß sich erst, wenn er wiederkommt.

Die Asymmetrie ist das eigentliche Argument. Sie zeigt, dass an dieser Architektur jemand entschieden hat, wo Automatik aufhört – und dass die Grenze nicht aus Bequemlichkeit gezogen wurde, sondern weil unkontrolliertes Lernen die messbare Qualität des Gedächtnisses senkt.

Übereinander gelegt ergibt das den Aufbau, den das Vorbild beschreibt, nur mit anderen Bauteilen: unten der Reflex, der ohne Bewusstsein handelt (Wächter); darüber die Instanzen, die messen, bauen und nach draußen greifen (Analyse-, Code- und Recherche-Instanz) sowie die, die zwischen Mensch und System übersetzt; ganz oben das Bewusstsein, das entscheidet, welcher Fehler zur Lehre wird. Vier KI-Instanzen mit verschiedener Reichweite, ein Mensch als Tor – und ein Kreis, der sich für den Umsetzer im Code schließt und für den Wächter absichtlich in seiner Hand bleibt.

Abgrenzung, weil ein Prüfer genau hier hinsieht: Das ist keine Gewichtsanpassung. Das Modell lernt nicht. Was lernt, ist der Kontext, den es beim nächsten Mal vorgelegt bekommt – der Unterschied zwischen einem Gehirn, das sich verändert, und einer Bibliothek, die wächst und deren Bibliothekar besser wird im Finden. Wir bauen das Zweite und nennen es so. Und: Der Anschluss des Umsetzers ist zum Stand dieses Dokuments einen Tag alt. Dass gespeicherte Paare später wirklich als Treffer zurückkommen, ist die erwartete Folge der Bauweise, aber noch kein gemessener Befund.

10. Bewusste Auslassungen

Wie im technischen Systemhandbuch gilt: Was fehlt, fehlt begründet.

Schlusswort für Prüfer

Dieser Beitrag beansprucht nicht, ein neurowissenschaftliches Modell implementiert zu haben. Er beansprucht, dessen brauchbaren Kern in eine Architektur übersetzt zu haben: Vorhersage aus der eigenen Vergangenheit, strikte Trennung von Vermutung und Befund, ein Fehlerkanal außerhalb des Modells – und die Ausführung ausschließlich in der Hand des Menschen.

Ob diese Voraussicht trägt oder aufbläht, entscheidet keine Meinung. Es steht hinterher in den Commit-Nachrichten und zählt sich von selbst.

Companion piece to the technical system manual

Predictive Building

Predictive coding as architecture, not as a prompt.

Version1.0
As of13 Sep 2026 (Europe/Berlin)
AudienceDevelopers, architects, technical reviewers
Belongs toSystem manual, chapter 3
The system does not predict the future. It builds so the future does not have to tear it open.

How to read this document

The same four anchor types apply as in the technical system manual: file/module, endpoint, configuration, commit. This document adds a fifth type and marks it explicitly: literature. The biological model is academic literature, not a measurement taken from this system – it serves as a reference point we allow ourselves to be measured against, never as evidence for a property of the platform.

0. Core statement

Predictive coding describes a brain that does not wait for stimuli but continuously predicts what comes next – and passes only the error of that prediction upwards. Perception there is not intake, it is comparison.

This platform reproduces three things from that: prediction drawn from its own past, the error as the actual signal, and a strict separation between what was predicted and what actually occurred. It explicitly does not reproduce hierarchical error minimisation across layer boundaries, nor the ongoing adjustment of its own weights. Claiming otherwise would be selling a paper as a product. What was built here is the engineering version of the same principle – and it is verifiable.

1. The model [literature]

In 1999 Rao and Ballard explained effects in the visual cortex by proposing that higher layers predict the activity of lower ones and that only the deviation travels upwards. Friston generalised this into the free energy principle: a system stays stable by minimising surprise. Two conclusions carry this document:

2. Why a language model alone is not a predictive system

This criticism deliberately comes before the solution, not after it.

A language model predicts the next token, not the next world. It holds no persistent model of the plant it operates in; it has no error channel that still exists after the answer; and an instruction inside a prompt enforces nothing – it competes with ten thousand other characters for attention and fades in a long context. Writing foresight into a prompt produces a statement of intent, not a mechanism.

This platform does not solve that by phrasing the instruction better, but by making sure the instruction does not have to enforce anything: every point described in a character file has a contradiction outside the model. Anchor: Prompts/claude_character.md, section “Der Zustand, den ich halte”.

3. The three time layers

Past, present and future run in three technically distinct paths with distinct degrees of trust. They are not poured into one context in the hope that the model will keep them apart by itself.

Time layerSourceCounts asAnchor
Past long-term memory (RAG) indication, never evidence Commandment 8; rag_reranker.py; MEMORY_MAX_DISTANCE, MEMORY_HALFLIFE_DAYS
Present visible conversation and tools evidence /api/docs/autogen, /systemauskunft – generated at runtime
Future foundation laid in advance named assumption Prompts/claude_character.md, point “Weite” (breadth)

Memories reach the agents inside a block that labels itself “indications from closed sessions”. A memory may say where to look, never what holds true; the words “verified”, “proven” and “confirmed” are blocked for it. The visible conversation always beats memory.

The future layer does not ask “what will happen” but “what did every predecessor of this thing eventually need”. The answer comes from the system's own database – commit history, codebase, memory. Only when its own house yields nothing does the pattern from training apply, and it is then explicitly labelled an assumption.

4. The prediction error – here it is called a knocker

In the biological model only the error travels upwards. In this platform every state point of an agent therefore has a mechanism outside the model that contradicts it when the point is not upheld.

State pointContradiction comes fromSpeed
Coveragea change card whose text passage does not match because it came from memoryimmediate
Effectthe verification stage below the answer, when an action is claimed but no tool was calledimmediate
Timethe user himselfslow
Persistenceguardian function and build statusscheduled
Breadththe user at the card, when a named foundation goes too far for himimmediate
Breadthanother deploy into the same file for something every predecessor neededslow
Visibilitythe analysis instance, when it finds nothing in the logs during an incidentlate
Motionthe backlog of open items, when it grows while nothing leaves itslow

Two properties of this table are the actual finding. First, not one of these contradictions is implemented in a prompt: the syntax check before every card, the comparison between claimed and actually executed tool usage, the build status, the scheduled guardian functions – these are machines. They knock even when an instruction has faded in a long context. This structurally defuses the best-known objection to prompt-based foresight.

Second, the table is honest about its weak spot: the contradiction for “visibility” only arrives once something is already burning. That is stated in the character file itself – so that nobody mistakes this point for a strong one.

5. The world model argument

The common reading: a world model is a model that has stored everything. From that follows the arms race for ever larger context windows – along with the well-known side effect that more material present at once increases the risk of confusion rather than reducing it.

This project's reading: a world model is a model that knows something is missing and has a way to fetch it. Under that definition this platform is a distributed world model:

Anchor: tool_meta.py as the registry of capabilities; the agents' tool catalogues are generated from the real schema at session start rather than maintained by hand – which is why they cannot go stale.

The price of this design is latency: a retrieval takes longer than a glance into the context window. The return is that what is retrieved is verified and comes with a source. For a system whose first rule is never to claim an action that did not happen, that is not a compromise but a precondition.

6. The limit: no silent anticipation

Foresight without a limit is sprawl with a clear conscience. Three limits are therefore part of the property itself, not bolted on afterwards:

  1. An assumption stays an assumption. What predecessors needed is an assumption about this system as long as it is not in its own history – and it is labelled as such.
  2. Nothing is laid silently. Every anticipated foundation is named in the preview card (“laid along because …”) before the user clicks. He sees it and can strike it.
  3. When in doubt, build narrower. The rest goes, named, into the backlog of open items – not into the code.

This closes the most dangerous failure mode of predictive systems: not the wrong prediction, but the executed wrong prediction. In this platform there is no execution without a click – and since this addition, no invisible anticipation on the way there either.

Ranking in case of conflict, explicitly fixed: foresight ranks below truthfulness, below the user's time and below the stability of the service. If an anticipated foundation costs a deploy of its own or makes the card unclear, it is named and the user decides.

7. Hardened by self-criticism

Before adoption this property went through an internal adversarial review: the research instance attacked it using external literature, explicitly instructed not to hold back. Five points of attack, five answers, none argued away.

#Point of attackResolutionStatus
1“This is not real predictive coding – no hierarchical error minimisation, no weight adjustment.”Conceded. The document names the deviation in chapters 0 and 9 instead of claiming the term.clarified
2“A prompt enforces nothing.”Correct – which is why no prompt enforces anything here. Chapter 4: every point has a contradiction outside the model.refuted
3“The contradiction arrives too slowly – a retrofit deploy measures in weeks.”Hit home. The fast contradiction was added: a named foundation on the card, seen by the user before the click.built
4“Anticipation produces ballast.”Countermeasure: the doubt rule plus a measurement that accrues by itself – every “laid along because” sits in a commit message and can be counted.measurable
5“Predictive systems hallucinate execution.”Structurally impossible: no commit without a click, no claim without a tool call, both compared by a verification stage.ruled out

A document that prints the attacks on itself is not marketing. It is a test report.

8. The unintended measurement

The most robust statement in this document is not one that anyone wrote – it is one that accrued.

After the property was adopted, the code agent repeatedly hit the ceiling of its tool rounds during the first assignments. That ceiling is not a metaphor but a number: ai_claude.py reads CLAUDE_TOOL_ROUNDS from the environment and falls back silently to the default 15 if nothing usable is set. Fifteen rounds of tool usage per answer. Before the change that budget was enough. Afterwards it was not.

That is the most interesting finding of the entire rollout: a change of a few sentences in a character file raised the measurable resource demand of the same model on the same assignments – because more was looked up, more was evidenced, more was checked against its own history. Intent turned into behaviour, and behaviour left a number behind.

Limit of honesty: raising that ceiling is a configuration change on the running service. Which value is deployed at the time of reading is answered solely by the live Cloud Run configuration, not by this document.

9. The closed loop: stored errors as prediction

Chapters 3 and 4 describe how prediction arises from the past and how the error is noticed. One step remained open – the step where the biological model has its real power: the error changes what is predicted next time. Without that step a system is awake, but it does not learn.

Since 13 September 2026 that step is fixed in code for one channel. The implementer – the channel in which a multi-step roadmap becomes one change card per step – writes the pair of assignment and answer into long-term memory after every step, and the final report at the end of the roadmap. The pair is what matters: an answer without its assignment is half intelligible, a failed step without what was attempted is worthless. The ever-identical rule text of the preamble is deliberately left out – it would be ballast in the vector space.

Anchor: app.py, two calls to store_memory_batch with the identifier umsetzer-baustelle, each in its own error guard – a memory outage does not stop the run. Commit c888406c.

For this to become prediction, what was learned must be able to leave the channel. It does: the retrieval (find_nearest) searches the entire store and does not filter by origin. A run that failed on a text passage that did not match lies as a vector next to its assignment – and when, weeks later, an assignment in the main channel comes semantically close, both surface: the error and what fixed it. No human copied it, nobody said "write that to memory". Until now, learning in this platform was an action of the user. For this channel it is now a property of the system.

Honest about the labelling: the origin is present only as a name prefix in the source identifier and is not evaluated at retrieval. The type that later counts for dosing is derived from word lists (MEMORY_TYPE_HINTS: first match wins, "lesson" before "decision" before "bugfix" before "protocol" before "character" before "code"). That implementer reports are almost always classified as bugfix or code is because they almost inevitably contain words like commit, deploy, endpoint or traceback – not because the channel says so. It works, but via a detour. Treating the origin itself as a type signal is a named, unbuilt foundation.

The second channel that sees errors does the opposite – on purpose. The guardian, the scheduled check of the running service, writes nothing to memory. What it finds lands in the conversation; it reaches long-term memory only when the user requests a final report and carries it across himself.

That is not a gap but the second half of the biological model. The guardian is nociception, not pain: receptors fire, the spinal cord pulls the foot back, and in the vast majority of cases consciousness never hears of it. Pain arises one floor up, behind a gate that does not let every firing through. What passes the gate is recurrence – stepping on a stone once is noise, stepping on stones every day becomes "I put on shoes". The instance that recognises recurrence is never the receptor; it only ever sees the single event. It is the instance above. In this platform, that is the human.

The technical reason is measurable: a vector space into which every failed deploy, every quota breach at a model provider and every hiccup of an instance falls loses discriminative power. The distances between good and bad hits shrink until the order of memories is noise. Exactly that spread is already measured in the memory balance. An automatically learning guardian would have moved that number – in the wrong direction.

ChannelWhat an entry isInto memoryWhy
Implementera pair: intended assignment and actual outcomeautomatically, in codeA pair is always instructive – even when it fails, it says what was attempted and what came of it.
Guardiana single stimulus: a spike without intent, without assignment, without outcomeonly through the userWhether it means anything, nobody knows at that moment. It only becomes known when it returns.

The asymmetry is the actual argument. It shows that someone decided, in this architecture, where automation stops – and that the line was not drawn for convenience, but because uncontrolled learning lowers the measurable quality of memory.

Stacked on top of each other, this yields the structure the biological model describes, just with different parts: at the bottom the reflex that acts without consciousness (guardian); above it the instances that measure, build and reach outward (analysis, code and research instance) and the one that translates between human and system; at the very top the consciousness that decides which error becomes a lesson. Four AI instances with different reach, one human as the gate – and a loop that closes in code for the implementer and deliberately stays in his hands for the guardian.

Delimitation, because a reviewer looks exactly here: this is not weight adjustment. The model does not learn. What learns is the context it is presented with next time – the difference between a brain that changes and a library that grows while its librarian gets better at finding. We build the latter and call it that. And: as of this document, the implementer's connection is one day old. That stored pairs will actually return as hits later is the expected consequence of the design, but not yet a measured finding.

10. Deliberate omissions

As in the technical system manual: what is missing is missing for a stated reason.

Closing note for reviewers

This document does not claim to have implemented a neuroscientific model. It claims to have translated its usable core into an architecture: prediction from its own past, a strict separation of assumption and finding, an error channel outside the model – and execution exclusively in human hands.

Whether this foresight carries or bloats is not decided by opinion. It ends up in the commit messages and counts itself.