a35c94e2d9
Files changed: - kb/concepts/Ambient Environment Dependency.md - kb/concepts/Anti-Cramming Heuristic.md - kb/concepts/Audit Trail.md - kb/concepts/BM25.md - kb/concepts/Bulk Operations.md - kb/concepts/CI Integration.md - kb/concepts/CPPC.md - kb/concepts/Checkpoint Audit.md - kb/concepts/Claude Code Auto Mode.md - kb/concepts/Command Round-Trip Integrity.md - kb/concepts/Confidence Scoring.md - kb/concepts/Consolidation Tiers.md - kb/concepts/Content Quality Control.md - kb/concepts/Context Isolation.md - kb/concepts/Contradiction Resolution.md - kb/concepts/Cross-platform Agent Skills.md - kb/concepts/Crystallization.md - kb/concepts/Delete Rather Than Anonymize.md - kb/concepts/Denylist over Allowlist.md - kb/concepts/Detect-Repair Asymmetry.md - kb/concepts/Diff-Reviewable Agent Edits.md - kb/concepts/Dual Licensing by File Plan.md - kb/concepts/Entity Extraction.md - kb/concepts/Episodic Memory.md - kb/concepts/Event-Driven Automation.md - kb/concepts/Filter on Ingest.md - kb/concepts/Forgetting.md - kb/concepts/Graph Traversal.md - kb/concepts/Green Suite Blind Spot.md - kb/concepts/Hooks.md - kb/concepts/Hybrid Search.md - kb/concepts/Implementation Spectrum.md - kb/concepts/Index Scaling.md - kb/concepts/Issue Label Scheme.md - kb/concepts/Iteration and Cost Limits.md - kb/concepts/KB Migration.md - kb/concepts/KB Stack Versioning.md - kb/concepts/Knowledge Compounding.md - kb/concepts/Knowledge Graph.md - kb/concepts/LLM Wiki Pattern.md - kb/concepts/Lint Workflow.md - kb/concepts/MCP-Leseserver.md - kb/concepts/Mass-Update Gate.md - kb/concepts/Memory Lifecycle.md - kb/concepts/Mesh Sync.md - kb/concepts/Modbus.md - kb/concepts/Multi-Agent Collaboration.md - kb/concepts/Naming Convention Conflict.md - kb/concepts/OKF Compatibility.md - kb/concepts/Optional Instance Context File.md - kb/concepts/Personalization Plane.md - kb/concepts/Privacy and Governance.md - kb/concepts/Procedural Memory.md - kb/concepts/Publish-Remote Gate.md - kb/concepts/Quality Scoring.md - kb/concepts/Quality and Self-Correction.md - kb/concepts/RAG.md - kb/concepts/Reciprocal Rank Fusion.md - kb/concepts/SSD TRIM.md - kb/concepts/Scale Ceiling.md - kb/concepts/Self-Healing.md - kb/concepts/Semantic Lint Automation.md - kb/concepts/Semantic Memory.md - kb/concepts/Session Orientation.md - kb/concepts/Shared vs Private.md - kb/concepts/Split Merge Reclassify.md - kb/concepts/Split Threshold.md - kb/concepts/Structural Enforcement over Documented Rule.md - kb/concepts/Stub Threshold.md - kb/concepts/Supersession.md - kb/concepts/Three-Layer Architecture.md - kb/concepts/Token Economics.md - kb/concepts/Typed Relationships.md - kb/concepts/User Management.md - kb/concepts/Vector Search.md - kb/concepts/Work Coordination.md - kb/concepts/Workflow Extraction.md - kb/concepts/Workflow Orchestration.md - kb/concepts/Working Memory.md - kb/concepts/Write-Once Frontmatter Fields.md - kb/log.md - work/link-taxonomy-migration/glossary.md
119 lines
6.0 KiB
Markdown
119 lines
6.0 KiB
Markdown
---
|
|
type: types/concept.md
|
|
concept_type: architecture
|
|
tags: []
|
|
created: 2026-08-31
|
|
modified: 2026-08-31
|
|
related:
|
|
- mechanism: ENVIRONMENT.md
|
|
- contrasts: Personalization Plane
|
|
- mechanism: wikitool
|
|
- operates-on: Chemenu
|
|
sources: [Source - Conversation - ENVIRONMENT.md as an Optional Third Session-Level File Session 2026-08-31]
|
|
confidence: 0.50
|
|
confidence_base: 0.50
|
|
provenance: sourced
|
|
summary: '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.0`[^s-conversation-environment-md-as-an-optional-third-session-level-file-session-2026-08-31].
|
|
|
|
## Kernpunkte
|
|
|
|
- **Der Health-Check meldet, aber scheitert nie.** Eine fehlende Datei ergibt `OK` mit dem
|
|
Vermerk „absent (optional)", kein `FAIL`. Ein `FAIL` wü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 in `doctor` und liefert das Template über
|
|
`dist export` aus
|
|
- [[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 -v` beantwortet 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
|
|
|
|
- [[KB Stack Versioning]] — das Muster kam mit `1.8.0`, ohne Kompatibilitätsbruch
|
|
|
|
## Beziehungen
|
|
|
|
## Siehe auch
|
|
|
|
- [[Source - Conversation - ENVIRONMENT.md as an Optional Third Session-Level File Session 2026-08-31]]
|
|
|
|
## Fußnoten
|
|
|
|
[^s-conversation-environment-md-as-an-optional-third-session-level-file-session-2026-08-31]: [[Source - Conversation - ENVIRONMENT.md as an Optional Third Session-Level File Session 2026-08-31]]
|
|
|
|
<!-- wikitool:links -->
|
|
## Beziehungen
|
|
|
|
- **mechanism:** [[ENVIRONMENT.md]]
|
|
- **contrasts:** [[Personalization Plane]]
|
|
- **mechanism:** [[wikitool]]
|
|
- **operates-on:** [[Chemenu]]
|
|
<!-- /wikitool:links -->
|