SpecScore vs CodeSpeak
"스펙은 무엇을 위한 것인가"에 대한 두 가지 답. CodeSpeak은 스펙을소스 코드로 취급합니다 — LLM이 그것을 컴파일하고, 당신은 코드 대신 스펙을 유지합니다. SpecScore는 스펙을 지속적이고 개방적인 계약으로 취급합니다 — 당신은 코드를 그대로 유지하고, 어떤 에이전트든(또는 아무것도 없이) 그것을 읽고, lint하고, 추적할 수 있습니다.
공통점.
CodeSpeak이 잘하는 것.
CodeSpeak은 구조화된 영어 스펙을 코드로 컴파일하는 LLM 기반 프로그래밍 시스템입니다.
대담한 명제, 설득력 있게 논증됨
"코드가 아니라 스펙을 유지하라"는 점진적 조정이 아니라 진정한 재구성입니다. Kotlin 언어 설계자에게서 나온 것이며, 진지하게 받아들일 가치가 있습니다: 스펙이 소스라면, 생성된 코드는 구현 세부사항이 됩니다.
코드-스펙 인수
codespeak takeover는 기존 소스를 읽고 그 동작을 포착하는 스펙을 생성합니다 — 브라운필드 코드를 위한 마찰이 적은 진입로이며, 보고된 스펙-코드 압축률은 약 5–10배입니다.
에이전트 세션에서 의도 복구
CodeSpeak의 Intent Studio는 이전 에이전트 세션에서 요구사항을 추출합니다 — 빈 페이지에서 스펙을 작성하라고 요청하는 대신, 당신이 이미 표현한 의도를 수확합니다.
기능 비교.
둘은 서로 다른 베팅을 하므로, 표는 승자가 아니라 철학과 메커니즘을 비교합니다.
| 기능 | CodeSpeak | SpecScore |
|---|---|---|
| 진실의 원천 | 스펙 (컴파일 입력) | 스펙은 계약이고, 코드는 산출물 |
| 생성된 코드 | LLM이 생성, 수작업으로 유지하지 않음 | 당신과 에이전트가 코드를 작성하고 소유 |
| 스펙 형식 | 일반 영어, CodeSpeak이 정의 | 개방형 Markdown + YAML 표준, 공개된 스키마 |
| 스펙 → 코드 | 핵심 기능 (독점 LLM 컴파일러) | 범위 밖 — 어떤 에이전트든 구현 |
| 벤더 없이 작동 | 스펙은 CodeSpeak을 통해 컴파일됨 | 예 — 스펙은 어떤 에이전트든, 또는 아무것도 없이 작동 |
| 스펙 linting | 문서화되지 않음 | 콘텐츠 품질 — 모호한 동사, 누락된 인수 기준, 끊어진 참조 |
| 코드-스펙 추적성 | 재생성을 통해 | specscore: 어노테이션 + Verifies: 트레일러 |
| 결정성 | LLM 컴파일 (비결정적) | 결정적인 CLI 쿼리; 코드는 정상적으로 작성 |
| 코드 → 스펙 | codespeak takeover | survey + 작성 |
| 개방성 | 독점 시스템 | 개방형 — CC BY 4.0 형식, MIT / Apache-2.0 도구 |
| 단계 | 알파 프리뷰 | 출시됨 |
SpecScore가 다른 부분.
당신은 코드를 그대로 유지합니다
CodeSpeak은 구현을 생성하고 재생성합니다; 코드는 산출물이지 자산이 아닙니다. SpecScore는 코드를 있어야 할 곳에 둡니다 — 당신의 손에, 당신의 언어로, 한 줄 한 줄 리뷰 가능하게요. 스펙은 코드를 가져가지 않고 명확성과 추적성을 더합니다.
당신의 스펙은 이식 가능합니다
CodeSpeak 스펙은 CodeSpeak이 그것을 컴파일하기 때문에 가치가 있습니다. SpecScore 스펙은 그 자체로 가치가 있습니다 — 어떤 에이전트든 읽을 수 있는 잘 구조화된 Markdown이며, SpecScore 툴이 전혀 설치되지 않아도 유용합니다. 어떤 도구로든, 또는 아무것도 없이 도입하세요. 언제든 떠나세요.
모호함은 비용이 되기 전에 잡힙니다
LLM 컴파일러에서는 모호한 스펙이 빌드 시점에 틀린 코드가 됩니다. SpecScore의 lint는 에이전트가 행동하기 전에막연한 동사, 누락된 인수 기준, 끊어진 참조를 드러냅니다.
$ 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 바이너리입니다. Lint는 CI와 pre-commit 훅에서 실행되며, 계정도, 서비스 호출도, 빌드 중 LLM 왕복도 없습니다.
언제 어떤 것을 사용할까.
CodeSpeak을 선택하세요…
- 코드 유지를 멈추고 스펙이 소스가 되게 하고 싶은 경우.
- 그 레버리지를 위해 벤더의 컴파일러에 의존하는 것이 편안한 경우.
- 기존 코드베이스를 훨씬 짧은 스펙으로 압축하고 싶은 경우.
SpecScore를 사용하세요…
- 어떤 단일 도구보다 오래 살아남는 스펙을 원하는 경우 — 구조상 이식 가능.
- 코드를 당신의 언어로, 리뷰 가능하고 소유한 상태로 유지하고 싶은 경우.
- 스펙 품질 강제가 필요한 경우 — lint가 모호함을 일찍 잡아냅니다.
- 결정적인 코드-스펙 추적성이 필요한 경우.
- 빌드 경로에 벤더도, LLM 왕복도 없기를 원하는 경우.
두 가지 다른 베팅.
CodeSpeak은 컴파일러에 대한 베팅입니다: 스펙을 건네면, 코드를 생성하고 재생성하리라 믿는 것이죠. SpecScore는 형식에 대한 베팅입니다: 스펙을 개방적이고 이식 가능하게 유지하고, 코드를 당신의 것으로 유지하며, 어떤 에이전트든 그것을 대상으로 작업하게 합니다.
하나는 레버리지를 위해 이식성을 거래합니다. 다른 하나는 당신을 자유롭게 — 그리고 lint 가능하게 — 유지합니다.
피드백
이 비교는 공개적으로 이용 가능한 문서와 소스 코드를 기반으로 합니다. 잘못되었거나 오래된 정보가 있나요? 수정 issue를 열어주세요. SpecScore를 다른 도구와 비교해 주길 원하시나요? 요청해 주세요.