Co waliduje
SpecScore.
SpecScore to otwarty format Markdown dla funkcji, wymagań i kryteriów akceptacji — sprawdzany przez dwa walidatory: deterministyczny linter oraz recenzenta AI. Oto co wykrywa każdy z nich i gdzie zatrzymuje się automatyczna weryfikacja.
Pierwszy raz ze SpecScore? Zacznij tutaj ·CLI ·Skille AI
$ specscore lint checkout/ ✓ 24 requirements — structure, references, IDs valid ✓ no index drift · no broken links · no slug collisions 0 problems exit 0
Trzy warstwy, a nie jedna.
SpecScore waliduje warstwowo, zaczynając od tego, co najszybsze i najbardziej bezwzględne. Linter jest deterministyczny — błyskawiczny, darmowy, uruchamia się przy każdym commicie. Przegląd AI jest probabilistyczny — sięga głębiej, zużywa tokeny, wykrywa rzeczy, których linter nie jest w stanie zauważyć. Ludzki osąd stanowi trzecią warstwę: szwy, których nie domykają dwie pierwsze, wciąż wymagają człowieka — dziś żadne narzędzie nie zrobi tego niezawodnie. Obie warstwy automatyczne uzupełniają się wzajemnie: linter dba o to, czego AI nie utrzyma; AI wyłapuje to, czego linter nie potrafi zrozumieć.
Co sprawdza każdy walidator.
Linter CLI
deterministycznyTen sam wynik przy każdym uruchomieniu, bez LLM, bez kosztów. Jeśli przechodzi tutaj — to fakt, a nie opinia.
$ 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
- Spójność referencyjna — linki działają, identyfikatory są unikalne
- Konwencje strukturalne — sekcje obowiązkowe, poprawność frontmattera
- Higiena statusów i synchronizacja indeksu
- Brak kolizji slugów (identyfikatorów URL)
- Poprawność prefiksów w polach metadanych (np.
Related Ideas:)
Przegląd i ocena z AI
niedeterministycznyAnalizuje znaczenie, tak jak zrobiłby to recenzent w zespole — i podobnie jak człowiek, nie daje w 100% powtarzalnych wyników.
> /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
- Kryteria AC sformułowane jako weryfikowalne Given/When/Then
- Spójność logiczna w obrębie danego artefaktu
- Wykrywanie niejasnych sformułowań i ogólników
- Czytelność dla recenzenta w zespole
- Konkretne uwagi dla autora wraz z określeniem istotności
- Ocena gotowości w skali od A do F
Czego nie wykrywają.
Żaden walidator nie czyni cudów. Oto granice każdego z nich — abyś dokładnie wiedział, gdzie niezbędny pozostaje Twój własny osąd.
Linter CLI
- Niejawne sprzeczności w głębokich hierarchiach
- Rozbieżność między specyfikacją a kodem (poprawi się wraz z
specstudio:recap) - Poprawność semantyczna kryteriów akceptacji
- Czy nazwa ma realny sens biznesowy
- Czy wymagania rzeczywiście rozwiązują postawiony problem
Przegląd i ocena z AI
wykrywa niespójnie- Pełna powtarzalność między wywołaniami — oceny mogą się nieznacznie różnić
- Sprzeczności między artefaktami w dużym drzewie bez jawnych sprawdzeń krzyżowych
- Czy wymagania naprawdę rozwiązują problem — wyłapuje oczywiste luki, pomija wiedzę domenową
- Subiektywizm odziedziczony po bazowym modelu LLM
- Poprawność semantyczna z absolutną pewnością
- Wszystko, co nie zostało uwzględnione w kryteriach oceny
- 1
Linter sięga dotąd
Struktura, odnośniki, higiena. Tani i pewny — lecz ślepy na znaczenie słów.
- 2
AI sięga dotąd
Znaczenie, przejrzystość, spójność wewnątrz artefaktu. Głębszy — lecz probabilistyczny i słabszy w dużym drzewie.
- 3
To wciąż Twoje zadanie
Całościowy osąd nad architekturą — praca, której żadne narzędzie nie wykona dziś w pełni niezawodnie.
Przypadek, przed którym żadne narzędzie Cię nie uchroni
Wyobraź sobie głębokie drzewo specyfikacji. Funkcja A wymagaX. Funkcja B wymaga Y. Funkcja C wymaga Z. Z kolei funkcja D po cichu wymaga czegoś, co przeczy B — ale tylko wtedy, gdy funkcja A jest również aktywna. Linter widzi cztery poprawne, dobrze połączone dokumenty i zalicza test. Recenzent AI, czytając artefakty pojedynczo, nie ma powodu, by wczytać wszystkie cztery naraz i wychwycić tę trójstronną sprzeczność.
Żadna z dwóch warstw automatycznych nie wykryje tego w niezawodny sposób — i nie będziemy udawać, że jest inaczej.Dokładnie dla takich przypadków istnieje trzecia warstwa. Zadaniem SpecScore jest uczynienie drzewa na tyle przejrzystym, by recenzent badający styki mógł ten konflikt odnaleźć — otwarte pytania agregują się w górę, a powiązane wymagania dzieli jedno zapytanie — a nie wmawianie, że narzędzie zrobiło to za Ciebie.