Docs · Cocode ADE · 분석 · 설계 문서

Cocode ADE · 04

Spec Evaluation — 명세 게이트 판정

여덟 차례 평가 · 모호성 채점 · 반복된 실패 패턴과 권고

목차

Summary

  • Seed Spec: docs/seed-spec-cocode.md v3.0.2 (Status: DRAFT)
  • Evaluation Date: 2026-08-26 (8차 평가)
  • Final Verdict: FAIL — Specification Gate 미통과
  • 판정 근거: 모호성 점수 0.3125 (통과 기준 ≤ 0.2), Seed spec 미잠금(DRAFT)
  • 개정 중단. 사유는 아래 "개정을 멈춘 이유" 참조

이 보고서는 게이트를 통과시키기 위한 문서가 아니라, 통과하지 못한 사실과 그 이유를 기록하기 위한 문서다. 여덟 차례의 독립 검증에서 확인된 것을 그대로 옮긴다.


Stage 1: Mechanical Verification — FAIL (8/10)

ID 항목 결과 비고
M-01 Seed spec 파일 존재 ✅ PASS docs/seed-spec-cocode.md
M-02 Status LOCKED ❌ FAIL DRAFT 상태 — 잠금 조건(M-09 통과)이 충족되지 않아 잠글 수 없음
M-03 핵심 문제 비어있지 않음 ✅ PASS §1
M-04 불변 제약 1개 이상 ✅ PASS C-01~C-05 (5개)
M-05 도메인 엔티티 1개 이상 ✅ PASS Workspace, DelegatedTask, EditSnapshot (3개, 각각 속성·관계·불변식 보유)
M-06 인수 경계 Must 1개 이상 ✅ PASS 18개 (v2.0.0에서 NFR-NN 병용을 폐지하고 AC-NN으로 통일)
M-07 인수 경계 Must-Not 1개 이상 ✅ PASS AC-04, AC-05
M-08 노출된 가정 3개 이상 ✅ PASS A-01~A-07 (7개)
M-09 모호성 점수 기록 ❌ FAIL 0.3125로 기록되어 있으나 통과 기준 0.2를 초과
M-10 버전 SemVer 형식 ✅ PASS v3.0.2

M-02와 M-09는 서로 연결되어 있다 — 모호성 기준을 통과하지 못해 잠글 수 없고, 잠기지 않아 M-02가 실패한다. 나머지 8개 항목은 8차 감사에서 전부 통과 확인됐다(5개 제약, 완전 명세된 엔티티 3개, AC-NN 식별자와 유효한 PENDING 상태를 가진 Must 18 + Must-Not 2, 가정 7개, 유효한 SemVer).


Stage 2: Semantic Verification — FAIL

2a. 모호성 점수 — FAIL

버전 어휘 지시 완전성 일관성 검증가능성 종합 판정
v1.0.0 0.75 0.75 0.75 0.50 0.25 0.625 UNCLEAR
v1.1.0 0.75 0.75 0.75 0.25 0.25 0.4125 AMBIGUOUS
v1.2.0 0.40 0.45 0.40 0.55 0.60 0.47 AMBIGUOUS
v2.0.0 0.40 0.30 0.40 0.50 0.45 0.4075 AMBIGUOUS
v2.1.0 0.50 0.55 0.45 0.60 0.35 0.4975 AMBIGUOUS
v3.0.0 0.45 0.35 0.45 0.55 0.35 0.435 AMBIGUOUS
v3.0.1 0.45 0.30 0.40 0.45 0.50 0.4175 AMBIGUOUS
v3.0.2 0.35 0.30 0.25 0.35 0.30 0.3125 AMBIGUOUS

통과 기준은 0.2 이하다. 여덟 버전 모두 미달이다. 다만 마지막 라운드는 전체 이력에서 가장 큰 단일 개선이었고(0.4175 → 0.3125), 처음으로 0.4 아래로 내려갔으며, 다섯 개 차원이 동시에 개선된 유일한 경우다.

도달 가능한 천장에 대한 감사 판정 (7차): 7차 감사에 "0.2가 이 문서 유형에서 도달 가능한가"를 직접 물었고, 답은 다음과 같다.

  • 문서 유형이 깐 바닥은 0.0775 — Testability ~0.25(측정 조건을 Planning으로 의도적으로 이관했으므로 재현성 만점 불가), Completeness ~0.20(성능 기준을 내보낸 문서는 0.0 대역을 만족할 수 없음)
  • 나머지(가중치 0.65)는 전부 책상에서 고칠 수 있음 — "측정도 코드도 한 줄 필요 없다"
  • 전량 수정 시 예상: 0.155~0.165 (CLEAR)

