ca-tmpl 의 production capability platform 설계(platform 1,346줄 + redis
6,771 + httpclient 7,030 + fileserver 2,467)를 llm-wiki 거버넌스로 편입하는
분해 설계. 2-tier(기술 런타임 / 능력 계약) 모델로 신규 branch 18개를 확정하고,
기존 branch 8건의 주도권을 신규 branch 로 이전하는 절차를 고정.
hub 드리프트 3건 중 2건을 코드 대조로 정정:
- Spring Boot 3.5.14 → 4.0.0 (src/build.gradle:8), DEC-…-STACK-FRAMEWORK-001
revision 1 → 2 + WI 9행 pin 갱신
- ca-tmpl 경로를 desktop-server-git/clean-architecture-backend-template 로 정정
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- §12.1 #42: §21 표와 frontmatter imports 에 FE-OC-027~032 포함.
둘 다 branch-owned 계약을 hub 가 pin 하는 자리다
- §12.3: registry 개수 서술이 Summary 밖에도 14곳 있었음
- §13: contract_packet_sha256 생성기 부재 — 신규 노트는 필드 미포함,
기존 7개는 해시가 낡음
- §15 실행 기록 신설
- REGISTRY-001 Summary 문자열 4곳 (additive, revision 은 1 유지).
registry-governance 는 본문 서술 12곳의 '8개'도 함께 9개로 갱신
- OFFLINE-CACHE-001 pin @1->@2 와 Summary·적용점 (behavior-change)
- DELEG-FE-007~011 delegate 5곳 접수 완료 — 미접수 위임 0건
- runtime-schema-validation 이 FLOW-FE-EVENT-003/004 소유를 명시
- env-runtime-config 가 FE-REG-CAPABILITY registry 와 FE-GATE-033 gate
owner 를 취득하고 claim 2건 추가
- 신규 6개 노트의 delegation pin 을 기존 @1 형식으로 정규화
WI-...-028~033 에 대응하는 FE-OC-027~032 owner 노트.
- 각 노트의 제외 범위에 'use case·domain model·business rule' 을 명시해
이 skeleton 이 port 와 adapter 계약까지임을 못박았다
- 근거 절에 '근거 등급 경계' 문단을 넣어 project-local default 와
외부 근거를 구분했다 (수집은 FE-Q-011~014 가 소유)
- 구현 가이드 절은 비워 두고 사유를 남겼다 — 근거 raw 없이 채우면
모든 cell 이 UNSUPPORTED_IMPL_DECISION 이 된다
- multi-protocol 노트는 '신규 port 0개' 를 제외 범위에 명시했다.
port 가 늘어나면 그 자체가 회귀 신호다
- WI-...-028~033 과 §20 branch 행. P4 = P1~P3 완료 후 착수하는 opt-in
capability 계층이며 미완이어도 MERGE_READY 는 FE-GATE-033 으로 성립
- §21 가져온 계약 표와 frontmatter imports 에 FE-OC-027~032 추가.
기존 FE-OC-002~025 와 같은 branch-owned 계약이므로 같은 규칙을 적용했다
(설계문서 §12.1 은 제외로 적었으나 일관성상 포함이 옳다)
- §23.1 체크리스트 8->9 registry, runbook 5->7종
- project_revision 2, last_reviewed 2026-07-28
- §0.5 out of scope 에 '6개 도메인의 use case/domain model/business rule'
을 명시. 이 skeleton 은 port 와 adapter 계약까지다.
- FE-RB-006 실시간 연결 장애 — 상한 소진 후 terminal 전이가 유지되는지
먼저 확인하고 backend 에 무제한 재시도를 보내지 않는다
- FE-RB-007 백그라운드 실행 장애 — skipWaiting 임의 강제 금지,
중복 write 방지가 지연 전송보다 우선
- FE-Q-009(service worker 필요한가)는 FE-D034 로 해소
capability 가 OFF 인 프로젝트에서 gate 를 PASS 라 하면 거짓말이고 FAIL
이라 하면 영원히 배포할 수 없다. NOT_APPLICABLE 을 도입하되 FE-GATE-033
이 번들 부재를 증명했을 때만 유효하게 묶었다.
FE-GATE-033 자신은 NOT_APPLICABLE 을 취할 수 없다 — capability 를 하나도
쓰지 않는 프로젝트도 '쓰지 않는다'를 증명해야 한다.
- 실시간은 reconnecting 과 disconnected 를 구분해야 한다. 전자를 terminal
로 보이면 불필요한 새로고침, 후자를 refreshing 으로 보이면 오지 않는
데이터를 기다린다.
- FILE_PICKER_DISMISSED 는 사용자 취소이므로 error surface 없음.
- sw-update-pending 은 자동 skipWaiting 금지 — 열린 탭이 release 를
갈아타면 FE-OC-016 coherence 가 깨진다.
- FE-NFR-020 은 capability 를 끄고도 번들이 늘어나는 경우를 막는다.
- §5.11 capability registry — envFlagKey 는 FE-REG-ENV 행 포인터이며
키의 타입·검증은 env registry 가 계속 소유(재진술 금지)
- FE-REG-API 에 protocol/transferMode/operationRef/eventSchema/
resumeStrategy. 실시간 구독은 별도 장부가 아니라 stream operation 이다.
stream 행의 timeoutMs 는 연결 수립 timeout 이지 스트림 수명이 아니다
- FE-REG-STORAGE 에 opfs/cacheStorage backend, payloadClass, evictionOrder.
UPLOAD_PART_STATE 는 correctness 값이라 quota fallback 없음
- error kind 26종. TRANSFER_ABORTED/SUBSCRIPTION_LEAKED/SW_UPDATE_PENDING
은 각각 기존 kind 재사용/gate 결함/surface state 라 제외
- 멀티프로토콜은 기존 ResourceQueryPort/ResourceCommandPort 를 재사용해
신규 port 0개. 프로토콜은 registry 데이터이지 타입이 아니다.
- Image CDN 은 I-O 가 없으므로 adapter 가 아니라 application 정책.
- boot 에 capability 해석 단계 삽입 — 실패하지 않고, 비활성 adapter 는
정적 import 하지 않는다(FE-NFR-020 방어).
- worker/SW 엔트리는 별도 실행 컨텍스트라 상위 layer 를 import 하지 않는다.
설계 스펙의 41개 편집 항목 + 신규 파일 6개 + 기존 파일 7개를
Task 12개로 분해. 코드가 아니라 계약 문서 편집이므로 TDD 순환을
"체크 명령 실패 확인 -> 편집 -> 통과 확인 -> 커밋" 으로 대체했다.
하네스가 삭제돼 결정론 검사기가 없으므로 각 Task 가 자체 grep
검증을 들고 다니고, Task 12 가 참조 무결성·개수 정합·위임 왕복
대조·wikilink 유효성을 총점검한다.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
요청된 9개 능력 묶음을 기존 26개 FE-OC 계약과 대조해 순수 델타
6개 능력 도메인(FE-OC-027~032)으로 분해한 설계 스펙.
- port 12개 신규, 멀티프로토콜은 기존 output port 재사용(신규 port 0)
- capability flag default OFF + FE-GATE-033 이 번들 부재를 증명
- FE-D019(SW default off)를 FE-D034 로 supersede — precaching 은 OFF
유지, push/background sync/Cache Storage 호스트만 opt-in
- FE-REG-CAPABILITY 신설(8→9), 나머지 8개 registry 는 additive 확장
- gate 7 · NFR 5 · runbook 2 · FLOW-FE-EVENT-001~005 추가
- 신규 결정 11건은 근거 raw 부재를 project-local default 로 명시
범위는 port·adapter·registry·gate 까지이며 use case·domain model·
business rule 은 명시적 out of scope.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>