Cosa valida
SpecScore.
SpecScore è un formato aperto in Markdown per feature, requisiti e criteri di accettazione — controllato da due validatori: unlinter deterministico e un revisore IA. Ecco cosa rileva ciascuno, e dove si arresta la revisione automatica.
Nuovo su SpecScore? Inizia qui ·La CLI ·Skill IA
$ specscore lint checkout/ ✓ 24 requirements — structure, references, IDs valid ✓ no index drift · no broken links · no slug collisions 0 problems exit 0
Tre livelli, non uno.
SpecScore valida a livelli, partendo da ciò che è più economico e più sicuro. Il linter è deterministico — veloce, gratuito, viene eseguito a ogni commit. La revisione IA è probabilistica — più approfondita, consuma token, rileva aspetti che il linter non può raggiungere. Il giudizio umano è il terzo livello: le giunzioni che i primi due non chiudono richiedono ancora una persona — oggi nessuno strumento le risolve in modo affidabile. I due livelli automatici sono complementari, non ridondanti: il linter rileva ciò che l'IA non riesce a garantire; l'IA rileva ciò che il linter non può analizzare.
Cosa controlla ciascun validatore.
Linter CLI
deterministicoStesso risultato a ogni esecuzione, senza LLM, nessun costo. Se passa qui, è un fatto — non un'opinione.
$ specscore spec lint features/apply-discount/README.md:0 [error] oq-section: Open Questions section not found features/apply-discount/README.md:0 [error] index-entries: Child directory not listed in index: refunds features/apply-discount/refunds:0 [error] readme-exists: README.md not found 3 violations found (3 errors) # exit code 1
- Integrità referenziale — i link si risolvono, gli ID sono univoci
- Convenzioni strutturali — sezioni obbligatorie, formato del frontmatter
- Igiene degli stati e disallineamento dell'indice
- Collisioni di slug
- Validità dei prefissi nei campi di metadati (es.
Related Ideas:)
Revisione e score con IA
non deterministicoLegge per comprendere il significato, come farebbe un revisore umano — e, come un umano, non è perfettamente ripetibile.
> /score apply-discount.md Grade: B — ready with edits AC-2 vague trigger — name the actor and event AC-3 no error path for an expired code prose reads clean; criteria need tightening
- AC formulati come Given/When/Then verificabili
- Coerenza interna all'interno di un artefatto
- Contenuto vago o di riempimento
- Leggibilità per un revisore umano
- Feedback operativo per l'autore, con livello di gravità
- Un voto di maturità da A ad F
Cosa non rilevano.
Nessun validatore fa magie. Ecco dove si ferma ciascuno — affinché tu sappia esattamente dove deve intervenire il tuo giudizio.
Linter CLI
- Contraddizioni implicite attraverso gerarchie profonde
- Disallineamento tra specifica e codice (migliorerà con l'arrivo di
specstudio:recap) - Correttezza semantica dei criteri di accettazione
- Se un nome ha davvero senso
- Se i requisiti risolvono effettivamente il problema posto
Revisione e score con IA
rileva in modo incoerente- Riproducibilità totale tra esecuzioni — i verdetti possono variare entro un certo margine
- Contraddizioni tra artefatti in un albero esteso senza controlli incrociati espliciti
- Se i requisiti risolvono davvero il problema — evidenzia lacune evidenti, tralascia quelle specifiche di dominio
- Bias ereditati dal modello linguistico sottostante
- Correttezza semantica con certezza assoluta
- Qualsiasi aspetto non ponderato dalla rubrica di valutazione
- 1
Il linter arriva fin qui
Struttura, riferimenti, igiene. Economico e affidabile — ma cieco al significato.
- 2
L'IA arriva fin qui
Significato, chiarezza, coerenza all'interno di un artefatto. Più profondo — ma probabilistico, e debole su un albero esteso.
- 3
Dipende ancora da te
Il giudizio trasversale sull'intero sistema — un compito che oggi nessuno strumento sa svolgere in modo affidabile, e che richiede ancora un revisore umano.
Il caso da cui nessuno strumento ti salverà
Immagina un albero di specifiche reale e profondo. La feature A richiedeX. La feature B richiede Y. La feature C richiede Z. Poi la feature D richiede silenziosamente qualcosa che contraddice B — ma solo quando anche A è attiva. Il linter vede quattro documenti validi e ben collegati, e passa. Il revisore IA, leggendo gli artefatti uno alla volta, non ha motivo di caricarli tutti e quattro e notare l'interazione a tre vie.
Nessuno dei due livelli rileva questo caso in modo affidabile — e non faremo finta del contrario. Questo esatto tipo di contraddizione è la ragione per cui esiste il terzo livello. Il compito di SpecScore è rendere l'albero sufficientemente navigabile affinché una persona che esamina le giunzioni possa trovare il conflitto — le domande aperte risalgono la gerarchia, i requisiti correlati sono a portata di query — non affermare che uno strumento lo abbia già risolto.