문서 목차
이 페이지에서목차

/cc-spec:evolve — 잠긴 핵심 명세를 "공식 절차로" 고치기

잠긴(LOCKED) Seed spec 을 정해진 절차로만 고칩니다 — 허용 범위(S3 추가·S4 May·S5 상태)만 반영하고 핵심 문제·불변 제약 수정은 거절하며, 바뀐 결과가 원래 목표에서 얼마나 벗어났는지 Jev 가 LOW/MEDIUM/HIGH 로 판정한 뒤 버전을 올리고 S6 에 이력을 남깁니다.

항목내용
실행 명령/cc-spec:evolve
분류스펙 명확화
난이도●●○ 보통

한마디로#

이미 확정(잠금)된 핵심 명세를, 마음대로가 아니라 정해진 절차를 거쳐서만 바꾸도록 해주는 명령입니다. 계약서를 함부로 수정하지 못하고 정식 "변경 합의서"를 써서만 고치는 것과 같아요. 고친 결과가 원래 약속에서 벗어나지 않았는지는 판정 전용 모델(Jev) 이 확인합니다.

누가·언제 쓰나요#

  • 이미 잠금(LOCKED) 처리된 Seed 명세를 바꿔야 할 상황이 생겼을 때
  • 도메인 항목을 추가하거나, 선택(May) 항목을 바꾸거나, 가정의 검증 상태를 갱신하고 싶을 때

👉 단, 핵심 문제(S1) 와 불변 제약(S2) 은 절대 바꿀 수 없습니다. 이 둘을 바꿔야 한다면 새 Seed 를 처음부터 다시 만들어야 합니다. 또한 한 주기(cycle) 안에서 변경은 최대 3번까지만 허용됩니다.

무엇을 해주나요#

기존 Seed 명세 파일(docs/seed-spec-*.md)이 안전하게 갱신됩니다.

  • 허용된 범위만 반영 — 도메인 항목 추가, May(선택) 항목 변경, 가정 검증 상태 갱신만 적용됩니다.
  • 금지된 변경은 거절 — 핵심 문제·불변 제약 수정 시도는 막고 안내해 줍니다.
  • 표류 판정(Jev) — 바뀐 뒤의 S3/S4 가 원래 핵심 문제를 여전히 향하는지, 제약을 어기지 않는지를 LOW / MEDIUM / HIGH 로 받습니다. HIGH 면 막고, MEDIUM 이면 확인을 받고, LOW 면 진행합니다.
  • 버전 자동 갱신 + 이력 기록 — 변경 종류에 따라 MINOR/PATCH 로 올리고 S6 에 남깁니다.

어떻게 쓰나요#

/cc-spec:evolve                         # 변경 절차 시작
/cc-spec:evolve --file {path}           # 특정 Seed 명세 파일 지정

안에서 무슨 일이 벌어지나요#

  1. 사전 확인 — 잠금(LOCKED) 상태인지, 변경 횟수가 3번 이내인지 확인합니다.
  2. 변경 요청 수집 — 무엇을 바꾸고 싶은지 물어보고, 허용·금지 범위를 알려 줍니다.
  3. 유효성 검사 — 금지 영역 수정 시도는 거절하고, 허용 범위만 반영합니다. 3.5. 표류 판정 — 잠글 때의 S1·S2(기준선)와 바뀐 S3·S4 를 Jev 에 보내 LOW/MEDIUM/HIGH 를 받습니다. 키가 없으면 판정 불가로 멈춥니다 — 확인 없이 진행하지 않습니다.
  4. 버전 올리기 — 변경 종류에 맞춰 버전 번호를 갱신합니다.
  5. 이력 남기기 — 변경 내용·사유·승인자·Jev 판정 도장을 S6 에 기록합니다.
  6. 재판정 권유 — 바뀐 뒤 /cc-spec:verify 로 모호성·패널을 다시 받도록 권합니다(잠금은 유지).

⚙️ 상세 옵션·실행 명세 (개발자 / AI 에이전트용)

Usage#

/cc-spec:evolve
/cc-spec:evolve --file {path}

Parameters#

ParameterDescriptionDefault
--fileSeed spec file pathLatest LOCKED docs/seed-spec-*.md

Prerequisites#

  • Seed spec is LOCKED
  • Evolutions this cycle < seed_spec.max_evolution_per_cycle (3)
  • TYPESAFE_API_KEY for step 3.5 (absent → UNVERIFIED → the evolution is not applied)

Allowed / Prohibited Changes#

SectionAllowed Changes
S1 Core ProblemNot allowed — new Seed
S2 Immutable ConstraintsNot allowed — new Seed
S3 Domain EntitiesAdditions only
S4 Acceptance BoundariesOnly May rows; Must / Must-Not rows may advance Status only
S5 Exposed AssumptionsVerification status updates

Execution Flow#

1. Pre-validation#

  • Confirm Status: LOCKED; count S6 evolution rows this cycle.

2. Collect Change Requests#

  • Ask for the change; state the allowed/prohibited table.

3. Validity Check#

  • Reject prohibited edits with guidance; apply allowed edits to a working copy (do not overwrite yet).

3.5. Drift Check — Jev#

JJ="${CLAUDE_PLUGIN_ROOT}/skills/jev-gate/scripts/jev_judge.py"
git show $(git log --format=%H --diff-filter=A -- docs/seed-spec-{slug}.md | tail -1):docs/seed-spec-{slug}.md > /tmp/seed-baseline.md 2>/dev/null || cp docs/seed-spec-{slug}.md /tmp/seed-baseline.md
python3 "$JJ" judge --set evolve --spec /tmp/seed-working.md --baseline /tmp/seed-baseline.md
# exit 0 LOW · 2 MEDIUM / HIGH · 3 UNVERIFIED
  • state.baseline = S1 + S2 of the baseline (the file as first locked; falls back to the current file's S1/S2, which evolve never changes anyway). state.current = the working copy's S3 + S4 + S5.
  • Questions (skills/jev-gate/questions/evolve.json): drift_level (choice low/medium/high), serves_core_problem (noul, min 0.85), violates_C-NN (noul, max 0.15) per S2 row. Any violation or serves_core_problem failure forces HIGH.
  • Gate: HIGH → discard the working copy, recommend /cc-spec:seed. MEDIUM → require explicit user confirmation. LOW → proceed. UNVERIFIED → stop; do not apply.

4. Version Bump#

Change TypeVersion
Domain entity additionMINOR
May item changeMINOR
Assumption status updatePATCH

5. Evolution Log Entry#

  • Append to S6: | {new version} | {date} | {changes} | {reason} · Jev {LOW|MEDIUM-confirmed} ({spec_hash_short}) | {approver} |
  • Write the working copy over the file.

6. Re-verification#

  • Recommend /cc-spec:verify to refresh the ambiguity score and panel on the new version (the seed stays LOCKED).

Output#

Seed spec file updated (version + S6 entry). Nothing else is written.

  • /cc-spec:seed — new Seed when S1/S2 must change
  • /cc-spec:verify — re-judge after evolution
  • /cc-spec:status — drift of work against the seed (this command judges drift of the seed against its baseline)

References#

  • skills/jev-gate/questions/evolve.json — questions and assertions
  • config/thresholds.yaml → evolve:, seed_spec:
  • references/SEED_SPEC_SCHEMA.md — version and lock rules

검색어를 입력하면 문서를 찾습니다.

↑ ↓ 이동 · Enter 열기Esc 닫기