SpecScore vs CodeSpeak
Два ответа на вопрос «для чего должны быть спецификации». CodeSpeak трактует спецификацию как исходный код — LLM компилирует её, и вы сопровождаете спецификацию вместо кода. SpecScore трактует спецификацию какдолговечный открытый контракт — вы сохраняете свой код, и любой агент (или ни один) может её прочитать, линтовать и прослеживать.
Что у них общего.
Сильные стороны CodeSpeak.
CodeSpeak— это система программирования на базе LLM, которая компилирует спецификации на структурированном английском в код.
Смелый тезис, убедительно обоснованный
«Сопровождай спецификацию, а не код» — это подлинное переосмысление, а не инкрементальная доработка. Оно исходит от создателя языка Kotlin, и к нему стоит отнестись серьёзно: если спецификация — это исходник, сгенерированный код становится деталью реализации.
Перехват кода в спецификацию
codespeak takeover читает существующий исходник и производит спецификацию, которая фиксирует его поведение — низкотрудный въезд для унаследованного кода, с заявленным сжатием спецификации к коду примерно в 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 есть типизированная иерархия — идеи продвигаются в функции, функции несут требования и критерии приёмки с ID, планы ссылаются на критерии приёмки, задачи ссылаются на планы — всё доступно для машинной навигации.
Без вендора в пути сборки
SpecScore — это единый бинарный файл на Go. Линт запускается в CI и pre-commit хуках без аккаунта, без вызова сервиса, без обращения к LLM в вашей сборке.
Когда что использовать.
Берите CodeSpeak, когда…
- Вы хотите перестать сопровождать код и сделать спецификацию исходником.
- Вам комфортно зависеть от компилятора вендора ради этого рычага.
- Вы хотите сжать существующую кодовую базу в гораздо более короткую спецификацию.
Используйте SpecScore, когда…
- Вам нужны спецификации, которые переживут любой отдельный инструмент — переносимые по конструкции.
- Вы хотите сохранить свой код, на своём языке, с возможностью ревью и владения.
- Вам нужен контроль качества спецификаций — линт ловит неоднозначность рано.
- Вам нужна детерминированная трассируемость кода к спецификациям.
- Вы не хотите вендора и обращения к LLM в пути сборки.
Две разные ставки.
CodeSpeak — это ставка на компилятор: передай ему спецификацию и доверь ему производить и воспроизводить код. SpecScore — это ставка на формат: держи спецификацию открытой и переносимой, держи код своим и позволь любому агенту работать против него.
Одно меняет переносимость на рычаг. Другое оставляет вас свободными — и линтуемыми.
Обратная связь
Это сравнение основано на публично доступной документации и исходном коде. Что-то неверно или устарело? откройте issue с исправлением. Хотите, чтобы мы сравнили SpecScore с другим инструментом? запросите его.