Skip to content

v 1.14.0 — 슬라이스 간 계약을 사람이 승인하는 슬롯으로

Choose a tag to compare

@sshworld sshworld released this 18 Aug 03:23
· 26 commits to main since this release

v1.14.0 — 슬라이스 간 계약을 사람이 승인하는 슬롯으로

Slice File Map 은 이름과 달리 rebase 충돌을 막는 머지 물류표였다. 파일이 안 겹친다고 계약이 맞는 건 아닌데, 슬라이스 간 인터페이스와 에러 정책을 사람이 승인하는 자리가 어디에도 없었다. 이번 버전이 그 슬롯을 만든다.

✨ Feature

  • 설계 문서에 ## 3.5 인터페이스 계약 블록 신설 — 제공자 / 소비자 / 계약(시그니처·불변식·소유권) / 실패 시(중단·감수) 4칸. 실패 시 칸이 곧 에러 정책이다. 슬라이스가 2개 이상이고 서로의 산출물을 소비할 때 채운다.
  • 계약은 게이트 트리거가 아니다 — 2게이트 판정은 기존 4개 블록(원인분석/구조델타/결정갈림길/기준선)으로 유지된다. 계약을 트리거에 넣으면 조건이 "슬라이스 2개 이상"이라 거의 모든 세션이 2게이트가 되어 fast path 가 사라지기 때문. 계약은 구조 델타의 하위 상세다.
  • spec 작성 규약에 ## 계약 섹션 필수 — 설계 문서는 개인 머신에 있고 plan 은 작업 후 폐기되며 dispatch 는 spec 본문이 아니라 경로만 자식에게 보낸다. 이 섹션이 계약이 자식에게 도달하는 유일한 통로다.
  • implementor 가 계약을 요구사항으로 취급 — 입력에 계약·에러 정책이 추가됐고, 계약의 실패 시 에 적힌 에러 경로는 YAGNI 대상이 아님을 명시했다. 구현이 곤란하면 조용히 빼지 말고 ❌ 로 보고한다. 기존에는 "최소 구현 + YAGNI" 조합이 에러 경로를 지웠다.
  • plan 의 동작 스펙에 에러 정책 연결 규칙 — 계약에서 중단 인 경로는 동작 스펙에 대응 테스트 케이스가 있어야 한다. implementor 는 테스트 목록으로 일을 받으므로, 계약에만 적고 케이스가 없으면 그 경로는 구현되지 않는다.

📝 Docs

  • 설계 문서 경로 표기 드리프트 정정 — docs/design/<slug>.md → ~/.claude/design/<repo>/<slug>.md (v1.13.0 에서 옮겼는데 plan-dev 커맨드에만 옛 경로가 남아 있었다).

♻️ Chore

  • lint 4종 (contract_spec_lint.sh 신규 + 기존 3종 확장). 트리거 열거 회귀 가드는 파일 전체가 아니라 게이트 판정 문장만 보도록 좁혔다 — 변이 테스트로 실증.

⚠️ 알아둘 한계

하네스는 템플릿에 슬롯이 있다까지만 보증한다. 세션이 실제로 계약을 채웠는지는 설계 문서 인스턴스가 repo 밖에 있어 구조적으로 검사할 수 없다 — 콘텐츠 전용 강제다.

업데이트: /plugin update sshworld