SpecScore vs CodeSpeak
Дві відповіді на питання «для чого мають бути специфікації». CodeSpeak вважає специфікацію вихідним кодом — LLM компілює її, а ви підтримуєте специфікацію замість коду. SpecScore вважає специфікацію довговічним, відкритим контрактом — ви залишаєте свій код, і будь-який агент (чи жоден) може читати, лінтувати та простежувати її.
Що в них спільного.
Що CodeSpeak робить добре.
CodeSpeak— це система програмування на основі LLM, що компілює специфікації структурованою англійською в код.
Смілива теза, переконливо обґрунтована
«Підтримуйте специфікацію, а не код» — це справжнє переосмислення, а не поступове доопрацювання. Воно походить від дизайнера мови Kotlin, і його варто сприймати серйозно: якщо специфікація — це джерело, згенерований код стає деталлю реалізації.
Захоплення коду в специфікацію
codespeak takeover читає наявний вихідний код і створює специфікацію, що відображає його поведінку — з'їзд на дорогу з низьким тертям для legacy-коду, зі заявленою компресією специфікації до коду приблизно 5–10×.
Відновлення наміру з агентних сесій
Intent Studio від CodeSpeak витягує вимоги з попередніх агентних сесій — збираючи намір, який ви вже висловили, замість того щоб просити вас написати специфікацію з чистого аркуша.
Порівняння функцій.
Ці двоє роблять різні ставки, тож таблиця порівнює філософію та механіку, а не переможців.
| Можливість | CodeSpeak | SpecScore |
|---|---|---|
| Джерело істини | Специфікація (вхід компіляції) | Специфікація — це контракт; код — це результат |
| Згенерований код | Створюється LLM, не підтримується вручну | Ви та ваші агенти пишете й володієте кодом |
| Формат специфікації | Звичайна англійська, визначена CodeSpeak | Відкритий стандарт Markdown + YAML, опублікована схема |
| Специфікація → код | Основна функція (пропрієтарний LLM-компілятор) | Поза межами — реалізує будь-який агент |
| Працює без постачальника | Специфікації компілюються через CodeSpeak | Так — специфікації працюють із будь-яким агентом або жодним |
| Лінтинг специфікацій | Не задокументовано | Якість вмісту — нечіткі дієслова, відсутні критерії приймання, висячі посилання |
| Простежуваність коду до специфікацій | Через регенерацію | specscore: анотації + Verifies: трейлери |
| Детермінованість | LLM-компіляція (недетермінована) | Детерміновані CLI-запити; код пишеться звичайно |
| Код → специфікація | codespeak takeover | survey + написання |
| Відкритість | Пропрієтарна система | Відкритий — формат CC BY 4.0, інструменти MIT / Apache-2.0 |
| Стадія | Alpha-прев'ю | У продакшені |
Чим SpecScore відрізняється.
Ви залишаєте свій код
CodeSpeak генерує та регенерує реалізацію; код — це результат, а не актив. SpecScore залишає код там, де йому місце — у ваших руках, вашою мовою, з можливістю рев'ю рядок за рядком. Специфікація додає ясність та простежуваність, не забираючи код.
Ваші специфікації портативні
Специфікація CodeSpeak цінна, бо CodeSpeak її компілює. Специфікація SpecScore цінна сама собою — це добре структурований Markdown, який може читати будь-який агент, і вона залишається корисною узагалі без жодного встановленого інструментарію SpecScore. Впроваджуйте її з будь-яким інструментом або жодним. Ідіть будь-коли.
Неоднозначність ловиться, доки вона не коштує
З LLM-компілятором неоднозначна специфікація стає хибним кодом під час збірки. lint у SpecScore виявляє нечіткі дієслова, відсутні критерії приймання та висячі посилання до того, як агент почне діяти на їх основі.
$ specscore lint checkout/apply-discount.md ✗ R3 no acceptance criteria ✗ verb "handle gracefully" — unmeasurable
Детермінованість та простежуваність
Відповідь CodeSpeak на питання «який код це реалізує?» — «увесь, регенеровано». Відповідь SpecScore — конкретний файл та рядок, черезspecscore code refs та трейлери комітів Verifies:— детерміновано, з можливістю аудиту та diff.
Структурований граф артефактів
Одиниця CodeSpeak — це файл специфікації прозою. SpecScore має типізовану ієрархію — ідеї перетворюються на функції, функції несуть вимоги та критерії приймання з ідентифікаторами, плани посилаються на критерії приймання, завдання посилаються на плани — усе доступне для машинної навігації.
Жодного постачальника в шляху збірки
SpecScore — це один Go-бінарник. Lint працює в CI та pre-commit хуках без облікового запису, без виклику сервісу, без LLM-циклу у вашій збірці.
Коли який використовувати.
Беріть CodeSpeak, коли…
- Ви хочете припинити підтримувати код і дати специфікації бути джерелом.
- Вам комфортно залежати від компілятора постачальника заради цього важеля.
- Ви хочете стиснути наявну кодову базу в значно коротшу специфікацію.
Використовуйте SpecScore, коли…
- Вам потрібні специфікації, що переживають будь-який окремий інструмент — портативні за побудовою.
- Ви хочете залишити свій код, вашою мовою, з можливістю рев'ю та володінням.
- Вам потрібен контроль якості специфікацій — лінт ловить неоднозначність рано.
- Вам потрібна детермінована простежуваність коду до специфікацій.
- Ви не хочете постачальника та LLM-циклу у вашому шляху збірки.
Дві різні ставки.
CodeSpeak — це ставка на компілятор: дайте йому специфікацію й довіртеся, що він створить та відтворить код. SpecScore — це ставка на формат: тримайте специфікацію відкритою та портативною, тримайте код своїм і дайте будь-якому агенту працювати з ним.
Один обмінює портативність на важіль. Інший залишає вас вільними — і лінтованими.
Зворотний зв'язок
Це порівняння базується на публічно доступній документації та вихідному коді. Щось невірно або застаріло? відкрийте issue з виправленням. Хочете, щоб ми порівняли SpecScore з іншим інструментом? запросіть його.