복구된 wiki_consistency_check.py 가 잡은 건. `\bD(\d+)\b` 가 `FE-D034`
안의 D034 를 decision ref 로 읽고, owner 슬러그 뒤 100자 창에 들어와
bare 참조로 판정됐다. D-토큰을 슬러그 앞 열(Decision/Status)로 옮겨
정보 손실 없이 해소했다. --all findings 4 -> 2 (남은 2건은 keycloak
노트의 기존 건으로 이번 범위 밖).
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>
- 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 하지 않는다.