Files
claude-regelwerk/.vault-tools/regelwerk-check/ENTWURF.md
T
Pascal MichelandClaude Opus 5 c064c729ed Regelwerk, Agenten, Skills und Werkzeuge veröffentlichen
Erster Stand des öffentlichen Ausschnitts aus dem Vault. Die .gitignore
arbeitet als Positivliste: ausgeschlossen ist alles, eingeschlossen nur,
was ausdrücklich wieder aufgenommen wird. Notizen, Projekte, Finanzen,
das Sitzungsgedächtnis und settings.local.json bleiben damit außen vor.

Der Kundenname in AI/Regelwerk/seo.md ist durch eine neutrale
Bezeichnung ersetzt; die Regeln selbst sind unverändert.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-17 22:38:15 +02:00

5.4 KiB

Entwurf: Konsistenzprüfung der Anweisungsschicht

Geschrieben am 2026-08-30 vor der ersten Zeile Code, wie es AI/Regelwerk/pruefwerkzeuge §1 verlangt.

Was die Prüfung beantworten soll — und woher die Antwort kommt

# Frage Herkunft Auflösung
1 Zeigt jeder Wikilink auf eine existierende Datei? Quelle — Dateisystem Ziel ist <link>.md oder <link> relativ zum Vault-Root. Alias nach | wird abgeschnitten, Anker nach # ebenso.
2 Trägt jede Regelwerk-Datei die Pflichtfelder im Frontmatter? Projektvorgabe — abgelesen an den sieben bestehenden Dateien type, status, title, summary, tags, created, updated
3 Ist jede Regelwerk-Datei vom Stamm aus verlinkt? Projektvorgabe — CLAUDE.md, Abschnitt „Regelwerk" Eine Datei, die niemand verlinkt, wird nie geladen.
4 Steht eine Regelwerk-Datei auf status: pending-review? Projektvorgabe — CLAUDE.md, Abschnitt „Selbstpflege" Hinweis, kein Fehler: die Freigabe steht aus.
5 Weicht das model: einer Agentendefinition von der Rollentabelle im Stamm ab? Projektvorgabe — CLAUDE.md, Tabelle „Agenten & Modelle" Die Tabelle wird gelesen, nicht im Skript nachgebaut.
6 Nennen mehrere Dateien die Planablage-Konvention widersprüchlich? Projektvorgabe — codeworkflow.md ist maßgeblich Siehe Auflösung unten.

Die drei Annahmen, die vor dem Code aufgelöst wurden

Annahme A: „Ein Pfad in Backticks ist ein Vault-Pfad." Falsch. Backticks tragen auch Befehle (python …), Frontmatter-Schlüssel (modell:), Dateinamen ohne Ort (CHANGELOG.md) und Beispielwerte. Eine allgemeine Pfadprüfung wäre eine Heuristik im Positivlisten-Gewand.

→ Aufgelöst durch Streichung. Frage 2 der ersten Fassung („existiert jeder Pfad in Backticks") ist nicht Teil der Prüfung. Wikilinks werden geprüft, Backtick-Pfade nicht. Das steht als benannte Lücke im Kopfkommentar.

Annahme B: „Aus Fließtext lässt sich ablesen, welches Modell ein Agent fährt." Falsch. „Executer-Subagent (executer, Sonnet — bei reiner Abschrift Haiku…)" ist für einen Menschen eindeutig und für ein Skript nicht.

→ Aufgelöst durch Einschränkung des Geltungsbereichs. Geprüft wird ausschließlich das model:-Feld im Frontmatter der Agentendateien gegen die Rollentabelle im Stamm. Fließtextaussagen über Modelle prüft das Skript nicht — benannte Lücke.

Annahme C: „Eine widersprüchliche Konvention ist maschinell erkennbar." Nur eingeschränkt.

→ Aufgelöst durch eine erzwungene Form. Das Skript sucht das Literal docs/plans/JJJJ-MM-TT und klassifiziert das unmittelbar folgende Zeichen: / = Ordnerform, . = Dateiform. Regel: Wer die Dateiform nennt, ohne die Ordnerform zu nennen, ist ein Befund — denn codeworkflow.md schreibt beide vor und die Ordnerform ist die, die vergessen wird. Genau dieser Fall lag am 2026-08-30 in planer.md vor.

Positivliste, nicht Negativliste

Alle sechs Prüfungen schränken geschlossene Mengen ein: die Menge der Wikilinks in einer Datei, die Menge der Pflichtfelder, die Menge der Agentendateien, die Menge der Regelwerk-Dateien. Es gibt keine Prüfung, die eine offene Menge verbotener Muster abzählt — und damit auch keine handgepflegte Negativliste, die gegen sie verlieren könnte.

Die Begründung gilt nur für diese sechs Achsen. Sie gilt ausdrücklich nicht für die Frage, ob zwei Regeln inhaltlich dasselbe sagen. Das sieht die Prüfung nicht und kann es nicht sehen.

Angriffsliste — einmal vollständig

Je Fall eine Wegwerfkopie des Vaults, Rücksetzen dazwischen, Exit-Code und auslösende Meldung protokolliert. Vor allem läuft die Grundlinie: die unbeschädigte Kopie muss sauber durchlaufen, sonst misst der Rest nichts.

Klasse Fall
Grundlinie unveränderter Vault → Exit 0
fehlt Pflichtfeld summary aus einer Regelwerk-Datei entfernt
fehlt Regelwerk-Datei nicht mehr im Stamm verlinkt
null status: auf leeren Wert gesetzt
leer Regelwerk-Datei auf 0 Byte gekürzt
zusätzlich neue Regelwerk-Datei, die niemand verlinkt
Wertebereich model: sonnet in pruefer.md (Tabelle sagt opus)
Verweis ins Leere Wikilink auf nicht existierende Datei
Konvention Dateiform der Planablage ohne Ordnerform
Reihenfolge toter Wikilink an erster und an letzter Position derselben Datei
Umgebung --vault zeigt auf ein Verzeichnis ohne CLAUDE.md
Umgebung AI/Regelwerk/ fehlt vollständig
Umgebung Rollentabelle im Stamm nicht auffindbar

Die letzten drei sind die wichtigsten: Sie prüfen, dass eine fehlende Voraussetzung ein Befund ist und kein Grund zu schweigen (§6).

Abbruchbedingung, vor der ersten Runde benannt

Schluss ist, wenn eine Runde nur noch Umformulierungen findet oder wenn alle verbleibenden Befunde dieselbe Antwort haben. Die Prüfung ist fertig, wenn alle dreizehn Fälle der Angriffsliste anschlagen und die Grundlinie grün ist — nicht, wenn sie „durchläuft".

Was diese Prüfung ausdrücklich nicht ist

Ein Fangnetz gegen formale Widersprüche. Kein Nachweis, dass die Anweisungsschicht widerspruchsfrei ist. Zwei Dateien können dieselbe Regel in verschiedenen Worten gegensätzlich formulieren, und die Prüfung meldet null Befunde. Der belastbare Nachweis ist das Lesen — die Prüfung nimmt nur die Formalien aus dem Weg, damit beim Lesen Kontext für den Inhalt bleibt.