54d9540c08
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
7.9 KiB
7.9 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 |
|
2026-08-31 | 2026-08-31 |
|
|
sourced | Werkzeugluecke, in der ein Check einen Defekt zuverlaessig meldet, aber kein Befehl ihn behebt - womit die Handeditierung der einzige verbleibende Ausweg ist |
Detect-Repair Asymmetry
Typ: Problem
Definition
Detect-Repair Asymmetry beschreibt den Zustand, in dem ein Werkzeug einen Defekt zuverlässig meldet, aber keinen Befehl anbietet, der ihn behebt. Der Agent, dem das Werkzeug den Befund vorlegt, hat dann genau zwei Auswege: den Defekt stehen lassen oder ihn von Hand reparieren. In einem Stack, dessen Kernprinzip lautet, dass Mechanisches das Werkzeug erledigt und niemals die Hand, führt eine solche Lücke die Handeditierung als einzige verbleibende Option wieder ein - an genau der Stelle, an der die Regeln sie am dringendsten ausschließen wollen.
Die Asymmetrie ist keine Regelverletzung, sondern ein Konstruktionsfehler in der Werkzeugoberfläche. Sie fällt erst auf, wenn der gemeldete Defekt zum ersten Mal wirklich auftritt.
Kernpunkte
- Melden und Reparieren sind getrennte Fähigkeiten. Ein Check zu schreiben ist billig, ein Reparaturbefehl teuer, weil er den korrekten Zielzustand kennen und atomar herstellen muss. Deshalb entsteht die Lücke nicht aus Nachlässigkeit, sondern aus dem Kostengefälle zwischen beiden.
- Der Befund selbst erzeugt den Druck. Solange niemand die kaputte Referenz sieht, gibt es
keinen Anlass, sie von Hand zu korrigieren. Sobald
lintsie in jedem Lauf meldet, ist die Handeditierung der kürzeste Weg zu einem sauberen Lauf. - Fall aus diesem Wiki (2026-08-31):
lintundsources coveragemelden kaputteraw_files:-Referenzen zuverlässig, aber keinwikitool-Befehl schreibtraw_files:auf einer bestehenden Seite.touchdeckt die Felder ab, die die Seite selbst beschreiben,xrefdie Seiten-Referenz-Arrays;raw_files:ist keines von beidem, weil es auf einen Pfad zeigt und nicht auf einen Seitentitel.new source --set raw_files=…schreibt das Feld genau einmal, bei der Erstellung1 . - Formal erlaubt ist nicht dasselbe wie beabsichtigt. Invariante 1 aus
AGENTS.mdzählt Katalog,log.md,provenance.md, die Skill-Verzeichnisse, die beiden JSON-Dateien und die Seiten-Referenz-Arrays auf.raw_files:steht in keiner dieser Aufzählungen, die Handeditierung ist also nicht verboten - sie widerspricht nur dem Kernprinzip, aus dem die Aufzählung stammt1 . - Die Reparatur gehört dorthin, wo der Zwischenzustand nie existiert. Für den konkreten
Fall wurde
raw renamevorgeschlagen, dasgit mvund jede referenzierende Source-Seite in einem Schritt erledigt, statt eines nachgelagertensources relink: nur in der gebündelten Form gibt es keinen Moment, in dem die Datei weg ist und die Referenz hängt1 . - Der Fall wurde am selben Tag geschlossen, und wie er geschlossen wurde, ist die
Verallgemeinerung.
1.4.0(Commitdbe2f73) gabtouchein--set/--add/--remove, das jedes vom Schema deklarierte Feld erreicht statt nurraw_files:. Der Reparaturbefehl wurde also nicht auf den gemeldeten Befund zugeschnitten, sondern auf die Feldklasse, zu der er gehört - siehe Write-Once Frontmatter Fields2 . - Die gebündelte Form blieb trotzdem offen.
raw rename, dasgit mvund jede referenzierende Source-Seite in einem Schritt erledigt, wurde als Issue #16 abgespalten. Der Zwischenzustand „Datei weg, Referenz hängt" existiert seit1.4.0also kürzer - zwei Befehle statt einer Handeditierung -, aber er existiert noch2 . - Zweiter Fall, andere Herkunft (2026-08-31): auf einer Source-Seite stand ein
related:, dastypes/source.mdnicht deklariert.lintmeldete den Schema-Fehler zuverlässig, aberxref removeräumte nur deklarierte Felder und erreichte ihn nicht. Die Asymmetrie entstand hier nicht aus einer fehlenden Fähigkeit, sondern daraus, dass ein Schwesterbefehl einen Zustand schreiben konnte, den der Gegenbefehl nicht kannte - geschlossen mit1.6.0(Gitea-Issue #18). Die Klasse dieser Kombination ist Command Round-Trip Integrity3 - Verwandt, aber nicht dasselbe wie Self-Healing: Self-Healing beschreibt, dass ein Lauf gefundene Mängel automatisch behebt. Detect-Repair Asymmetry beschreibt den Fall davor - dass es den Befehl, den ein Self-Healing-Lauf aufrufen müsste, überhaupt nicht gibt.
Beispiele
- wikitool -
lintundsources coveragemeldeten kaputteraw_files:-Referenzen, ohne dass ein Befehl sie korrigierte (Gitea-Issue #14, geschlossen mit1.4.0); die gebündelte Reparaturraw renameist als Issue #16 offen - Lint Workflow - der Lauf, der den Befund erzeugt und damit den Druck, ihn von Hand wegzuräumen
- wikitool -
lintmeldete das undeklarierterelated:auf einer Source-Seite, das kein Befehl entfernen konnte (Gitea-Issue #18, geschlossen mit1.6.0)
Wann zu verwenden
- Beim Entwurf eines neuen Checks: prüfen, ob es für jeden Befund, den er erzeugen kann, einen Befehl gibt, der ihn behebt. Wenn nicht, ist der Check ohne den zugehörigen Reparaturbefehl unvollständig ausgeliefert.
- Bei der Bewertung einer wiederkehrenden Handeditierung: die Frage ist nicht, warum der Agent sie vorgenommen hat, sondern welcher Befehl fehlte.
Wann NICHT zu verwenden
- Für Befunde, die ein Urteil verlangen und deshalb gar keinen deterministischen Zielzustand haben - ein Widerspruch zwischen zwei Seiten oder eine veraltete Aussage sind semantische Befunde, kein fehlender Befehl.
- Als Begründung, einen Check wegzulassen, bis die Reparatur fertig ist. Ein gemeldeter Defekt ohne Reparatur ist immer noch besser als ein unbemerkter.
Beziehungen
Siehe auch
- Source - Conversation - Write-Once Frontmatter Fields and touch --set Session 2026-08-31
- Source - Conversation - Issue Triage Labels and TODO Retirement Session 2026-08-31
- Source - Conversation - Two Round-Trip Defects Found by an Ingest Session 2026-08-31
Fußnoten
Beziehungen
- exemplifies: wikitool
- rests-on: Lint Workflow
- contrasts: Self-Healing
- see-also: Issue Label Scheme
- contrasts: Write-Once Frontmatter Fields
- contrasts: Command Round-Trip Integrity