SpecScore vs CodeSpeak
Dwie różne odpowiedzi na pytanie „czemu powinna służyć specyfikacja”. CodeSpeak traktuje specyfikację jakokod źródłowy — LLM ją kompiluje, a Ty utrzymujesz specyfikację zamiast kodu. SpecScore traktuje specyfikację jako otwarty i trwały kontrakt — zachowujesz swój kod, a dowolny agent (lub żaden) może ją czytać, sprawdzać linterem i śledzić powiązania.
Co mają ze sobą wspólnego.
W czym wyróżnia się CodeSpeak.
CodeSpeakto system programowania napędzany przez LLM, który kompiluje specyfikacje w języku naturalnym do kodu.
Odważna teza poparta autorytetem
„Utrzymuj specyfikację, a nie kod” to autentyczne przeformułowanie problemu, a nie drobna optymalizacja. Koncepcja pochodzi od twórcy języka Kotlin i zasługuje na poważne potraktowanie: jeśli specyfikacja jest źródłem prawdy, wygenerowany kod staje się jedynie szczegółem implementacyjnym.
Przejęcie kodu do specyfikacji
Polecenie codespeak takeover analizuje istniejący kod źródłowy i generuje specyfikację odwzorowującą jego zachowanie — co stanowi płynną ścieżkę wejścia dla systemów legacy, ze zgłaszaną kompresją objętości rzędu 5–10×.
Odzyskiwanie intencji z sesji agentów
Intent Studio w CodeSpeak wyodrębnia wymagania z wcześniejszych rozmów z agentem — zbierając intencję, którą już wyraziłeś, zamiast zmuszać Cię do pisania specyfikacji od pustej kartki.
Porównanie możliwości.
Oba narzędzia przyjęły zupełnie odmienne założenia, dlatego poniższa tabela porównuje filozofię i mechanikę, a nie wyłania zwycięzców.
| Cecha | CodeSpeak | SpecScore |
|---|---|---|
| Źródło prawdy | Specyfikacja (wejście do kompilatora) | Specyfikacja to kontrakt; kod to produkt |
| Wygenerowany kod | Tworzony przez LLM, nieutrzymywany ręcznie | Ty i Twoi agenci piszecie kod i macie nad nim pełną kontrolę |
| Format specyfikacji | Język naturalny, zdefiniowany przez CodeSpeak | Otwarty standard Markdown + YAML, publiczny schemat |
| Specyfikacja → kod | Główna funkcja (własnościowy kompilator LLM) | Poza zakresem formatu — implementuje dowolny agent |
| Działa bez dostawcy | Specyfikacje kompilują się wyłącznie przez CodeSpeak | Tak — specyfikacje działają z dowolnym agentem lub bez |
| Linting specyfikacji | Brak dokumentacji | Jakość treści — nieprecyzyjne czasowniki, brakujące AC, wiszące linki |
| Trazowalność kodu do specyfikacji | Poprzez ponowne generowanie | Adnotacje specscore: + stopki commitów Verifies: |
| Determinizm | Kompilacja LLM (niedeterministyczna) | Deterministyczne zapytania CLI; tradycyjnie pisany kod |
| Kod → specyfikacja | codespeak takeover | survey + redagowanie |
| Otwartość | System własnościowy | Otwarty — format CC BY 4.0, narzędzia MIT / Apache-2.0 |
| Dojrzałość | Wczesna wersja alfa | Używany produkcyjnie |
W czym różni się SpecScore.
Zachowujesz własny kod
CodeSpeak generuje i regeneruje implementację; kod jest jedynie produktem ubocznym, a nie trwałym aktywem. SpecScore pozostawia kod tam, gdzie jego miejsce — w Twoich rękach, w Twoim języku, możliwy do weryfikacji linijka po linijce. Specyfikacja dodaje przejrzystość i trazowalność, nie odbierając kontroli nad kodem.
Twoje specyfikacje są w pełni przenośne
Specyfikacja CodeSpeak ma wartość tylko dlatego, że kompiluje ją CodeSpeak. Specyfikacja SpecScore ma wartość sama w sobie — to ustrukturyzowany Markdown, który przeczyta dowolny agent, przydatny nawet bez zainstalowanych narzędzi SpecScore. Korzystaj z dowolnymi narzędziami i zrezygnuj, kiedy tylko zechcesz.
Niejednoznaczność jest wykrywana, zanim przyniesie straty
W przypadku kompilatora LLM nieprecyzyjna specyfikacja skutkuje błędnym kodem w momencie budowania. Mechanizm lint w SpecScore wyłapuje nieostre czasowniki, brakujące kryteria akceptacji i wiszące referencje, zanimagent w ogóle przystąpi do pracy.
$ specscore lint checkout/apply-discount.md ✗ R3 no acceptance criteria ✗ verb "handle gracefully" — niemierzalne
Determinizm i pełna identyfikowalność
Odpowiedź CodeSpeak na pytanie „który kod to realizuje?” brzmi: „cały, wygenerowany na nowo”. Odpowiedź SpecScore wskazuje konkretny plik i linię poprzez specscore code refs oraz stopki commitówVerifies: — deterministycznie, audytowalnie i w sposób czytelny dla diffa.
Strukturalny graf powiązanych artefaktów
Jednostką w CodeSpeak jest pojedynczy plik specyfikacji w prozie. SpecScore opiera się na typowanej hierarchii — pomysły Idea awansują do Feature, Features zawierają wymagania Requirements i kryteria AC z unikalnymi ID, plany Plan odwołują się do AC, a zadania Task do Planu — w pełni maszynowo nawigowalne.
Brak zewnętrznego dostawcy w procesie budowania
SpecScore to pojedynczy plik binarny w Go. Linter działa w potokach CI oraz hookach pre-commit bez logowania, bez odpytywania zewnętrznych API i bez kosztownych zapytań do LLM w Twoim buildzie.
Kiedy wybrać które rozwiązanie.
Wybierz CodeSpeak, gdy…
- Chcesz całkowicie przestać utrzymywać kod i uczynić specyfikację jedynym źródłem prawdy.
- Akceptujesz pełną zależność od kompilatora konkretnego dostawcy.
- Chcesz skondensować istniejący codebase w znacznie krótszą specyfikację.
Wybierz SpecScore, gdy…
- Chcesz, by specyfikacje przetrwały każde pojedyncze narzędzie — pełna przenośność z założenia.
- Chcesz zachować swój kod, we własnym języku, podlegający standardowemu code review.
- Wymagasz bezwzględnej weryfikacji jakości specyfikacji — linter wcześnie wykrywa niejasności.
- Potrzebujesz deterministycznej trazowalności kodu do wymagań.
- Nie chcesz żadnego zewnętrznego dostawcy ani zapytań LLM w potoku CI/CD.
Dwie odmienne koncepcje.
CodeSpeak to zakład na kompilator: przekazujesz mu specyfikację i ufasz, że poprawnie wyprodukuje oraz odtworzy kod. SpecScore to zakład na otwarty format: dbasz o to, by specyfikacja była uniwersalna i przenośna, kod pozostaje Twój, a dowolny agent może na niej pracować.
Jedno wymienia przenośność na dźwignię automatyzacji. Drugie daje pełną niezależność — oraz deterministyczną weryfikację.
Inne porównania.
Ten sam format, obok innych narzędzi rozwoju sterowanego specyfikacją:
Wszystkie razem, na jednej stronie: najlepsze narzędzia rozwoju sterowanego specyfikacją w 2026.
Opinia
To porównanie opiera się na publicznie dostępnej dokumentacji i kodzie źródłowym. Coś jest błędne lub nieaktualne? otwórz issue z poprawką. Chcesz, żebyśmy porównali SpecScore z innym narzędziem? poproś o nie.