BlockWatch

Linter Rust reale che rileva la deriva di codice/documentazione tramite tag di commento <block affects=...> -- verificato con il binario effettivo compilato, non solo leggendo il sorgente.

di mennanov · mennanov/blockwatch

Promosso ★ 9.2/10

BlockWatch — Linter Rust reale che rileva la deriva di codice/documentazione tramite tag di commento <block affects=...> -- verificato con il binario effettivo compilato, non solo leggendo il sorgente.

Cosa fa

Un linter agnostico al linguaggio (CLI Rust, installabile tramite cargo o brew) che valida tag <block> simili a HTML inseriti nei commenti dei file sorgente: liste keep-sorted/keep-unique, vincoli di pattern/conteggio righe, e link affects che forzano un file accoppiato (es. un enum e la sua tabella README) a cambiare insieme. Si attiva quando si scrive o si modifica codice in un progetto che utilizza già BlockWatch, o quando un file contiene già tag <block ...>; la skill dice all'agente di aggiungere tag nella stessa modifica che introduce un pattern guardabile e di verificare con `git diff --patch | blockwatch`.

Rapporto di test

Installato il binario reale tramite `brew install mennanov/blockwatch/blockwatch` (formula attendibile, compilata in 1s) ed eseguito un A/B completo in un repository git usa e getta: una modifica di base ingenua ha aggiunto un linguaggio a una lista Python ma ha dimenticato silenziosamente la riga README corrispondente senza alcun avviso, mentre la modifica guidata dalla skill ha aggiunto tag `<block affects=...>` nella stessa modifica, ha mantenuto entrambi i file sincronizzati, ha superato `git diff --patch | blockwatch` (uscita 0), e quindi ha correttamente rilevato una modifica ingenua successiva con una violazione precisa 'is modified, but README.md:supported-langs is not' (uscita 1) -- ma l'affermazione di SKILL.md che `blockwatch` nudo (senza diff in pipe) 'valida ogni blocco nell'albero' è falsa, verificata empiricamente: con una lista keep-sorted non ordinata e nessun diff in stdin esce silenziosamente con 0, contraddicendo il testo --help dello strumento stesso e la sua stessa frase 'solo validato quando toccato da un diff' altrove nello stesso file.

Testato il: 2026-07-15 · Claude Code 2.x (agent harness)

Installazione

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

Comandi e prompt di esempio

  • /blockwatchLinter Rust reale che rileva la deriva di codice/documentazione tramite tag di commento <block affects=...> -- verificato con il binario effettivo compilato, non solo leggendo il sorgente.

Gli skill si attivano con richieste in linguaggio naturale, senza comandi da ricordare. Dopo l'installazione, prompt come questi lo attivano (in inglese):

  • 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