즉 0.2 미달의 원인은 문서 유형이 아니라 문서 위생이다. 8차(v3.0.2)는 이 목록을 실행해 0.4175 → 0.3125 로 개선했으나 예상치에는 도달하지 못했다.

2b. Contrarian 검토 — 조건부 통과

  • 총 반론 36건 (Critical 등급 식별자 15개, Major 16, Minor 5)
  • 해소 14 / 위험 인수 1 (CH-009) — 상세: docs/contrarian-review-cocode.md
  • 미해소 Critical 0건이나, CH-009는 "해소"가 아니라 "위험 인수"임을 명시적으로 기록했다(의사결정 일지 D-011)

Contrarian 판정은 세 차례 적대적 감사를 거쳤고, 그 과정에서 작성자의 해소 주장 3건이 기각되었다(CH-009·CH-011·CH-030). 기각 사유와 정정 내용은 Contrarian 보고서 말미 "적대적 감사 이력"에 기록되어 있다.

2c. Simplifier 검토 — 통과(제안 반영 완료), 복잡도는 여전히 Excessive

버전 복잡도 판정
v1.0.0 29.5 Caution
v1.1.0 34.5 Excessive
v1.2.0 42.5 Excessive
v3.0.0 42.0 Excessive
v3.0.1 (미측정) —
v3.0.2 46.0 Excessive (역대 최고)

제안 3건(S-001·S-002·S-003) 전량 수용 완료(의사결정 일지 D-009).

복잡도가 역대 최고인 이유: v3.0.0의 계층 축소(§4를 범위 경계로 환원)가 검증 표면을 줄였으나, v3.0.1·v3.0.2에서 커버리지 공백을 메우려 AC 4개(AC-17~20)와 엔티티 속성·불변식을 추가하면서 그 이상으로 되돌려놨다. 8차 감사 표현: "v3.0.0의 계층 축소가 줄이려던 검증 표면을 v3.0.1/v3.0.2의 추가가 더 크게 되돌려놨다."


Stage 3: Consensus Verification — 미실시

Stage 1·2를 통과하지 못했으므로 실시하지 않았다. 평가 프로토콜은 단계를 순차 실행하며, 앞 단계 미통과 시 다음 단계로 진행하지 않는다.


개정 이력 전체 (8라운드)

cc-spec 평가 프로토콜의 수정·재평가 루프(L-spec.evaluate-outer-fix-reevaluate)는 bound: 2, Seed spec 진화는 max_evolution_per_cycle: 3으로 제한된다. 실제 소진은 그 두 배를 훨씬 넘겼다.

라운드 산출 모호성 결과
1 v1.1.0 0.625 → 0.4125 감사가 작성자의 Critical 해소 주장 3건 기각
2 v1.2.0 → 0.47 (악화) 신규 Critical 3건, 내부 모순 11건
3 v2.0.0 → 0.4075 삭감 재작성. 근거 없는 수치 11건 잔존, 사실 오류 3건
— v2.0.1 (미측정) 확인된 사실 오류·우회 경로 정정
4 v2.1.0 → 0.4975 (악화) Planning 입력 7건 확정. 내부 모순 17건, 자기 문서에 대한 허위 서술 1건
5 v3.0.0 → 0.435 계층 환원(§4를 범위 경계로). 17건 중 13건 해소, §4 출처 없는 수치 최초 0건
6 v3.0.1 → 0.4175 위성 문서 정리. v3.0.0이 고친 정렬을 다시 깨뜨림
7 v3.0.2 → 0.3125 감사의 항목별 목록 실행. 14건 중 11건 반영. 최대 단일 개선, 최초로 0.4 아래

상한을 네 배 초과했다. 프로토콜의 exhaust 조항은 "경고 후 통과" 금지와 사람에게 에스컬레이션을 규정한다. 이 보고서가 그 에스컬레이션이다.

개정을 멈춘 이유

마지막 라운드가 가장 성공적이었음에도 멈춘다. 근거는 세 가지다.

1. 고치는 속도만큼 만든다. 8라운드 내내 같은 패턴이 독립 감사로 확인됐다 — 지적된 항목은 고쳐지지만 같은 결함 유형의 새 사례가 생긴다. v3.0.2도 예외가 아니었다: AC 행 순서를 뒤바꿨고, 없는 저장소 슬러그를 출처에 적었으며, 같은 감사에 두 개의 다른 점수를 기록했다. v3.0.1은 v3.0.0이 고친 Evolution Log 정렬을 되돌려놨다.

