Files
chemenu/kb/concepts/problems/Write-Once Frontmatter Fields.md
torben 54d9540c08
CI / verify (push) Successful in 56s
Release / release (push) Successful in 36s
stack: Konfidenz-Mechanismus ersatzlos entfernt, Korpus migriert (schliesst #60, #86)
Files changed:
- .wikitool-kb.json
- AGENTS.md
- CHANGES.md
- INSTALL-MCP.md
- INSTALL.md
- README.md
- VERSION
- instructions/capture-session.md
- instructions/dev/issue-tracking.md
- instructions/german-terminology.md
- instructions/kb-profiles.md
- instructions/migrate-corpus.md
- instructions/migrations/5.0.0-confidence-removal.md
- instructions/private-instance.md
- instructions/setup-instance.md
- instructions/wiki-lint/SKILL.md
- instructions/wiki-manage/SKILL.md
- instructions/wiki-query/SKILL.md
- kb/CONTRACT.md
- kb/CONVENTIONS.md
- kb/CONVENTIONS.md.template
- kb/concepts/architectures/Consolidation Tiers.md
- kb/concepts/architectures/Context Isolation.md
- kb/concepts/architectures/Cross-platform Agent Skills.md
- kb/concepts/architectures/Episodic Memory.md
- kb/concepts/architectures/Hybrid Search.md
- kb/concepts/architectures/Implementation Spectrum.md
- kb/concepts/architectures/Knowledge Graph.md
- kb/concepts/architectures/LLM Wiki Pattern.md
- kb/concepts/architectures/MCP-Leseserver.md
- kb/concepts/architectures/Memory Lifecycle.md
- kb/concepts/architectures/OKF Compatibility.md
- kb/concepts/architectures/Optional Instance Context File.md
- kb/concepts/architectures/Personalization Plane.md
- kb/concepts/architectures/Procedural Memory.md
- kb/concepts/architectures/RAG.md
- kb/concepts/architectures/Scale Ceiling.md
- kb/concepts/architectures/Semantic Memory.md
- kb/concepts/architectures/Three-Layer Architecture.md
- kb/concepts/architectures/Token Economics.md
- kb/concepts/architectures/Working Memory.md
- kb/concepts/decisions/Delete Rather Than Anonymize.md
- kb/concepts/decisions/Denylist over Allowlist.md
- kb/concepts/decisions/Diff-Reviewable Agent Edits.md
- kb/concepts/decisions/Dual Licensing by File Plan.md
- kb/concepts/decisions/Issue Label Scheme.md
- kb/concepts/decisions/KB Stack Versioning.md
- kb/concepts/decisions/Structural Enforcement over Documented Rule.md
- kb/concepts/patterns/Audit Trail.md
- kb/concepts/patterns/BM25.md
- kb/concepts/patterns/Command Round-Trip Integrity.md
- kb/concepts/patterns/Confidence Scoring.md
- kb/concepts/patterns/Contradiction Resolution.md
- kb/concepts/patterns/Entity Extraction.md
- kb/concepts/patterns/Filter on Ingest.md
- kb/concepts/patterns/Forgetting.md
- kb/concepts/patterns/Graph Traversal.md
- kb/concepts/patterns/Mesh Sync.md
- kb/concepts/patterns/Quality Scoring.md
- kb/concepts/patterns/Reciprocal Rank Fusion.md
- kb/concepts/patterns/Self-Healing.md
- kb/concepts/patterns/Shared vs Private.md
- kb/concepts/patterns/Typed Relationships.md
- kb/concepts/patterns/Vector Search.md
- kb/concepts/patterns/Work Coordination.md
- kb/concepts/problems/Ambient Environment Dependency.md
- kb/concepts/problems/Detect-Repair Asymmetry.md
- kb/concepts/problems/Green Suite Blind Spot.md
- kb/concepts/problems/Naming Convention Conflict.md
- kb/concepts/problems/Write-Once Frontmatter Fields.md
- kb/concepts/protocols/CPPC.md
- kb/concepts/protocols/Modbus.md
- kb/concepts/protocols/SSD TRIM.md
- kb/concepts/workflows/Anti-Cramming Heuristic.md
- kb/concepts/workflows/Bulk Operations.md
- kb/concepts/workflows/CI Integration.md
- kb/concepts/workflows/Checkpoint Audit.md
- kb/concepts/workflows/Claude Code Auto Mode.md
- kb/concepts/workflows/Content Quality Control.md
- kb/concepts/workflows/Crystallization.md
- kb/concepts/workflows/Event-Driven Automation.md
- kb/concepts/workflows/Hooks.md
- kb/concepts/workflows/Index Scaling.md
- kb/concepts/workflows/Iteration and Cost Limits.md
- kb/concepts/workflows/KB Migration.md
- kb/concepts/workflows/Knowledge Compounding.md
- kb/concepts/workflows/Lint Workflow.md
- kb/concepts/workflows/Mass-Update Gate.md
- kb/concepts/workflows/Multi-Agent Collaboration.md
- kb/concepts/workflows/Privacy and Governance.md
- kb/concepts/workflows/Publish-Remote Gate.md
- kb/concepts/workflows/Quality and Self-Correction.md
- kb/concepts/workflows/Semantic Lint Automation.md
- kb/concepts/workflows/Session Orientation.md
- kb/concepts/workflows/Split Merge Reclassify.md
- kb/concepts/workflows/Split Threshold.md
- kb/concepts/workflows/Stub Threshold.md
- kb/concepts/workflows/Supersession.md
- kb/concepts/workflows/User Management.md
- kb/concepts/workflows/Workflow Extraction.md
- kb/concepts/workflows/Workflow Orchestration.md
- kb/entities/people/Andrej Karpathy.md
- kb/entities/people/E3DC GmbH.md
- kb/entities/people/Rohit Gupta.md
- kb/entities/people/Vannevar Bush.md
- kb/entities/projects/BCDModule.md
- kb/entities/projects/Chemenu.md
- kb/entities/projects/andybalholm-edl.md
- kb/entities/projects/goresponsiveness.md
- kb/entities/projects/ha-core.md
- kb/entities/projects/hacs-e3dc.md
- kb/entities/projects/hacs-integration-blueprint.md
- kb/entities/projects/llm-wiki-skills.md
- kb/entities/projects/plugnburn-edl.md
- kb/entities/projects/wiki-skills-vanillaflava.md
- kb/entities/projects/wiki-skills.md
- kb/entities/systems/AGENTS.md.md
- kb/entities/systems/CLAUDE.md.md
- kb/entities/systems/E3DC.md
- kb/entities/systems/ENVIRONMENT.md.md
- kb/entities/systems/Memex.md
- kb/entities/systems/Tolkien Gateway.md
- kb/entities/technologies/Arch Linux.md
- kb/entities/technologies/Disk Encryption.md
- kb/entities/technologies/Docker.md
- kb/entities/technologies/GRUB.md
- kb/entities/technologies/Gitea Actions.md
- kb/entities/technologies/Gitea.md
- kb/entities/technologies/Go.md
- kb/entities/technologies/Home Assistant.md
- kb/entities/technologies/Kernel PM Governors.md
- kb/entities/technologies/LVM.md
- kb/entities/technologies/Linux Kernel.md
- kb/entities/technologies/MQTT.md
- kb/entities/technologies/OPC UA.md
- kb/entities/technologies/Python.md
- kb/entities/technologies/Rust.md
- kb/entities/technologies/Wine GE.md
- kb/entities/technologies/Wine-Staging.md
- kb/entities/technologies/acpi-cpufreq.md
- kb/entities/technologies/amd-pstate.md
- kb/entities/technologies/iii Engine.md
- kb/entities/tools/AUR.md
- kb/entities/tools/Act Runner.md
- kb/entities/tools/Agent Memory.md
- kb/entities/tools/Aura.md
- kb/entities/tools/Bottles.md
- kb/entities/tools/ChatGPT.md
- kb/entities/tools/Claude Code.md
- kb/entities/tools/Codex CLI.md
- kb/entities/tools/Dataview.md
- kb/entities/tools/GPG.md
- kb/entities/tools/GitHub Copilot.md
- kb/entities/tools/Gitea MCP Server.md
- kb/entities/tools/Lutris.md
- kb/entities/tools/Marp.md
- kb/entities/tools/Mistral Vibe.md
- kb/entities/tools/NotebookLM.md
- kb/entities/tools/Obsidian Web Clipper.md
- kb/entities/tools/Obsidian.md
- kb/entities/tools/OpenAI Codex.md
- kb/entities/tools/OpenCode.md
- kb/entities/tools/Pi.md
- kb/entities/tools/Proton.md
- kb/entities/tools/Steam.md
- kb/entities/tools/Wine.md
- kb/entities/tools/awesome-llm-wiki.md
- kb/entities/tools/farzaa gist.md
- kb/entities/tools/gdeploy.md
- kb/entities/tools/makepkg.md
- kb/entities/tools/pascalandy schema.md
- kb/entities/tools/qmd.md
- kb/entities/tools/wikitool.md
- kb/index.md
- kb/log.md
- raw/CONTRACT.md
- tools/CONTRACT.md
- tools/README.md
- tools/chemenu/api.py
- tools/chemenu/cli.py
- tools/chemenu/commands/confidence_decay.py
- tools/chemenu/commands/docs_verify.py
- tools/chemenu/commands/doctor.py
- tools/chemenu/commands/index_build.py
- tools/chemenu/commands/new_page.py
- tools/chemenu/commands/search.py
- tools/chemenu/commands/touch.py
- tools/chemenu/commands/version_cmd.py
- tools/chemenu/conventions.py
- tools/chemenu/corpus_diff.py
- tools/chemenu/frontmatter_io.py
- tools/chemenu/lint_core.py
- tools/chemenu/mcp/server.py
- tools/chemenu/page.py
- tools/chemenu/search/base.py
- tools/chemenu/search/filters.py
- tools/chemenu/search/ripgrep.py
- tools/chemenu/search/service.py
- tools/chemenu/search/types.py
- tools/chemenu/tests/conftest.py
- tools/chemenu/tests/test_api.py
- tools/chemenu/tests/test_confidence_decay.py
- tools/chemenu/tests/test_corpus_diff.py
- tools/chemenu/tests/test_docs_verify.py
- tools/chemenu/tests/test_frontmatter_io.py
- tools/chemenu/tests/test_index_build.py
- tools/chemenu/tests/test_kb_scan.py
- tools/chemenu/tests/test_lint.py
- tools/chemenu/tests/test_mcp_server.py
- tools/chemenu/tests/test_new_page.py
- tools/chemenu/tests/test_page_ops.py
- tools/chemenu/tests/test_provenance.py
- tools/chemenu/tests/test_raw_cmd.py
- tools/chemenu/tests/test_search.py
- tools/chemenu/tests/test_touch.py
- tools/chemenu/tests/test_type_resolver.py
- tools/chemenu/tests/test_version_cmd.py
- tools/chemenu/tests/test_xref.py
- tools/chemenu/version.py
- types/concept.md
- types/concept.schema.yaml
- types/entity.md
- types/entity.schema.yaml
- types/instruction.md
- types/type-spec.md
2026-09-10 19:51:48 +02:00

6.8 KiB

type, concept_type, tags, created, modified, related, sources, provenance, summary
type concept_type tags created modified related sources provenance summary
types/concept.md problem
wikitool
frontmatter
tooling
idempotenz
repair
2026-08-31 2026-08-31
exemplifies
wikitool
see-also
Denylist over Allowlist
see-also
Detect-Repair Asymmetry
see-also
Diff-Reviewable Agent Edits
see-also
Command Round-Trip Integrity
Source - Conversation - Write-Once Frontmatter Fields and touch --set Session 2026-08-31
Source - Conversation - Two Round-Trip Defects Found by an Ingest Session 2026-08-31
sourced Defektklasse, in der ein Feld nur beim Anlegen der Seite schreibbar ist und danach unerreichbar bleibt, weil kein Mutationsbefehl es kennt und new nicht idempotent ist

Write-Once Frontmatter Fields

Typ: Problem

Definition

Ein Write-Once-Feld ist ein Frontmatter-Feld, das der Anlegebefehl schreibt und danach kein Befehl mehr ändern kann. Es entsteht nicht durch eine Regel, sondern durch eine Lücke: das Schema deklariert das Feld, das Gerüst füllt es, und die Mutationsbefehle decken es nicht ab. Der Wert, den der erste Aufruf gesetzt hat, ist damit der endgültige.

Die drei Auswege, die einem Agenten dann bleiben, schließen sich gegenseitig aus. Handeditierung ist das, was der Stack verhindern soll. Die Seite zu löschen und neu anzulegen zerreißt jede Referenz, die schon auf sie zeigt - Wikilinks, Fußnoten-Zitate und die Referenz-Arrays anderer Seiten hängen am Titel. Und der Anlegebefehl selbst ist nicht idempotent, lässt sich also nicht einfach mit korrigierten Werten wiederholen. Das Fenster für den richtigen Wert ist genau einen Befehl breit1 .

Kernpunkte

  • Die Lücke ist eine Kombination, kein einzelner Defekt. Erst Schema plus fehlender Mutationsbefehl plus nicht-idempotentes new plus Referenzbindung an den Titel machen einen Tippfehler dauerhaft. Jede dieser Eigenschaften für sich ist harmlos.
  • Sie trifft die Felder, die keiner Seite und keinem Seitentitel gehören. touch deckte die Felder ab, die die Seite selbst beschreiben (modified, summary, provenance, confidence_base), xref die Seiten-Referenz-Arrays. tags:, raw_files: und source_url: sind keines von beidem1 .
  • Der Beleg, dass es eine Rate ist und kein Unfall: drei Fehlschläge in drei aufeinanderfolgenden Ingests desselben Tages, an zwei verschiedenen Feldern, von drei verschiedenen Agenten. Einer davon war ein nachgestelltes Komma im --set tags=-Wert1 .
  • Der Fall, an dem es sichtbar wurde: Diff-Reviewable Agent Edits behielt nach einem solchen Ingest dauerhaft nur [agent-workflow]. Der zuständige Agent prüfte alle drei Auswege und verwarf jeden mit dem richtigen Grund - genau das Verhalten, das die Regeln verlangen, und genau der Punkt, an dem sie ohne Werkzeug in eine Sackgasse führen1 .
  • Geschlossen in Stack 1.4.0 (Commit dbe2f73) durch touch --set/--add/--remove: schreibbar ist, was das Schema des Seitentyps deklariert, abzüglich einer kurzen Sperrliste (siehe Denylist over Allowlist). --add und --remove arbeiten auf einzelnen Elementen eines Listenfelds, --remove gelingt auch bei einem nicht vorhandenen Element und meldet das - idempotent, weil ein Reparaturbefehl, der sich beim zweiten Lauf verweigert, nicht skriptbar ist, aber nie still, weil ein stiller No-op wie eine gelungene Entfernung aussieht1 .
  • Die Klasse kehrte am selben Tag an einer anderen Feldgruppe wieder. new source --set entities=… schrieb die Referenz-Arrays einer Source-Seite genau einmal; xref link-source fasste sie nicht an, xref add lehnte sie ab, und touch sperrt sie über seine Denylist. Damit war eine Source-Seite nach dem Anlegen in ihren eigenen entities:/concepts: unerreichbar - dieselbe Lücke wie bei tags:, nur an den Feldern, die eine andere Zuständigkeit haben. Geschlossen mit 1.6.0 (Commit ce03749, Gitea-Issue #18), indem xref link-source beide Richtungen schreibt2
  • Abgrenzung zu Detect-Repair Asymmetry: Dort meldet ein Check einen Defekt, für den es keinen Reparaturbefehl gibt. Hier gibt es nicht einmal zwingend einen Befund - ein falsches tags: fällt keinem Check auf. Der raw_files:-Fall gehört zu beiden: er wird gemeldet und war nicht reparierbar.
  • Der Existenzcheck bleibt am Feld, nicht am Schema. Ein per touch geschriebenes raw_files: wird gegen das Dateisystem geprüft wie beim Anlegen. Das ist I/O und keine Datenform, also kann kein Schema es ausdrücken1 .

Beispiele

  • wikitool - tags: und raw_files: waren bis 1.4.0 nur beim Anlegen schreibbar (Gitea-Issue #14, geschlossen)
  • Diff-Reviewable Agent Edits - die Seite, die stundenlang unreparierbar war und den Fall belegt

Wann zu verwenden

  • Beim Ergänzen eines Schema-Felds: prüfen, welcher Befehl es nach dem Anlegen noch ändert. Gibt es keinen, ist das Feld write-once ausgeliefert.
  • Bei der Bewertung eines nicht-idempotenten Anlegebefehls: die Frage ist nicht, wie oft er falsch aufgerufen wird, sondern was ein einziger falscher Aufruf dauerhaft festschreibt.

Wann NICHT zu verwenden

  • Für Felder, die absichtlich unveränderlich sind, weil ihre Änderung eine andere Operation ist: type: ändert Schema und Verzeichnis der Seite und gehört in den Seiten-Lebenszyklus, confidence: ist abgeleitet und nicht autorisiert. Eine gesperrte Zuständigkeit ist keine Lücke.
  • Für generierte Dateien. Dass kb/index.md nicht von Hand geschrieben wird, ist Invariante 1 und kein Defekt.

Beziehungen

Siehe auch

Fußnoten

Beziehungen