Chemenu 2.1.0 - deterministischer Wissenskompiler
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.
This commit is contained in:
@@ -0,0 +1,117 @@
|
||||
---
|
||||
type: types/entity.md
|
||||
entity_type: system
|
||||
tags: []
|
||||
created: 2026-08-31
|
||||
modified: 2026-08-31
|
||||
related: [CLAUDE.md, Optional Instance Context File, AGENTS.md]
|
||||
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: 'Optionale, gitignorete Root-Datei: Harness, Skills, MCP-Server, Connectoren, Remotes und CI-Ort eines Checkouts; doctor meldet sie, scheitert aber nie an ihr'
|
||||
---
|
||||
# ENVIRONMENT.md
|
||||
|
||||
**Typ:** System
|
||||
|
||||
## Beschreibung
|
||||
|
||||
`ENVIRONMENT.md` hält fest, womit *ein bestimmter Checkout* arbeitet: welches Harness läuft,
|
||||
welche Skills publiziert sind, welche MCP-Server erreichbar sind, welche Connectoren dranhängen,
|
||||
wohin `publish` veröffentlicht und wo CI läuft. Es ist das dritte Root-Dokument der
|
||||
Sitzungsebene neben `USER.md` und `SOUL.md`, und es beantwortet die Frage, die die beiden offen
|
||||
lassen: `USER.md` sagt, *wer* die Instanz bedient, `SOUL.md`, *wie* sie klingt — womit sie
|
||||
arbeitet, sagte bis dahin niemand.
|
||||
|
||||
Das Problem war nicht Unkenntnis, sondern Wiederholung. Es sind über Wochen konstante Werte, die
|
||||
trotzdem jede Sitzung neu erfragte, weil nichts sie festhielt.
|
||||
|
||||
Die Datei ist **optional** und **gitignored**. Beides unterscheidet sie von der
|
||||
[[Personalization Plane]], deren Muster sie sonst übernimmt; die Verallgemeinerung steht unter
|
||||
[[Optional Instance Context File]].
|
||||
|
||||
## Kerndaten
|
||||
|
||||
- **Zweck:** Harness, Skills, MCP-Server, Connectoren, Remotes und CI-Ort eines Checkouts festhalten
|
||||
- **Status:** Aktiv, eingeführt mit Stack-Version `1.8.0`[^s-conversation-environment-md-as-an-optional-third-session-level-file-session-2026-08-31]
|
||||
- **Version:** eingeführt 2026-08-31, Commit `a243a4a`[^s-conversation-environment-md-as-an-optional-third-session-level-file-session-2026-08-31]
|
||||
- **Sprache/Technik:** Markdown, Abschnittsvorgabe über `ENVIRONMENT.md.template`
|
||||
- **Standort:** Repo-Wurzel: `/ENVIRONMENT.md` — gitignored, nie committet
|
||||
- **Ausgeliefert:** nur als `ENVIRONMENT.md.template`, über die Root-Allowlist von `dist export`
|
||||
- **Health-Check:** `wikitool doctor`, Prüfung `environment` — meldet, scheitert nie[^s-conversation-environment-md-as-an-optional-third-session-level-file-session-2026-08-31]
|
||||
|
||||
## Beziehungen
|
||||
- **importiert von:** [[CLAUDE.md]]
|
||||
- **implementiert:** [[Optional Instance Context File]]
|
||||
- **beschrieben in:** [[AGENTS.md]]
|
||||
|
||||
## Details
|
||||
|
||||
### Warum gitignored und nicht committet
|
||||
|
||||
Zwei Clones desselben Repos sind zwei verschiedene Umgebungen. Eine committete Fassung würde dem
|
||||
zweiten Clone Antworten geben, die falsch sind statt zu fehlen — und falsch wiegt hier schwerer,
|
||||
weil die Datei geglaubt wird. Das ist der Unterschied zu `USER.md`/`SOUL.md`, die committet sind
|
||||
und lediglich vom Export ausgenommen werden.
|
||||
|
||||
Der Preis ist, dass ein frischer Clone die Datei nie mitbringt; `instructions/bootstrap.md`
|
||||
Schritt 5 bietet das Anlegen deshalb ausdrücklich an.
|
||||
|
||||
### Das Ignore-Muster trennt Datei und Template
|
||||
|
||||
`.gitignore` trägt den verankerten Eintrag `/ENVIRONMENT.md`, der das `.template` bewusst nicht
|
||||
trifft. Das naheliegende `ENVIRONMENT.md*` würde beide schlucken, und `dist export` verlöre
|
||||
damit die Vorlage. `wikitool docs verify` prüft deshalb beide Richtungen: `ENVIRONMENT.md` steht
|
||||
in `REQUIRED_IGNORE_CANARIES`, `ENVIRONMENT.md.template` in `REQUIRED_TRACKED_PATHS`[^s-conversation-environment-md-as-an-optional-third-session-level-file-session-2026-08-31].
|
||||
|
||||
### Kontext, keine Autorität
|
||||
|
||||
Die Datei beschreibt, was vorhanden ist, nicht, was erlaubt ist. Ein dort gelisteter Remote
|
||||
autorisiert kein `git push` — Invariante 5 von [[AGENTS.md]] führt weiter über
|
||||
`wikitool publish` —, ein gelisteter MCP-Server öffnet kein Gate, und nichts darin ist eine
|
||||
Quelle im Sinne von Invariante 3. Zugangsdaten gehören nicht hinein: die Datei liegt im Klartext
|
||||
im Arbeitsverzeichnis und in jedem Agenten-Kontext.
|
||||
|
||||
### Import statt Link
|
||||
|
||||
[[CLAUDE.md]] bindet sie als `@ENVIRONMENT.md` ein, nicht als Markdown-Link. Der Maßstab aus
|
||||
`instructions/CONTRACT.md` ist, *wann* die Entscheidung fällt: importieren, was nebenbei
|
||||
gebraucht wird, verlinken, was gezielt nachgeschlagen wird. Welcher MCP-Server welche Frage
|
||||
beantwortet, wird mitten in einer Aufgabe gebraucht — und eine Sitzung, die erst nachschlagen
|
||||
müsste, fragt stattdessen wieder den Nutzer, also genau die Kosten, die die Datei beseitigen
|
||||
soll.
|
||||
|
||||
Ob Claude Code einen unaufgelösten `@import` still überspringt oder meldet, ist weiterhin
|
||||
**unbestätigt** — dieselbe offene Frage, die [[CLAUDE.md]] seit `1.1.1` trägt. Sie wiegt hier
|
||||
schwerer, weil Abwesenheit bei dieser Datei der Dauerzustand sein darf und nicht nur ein
|
||||
Übergang während des Setups.
|
||||
|
||||
### Warum nicht unter `instructions/dev/`
|
||||
|
||||
Der Auftrag sprach von einer Erweiterung „im dev skillset". `instructions/CONTRACT.md` verbietet
|
||||
jedoch Referenzen von außerhalb auf `instructions/dev/`, weil sie beim `dist export` ins Leere
|
||||
zeigen würden; ein Link aus `CLAUDE.md` bräuchte die `dist:strip`-Marker-Konstruktion. Mehr
|
||||
Mechanik für weniger Reichweite — und der Inhalt betrifft auch reine Content-Sitzungen, die
|
||||
denselben Remote und denselben MCP-Server benutzen.
|
||||
|
||||
### Kein eigenes Kommando
|
||||
|
||||
Es gibt bewusst kein `wikitool environment`. Die Datei wird oft gelesen und selten geschrieben;
|
||||
ein Kommando dafür wäre Maschinerie ohne Abnehmer. Die Oberfläche besteht aus dem Template und
|
||||
zwei Instruktionsschritten (`bootstrap.md` Schritt 5, `setup-instance.md` Schritt 9).
|
||||
|
||||
## Historie
|
||||
|
||||
- 2026-08-31 — Angelegt mit Stack-Version `1.8.0` (Commit `a243a4a`), aus Gitea-Issue #24[^s-conversation-environment-md-as-an-optional-third-session-level-file-session-2026-08-31]
|
||||
|
||||
## Siehe auch
|
||||
- [[CLAUDE.md]]
|
||||
- [[AGENTS.md]]
|
||||
- [[Personalization Plane]]
|
||||
- [[Optional Instance Context File]]
|
||||
- [[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]]
|
||||
Reference in New Issue
Block a user