Files
chemenu/kb/concepts/problems/Detect-Repair Asymmetry.md
T
torben 7f74303a00
CI / verify (push) Successful in 52s
Release / release (push) Successful in 36s
kb/concepts/ bekommt Areas: layout: fuer concept, Area-Titel aus jedem Type-Spec, Schwellen-Empfehlung im lint (schliesst #59)
Files changed:
- CHANGES.md
- README.md
- VERSION
- kb/concepts/Ambient Environment Dependency.md
- kb/concepts/Anti-Cramming Heuristic.md
- kb/concepts/Audit Trail.md
- kb/concepts/BM25.md
- kb/concepts/Bulk Operations.md
- kb/concepts/CI Integration.md
- kb/concepts/COLLECTION.md
- kb/concepts/CPPC.md
- kb/concepts/Checkpoint Audit.md
- kb/concepts/Claude Code Auto Mode.md
- kb/concepts/Command Round-Trip Integrity.md
- kb/concepts/Confidence Scoring.md
- kb/concepts/Consolidation Tiers.md
- kb/concepts/Content Quality Control.md
- kb/concepts/Context Isolation.md
- kb/concepts/Contradiction Resolution.md
- kb/concepts/Cross-platform Agent Skills.md
- kb/concepts/Crystallization.md
- kb/concepts/Delete Rather Than Anonymize.md
- kb/concepts/Denylist over Allowlist.md
- kb/concepts/Detect-Repair Asymmetry.md
- kb/concepts/Diff-Reviewable Agent Edits.md
- kb/concepts/Dual Licensing by File Plan.md
- kb/concepts/Entity Extraction.md
- kb/concepts/Episodic Memory.md
- kb/concepts/Event-Driven Automation.md
- kb/concepts/Filter on Ingest.md
- kb/concepts/Forgetting.md
- kb/concepts/Graph Traversal.md
- kb/concepts/Green Suite Blind Spot.md
- kb/concepts/Hooks.md
- kb/concepts/Hybrid Search.md
- kb/concepts/INDEX.md
- kb/concepts/Implementation Spectrum.md
- kb/concepts/Index Scaling.md
- kb/concepts/Issue Label Scheme.md
- kb/concepts/Iteration and Cost Limits.md
- kb/concepts/KB Migration.md
- kb/concepts/KB Stack Versioning.md
- kb/concepts/Knowledge Compounding.md
- kb/concepts/Knowledge Graph.md
- kb/concepts/LLM Wiki Pattern.md
- kb/concepts/Lint Workflow.md
- kb/concepts/MCP-Leseserver.md
- kb/concepts/Mass-Update Gate.md
- kb/concepts/Memory Lifecycle.md
- kb/concepts/Mesh Sync.md
- kb/concepts/Modbus.md
- kb/concepts/Multi-Agent Collaboration.md
- kb/concepts/Naming Convention Conflict.md
- kb/concepts/OKF Compatibility.md
- kb/concepts/Optional Instance Context File.md
- kb/concepts/Personalization Plane.md
- kb/concepts/Privacy and Governance.md
- kb/concepts/Procedural Memory.md
- kb/concepts/Publish-Remote Gate.md
- kb/concepts/Quality Scoring.md
- kb/concepts/Quality and Self-Correction.md
- kb/concepts/RAG.md
- kb/concepts/Reciprocal Rank Fusion.md
- kb/concepts/SSD TRIM.md
- kb/concepts/Scale Ceiling.md
- kb/concepts/Self-Healing.md
- kb/concepts/Semantic Lint Automation.md
- kb/concepts/Semantic Memory.md
- kb/concepts/Session Orientation.md
- kb/concepts/Shared vs Private.md
- kb/concepts/Split Merge Reclassify.md
- kb/concepts/Split Threshold.md
- kb/concepts/Structural Enforcement over Documented Rule.md
- kb/concepts/Stub Threshold.md
- kb/concepts/Supersession.md
- kb/concepts/Three-Layer Architecture.md
- kb/concepts/Token Economics.md
- kb/concepts/Typed Relationships.md
- kb/concepts/User Management.md
- kb/concepts/Vector Search.md
- kb/concepts/Work Coordination.md
- kb/concepts/Workflow Extraction.md
- kb/concepts/Workflow Orchestration.md
- kb/concepts/Working Memory.md
- kb/concepts/Write-Once Frontmatter Fields.md
- 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/index.md
- kb/log.md
- tools/CONTRACT.md
- tools/README.md
- tools/chemenu/catalog.py
- tools/chemenu/commands/index_build.py
- tools/chemenu/lint_core.py
- tools/chemenu/tests/conftest.py
- tools/chemenu/tests/test_cite_cmd.py
- tools/chemenu/tests/test_git_publish.py
- tools/chemenu/tests/test_index_build.py
- tools/chemenu/tests/test_lint.py
- tools/chemenu/tests/test_new_page.py
- tools/chemenu/tests/test_provenance.py
- tools/chemenu/tests/test_type_resolver.py
- tools/chemenu/tests/test_xref.py
- types/concept.md
- types/type-spec.md
2026-09-08 10:07:46 +02:00

135 lines
7.9 KiB
Markdown

---
type: types/concept.md
concept_type: problem
tags: [tooling, lint, provenance, hand-edit, gap]
created: 2026-08-31
modified: 2026-08-31
related:
- exemplifies: wikitool
- rests-on: Lint Workflow
- contrasts: Self-Healing
- see-also: Issue Label Scheme
- contrasts: Write-Once Frontmatter Fields
- contrasts: Command Round-Trip Integrity
sources: [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 - Two Round-Trip Defects Found by an Ingest Session 2026-08-31]
confidence: 0.50
confidence_base: 0.50
provenance: sourced
summary: 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 `lint` sie in jedem Lauf meldet, ist die
Handeditierung der kürzeste Weg zu einem sauberen Lauf.
- **Fall aus diesem Wiki (2026-08-31):** `lint` und `sources coverage` melden kaputte
`raw_files:`-Referenzen zuverlässig, aber kein `wikitool`-Befehl schreibt `raw_files:` auf
einer bestehenden Seite. `touch` deckt die Felder ab, die die Seite selbst beschreiben,
`xref` die 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 Erstellung[^s-conversation-comma-bug-budget-refund-and-lint-report-path-session-2026-08-31].
- **Formal erlaubt ist nicht dasselbe wie beabsichtigt.** Invariante 1 aus `AGENTS.md` zä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
stammt[^s-conversation-comma-bug-budget-refund-and-lint-report-path-session-2026-08-31].
- **Die Reparatur gehört dorthin, wo der Zwischenzustand nie existiert.** Für den konkreten
Fall wurde `raw rename` vorgeschlagen, das `git mv` und jede referenzierende Source-Seite in
einem Schritt erledigt, statt eines nachgelagerten `sources relink`: nur in der gebündelten
Form gibt es keinen Moment, in dem die Datei weg ist und die Referenz
hängt[^s-conversation-comma-bug-budget-refund-and-lint-report-path-session-2026-08-31].
- **Der Fall wurde am selben Tag geschlossen, und wie er geschlossen wurde, ist die
Verallgemeinerung.** `1.4.0` (Commit `dbe2f73`) gab `touch` ein `--set`/`--add`/`--remove`,
das jedes vom Schema deklarierte Feld erreicht statt nur `raw_files:`. Der Reparaturbefehl
wurde also nicht auf den gemeldeten Befund zugeschnitten, sondern auf die Feldklasse, zu der
er gehört - siehe
[[Write-Once Frontmatter Fields]][^s-conversation-write-once-frontmatter-fields-and-touch-set-session-2026-08-31].
- **Die gebündelte Form blieb trotzdem offen.** `raw rename`, das `git mv` und jede
referenzierende Source-Seite in einem Schritt erledigt, wurde als Issue #16 abgespalten. Der
Zwischenzustand „Datei weg, Referenz hängt" existiert seit `1.4.0` also kürzer - zwei Befehle
statt einer Handeditierung -, aber er existiert noch[^s-conversation-write-once-frontmatter-fields-and-touch-set-session-2026-08-31].
- **Zweiter Fall, andere Herkunft (2026-08-31):** auf einer Source-Seite stand ein `related:`,
das `types/source.md` nicht deklariert. `lint` meldete den Schema-Fehler zuverlässig, aber
`xref remove` rä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 mit `1.6.0`
(Gitea-Issue #18). Die Klasse dieser Kombination ist
[[Command Round-Trip Integrity]][^s-conversation-two-round-trip-defects-found-by-an-ingest-session-2026-08-31]
- **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]] - `lint` und `sources coverage` meldeten kaputte `raw_files:`-Referenzen, ohne
dass ein Befehl sie korrigierte (Gitea-Issue #14, geschlossen mit `1.4.0`); die gebündelte
Reparatur `raw rename` ist als Issue #16 offen
- [[Lint Workflow]] - der Lauf, der den Befund erzeugt und damit den Druck, ihn von Hand
wegzuräumen
- [[wikitool]] - `lint` meldete das undeklarierte `related:` auf einer Source-Seite, das kein
Befehl entfernen konnte (Gitea-Issue #18, geschlossen mit `1.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
[^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]]
<!-- wikitool:links -->
## 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]]
<!-- /wikitool:links -->