Chemenu kompiliert Rohnotizen zu einem verlinkten, quellengebundenen Wiki: raw/ -> types/ + tools/ -> kb/ -> reports/. Was mechanisch ist, macht tools/wikitool; was Urteil braucht, macht ein Agent unter Contracts, deren Grenzen in Code durchgesetzt sind statt im Prompt. Dieser Commit ist der Startpunkt der oeffentlichen Historie. Die vorherige Entwicklung fand in einer privaten Instanz statt und ist nicht Teil dieses Repositorys; ihre Erzaehlung steht vollstaendig in CHANGES.md, das mit 44 Eintraegen von 0.1.0 bis 2.1.0 erhalten geblieben ist. Der mitgelieferte Korpus ist ein Testbett und eine Demo: 170 Seiten ueber den Stack selbst - Gates, Lint, Versionierung, Suche, das Wiki-Muster. Er dokumentiert das Werkzeug mit den eigenen Mitteln des Werkzeugs. Lizenz: AGPL-3.0 fuer den Stack (tools/, types/), CC-BY-4.0 fuer die Inhalte. Die Grenze zwischen beiden ist der Dateiplan, den dist export berechnet - siehe NOTICE.
6.0 KiB
type, concept_type, tags, created, modified, related, sources, confidence, confidence_base, provenance, summary
| type | concept_type | tags | created | modified | related | sources | confidence | confidence_base | provenance | summary | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| types/concept.md | architecture | 2026-08-31 | 2026-08-31 |
|
|
0.50 | 0.50 | sourced | Muster fuer eine Datei, die eine Instanz ueber ihre Umgebung informiert, ohne Betriebsvoraussetzung zu sein: Health-Check meldet ohne zu scheitern, pro Checkout statt pro Repo |
Optional Instance Context File
Typ: Architecture
Definition
Eine Optional Instance Context File ist eine Datei, die eine Instanz über ihre eigene Umgebung informiert, ohne Betriebsvoraussetzung zu sein: sie erspart einer Sitzung Fragen, deren Antworten sich selten ändern, und ihr Fehlen kostet Zeit, aber keine Korrektheit.
Das Muster ist die schwächere Schwester der Personalization Plane. Beide liefern ein Template aus, beide füllen es in einem Setup-Schritt, beide prüfen das Ergebnis mit einem Health-Check. Der Unterschied liegt darin, was der Check tut, wenn die Datei fehlt — und dieser eine Unterschied entscheidet, ob „optional" hält oder nur behauptet ist.
Erste Umsetzung: ENVIRONMENT.md in Chemenu, Stack-Version 1.8.01 .
Kernpunkte
- Der Health-Check meldet, aber scheitert nie. Eine fehlende Datei ergibt
OKmit dem Vermerk „absent (optional)", keinFAIL. EinFAILwürde die Datei durch die Hintertür verpflichtend machen und damit die Eigenschaft aufheben, um derentwillen sie entworfen wurde. Der Preis ihres Fehlens sind ein paar Fragen, keine falsche Ausgabe — und ein Check, der darauf rot wird, sortiert die beiden Kosten falsch ein. - Genau ein Zustand ist meldenswert, und zwar als
WARN: ein umbenanntes, nie ausgefülltes Template. Diese Datei ist vorhanden, wird in jeder Sitzung mitgeladen und beantwortet nichts — schlechter als Abwesenheit, weil Abwesenheit ehrlich ist. Eine reine Existenzprüfung würde sie durchwinken; erkennbar wird sie über einen Sentinel im Template. - Pro Checkout, nicht pro Repo. Was hier steht, gilt einer Arbeitskopie: zwei Clones desselben Repos sind zwei Umgebungen. Deshalb ist die Datei gitignored, und deshalb ist eine committete Fassung schädlicher als gar keine — sie gibt dem zweiten Clone Antworten, die falsch sind statt zu fehlen, und eine falsche Angabe wird geglaubt.
- Das Ignore-Muster muss die Datei von ihrem Template trennen. Das naheliegende
<Name>.md*schluckt beides und nimmt der Distribution die Vorlage. Der Ausschluss gehört verankert und in beide Richtungen geprüft: die Datei muss ignoriert sein, das Template darf es nicht. - Kontext, keine Autorität. Die Datei beschreibt, was vorhanden ist, nicht, was erlaubt ist. Ein aufgeführter Remote autorisiert keinen Push an den Gates vorbei, ein aufgeführter Dienst öffnet kein Gate, und nichts darin ist eine Quelle für einen Wiki-Eintrag. Zugangsdaten gehören nicht hinein: die Datei liegt im Klartext und geht in jeden Agenten-Kontext.
- Raten ist schlimmer als Lücken lassen. Der Setup-Schritt trägt ein, was aus dem Checkout ablesbar ist, fragt einmal nach dem Rest und akzeptiert „weiß ich nicht" — ein leerer Abschnitt wird gelöscht, nicht mit Plausiblem gefüllt. Eine geratene Zeile kostet mehr als die fehlende, aus demselben Grund, aus dem die Datei nicht committet wird.
Beispiele
- ENVIRONMENT.md — erste und bislang einzige Umsetzung: Harness, Skills, MCP-Server, Connectoren, Remotes, CI-Ort
- wikitool — trägt den
environment-Check indoctorund liefert das Template überdist exportaus - CLAUDE.md — bindet die Datei als Import ein und trägt damit den Fall „Import, der legitim nie auflöst"
Wann zu verwenden
Wenn eine Angabe drei Eigenschaften zugleich hat: sie ändert sich selten, sie wird trotzdem immer wieder erfragt, und ihr Fehlen macht die Arbeit langsamer statt falsch. Dann lohnt eine Datei, und dann darf sie optional sein.
Das Muster verlangt vier Dinge, die zusammengehören: ein ausgeliefertes Template, einen Setup-Schritt, der es anbietet statt es zu verlangen, einen Health-Check, der meldet ohne zu scheitern, und einen mechanisch geprüften Ausschluss aus der Versionskontrolle. Fehlt der Check, verrottet die Datei unbemerkt; fehlt der geprüfte Ausschluss, wandert eine Arbeitskopie in das Repo aller anderen.
Wann NICHT zu verwenden
- Für Betriebsvoraussetzungen. Was eine Instanz zum Funktionieren braucht, gehört in die
Personalization Plane oder in einen echten
FAIL. „Optional" ist eine Aussage über die Folgen des Fehlens, keine Höflichkeitsform. - Für Angaben, die eine Maschine ermitteln kann.
git remote -vbeantwortet sich selbst; aufgeschrieben wird, was sonst erfragt würde, nicht was ohnehin abrufbar ist. Ein aufgeschriebener Wert, den ein Kommando widerlegen kann, ist eine Kopie, die driftet. - Für Regeln. Wer Normatives hineinschreibt, erzeugt die zweite Kopie, die Invariante 8 von AGENTS.md verbietet.
- Für Geheimnisse. Tokens und Passwörter gehören in die Shell-Konfiguration, nicht in eine Datei, die jede Sitzung mitliest.
Verwandte Concepts
- Personalization Plane — dasselbe Muster als Pflicht: dort
FAILbei fehlender Datei, hier nie - KB Stack Versioning — das Muster kam mit
1.8.0, ohne Kompatibilitätsbruch
Beziehungen
- umgesetzt von: wikitool
- verwendet von: Chemenu
- umgesetzt von: ENVIRONMENT.md
- verwandt mit: Personalization Plane
Siehe auch
- ENVIRONMENT.md
- Personalization Plane
- wikitool
- Chemenu
- Source - Conversation - ENVIRONMENT.md as an Optional Third Session-Level File Session 2026-08-31