diff --git a/raw/project-notes/ca-skeleton-frontend-operational-contract.md b/raw/project-notes/ca-skeleton-frontend-operational-contract.md index 8e4ac97..a08cdd1 100644 --- a/raw/project-notes/ca-skeleton-frontend-operational-contract.md +++ b/raw/project-notes/ca-skeleton-frontend-operational-contract.md @@ -5,7 +5,7 @@ status: draft confidence: medium tags: [project-note, ca-skeleton, frontend, architecture, testing, observability, security] related_projects: [ca-skeleton-frontend, ca-skeleton] -last_reviewed: 2026-07-18 +last_reviewed: 2026-07-28 diagrams: - raw/diagrams/ca-skeleton-frontend/architecture-overview-2026-07-18.drawio - raw/diagrams/ca-skeleton-frontend/architecture-deployment-2026-07-18.drawio @@ -23,13 +23,13 @@ architecture_review: - raw/diagrams/ca-skeleton-frontend/architecture-overview-2026-07-18.drawio - raw/diagrams/ca-skeleton-frontend/architecture-deployment-2026-07-18.drawio status_label: active -project_revision: 1 +project_revision: 2 url: semantic_surface_exclusions: - artifact-registry|legacy hub has no project-local Artifact Registry; harness/source/typed-contracts.json is authoritative until migration - contract-gate-registry|legacy hub has no project-local Contract/Gate Registry; harness/source/typed-contracts.json is authoritative until migration - flow-stage-registry|legacy hub has no project-local Flow/Stage Registry; harness/source/typed-contracts.json is authoritative until migration -imports: [FE-GATE-018@1, FE-GATE-026@1, FE-OC-002@1, FE-OC-003@1, FE-OC-004@1, FE-OC-005@1, FE-OC-006@1, FE-OC-007@1, FE-OC-008@1, FE-OC-009@1, FE-OC-010@1, FE-OC-011@1, FE-OC-012@1, FE-OC-013@1, FE-OC-014@1, FE-OC-015@1, FE-OC-016@1, FE-OC-017@1, FE-OC-018@1, FE-OC-019@1, FE-OC-020@1, FE-OC-021@1, FE-OC-022@1, FE-OC-023@1, FE-OC-024@1, FE-OC-025@1] +imports: [FE-GATE-018@1, FE-GATE-026@1, FE-OC-002@1, FE-OC-003@1, FE-OC-004@1, FE-OC-005@1, FE-OC-006@1, FE-OC-007@1, FE-OC-008@1, FE-OC-009@1, FE-OC-010@1, FE-OC-011@1, FE-OC-012@1, FE-OC-013@1, FE-OC-014@1, FE-OC-015@1, FE-OC-016@1, FE-OC-017@1, FE-OC-018@1, FE-OC-019@1, FE-OC-020@1, FE-OC-021@1, FE-OC-022@1, FE-OC-023@1, FE-OC-024@1, FE-OC-025@1, FE-OC-027@1, FE-OC-028@1, FE-OC-029@1, FE-OC-030@1, FE-OC-031@1, FE-OC-032@1] --- # CA Skeleton Frontend Operational Contract @@ -2486,7 +2486,7 @@ Repository identity와 implementation/test/CI/deploy evidence 또는 blocking ga | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-001` | `feature-frontend-project-bootstrap-toolchain-contract` | manifest·engines·pnpm lock·checkJs scripts와 frozen install evidence가 존재한다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TOOLCHAIN-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-LANGUAGE-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-BUILD-001@1` | - | `planned` | | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-002` | `feature-frontend-clean-architecture-layering-contract` | directory 책임·port owner·allowed import matrix가 문서와 fixture로 고정된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-ARCHITECTURE-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-PORT-OWNERSHIP-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-COMPOSITION-ROOT-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-001` | `planned` | | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-003` | `feature-frontend-architecture-enforcement-lint-contract` | allowed fixture는 통과하고 forbidden fixture는 실패하며 lint report가 생성된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-ARCHITECTURE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-002`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-017` | `planned` | -| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-004` | `feature-frontend-env-runtime-config-contract` | build/runtime/secret registry와 boot-invalid matrix가 검증된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-RUNTIME-CONFIG-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-CONFIG-FALLBACK-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-001` | `planned` | +| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-004` | `feature-frontend-env-runtime-config-contract` | build/runtime/secret registry와 boot-invalid matrix가 검증되고, capability registry와 default-off 번들 검증이 통과한다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-RUNTIME-CONFIG-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-CONFIG-FALLBACK-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-CAPABILITY-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-001` | `planned` | | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-005` | `feature-api-client-response-envelope-contract` | API registry와 timeout·abort·retry·idempotency deterministic tests가 통과한다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TIMEOUT-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-RETRY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-IDEMPOTENCY-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-004`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-002` | `planned` | | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-006` | `feature-runtime-schema-validation-contract` | content-type·JSON·envelope·payload invalid fixture가 기대 failure kind로 정규화된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-VALIDATION-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-005` | `planned` | | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-007` | `feature-frontend-error-classification-boundary-contract` | normalization matrix와 raw body·stack leakage negative test가 통과한다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-VALIDATION-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-005`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-006` | `planned` | @@ -2510,12 +2510,18 @@ Repository identity와 implementation/test/CI/deploy evidence 또는 blocking ga | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-025` | `feature-web-vitals-performance-budget-contract` | context metadata와 lab·bundle·28-day field report가 생성된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-BUILD-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TEST-STACK-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-020`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-016` | `planned` | | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-026` | `feature-frontend-operational-runbook-contract` | 5개 drill의 trigger·window·escalation·evidence assertion이 검증된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-DEPLOYMENT-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TELEMETRY-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-024`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-005`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-012`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-004` | `planned` | | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-027` | `feature-frontend-ci-quality-gates-contract` | blocking gate가 분리되고 dependency graph와 artifact retention이 검증된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TEST-STACK-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SUPPLY-CHAIN-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-DEPLOYMENT-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-017`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-020`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-024`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-025`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-026` | `planned` | +| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-028` | `feature-frontend-binary-file-io-store-contract` | picker·다운로드·object URL 해제·quota·OPFS·Cache Storage fixture가 통과하고 binary I-O report가 생성된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-CAPABILITY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-BINARY-STORE-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-REGISTRY-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-002`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-011` | `planned` | +| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-029` | `feature-frontend-cache-tier-cross-tab-invalidation-contract` | version 파티션·탭 간 무효화·채널 부재 fallback fixture가 통과한다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-CAPABILITY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-CROSS-TAB-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SERVER-STATE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-010`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-011` | `planned` | +| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-030` | `feature-frontend-large-object-transfer-contract` | presign 만료·part 재시도·무결성·credential 경계 fixture가 통과한다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-CAPABILITY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TRANSFER-CREDENTIAL-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-RESUMABLE-TRANSFER-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-005`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-028` | `planned` | +| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-031` | `feature-frontend-multi-protocol-api-transport-contract` | protocol별 성공/실패 정규화와 gateway fallback fixture가 통과한다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-CAPABILITY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-PROTOCOL-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-VALIDATION-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-005`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-006`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-007` | `planned` | +| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-032` | `feature-frontend-realtime-subscription-lifecycle-contract` | backoff·resume·구독 해제·이벤트 검증 fixture와 `FE-RB-006` drill이 통과한다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-CAPABILITY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-REALTIME-TRANSPORT-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-REALTIME-LIFECYCLE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-006`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-007`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-013` | `planned` | +| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-033` | `feature-frontend-background-execution-worker-contract` | SW update UX·rollback SW 되돌림·sync idempotency·worker timeout fixture와 `FE-RB-007` drill이 통과한다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-CAPABILITY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SERVICE-WORKER-ROLE-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-BACKGROUND-SYNC-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-WORKER-TASK-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-005`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-024` | `planned` | ## 20. Branch Decomposition / Execution Plan > **Legacy reference (v1).** 아래 표는 기존 FE-OC ownership·priority 설명을 보존한다. branch handoff ID·decision pin·dependency의 SSOT는 위 Work Item Registry다. -Branch는 project-wide contract를 상세 implementation-ready spec으로 내린다. `Primary contract IDs`는 single owner만 가지며 `Contributes to`는 acceptance fixture·adapter·gate 협업만 뜻한다. `FE-OC-001`과 `FE-OC-026`의 primary owner는 이 project hub다. 아래 27개 branch-note는 2026-07-18 `/branch` scaffolding으로 생성되어 §21.2 Cluster에 연결됐다. 파일 존재는 implementation evidence가 아니며, 각 row의 mechanism·decision·test가 채워지기 전까지 상태는 계속 `planned`다. +Branch는 project-wide contract를 상세 implementation-ready spec으로 내린다. `Primary contract IDs`는 single owner만 가지며 `Contributes to`는 acceptance fixture·adapter·gate 협업만 뜻한다. `FE-OC-001`과 `FE-OC-026`의 primary owner는 이 project hub다. 아래 33개 branch-note 중 27개는 2026-07-18 scaffolding으로, 6개는 2026-07-28 runtime capability 확장으로 생성되어 §21.2 Cluster에 연결됐다. 파일 존재는 implementation evidence가 아니며, 각 row의 mechanism·decision·test가 채워지기 전까지 상태는 계속 `planned`다. | Branch slug | Primary contract IDs | Contributes to | Measurable completion | Priority | Dependency | | --- | --- | --- | --- | --- | --- | @@ -2546,6 +2552,14 @@ Branch는 project-wide contract를 상세 implementation-ready spec으로 내린 | `feature-web-vitals-performance-budget-contract` | `FE-OC-021` | `FE-OC-016`, `FE-OC-020` | context metadata + lab/bundle/28-day field reports | P3 | `feature-frontend-build-bundle-supply-chain-contract`, `feature-sample-feature-slice-contract-fixture` | | `feature-frontend-operational-runbook-contract` | `FE-OC-025` | `FE-OC-004`, `FE-OC-006`, `FE-OC-014`, `FE-OC-016`, `FE-OC-017` | five drills with trigger/window/escalation/evidence assertions | P3 | `feature-frontend-release-cache-rollback-contract`, `feature-api-client-response-envelope-contract`, `feature-frontend-observability-logging-trace-contract`, `feature-frontend-env-runtime-config-contract` | | `feature-frontend-ci-quality-gates-contract` | — | `FE-OC-020`, `FE-OC-021`, `FE-OC-022`, `FE-OC-023`, `FE-OC-024`, `FE-OC-025` | separate blocking gates, dependency graph, artifact retention | P3 | `feature-frontend-test-taxonomy-contract`, `feature-frontend-build-bundle-supply-chain-contract`, `feature-frontend-release-cache-rollback-contract`, `feature-web-vitals-performance-budget-contract`, `feature-frontend-operational-runbook-contract` | +| `feature-frontend-binary-file-io-store-contract` | `FE-OC-027` | `FE-OC-013`, `FE-OC-022`, `FE-OC-029` | picker/다운로드/object URL 해제/quota/OPFS/Cache Storage fixtures + binary I-O report | P4 | `feature-frontend-storage-registry-contract`, `feature-frontend-clean-architecture-layering-contract` | +| `feature-frontend-cache-tier-cross-tab-invalidation-contract` | `FE-OC-028` | `FE-OC-012`, `FE-OC-013`, `FE-OC-023` | version 파티션 + 탭 간 무효화 + 채널 부재 fallback fixtures | P4 | `feature-server-state-caching-contract`, `feature-frontend-storage-registry-contract` | +| `feature-frontend-large-object-transfer-contract` | `FE-OC-029` | `FE-OC-006`, `FE-OC-019`, `FE-OC-027` | presign 만료/part 재시도/무결성/credential 경계 fixtures | P4 | `feature-api-client-response-envelope-contract`, `feature-frontend-binary-file-io-store-contract` | +| `feature-frontend-multi-protocol-api-transport-contract` | `FE-OC-030` | `FE-OC-006`, `FE-OC-007`, `FE-OC-008` | protocol별 성공/실패 정규화 + gateway fallback fixtures | P4 | `feature-api-client-response-envelope-contract`, `feature-runtime-schema-validation-contract`, `feature-frontend-error-classification-boundary-contract` | +| `feature-frontend-realtime-subscription-lifecycle-contract` | `FE-OC-031` | `FE-OC-007`, `FE-OC-008`, `FE-OC-011`, `FE-OC-025` | backoff/resume/구독 해제/이벤트 검증 fixtures + `FE-RB-006` drill | P4 | `feature-runtime-schema-validation-contract`, `feature-frontend-error-classification-boundary-contract`, `feature-async-ui-state-contract` | +| `feature-frontend-background-execution-worker-contract` | `FE-OC-032` | `FE-OC-009`, `FE-OC-016`, `FE-OC-017`, `FE-OC-025` | SW update UX/rollback SW 되돌림/sync idempotency/worker timeout fixtures + `FE-RB-007` drill | P4 | `feature-frontend-release-cache-rollback-contract`, `feature-api-client-response-envelope-contract` | + +`P4`는 2026-07-28에 추가한 계층이다. P1~P3의 핵심 skeleton이 완성된 뒤 착수하는 **opt-in capability**를 뜻하며, 이 계층의 branch가 미완이어도 `MERGE_READY`는 `FE-GATE-033`만으로 성립한다(§15.3). Branch creation workflow: @@ -2593,6 +2607,12 @@ Branch completion MUST update this table, Cluster, evidence ledger, and readines | `FE-OC-023@1` | [[raw/branch-notes/feature-frontend-contract-compatibility-governance]] | API/config/storage/release schema의 breaking change는 migration 또는 version bump 없이 배포하면 안 됨 | import 참조로 적용 | | `FE-OC-024@1` | [[raw/branch-notes/feature-sample-feature-slice-contract-fixture]] | sample은 contract fixture이며 production feature가 의존하면 안 됨 | import 참조로 적용 | | `FE-OC-025@1` | [[raw/branch-notes/feature-frontend-operational-runbook-contract]] | boot, chunk mismatch, API degradation, telemetry failure, rollback, realtime 연결, background 실행 runbook을 MUST 유지 | import 참조로 적용 | +| `FE-OC-027@1` | [[raw/branch-notes/feature-frontend-binary-file-io-store-contract]] | 파일 선택·다운로드·로컬 바이너리 저장은 등록된 port를 MUST 경유하고, 원시 `File`/`Blob` handle과 object URL 수명은 adapter 경계를 MUST NOT 벗어남 | import 참조로 적용 | +| `FE-OC-028@1` | [[raw/branch-notes/feature-frontend-cache-tier-cross-tab-invalidation-contract]] | 캐시 계층과 탭 간 무효화는 `QueryCachePort` 정책과 registry를 MUST 경유하고, release·config·API version이 불일치하는 영속 캐시를 MUST NOT 재사용 | import 참조로 적용 | +| `FE-OC-029@1` | [[raw/branch-notes/feature-frontend-large-object-transfer-contract]] | 대용량 전송은 presigned 획득과 byte 전송의 credential 경계를 MUST 분리하고, 재개 가능 전송의 part 상태·무결성·취소를 MUST 소유 | import 참조로 적용 | +| `FE-OC-030@1` | [[raw/branch-notes/feature-frontend-multi-protocol-api-transport-contract]] | 모든 protocol adapter는 동일한 application output port를 구현하고 protocol별 성공/실패를 정규화된 failure로 MUST 매핑하며, transport status만으로 성공을 판정하면 안 됨 | import 참조로 적용 | +| `FE-OC-031@1` | [[raw/branch-notes/feature-frontend-realtime-subscription-lifecycle-contract]] | 실시간 구독은 연결·재연결·재개·이벤트 검증·해제를 MUST 계약하고, 스키마 미검증 이벤트를 application으로 MUST NOT 전달하며 unmount 후 열린 구독을 MUST NOT 남김 | import 참조로 적용 | +| `FE-OC-032@1` | [[raw/branch-notes/feature-frontend-background-execution-worker-contract]] | 백그라운드 실행은 명시 owner·update UX·idempotency 조건을 MUST 갖추고, precaching으로 release coherence를 MUST NOT 훼손 | import 참조로 적용 | @@ -2621,17 +2641,23 @@ Branch completion MUST update this table, Cluster, evidence ledger, and readines - [[raw/branch-notes/feature-boundary-mapper-viewmodel-contract]] - [[raw/branch-notes/feature-frontend-architecture-enforcement-lint-contract]] - [[raw/branch-notes/feature-frontend-auth-session-integration-contract]] +- [[raw/branch-notes/feature-frontend-background-execution-worker-contract]] +- [[raw/branch-notes/feature-frontend-binary-file-io-store-contract]] - [[raw/branch-notes/feature-frontend-browser-security-boundary-contract]] - [[raw/branch-notes/feature-frontend-build-bundle-supply-chain-contract]] +- [[raw/branch-notes/feature-frontend-cache-tier-cross-tab-invalidation-contract]] - [[raw/branch-notes/feature-frontend-ci-quality-gates-contract]] - [[raw/branch-notes/feature-frontend-clean-architecture-layering-contract]] - [[raw/branch-notes/feature-frontend-contract-compatibility-governance]] - [[raw/branch-notes/feature-frontend-contract-registry-governance]] - [[raw/branch-notes/feature-frontend-env-runtime-config-contract]] - [[raw/branch-notes/feature-frontend-error-classification-boundary-contract]] +- [[raw/branch-notes/feature-frontend-large-object-transfer-contract]] +- [[raw/branch-notes/feature-frontend-multi-protocol-api-transport-contract]] - [[raw/branch-notes/feature-frontend-observability-logging-trace-contract]] - [[raw/branch-notes/feature-frontend-operational-runbook-contract]] - [[raw/branch-notes/feature-frontend-project-bootstrap-toolchain-contract]] +- [[raw/branch-notes/feature-frontend-realtime-subscription-lifecycle-contract]] - [[raw/branch-notes/feature-frontend-release-cache-rollback-contract]] - [[raw/branch-notes/feature-frontend-render-recovery-boundary-contract]] - [[raw/branch-notes/feature-frontend-storage-registry-contract]] @@ -2673,6 +2699,12 @@ Branch completion MUST update this table, Cluster, evidence ledger, and readines - [[raw/branch-notes/feature-web-vitals-performance-budget-contract]] — Web Vitals·performance budget contract - [[raw/branch-notes/feature-frontend-operational-runbook-contract]] — frontend operational runbook contract - [[raw/branch-notes/feature-frontend-ci-quality-gates-contract]] — CI quality-gate orchestration contract +- [[raw/branch-notes/feature-frontend-binary-file-io-store-contract]] — 바이너리/파일 I-O·로컬 대용량 저장 contract +- [[raw/branch-notes/feature-frontend-cache-tier-cross-tab-invalidation-contract]] — 캐시 계층·탭 간 무효화 contract +- [[raw/branch-notes/feature-frontend-large-object-transfer-contract]] — 대용량 객체 전송 contract +- [[raw/branch-notes/feature-frontend-multi-protocol-api-transport-contract]] — 멀티프로토콜 API transport contract +- [[raw/branch-notes/feature-frontend-realtime-subscription-lifecycle-contract]] — 실시간 구독 수명주기 contract +- [[raw/branch-notes/feature-frontend-background-execution-worker-contract]] — 백그라운드 실행 contract ### 21.3 근거 자료 @@ -2761,12 +2793,12 @@ repository 생성 후 로 검증할 예정이다. - [x] stable `FE-D*` decision register가 있음 - [x] stable `FE-OC-*` contract index가 있음 - [x] application-owned port와 composition root가 명시됨 -- [x] route/API-operation/env/storage/error/query/telemetry/release 8개 registry owner가 있음 +- [x] route/API-operation/env/storage/error/query/telemetry/release/capability 9개 registry owner가 있음 - [x] failure taxonomy와 retry/fallback/UX/telemetry가 있음 - [x] build/runtime/secret config 구분이 있음 - [x] NFR context와 planned command가 있음 - [x] acceptance gate와 evidence artifact가 있음 -- [x] runbook 5종이 있음 +- [x] runbook 7종이 있음 - [x] binary readiness가 `NOT_READY`로 계산됨 - [x] risks/questions에 owner·trigger·resolution이 있음 - [x] branch가 contract ID에 매핑됨 @@ -2858,6 +2890,17 @@ rg -n 'architecture-(overview|deployment)-2026-07-18.drawio' raw/project-notes/c - [ ] CI gate dependency와 artifact retention 확정 - [ ] staging rollback drill 수행 +### P4 — Opt-in runtime capability + +- [ ] `feature-frontend-binary-file-io-store-contract` 설계·depth gate +- [ ] `feature-frontend-cache-tier-cross-tab-invalidation-contract` 설계·depth gate +- [ ] `feature-frontend-large-object-transfer-contract` 설계·depth gate +- [ ] `feature-frontend-multi-protocol-api-transport-contract` 설계·depth gate +- [ ] `feature-frontend-realtime-subscription-lifecycle-contract` 설계·depth gate +- [ ] `feature-frontend-background-execution-worker-contract` 설계·depth gate +- [ ] 6개 도메인의 근거 raw 자료 수집 (`FE-Q-011`) +- [ ] `FE-GATE-033` capability default-off 번들 검증 구현 + ### Promotion - [ ] 모든 implementation claim에 repo/commit/path 연결 @@ -2879,5 +2922,6 @@ rg -n 'architecture-(overview|deployment)-2026-07-18.drawio' raw/project-notes/c | NFR measurement | `planned` | target/context only | | release / rollback | `planned` | policy/runbook only; dedicated deploy evidence `UNVERIFIED` | | production operation | `planned` | release evidence `UNVERIFIED` | +| opt-in runtime capability | `planned` | 설계와 계약만 존재; adapter·gate evidence `UNVERIFIED` | 최종 현재 판정은 `NOT_READY`다. diagram review는 통과했지만 repository, test, deploy, release evidence가 채워질 때까지 이 판정을 유지한다.