Repository navigation
v 1.14.0 — 슬라이스 간 계약을 사람이 승인하는 슬롯으로
·
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