Files
chemenu/kb/entities/projects/Chemenu.md
T
torben 18ae28f918
CI / verify (push) Failing after 32s
Release / release (push) Successful in 38s
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.
2026-09-01 16:26:14 +02:00

209 lines
16 KiB
Markdown

---
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: Persoenliches IT-Wissenswiki, gepflegt von LLM-Agenten; seit 1.0.0 versioniert, seit 1.1.0 Personalization Plane, seit 1.8.0 ENVIRONMENT.md, seit 2.0.0 unter dem Namen Chemenu (vorher llm-wiki-test1) mit dem Python-Paket chemenu
---
# Chemenu
**Typ:** project
## Beschreibung
Chemenu ist das persönliche IT-Wissens-Wiki-Repository, das Gegenstand der Skill-Umstrukturierung ist, die in den Copilot Skill Restructure Instructions beschrieben wird[^s-copilot-skill-restructure-instructions]. Es hat derzeit eine monolithische `AGENTS.md`-Datei (~30KB), die fünf Workflows (INGEST, QUERY, LINT, CREATE, UPDATE), das Frontmatter-Schema des Wikis, Entity/Concept-Typ-Tabellen, Provenance/Citation-Regeln, Naming-Konventionen und eine Konfidenz-Scoring-Formel beschreibt[^s-copilot-skill-restructure-instructions].
**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:** Persönliche IT-Wissensbasis
- **Status:** Aktiv - Skill-Umstrukturierung abgeschlossen 2026-08-04
- **Verantwortlich:** Torben
- **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/<name>/` 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-<version>.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]]