BlockWatch

Vrai linter Rust qui détecte la dérive du code/de la documentation via des balises de commentaire <block affects=...> - vérifié avec le binaire réellement compilé, pas seulement en lisant le code source.

par mennanov · mennanov/blockwatch

Testé · Fonctionne ★ 9.2/10

BlockWatch — Vrai linter Rust qui détecte la dérive du code/de la documentation via des balises de commentaire <block affects=...> - vérifié avec le binaire réellement compilé, pas seulement en lisant le code source.

Ce que fait

Un linter indépendant du langage (CLI Rust, installable via cargo ou brew) qui valide les balises <block> de style HTML placées dans les commentaires des fichiers source : listes keep-sorted/keep-unique, contraintes de modèle de ligne/nombre de lignes, et liens affects qui forcent un fichier apparié (par exemple, un enum et sa table README) à changer ensemble. Se déclenche lors de l'écriture ou de la modification de code dans un projet qui utilise déjà BlockWatch, ou lorsqu'un fichier contient déjà des balises <block ...> ; la compétence indique à l'agent d'ajouter des balises dans la même modification qui introduit un modèle protégeable et de vérifier avec `git diff --patch | blockwatch`.

Rapport de test

A installé le vrai binaire via `brew install mennanov/blockwatch/blockwatch` (formule de confiance, compilée en 1s) et a effectué un A/B complet dans un dépôt git jetable : une modification de base naïve a ajouté un langage à une liste Python mais a silencieusement oublié la ligne README correspondante sans aucun avertissement, tandis que la modification guidée par la compétence a ajouté des balises `<block affects=...>` dans la même modification, a gardé les deux fichiers synchronisés, a passé `git diff --patch | blockwatch` (sortie 0), puis a correctement détecté une modification naïve ultérieure avec une violation précise 'is modified, but README.md:supported-langs is not' (sortie 1) - mais l'affirmation de SKILL.MD selon laquelle `blockwatch` seul (sans diff pipé) 'valide chaque bloc de l'arbre' est fausse, vérifiée empiriquement : avec une liste keep-sorted non triée et aucun diff sur stdin, il sort silencieusement 0, contredisant le texte --help de l'outil et sa propre phrase 'uniquement validé lorsqu'il est touché par un diff' ailleurs dans le même fichier.

Testé le: 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

Commandes et exemples de prompts

  • /blockwatchVrai linter Rust qui détecte la dérive du code/de la documentation via des balises de commentaire <block affects=...> - vérifié avec le binaire réellement compilé, pas seulement en lisant le code source.

Les skills se déclenchent sur des demandes en langage courant — aucune commande à retenir. Après installation, des prompts comme ceux-ci l'activent (en anglais) :

  • 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