--- type: types/entity.md entity_type: tool tags: [cli, automation, deterministic, wiki-management] created: 2026-08-03 modified: 2026-09-01 related: [Semantic Lint Automation, Session Orientation, Iteration and Cost Limits, KB Stack Versioning, KB Migration, Personalization Plane, Detect-Repair Asymmetry, Write-Once Frontmatter Fields, Denylist over Allowlist, Command Round-Trip Integrity, Green Suite Blind Spot, Ambient Environment Dependency, Structural Enforcement over Documented Rule, Optional Instance Context File] sources: [Source - LLM Improvements Codex Analysis, Source - LLM Improvements Sonnet Analysis, Source - Copilot Skill Restructure Instructions, Source - Conversation - AGENTS.md Skill Restructuring Session 2026-08-04, Source - LLM Improvements Production Agent Gaps 2026, 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 - Auto Mode and Tool Choice 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, Source - Conversation - ENVIRONMENT.md as an Optional Third Session-Level File Session 2026-08-31, 'Source - Public Release, Corpus Purge and History Squash Session 2026-09-01'] confidence: 0.90 confidence_base: 0.90 provenance: sourced summary: Deterministisches CLI fuer alle mechanischen Wiki-Operationen; seit 2.0.0 liegt es im Python-Paket chemenu, das Kommando heisst weiterhin wikitool --- # wikitool **Typ:** tool ## Beschreibung wikitool ist ein deterministisches CLI-Tool, das alle mechanischen Operationen für Chemenu verwaltet. Es erzwingt Konsistenz über Gerüstbau, Cross-References, Index-Neuerstellung, Log-Einträge, Confidence-Decay-Berechnungen und Git-Publishing. Das Tool ist so ausgelegt, dass es manuelle Fehler verhindert und strukturelle Aspekte des Wikis (Frontmatter, Linking, Indizierung) immer korrekt sind, sodass sich das LLM auf semantische Inhalte konzentrieren kann. Wie in der Codex-Analyse vermerkt, bietet wikitool die deterministische Grundlage, die vielen öffentlichen LLM-Wiki-Skills fehlt. Es implementiert die Trennung von "mechanisch vs. semantisch", die in AGENTS.md definiert ist, wobei wikitool alles handhabt, das präzise automatisiert werden kann, während das LLM Urteile und Prosa handhabt. ## Kerndaten - **Zweck:** Deterministische mechanische Wiki-Operationen - **Status:** Aktiv, in aktiver Entwicklung - **Version:** Teil des tools/chemenu-Pakets - **Sprache/Technik:** Python 3, Typer CLI Framework - **Repository:** Lokal unter `tools/chemenu/` - **Einstiegspunkt:** `tools/wikitool` (Bash-Wrapper) ## Beziehungen - **Teil von:** [[AGENTS.md]]-Workflow-Implementierung - **Verwendet:** [[Python]] - **Verwandt mit:** [[LLM Wiki Pattern]], [[Three-Layer Architecture]] , [[Mass-Update Gate]] - **implementiert:** [[Semantic Lint Automation]] - **würde implementieren:** [[Session Orientation]] - **Analyse:** [[Source - LLM Improvements Codex Analysis]], [[Source - LLM Improvements Sonnet Analysis]] - **implementiert:** [[Iteration and Cost Limits]] - **implementiert:** [[KB Stack Versioning]] - **implementiert:** [[KB Migration]] - **implementiert:** [[Personalization Plane]] - **zeigt:** [[Detect-Repair Asymmetry]] - **behebt:** [[Write-Once Frontmatter Fields]] - **implementiert:** [[Denylist over Allowlist]] - **zeigt:** [[Command Round-Trip Integrity]] - **zeigt:** [[Green Suite Blind Spot]] - **zeigte:** [[Ambient Environment Dependency]] - **setzt um:** [[Structural Enforcement over Documented Rule]] - **setzt um:** [[Optional Instance Context File]] ## Befehle wikitool bietet die folgenden Befehlskategorien: - **Gerüstbau:** `new entity`, `new concept`, `new source`, `new comparison`, `new instruction`. Ein `--set`-Wert für ein Array-Feld wird auf Kommas gesplittet; seit `1.2.0` ist ein literales Komma als `\,` ausdrückbar (Lookbehind `(?=0.8`, `tags=k8s`, `!source_url`). Ohne Text ist es eine reine strukturierte Abfrage. Schreibgeschützt und ausgenommen von der Iteration-Budget-Gate, da Abfrage das Lesen statt das Iterieren ist - **Indizierung:** `index rebuild` - regeneriert die `kb/index.md`-Map plus eine pro-Sammlung `INDEX.md`, wobei ein Bereich bei 50 Zeilen in seine eigene Shard aufgeteilt wird - **Herkunft:** `sources coverage`, `sources trace`, `sources rebuild-index` - **Protokollierung:** `log append`, `log status` - **Linting:** `lint` - schreibt den vollen Report seit `1.2.0` immer, standardmäßig nach `reports/Lint Report .md`, und gibt den Pfad aus; gedruckt werden nur Abschnitte mit Befunden, `--full` druckt alles, `--json` schreibt nichts[^s-conversation-comma-bug-budget-refund-and-lint-report-path-session-2026-08-31] - **Typen:** `types list`, `types describe` - **Konfidenz:** `confidence decay`, `confidence init-base` - **Veröffentlichung:** `publish` - zählt seit `1.5.0` nur noch Dateien, die eine Entscheidung tragen: Pfade unter `work/` und generierte Dateien (`kb/index.md`, `kb/log.md`, `kb/provenance.md`, jede `INDEX.md`) werden committet und gepusht, aber nicht gegen die Schwelle gezählt; die Weigerungszeile weist beide Gründe getrennt aus[^s-conversation-gate-counting-and-measured-calibration-session-2026-08-31]. Siehe [[Mass-Update Gate]] - **Budget:** `budget status`, `budget reset` - Obergrenze seit `1.2.0` 60 Aufrufe je Sitzung; ein Aufruf, der über `_util.fail()` abgelehnt wurde, bekommt seinen Slot zurück und bleibt trotzdem in `recent`, damit der Loop-Breaker ihn sieht[^s-conversation-comma-bug-budget-refund-and-lint-report-path-session-2026-08-31]. Siehe [[Iteration and Cost Limits]] - **Versionierung:** `version bump`, `version check` - `bump` schreibt die Stack-Version in die Wurzeldatei `VERSION` und verweigert einen `MAJOR`-Sprung ohne Migrationsdokument, sofern er nicht ausdrücklich mit `--no-migration ""` gesetzt wird; `check` ist der einzige Befehl, der einen Netzaufruf machen darf - ohne Schlüssel, mit Timeout und injizierbarem Fetch, damit Tests nie ein Netz berühren[^s-conversation-versioning-ci-cd-and-content-migration-session-2026-08-30] - **Migration:** `migrate list`, `migrate status`, `migrate verify`, `migrate done`, `migrate baseline` - `status` bildet das Intervall `(kb_version, VERSION]` aufsteigend, `done` verweigert jede Version, die nicht das nächste Glied ist, `verify` vergleicht zwei Revisionen des Korpus über `corpus_diff` mit Zählungen statt Mengen, `baseline` setzt einer Instanz ohne `.wikitool-kb.json` ihren Startwert[^s-conversation-versioning-ci-cd-and-content-migration-session-2026-08-30]. Siehe [[KB Migration]] - **Distribution:** `dist export` - erzeugt das Release-Artefakt und legt den Stempel `.wikitool-release.json` hinein[^s-conversation-versioning-ci-cd-and-content-migration-session-2026-08-30] - **Diagnose:** `doctor` - enthält einen `kb-version`-Check[^s-conversation-versioning-ci-cd-and-content-migration-session-2026-08-30] sowie seit `1.1.0` einen `personalization`-Check: `FAIL`, wenn `USER.md` oder `SOUL.md` fehlen, und ebenso, wenn eine der beiden noch die Sentinel-Zeile des Templates trägt - ein umbenanntes Template ist kein ausgefülltes. Siehe [[Personalization Plane]] sowie seit `1.8.0` einen `environment`-Check für [[ENVIRONMENT.md]]: `OK` bei fehlender wie bei ausgefüllter Datei, `WARN` allein bei einem umbenannten, nie ausgefüllten Template. Nie `FAIL` - die Datei ist optional, und ein `FAIL` machte sie durch die Hintertür verpflichtend[^s-conversation-environment-md-as-an-optional-third-session-level-file-session-2026-08-31]. Siehe [[Optional Instance Context File]] - **Coverage:** CI führt die Tests seit `1.8.1` mit `pytest --cov` aus (Konfiguration `tools/.coveragerc`, nicht `pytest.ini` - coverage.py liest Letzteres nicht) und lädt den Bericht als Artefakt hoch, ohne Abbruchschwelle - siehe Messen vor Schwelle - **Dokumentation:** `docs verify` - überprüft, dass jeder CLI-Befehl in `tools/CONTRACT.md` dokumentiert ist und umgekehrt, dass jedes Verzeichnis unter `kb/` eine `COLLECTION.md` hat und kein Verzeichnis außerhalb hat, dass jeder Stage-Contract existiert, und dass keine Ignorierungsregel Inhalte unter `raw/` oder `kb/` stille ausschließen würde (oder stille generierte Ausgabe unter `reports/` committen würde) - **Anweisungen:** `instructions sync`, `instructions verify`, `instructions list` - publiziert jede `instructions//SKILL.md` als **Kopie** in `.agents/skills/` (nativ gelesen von GitHub Copilot, Codex CLI und Mistral Vibe) und `.claude/skills/` (erforderlich für Claude Code, das nichts anderes liest), und überprüft die Schicht: Anweisungen gegen ihre Schema, Skill-Frontmatter gegen das, das der Harness liest, jede veröffentlichte Kopie Byte-für-Byte gegen ihre Quelle, und alle Anweisungen, auf die nichts verweist ## Details Das Tool verwendet eine Python-Paketstruktur mit einer Typer-basierten CLI. Wichtige Module sind: - `cli.py` - Haupteinstiegspunkt des Befehls - `commands/new_page.py` - Seiten-Gerüstbau - `commands/xref.py` - Cross-Reference-Verwaltung - `commands/search.py` + `search/` - Abfrage, aufgeteilt in einen Backend-agnostischen Kern (`SearchBackend`-Protokoll, Frontmatter-Prädikate, Reciprocal Rank Fusion) und ein Backend (`ripgrep.py`), sodass ein Vektor-Backend ein neues Modul statt einer Umschrift ist - `commands/index_build.py` - Katalog-Map und Shard-Neuerstellung - `commands/instructions_cmd.py` - Anweisungs-Schicht: publish, verify, list - `commands/provenance_cmd.py` - Herkunfts-Verfolgung - `commands/log_append.py` - Log-Eintrag-Formatierung - `commands/lint.py` - Strukturvalidierung - `commands/git_publish.py` - Git-Operationen - `commands/skills_sync.py` - `.agents/skills/` <-> `.claude/skills/`-Spiegelung und Verifikation[^s-conversation-agents-md-skill-restructuring-session-2026-08-04] Die Provenance-Remediation-Session fügte drei wichtige operative Verbesserungen hinzu: - Neue Provenance-Befehlsgruppe (`sources coverage`, `sources trace`, `sources rebuild-index`) für Raw-zu-Source- und Source-zu-Page-Nachverfolgbarkeit. - Erweiterte Lint-Überprüfungen für nicht abgedeckte Raw-Dateien, beschädigte Raw-Verweise, fehlende Provenance-Marker und Citation/Frontmatter-Drift. - Wrapper-Verhaltensbehebung, sodass relative Pfadargumente vom Arbeitsverzeichnis des Aufrufers (Repository-Root-Verwendung) statt von `tools/` aufgelöst werden. Der Bash-Wrapper unter `tools/wikitool` aktiviert die Python venv und exportiert `PYTHONPATH`, um `chemenu` importierbar zu halten, ohne cwd zu ändern. Für die Migrationsprüfung kamen zwei Module dazu: `corpus_diff.py` vergleicht zwei Revisionen des Korpus und `kb_state.py` liest und schreibt `.wikitool-kb.json`. Beide Seiten des Vergleichs müssen dieselbe Vorstellung von „Seite" haben: Ein erster Lauf meldete 13 entfernte Seiten, die keine waren, weil die historische Seite jede `.md` unter `kb/` zählte und die Arbeitsbaum-Seite `iter_kb_pages` benutzte. Ein gemeinsames `kb_scan.is_page_path` löst das auf[^s-conversation-versioning-ci-cd-and-content-migration-session-2026-08-30]. `kb_scan.extract_wikilinks()` liefert bewusst ein Set. Das ist die richtige Form für `lint`, das fragt, ob ein Verweis auflöst - und die falsche für eine Migrationsprüfung, die fragt, ob einer verschwunden ist[^s-conversation-versioning-ci-cd-and-content-migration-session-2026-08-30]. ## Historie - 2026-09-01 - `2.1.0`-`2.2.2`: Vorbereitung und Durchführung der Veröffentlichung. `dist export` bekommt `REQUIRED_ROOT_FILES` (fehlende Lizenzdateien lassen den Export scheitern statt still weiterzulaufen) und `find_leaks()` (strukturelle Prüfung des fertigen Export-Plans gegen Personalisierungsdateien, `instructions/dev/`, `kb/`- und `raw/`-Inhalte - bewusst kein Text-Muster-Scan, weil der eigene Hostname legitim in `INSTALL.md`/`version.py` steht). `publish` bekommt ein drittes Gate: das **Publish-Remote-Gate** prüft die aufgelöste Push-URL (nicht den Remote-Namen) gegen eine optionale, gitignorete `.wikitool-remotes.json` und hat als einziges der drei Gates keinen `--confirm`-Token - der Weg daran vorbei ist ein bewusster Edit der Datei durch den Nutzer, nie durch einen Agenten. `doctor` bekommt den `publish-remotes`-Check. Ein `raw_dir`-Testfixture löste `config.ROOT` gegen das echte Repo-Root statt die Fixture auf und bestand nur, weil zufällig ein Verzeichnis existierte, das der Korpus-Schnitt entfernte - in der Fixture geschlossen, nicht im einzelnen Test, aus demselben Grund wie Gitea #8. Siehe [[Chemenu]], [[Mass-Update Gate]], [[Delete Rather Than Anonymize]], [[Dual Licensing by File Plan]][^s-public-release-corpus-purge-and-history-squash-session-2026-09-01] - 2026-09-01 - `2.0.0` (Commit `9a7abe6`, 730 Tests grün): das Python-Paket heißt `chemenu` statt `wiki_tools`, **das Kommando bleibt `wikitool`**. Der Import-Name eines Pakets ist ein flacher globaler Namensraum ohne Kollisionsschutz, `wiki_tools` war dafür zu generisch; Distributionsname, Import-Name und Kommandoname sind drei unabhängige Dinge, und ein abweichender Kommandoname ist verbreitete Praxis. Unverändert bleiben damit auch `.wikitool-release.json`, `.wikitool-kb.json` und die `WIKITOOL_*`-Variablen - sie gehören zum Kommando, nicht zum Paket. Verzeichnet in `CHANGES.md` (`2.0.0`), Kontext in [[Chemenu]]. - 2026-08-31 - `1.8.0` (Commit `a243a4a`): `doctor` bekommt den `environment`-Check, `dist export` liefert `ENVIRONMENT.md.template` über die Root-Allowlist aus, und `docs verify` prüft das zugehörige Ignore-Muster in beide Richtungen - die Datei muss ignoriert sein, ihr Template darf es nicht[^s-conversation-environment-md-as-an-optional-third-session-level-file-session-2026-08-31] - 2026-08-31 - `1.7.1` (Commit `31c9b81`, Tag `v1.7.1`, 702 Tests grün, 7 neue): die Testsuite läuft seither gegen eine absichtlich leere Maschine, Gitea-Issue #8 (`prio/1`). Eine autouse-Fixture in `conftest.py` setzt `HOME` je Test in dessen `tmp_path`, git-Konfiguration auf `/dev/null` und löscht die Tool- sowie die git-Identitätsvariablen; `WIKI_TRACE_DIR` bleibt als einziges gesetzt, weil zwei Telemetrie-Tests einen geschriebenen Trace behaupten. Anlass war `default_author()`, das per `git config user.name` die globale Konfiguration des Aufrufers las - vier Tests hingen nacheinander daran, zwei davon geschrieben, nachdem das Issue offen war. Die Wirkung ist nicht am grünen Lauf belegt (die Suite war unter der gehärteten Umgebung schon vorher grün), sondern an der Gegenprobe: dieselbe Funktion antwortet ohne Isolierung mit dem globalen git-Namen, mit Isolierung `None`. 702 Tests in vier Umgebungen - Entwickler-Shell, vergiftet, `env -i`, CI[^s-conversation-hardening-the-test-suite-against-silent-environment-dependencies-session-2026-08-31]. Siehe [[Ambient Environment Dependency]] und [[Structural Enforcement over Documented Rule]] - 2026-08-31 - `1.6.0` (Commit `ce03749`, 689 Tests grün, 11 neue): drei Symptome mit einer Ursache, Gitea-Issue #18 (`prio/1`). `xref_link_source` schrieb nur die Zielseiten, nie die eigenen Arrays der Source-Seite - die waren nach `new source` unerreichbar. Das von `xref add` dort geschriebene `related:` deklariert `types/source.md` nicht, und `strip_frontmatter_ref()` räumte nur deklarierte Felder, also konnte `xref remove` es nicht entfernen. Seither schreibt `link-source` beide Richtungen, `xref add` prüft beide Seiten vorab und lehnt ein undeklariertes Feld ab, `xref remove` fegt Reste. Der Beleg für die Inversenbeziehung war eine Concept-Seite, die byteidentisch aus `xref remove` plus `xref link-source` zurückkam[^s-conversation-two-round-trip-defects-found-by-an-ingest-session-2026-08-31]. Siehe [[Command Round-Trip Integrity]] - 2026-08-31 - `1.5.1` (Commit `bb4123b`): `cite add` löschte jeden Inhalt hinter dem Fußnotenblock, weil `split_cite_block()` alles von der Überschrift bis Dateiende als Block nahm und daraus nur die Zitatdefinitionen behielt; `cite sync` und `rename` teilten den Pfad, und eine nur hinter dem Block referenzierte Fußnote wäre von `cite sync` als verwaist gelöscht worden. Da `xref add` am Dateiende anhängt, entschied allein die Reihenfolge beider Kommandos über den Bestand der Querverweise. 8 Seiten mit 74 Zeilen standen in dieser Position; `cite sync --all` normalisierte elf Seiten auf 0 (Gitea-Issue #17, `prio/1`)[^s-conversation-two-round-trip-defects-found-by-an-ingest-session-2026-08-31]. Siehe [[Command Round-Trip Integrity]] und [[Green Suite Blind Spot]] - 2026-08-31 - `1.5.0` (Commit `3166c31`, 9 Dateien, 678 Tests grün): zwei Kalibrierungen aus einer Beobachtung, nicht aus einem Issue. `publish` nimmt generierte Dateien aus der Gate-Zählung heraus - `is_generated()` kannte die Liste und `GATE_EXEMPT_PREFIXES`/ `counted_files()` boten den Mechanismus, verbunden waren beide nie -, und das Kalibrierungsband für einen komplexen Multi-Tool-Workflow steigt in `run_budget.py` von 15-25 auf 20-35 Aufrufe. Beides ist an realen Läufen gemessen: drei Ingest-Changesets (14 → 9, 16 → 9, 11 → 5 gezählte Dateien) und vier Sitzungszähler aus `tools/.wikitool_session/budget.json` (30, 29, 26, 24 Aufrufe). Schwelle 10 und Budget-Obergrenze 60 blieben unverändert[^s-conversation-gate-counting-and-measured-calibration-session-2026-08-31] - 2026-08-31 - Gitea-Issues #12 und #13 behoben (`1.2.0`, Commit `40adbb7`): Komma-Escape und Append-Semantik in `parse_list()`, Budget-Erstattung für abgelehnte Aufrufe, Obergrenze 60 und der immer geschriebene Lint-Report. Der End-to-End-Test deckte einen zweiten Defekt auf: `dump_frontmatter` schreibt Listen im Flow-Stil, `_format_scalar` entschied das Quoting aber über eine Round-Trip-Probe auf Dokumentebene, wo ein Komma gewöhnlich ist - innerhalb von `[...]` ist es ein Indikator. Behoben in `frontmatter_io.py` über `_round_trips_as_string(text, flow=True)` und einen `_quote()`-Helper, der sich vom Dumper eine einelementige Flow-Sequenz geben lässt und die Klammern abstreift, weil ein blanker Plain-Scalar aus `safe_dump` einen `...`-Dokumentende-Marker mitbringt. Bestehende Ausgabe blieb unverändert. 658 Tests grün, auch in der gehärteten Umgebung, nachdem zwei neue Tests `WIKI_AUTHOR` selbst setzen[^s-conversation-comma-bug-budget-refund-and-lint-report-path-session-2026-08-31] - 2026-08-31 - Gitea-Issue #14 geschlossen (`1.4.0`, Commit `dbe2f73`, 9 Dateien, 674 Tests grün): `touch` bekommt `--set`/`--add`/`--remove`. Der Schnitt blieb bewusst eng - die Dateiverschiebung bleibt zweistufig (`git mv`, dann `touch --set raw_files=…`), `raw rename` wurde als Issue #16 (`prio/2`, `size/S`) abgespalten. `_coerce_set_value`, `_parse_set_fields` und `_check_raw_files_exist` wanderten aus `new_page.py` nach `commands/_util.py`, damit `touch --set` den Komma-Defekt aus Issue #12 nicht am ersten Tag erbt. Als Nebenbefund fiel eine Testfalle: ein direkt aufgerufener Typer-Callback bekommt für jedes ausgelassene Argument ein `OptionInfo`-Objekt, worauf drei neue Optionen sieben Aufrufstellen in `test_touch.py` brachen; die Tests laufen jetzt über einen `_touch(**overrides)`-Helper[^s-conversation-write-once-frontmatter-fields-and-touch-set-session-2026-08-31] - 2026-08-31 - Zuvor offene Lücke (Gitea-Issue #14): kein Befehl schreibt `raw_files:` auf einer bestehenden Seite. `touch` deckt die Felder ab, die die Seite beschreiben, `xref` die Seiten-Referenz-Arrays; `raw_files:` zeigt auf einen Pfad und ist keines von beidem. Vorgeschlagen sind `sources relink` oder ein `raw rename`, das `git mv` und jede referenzierende Source-Seite in einem Schritt erledigt. Siehe [[Detect-Repair Asymmetry]][^s-conversation-comma-bug-budget-refund-and-lint-report-path-session-2026-08-31] - 2026-08-30 - Befehlsgruppen `version` und `migrate` sowie `dist export` ergänzt; Stack- und KB-Version werden seither in getrennten Dateien geführt. Zwei Tests, die die Autor-Ermittlung über `git config user.name` prüfen sollten, hingen unbemerkt an der globalen git-Konfiguration der ausführenden Maschine und fielen im ersten CI-Lauf; behoben in den Tests, nicht durch eine git-Identität für CI[^s-conversation-versioning-ci-cd-and-content-migration-session-2026-08-30] - 2026-08-05 - Wechsel von `skills sync`/`verify` vom Kopieren von Skill-Verzeichnissen zu relativen Symlinks (Claude Codes eigene Dokumentation bestätigt, dass es symlinked Skill-Ordner folgt) - ein Symlink kann niemals veralten, im Gegensatz zu einer Kopie. - 2026-08-04 - Befehle `skills sync`/`skills verify` hinzugefügt, um `.agents/skills/` in `.claude/skills/` für Claude-Code-Kompatibilität zu spiegeln, als Teil des Aufteilens von AGENTS.md-Workflows in diskrete Skills[^s-conversation-agents-md-skill-restructuring-session-2026-08-04]. - 2026-08-03 - Deterministische Provenance-Befehlsgruppe hinzugefügt und Wrapper-Pfadverhalten während der Conversation-Ingest/Provenance-Remediation-Arbeit gehärtet. - 2026-08-03 - Seite während der Einspeisung der Codex-Analyse erstellt - 2026-08-02 - Tool referenziert in wikitool-Lint-Verbesserungen (Log-Eintrag) - 2026-07-26 - Anfängliche Implementierung als Teil der Wiki-Infrastruktur ## Siehe auch - [[AGENTS.md]] - [[LLM Wiki Pattern]] - [[Source - LLM Improvements Codex Analysis]][^s-llm-improvements-codex-analysis] - [[Semantic Lint Automation]] - [[Session Orientation]] - [[Source - LLM Improvements Sonnet Analysis]] - [[Source - Copilot Skill Restructure Instructions]] - [[Source - Conversation - AGENTS.md Skill Restructuring Session 2026-08-04]] - [[Iteration and Cost Limits]] - [[Source - LLM Improvements Production Agent Gaps 2026]] - [[KB Stack Versioning]] - [[KB Migration]] - [[Personalization Plane]] - [[Detect-Repair Asymmetry]] - [[Source - Conversation - Issue Triage Labels and TODO Retirement Session 2026-08-31]] - [[Source - Conversation - Auto Mode and Tool Choice Session 2026-08-31]] - [[Write-Once Frontmatter Fields]] - [[Denylist over Allowlist]] - [[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]] - [[Command Round-Trip Integrity]] - [[Green Suite Blind Spot]] - [[Source - Conversation - Hardening the Test Suite Against Silent Environment Dependencies Session 2026-08-31]] - [[Ambient Environment Dependency]] - [[Structural Enforcement over Documented Rule]] - [[Optional Instance Context File]] - [[Source - Conversation - ENVIRONMENT.md as an Optional Third Session-Level File Session 2026-08-31]] - [[Source - Public Release, Corpus Purge and History Squash Session 2026-09-01]] ## Fußnoten [^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]] [^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-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-versioning-ci-cd-and-content-migration-session-2026-08-30]: [[Source - Conversation - Versioning CI-CD and Content Migration Session 2026-08-30]] [^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]] [^s-conversation-agents-md-skill-restructuring-session-2026-08-04]: [[Source - Conversation - AGENTS.md Skill Restructuring Session 2026-08-04]] [^s-conversation-hardening-the-test-suite-against-silent-environment-dependencies-session-2026-08-31]: [[Source - Conversation - Hardening the Test Suite Against Silent Environment Dependencies Session 2026-08-31]] [^s-llm-improvements-codex-analysis]: [[Source - LLM Improvements Codex Analysis]] [^s-public-release-corpus-purge-and-history-squash-session-2026-09-01]: [[Source - Public Release, Corpus Purge and History Squash Session 2026-09-01]]