--- type: types/entity.md entity_type: project tags: [wiki, llm, knowledge-base] created: 2026-08-04 modified: 2026-09-01 related: [Personalization Plane, Issue Label Scheme, Optional Instance Context File] sources: [Source - Copilot Skill Restructure Instructions, Source - Conversation - AGENTS.md Skill Restructuring Session 2026-08-04, Source - Conversation - Versioning CI-CD and Content Migration Session 2026-08-30, Source - Conversation - Comma Bug Budget Refund and Lint Report Path Session 2026-08-31, Source - Conversation - Issue Triage Labels and TODO Retirement Session 2026-08-31, Source - Conversation - Write-Once Frontmatter Fields and touch --set Session 2026-08-31, Source - Conversation - Gate Counting and Measured Calibration Session 2026-08-31, Source - Conversation - Two Round-Trip Defects Found by an Ingest Session 2026-08-31, Source - Conversation - Hardening the Test Suite Against Silent Environment Dependencies Session 2026-08-31] confidence: 0.90 confidence_base: 0.90 provenance: mixed summary: Deterministischer Wissenskompiler (raw/ -> kb/); seit 2.0.0 unter dem Namen Chemenu, seit 2026-09-01 oeffentlich als Testbett und Demo unter AGPL-3.0/CC-BY-4.0 --- # Chemenu **Typ:** project ## Beschreibung Chemenu ist ein deterministischer Wissenskompiler: Rohnotizen unter `raw/` werden über eine Schema- und Werkzeugschicht zu einem verlinkten, quellengebundenen Wiki unter `kb/` verdichtet. Was mechanisch ist, macht `tools/wikitool`; was Urteil braucht, macht ein Agent unter Contracts, deren Grenzen in Code durchgesetzt sind statt im Prompt. **Diese Instanz ist seit dem 2026-09-01 öffentlich** und dient als Testbett und Demo, nicht als produktive Wissensbasis. Ihr Korpus beschreibt überwiegend den Stack selbst - Gates, Lint, Versionierung, Suche, das Wiki-Muster -, sodass die Distribution sich mit ihren eigenen Mitteln dokumentiert. Lizenz: AGPL-3.0 für den Stack, CC-BY-4.0 für die Inhalte. **Ausgangspunkt war eine monolithische Struktur.** Zum Zeitpunkt der Copilot Skill Restructure Instructions lag alles in einer einzigen `AGENTS.md` (~30 KB): fünf Workflows (INGEST, QUERY, LINT, CREATE, UPDATE), das Frontmatter-Schema, Entity- und Concept-Typtabellen, Provenance- und Zitatregeln, Namenskonventionen und die Konfidenz-Formel[^s-copilot-skill-restructure-instructions]. Die Aufteilung in Skills und Contracts, die daraus folgte, ist seit 2026-08-04 abgeschlossen. **Der Name.** Bis zum 2026-09-01 hieß das Projekt `llm-wiki-test1` - ein Arbeitstitel mit einer Ordnungszahl darin, kein Name. **Chemenu** ist die deutsche Wikipedia-Schreibweise des altägyptischen Namens von Hermopolis Magna, Hauptkultort des Thoth und „Stadt der Acht" der Ogdoade. Der Ort, nicht der Gott: die Persona dieser Instanz heißt Thoth, und Chemenu ist das, worin sie schreibt. Ältere Quellen, Logeinträge und Transkripte führen weiterhin den alten Namen - sie sind Aufzeichnungen dessen, was zu ihrer Zeit galt. Das Repository hat bereits ein deterministisches CLI, `tools/wikitool` (Python, unterstützt durch das Paket `tools/chemenu/`), das alle mechanischen Operationen handhabt. Die Aufgabe des LLMs ist Prosa und Urteilsfindung, während `wikitool` strukturelle Korrektheit garantiert[^s-copilot-skill-restructure-instructions]. Die Skill-Umstrukturierung zielt darauf ab, die prozeduralen Workflows von den deklarativen Regeln zu trennen, Workflow-Abschnitte in diskrete Skills in `.agents/skills/` zu extrahieren, während Schema und Richtlinien in der Root `AGENTS.md` bleiben. ## Kerndaten - **Zweck:** Deterministischer Wissenskompiler; diese Instanz ist Testbett und öffentliche Demo - **Status:** Aktiv - Skill-Umstrukturierung abgeschlossen 2026-08-04 - **Verantwortlich:** Torben - **Lizenz:** AGPL-3.0 (Stack: `tools/`, `types/`), CC-BY-4.0 (Inhalte) - **Repository:** `torben/chemenu` auf gitea.nehmer.net; bis 2026-09-01 `torben/llm-wiki-test1` - **Architektur:** Dreilagig: raw/ (Quelle), wiki/ (Wissen), tools/ (deterministisches CLI) ## Beziehungen - **Verwendet:** [[wikitool]] für deterministische Operationen - **Enthält:** [[AGENTS.md]] (Wiki-Betriebssystem) - **Vorlagen:** [[wiki-skills]], [[wiki-skills-vanillaflava]], [[llm-wiki-skills]] - **Zielplattformen:** [[GitHub Copilot]], [[Claude Code]], [[Codex CLI]], [[Mistral Vibe]] - **verwendet:** [[Personalization Plane]] - **verwendet:** [[Issue Label Scheme]] - **verwendet:** [[Optional Instance Context File]] ## Details Die Repository-Struktur umfasst: - `raw/` - Unveränderliche Rohmaterialien (Artikel, Dokumente, Notizen, Assets) - `kb/` - Von LLM gepflegtes Wissen (Entities, Concepts, Quellen, Vergleiche, Katalog, Log) - `types/` - Die globale Typ-Oberfläche: eine Typ-Spezifikation pro Artefakt-Typ - `tools/` - Deterministische CLI-Tools (Kommando `wikitool`, Paket `chemenu`) - `instructions/` - Agent-gerichtete Prozedur: flache Anweisungen plus Skill-Verzeichnisse - ~~`.agents/skills/` - Kanonischer Ort für die 5 extrahierten Workflow-Skills (erstellt 2026-08-04), gespiegelt zu `.claude/skills/` für Claude Code via `tools/wikitool skills sync`~~[^s-conversation-agents-md-skill-restructuring-session-2026-08-04] Überwunden 2026-08-22: die Quelle der Skills wurde zu `instructions//` verschoben, und sowohl `.agents/skills/` als auch `.claude/skills/` wurden zu gitignorierten Kopien, die von `tools/wikitool instructions sync` veröffentlicht werden. Die Umstrukturierung befasste sich mit Token-Ökonomie und Skalierungsgrenzen-Bedenken durch die Aufteilung der monolithischen AGENTS.md (745 Zeilen) in 5 diskrete Skills: `wiki-ingest`, `wiki-query`, `wiki-lint`, `wiki-manage` (CREATE+UPDATE zusammengefasst) und `wiki-status` (neu, nur-Lesezugriff) - finalisiert als 5, nicht das ursprünglich vorgeschlagene "wiki-create, wiki-update, optional wiki-status"[^s-conversation-agents-md-skill-restructuring-session-2026-08-04]. ### Versionierung, CI und Releases Seit 2026-08-30 ist der Stack versioniert und die CI-Pipeline in Betrieb. Der Zuschnitt folgt [[KB Stack Versioning]] und [[KB Migration]][^s-conversation-versioning-ci-cd-and-content-migration-session-2026-08-30]: | Fakt | Datei | Geschrieben von | |---|---|---| | Stack-Version | `VERSION` | `wikitool version bump` | | Release-Stempel | `.wikitool-release.json` | `wikitool dist export` | | KB-Version | `.wikitool-kb.json` | `wikitool migrate done` | Zwei Workflows unter `.gitea/workflows/`: `ci.yml` mit Tests, Version-Gate und Export-Smoke-Test, und `release.yml`, das bei einer Änderung an `VERSION` einen Tag setzt und ein `dist export`-Tarball samt `.sha256` veröffentlicht[^s-conversation-versioning-ci-cd-and-content-migration-session-2026-08-30]. Beide laufen wegen `paths-ignore` nicht bei reinen Content-Änderungen; `kb/CONTRACT.md` ist von der Ausnahme absichtlich ausgenommen, weil es unter einem Content-Verzeichnis liegt, aber zum Stack gehört[^s-conversation-versioning-ci-cd-and-content-migration-session-2026-08-30]. Der Entwicklungsbaum war der erste Fall für `migrate baseline` und bekam `1.0.0`, weil er zwar älter als `.wikitool-kb.json` ist, sein Inhalt der Maschinerie aber nie hinterherhing[^s-conversation-versioning-ci-cd-and-content-migration-session-2026-08-30]. Das Origin-Repository ist privat; Läufe werden über den [[Gitea MCP Server]] gelesen, und die offenen Ausbaustufen liegen als Gitea-Issues statt als Prosa in `TODO.md`[^s-conversation-versioning-ci-cd-and-content-migration-session-2026-08-30]. Seit 2026-08-31 ist das nicht mehr nur eine Gewichtung, sondern der einzige Weg: `TODO.md` wurde gelöscht, ihr letzter substantieller Inhalt ging als Issue #15 nach Gitea, und offene Arbeit existiert nur noch als Issue mit Priorität und Größe nach dem [[Issue Label Scheme]][^s-conversation-issue-triage-labels-and-todo-retirement-session-2026-08-31]. ### Personalization und Harness-Anbindung Mit `1.1.0` bekam die Instanz eine [[Personalization Plane]]: `USER.md` hält fest, wer sie bedient, `SOUL.md`, wie sie klingt. Ausgeliefert werden nur die beiden `.template`-Dateien; die befüllten Fassungen bleiben in dieser Instanz, und `wikitool doctor` prüft sie über den `personalization`-Check. Die Persona heißt **Thoth** - gewählt passend zur ägyptischen Namensgebung des Stacks selbst; der Name ist eine Nutzerentscheidung, und das Template schlug bis `1.8.1` ausdrücklich keinen vor. Seit `2.0.0` nennt es Thoth als Startpunkt - der Repo-Name Chemenu ist Thoths Kultort, also gehören beide zusammen - ohne die Frage zu ersetzen: gefragt wird trotzdem, und ein anderer Name gewinnt. Verzeichnet in `CHANGES.md` (`2.0.0`). Mit `1.1.1` kam [[CLAUDE.md]] dazu. Bis dahin erreichte [[AGENTS.md]] [[Claude Code]] nie, weil dieses Harness nur `CLAUDE.md` automatisch lädt, während [[Codex CLI]] und [[GitHub Copilot]] `AGENTS.md` nativ lesen. Jede Claude-Code-Sitzung lief bis dahin ohne Invarianten, Routing und Gate-Regeln, sofern der Agent die Datei nicht selbst öffnete. ## Allgemeine Hinweise (unbelegt) Ab 2026-08-22 ist das Repository eine vierstufige Pipeline - `raw/` -> `types/` + `tools/` -> `kb/` -> `reports/` - mit `instructions/` und `AGENTS.md` daneben als Kontrollrahmen. Die Abfrage läuft durch `tools/wikitool search` anstelle des Katalogs, und `kb/index.md` ist eine Karte, die auf pro-Kollektion `INDEX.md` Shards verlinkt. Dies sind Eigenschaften des Repositorys selbst und keine Aussagen aus einer Rohdatenquelle; der Änderungsdatensatz ist `CHANGES.md`, und das Operationslog ist `kb/log.md`. ## Historie - 2026-09-01 - `2.0.0` (Commit `9a7abe6`, 121 Dateien, 730 Tests grün): Rebranding von `llm-wiki-test1` auf **Chemenu** nach Gitea-Issue #3 - Repo-Rename, Produktname, Release-Artefakt (`chemenu-stack-.tar.gz`), Release-Feed, und das Python-Paket `wiki_tools` → `chemenu` bei unverändertem Kommando `wikitool`. MAJOR nicht wegen einer Inhaltsmigration - `kb/` bleibt auf Shape `1.0.0`, der Bump trägt `--no-migration` - sondern weil der Update-Pfad bricht: das `update_url` in jeder älteren `.wikitool-release.json` zeigt auf den alten Repo-Pfad und lässt sich per Invariante 1 nicht von Hand reparieren. Die erste Einschätzung lautete `1.9.0` und wurde von Torben korrigiert; die Lücke in der Doku, die dazu führte - MAJOR ist dort als Inhaltsmigration statt als Kompatibilitätsbruch beschrieben - liegt als Issue #26. Verzeichnet in `CHANGES.md` (`2.0.0`). - 2026-08-31 - `1.8.1` (Commit `a243a4a`, Korrektur `2b7b3cb`): Test-Coverage wird in CI gemessen und als Artefakt ausgewiesen, ohne `--cov-fail-under` - siehe Messen vor Schwelle. Die Messung deckte einen `dist export`-Fehler auf: Coverage-Ausgabe wurde mitausgeliefert, weil `TOOLS_EXCLUDE_DIRS` nur Verzeichnisse prunet und zwei Drittel der Ausgabe als Dateien neben dem Code liegen - 2026-08-31 - `1.5.1` (Commit `bb4123b`) und `1.6.0` (Commit `ce03749`, 689 Tests grün): zwei Datenintegritätsdefekte, beide `prio/1`, beide von einem Ingest gefunden und am selben Tag geschlossen. `cite add` löschte Inhalt hinter dem Fußnotenblock (Issue #17), und die Referenz-Arrays einer Source-Seite waren unerreichbar, während `xref add` dort ein Feld schrieb, das `xref remove` nicht räumen konnte (Issue #18). Der Korpus wurde mit dem Werkzeug repariert: `cite sync --all` normalisierte elf Seiten, danach 0 Seiten mit Inhalt hinter dem Block. Der bleibende Befund über den beiden Fixes: beide Defekte lebten unter einer vollständig grünen Suite, weil nie ein Test das richtige Verhalten behauptet hatte - siehe [[Green Suite Blind Spot]][^s-conversation-two-round-trip-defects-found-by-an-ingest-session-2026-08-31] - 2026-08-31 - `1.5.0` (Commit `3166c31`, 9 Dateien, 678 Tests grün): zwei nie gemessene Grenzen wurden an realen Läufen kalibriert, angestoßen von Torbens Beobachtung, dass drei gewöhnliche Ingests nacheinander am [[Mass-Update Gate]] stehen blieben. Generierte Dateien zählen seither nicht mehr gegen die Gate-Schwelle, und das Kalibrierungsband für komplexe Workflows steigt von 15-25 auf 20-35 `wikitool`-Aufrufe. Die Messwerte lagen bereits im Repository - in den Changesets der drei Ingests und in `tools/.wikitool_session/budget.json`[^s-conversation-gate-counting-and-measured-calibration-session-2026-08-31] - 2026-08-31 - `1.4.0` (Commit `dbe2f73`, 9 Dateien, 674 Tests grün): `touch --set/--add/--remove` schließt Gitea-Issue #14 und macht Felder reparierbar, die zuvor nur beim Anlegen schreibbar waren. Torben entschied dabei drei Punkte: Denylist statt Allowlist für die schreibbaren Felder, Ersetzen plus `--add`/`--remove` für Listenfelder, und einen engen Auslieferungsschnitt, der `raw rename` als Issue #16 (`prio/2`, `size/S`) abspaltet. Die Korpus-Seite [[Diff-Reviewable Agent Edits]], die den Defekt ausgelöst hatte, wurde damit im selben Lauf repariert[^s-conversation-write-once-frontmatter-fields-and-touch-set-session-2026-08-31] - 2026-08-31 - `1.2.1` (Commit `9fa70f3`, 5 Dateien): `TODO.md` gelöscht, `instructions/dev/issue-tracking.md` angelegt, sieben `prio/`- und `size/`-Labels auf allen zehn offenen Issues. PATCH, weil die Regel unter `instructions/dev/` liegt und keine ausgelieferte Instanz erreicht. In derselben Sitzung wurde Issue #11 mit dem Beleg geschlossen, dass `paths-ignore` greift; #14 und #15 wurden eröffnet[^s-conversation-issue-triage-labels-and-todo-retirement-session-2026-08-31] - 2026-08-31 - `1.2.0` (Commit `40adbb7`): Arraywerte mit Komma in `--set`, korrektes Flow-Quoting im Frontmatter, Budget-Erstattung für abgelehnte Aufrufe, Obergrenze 60 und ein `lint`, das seinen Reportpfad nennt. Danach `5426a6e` als Inhaltskorrektur: die beim Ingest vom 2026-08-30 umbenannte Rohdatei bekam ihren ursprünglichen Namen zurück[^s-conversation-comma-bug-budget-refund-and-lint-report-path-session-2026-08-31] - 2026-08-30 - Personalization Plane als Setup-Schritt ausgeliefert (`1.1.0`, Commit `6f54c31`), danach `CLAUDE.md` ergänzt, nachdem auffiel, dass die Kontrollebene Claude Code nie erreicht hatte (`1.1.1`, Commit `adfa220`) - 2026-08-30 - Stack-Versionierung, KB-Versionierung mit Migrationskette und die Gitea-Actions-Pipeline in Betrieb; `1.0.0` als Migrationsbasis gesetzt, `1.0.1` als erstes über die Pipeline veröffentlichtes Release mit Tarball und `.sha256`[^s-conversation-versioning-ci-cd-and-content-migration-session-2026-08-30] - 2026-08-22 - Abfrage, Katalog-Sharding und die `instructions/`-Ebene eingeführt; Agent-seitige Verträge umbenannt zu `CONTRACT.md`. Verzeichnet in `CHANGES.md`. - 2026-08-04 - Skill-Umstrukturierung abgeschlossen: 5 Skills erstellt unter `.agents/skills/`, gespiegelt zu `.claude/skills/`, AGENTS.md geschlankt auf ~573 Zeilen, veröffentlicht bei Commit `ae2024d`[^s-conversation-agents-md-skill-restructuring-session-2026-08-04]. - 2026-08-04 - Seite erstellt während der Aufnahme der Copilot Skill Restructure Instructions ## Siehe auch - [[Source - Copilot Skill Restructure Instructions]] - [[Source - Conversation - AGENTS.md Skill Restructuring Session 2026-08-04]] - [[AGENTS.md]] - [[wikitool]] - [[Personalization Plane]] - [[Issue Label Scheme]] - [[Source - Conversation - Issue Triage Labels and TODO Retirement Session 2026-08-31]] - [[Source - Conversation - Write-Once Frontmatter Fields and touch --set Session 2026-08-31]] - [[Source - Conversation - Gate Counting and Measured Calibration Session 2026-08-31]] - [[Source - Conversation - Two Round-Trip Defects Found by an Ingest Session 2026-08-31]] - [[Source - Conversation - Hardening the Test Suite Against Silent Environment Dependencies Session 2026-08-31]] - [[Optional Instance Context File]] ## Fußnoten [^s-copilot-skill-restructure-instructions]: [[Source - Copilot Skill Restructure Instructions]] [^s-conversation-agents-md-skill-restructuring-session-2026-08-04]: [[Source - Conversation - AGENTS.md Skill Restructuring Session 2026-08-04]] [^s-conversation-versioning-ci-cd-and-content-migration-session-2026-08-30]: [[Source - Conversation - Versioning CI-CD and Content Migration Session 2026-08-30]] [^s-conversation-issue-triage-labels-and-todo-retirement-session-2026-08-31]: [[Source - Conversation - Issue Triage Labels and TODO Retirement Session 2026-08-31]] [^s-conversation-two-round-trip-defects-found-by-an-ingest-session-2026-08-31]: [[Source - Conversation - Two Round-Trip Defects Found by an Ingest Session 2026-08-31]] [^s-conversation-gate-counting-and-measured-calibration-session-2026-08-31]: [[Source - Conversation - Gate Counting and Measured Calibration Session 2026-08-31]] [^s-conversation-write-once-frontmatter-fields-and-touch-set-session-2026-08-31]: [[Source - Conversation - Write-Once Frontmatter Fields and touch --set Session 2026-08-31]] [^s-conversation-comma-bug-budget-refund-and-lint-report-path-session-2026-08-31]: [[Source - Conversation - Comma Bug Budget Refund and Lint Report Path Session 2026-08-31]]