2. 검증 표면이 계속 자란다. 복잡도 29.5 → 46.0(역대 최고). 커버리지 공백을 메우려면 항목을 추가해야 하고, 추가된 항목이 새 검증 표면이 되며, 그 표면에서 새 결함이 나온다. v3.0.0의 계층 축소가 이 순환을 끊으려던 시도였으나 이후 두 라운드가 그 이상으로 되돌렸다.

3. 남은 것은 문서 작업이 아니다. 8차 감사가 남긴 결함은 대부분 판정 주체가 정해지지 않아서 생긴다 — 어떤 파일이 "테스트 파일"인지(C-05), 어떤 편집에 자가 검증 ①~④가 "적용 불가"한지(AC-09), 프로바이더 응답 불가를 무엇으로 "감지"하는지(AC-20). 이것들은 문구를 고쳐 정해지지 않고 설계 결정으로만 정해진다.

그럼에도 실질적으로 나아진 것 (8차 감사 확인)

  • 기계 검사 M-02(미잠금)를 제외한 8개 항목 전부 통과
  • Seed spec의 모든 외부 인용이 실제로 해석됨 — Discovery·Socratic·Contrarian·D-001~D-020·planning-inputs·cc-product 설정까지 감사가 직접 대조
  • §4의 모든 수치가 출처표로 추적됨 (v3.0.0에서 최초 달성, 이후 유지)
  • C-04 전환 조항에 인수 기준 부여(AC-17) — 이 스펙에서 가장 중요한 안전 동작이 8라운드 동안 검증 불가 상태였다
  • 오류 시나리오 3종 커버(AC-18·19·20)

반복된 실패 패턴 (기록용)

  1. 근거 없는 수치 생성. p95 16.7ms·설치 150MB·결함 30건·검출률 80%·10분. v1.2.0은 근거 없는 수치를 제거하겠다고 선언한 그 개정에서 새 수치 6개를 도입했다.
  2. 자기 인용 루프. v1.1.0에서 만든 값을 v2.0.0에서 "업계 표준"으로 인용했다.
  3. 과잉 주장. 해소되지 않은 것을 해소했다고 기록(CH-009). 완전하지 않은 목록을 완전하다고 제시(출처표, 3회 반복).
  4. 인용 오류. 존재하지 않는 절 인용(Discovery §번들 해부, Discovery §Market Analysis의 Orca — 실제 Orca 언급 0회). 인용을 고쳤다고 기재한 개정에서 같은 오류 반복.
  5. 허위 자기 서술. v2.1.0이 AC-07에 시간 상한 조항이 있다고 서술했으나 v2.0.1이 이미 제거한 상태였다. 결과적으로 매달린 검증을 판정할 기준이 없는데 있다고 기록했다.

판정과 권고

Specification Gate: 미통과 (FAIL).

Planning 단계로 진행할 경우, 다음을 전제로 한다:

  1. Seed spec은 DRAFT 상태로 남는다. 잠기지 않았으므로 후속 단계는 이 문서를 확정된 계약이 아니라 작업 가설로 취급해야 한다.
  2. docs/planning-inputs-cocode.md 가 Planning의 필수 입력이다. 확정 결정 6건과 미결 5건이 정리되어 있다.
  3. 판정 주체가 미정인 3건은 설계 결정으로만 풀린다 — "테스트 파일"의 정의(C-05·AC-11), 자가 검증 ①~④의 "적용 불가" 판정 규칙(AC-09·C-04 ⑤), 프로바이더 응답 불가의 감지 기준(AC-20). Design 단계에서 이 셋을 정하면 관련 AC가 비로소 기계적으로 판정 가능해진다.
  4. C-04 전환 조항이 안전 기본값으로 작동한다. A-02의 합격 기준이 Planning에서 설정되지 않으면, 기본 완료 모드는 자동으로 "사람 승인 후 완료"가 된다 — 미결정이 위험한 쪽으로 기울지 않도록 설계된 조항이다.
  5. 잔여 위험 인수 항목 5건(CH-009·CH-003·CH-008·CH-022·CH-035)은 Contrarian 보고서에 재검토 시점과 함께 기록되어 있다.

Planning 단계에서 위 9개 항목이 실측·결정으로 채워지면, /cc-spec:score 재평가와 /cc-spec:verify --lock으로 게이트를 재시도할 수 있다.


Generated by cc-spec 3-stage evaluation protocol · 2026-08-26 · 대상: seed-spec-cocode.md v3.0.2 (8차 평가, 개정 중단)