BlockWatch

Echter Rust-Linter, der Code/Dokumentations-Drift über Kommentar-Tags <block affects=...> erkennt – verifiziert mit dem tatsächlich gebauten Binärprogramm, nicht nur durch Lesen des Quellcodes.

von mennanov · mennanov/blockwatch

Getestet · Funktioniert ★ 9.2/10

BlockWatch — Echter Rust-Linter, der Code/Dokumentations-Drift über Kommentar-Tags <block affects=...> erkennt – verifiziert mit dem tatsächlich gebauten Binärprogramm, nicht nur durch Lesen des Quellcodes.

Was es kann

Ein sprachunabhängiger Linter (Rust CLI, installierbar über cargo oder brew), der HTML-ähnliche <block>-Tags in Kommentarzeilen von Quelldateien validiert: sortierte/eindeutige Listen, Zeilenmuster-/Zeilenanzahlbeschränkungen und 'affects'-Links, die eine gepaarte Datei (z. B. ein Enum und seine README-Tabelle) gemeinsam ändern müssen. Wird ausgelöst beim Schreiben oder Bearbeiten von Code in einem Projekt, das bereits BlockWatch verwendet, oder wenn eine Datei bereits <block ...>-Tags enthält; die Fähigkeit weist den Agenten an, Tags in derselben Bearbeitung hinzuzufügen, die ein schützenswertes Muster einführt, und mit `git diff --patch | blockwatch` zu verifizieren.

Testbericht

Installierte das echte Binärprogramm über `brew install mennanov/blockwatch/blockwatch` (vertrauenswürdiges Formular, in 1 Sekunde kompiliert) und führte einen vollständigen A/B-Test in einem Wegwerf-Git-Repository durch: Eine naive Basislinienbearbeitung fügte eine Sprache zu einer Python-Liste hinzu, vergaß aber stillschweigend die entsprechende README-Zeile ohne Warnung, während die von der Fähigkeit geführte Bearbeitung `<block affects=...>`-Tags im selben Schritt hinzufügte, beide Dateien synchron hielt, `git diff --patch | blockwatch` (Exit 0) bestand und dann eine nachfolgende naive Bearbeitung mit einer präzisen 'is modified, but README.md:supported-langs is not'-Verletzung (Exit 1) korrekt abfing – aber die Behauptung von SKILL.md, dass bloßes `blockwatch` (ohne gepipetes Diff) 'jeden Block im Baum validiert', ist falsch, empirisch verifiziert: Mit einer unsortierten keep-sorted-Liste und keinem Diff auf stdin beendet es stillschweigend mit 0, was dem eigenen --help-Text des Tools und seinem eigenen Satz 'only validated when touched by a diff' an anderer Stelle in derselben Datei widerspricht.

Getestet am: 2026-07-15 · Claude Code 2.x (agent harness)

Installation

git clone https://github.com/mennanov/blockwatch
cd blockwatch
mkdir -p ~/.claude/skills
cp -r .agents/skills/blockwatch ~/.claude/skills/blockwatch

Befehle & Beispiel-Prompts

  • /blockwatchEchter Rust-Linter, der Code/Dokumentations-Drift über Kommentar-Tags <block affects=...> erkennt – verifiziert mit dem tatsächlich gebauten Binärprogramm, nicht nur durch Lesen des Quellcodes.

Skills reagieren auf normale Anfragen — keine Slash-Befehle nötig. Nach der Installation aktivieren Prompts wie diese den Skill (auf Englisch):

  • Add a block tag so this Python list stays in sync with README docs
  • I added a new item to this enum, check if the docs need updating too
  • Verify my code changes with blockwatch before I commit this diff