2 lines
367 KiB
JSON
2 lines
367 KiB
JSON
{"audit_request":{"assertions":[{"assertion_id":"A-ARCH-01","condition":"component responsibility table","line_end":458,"line_start":458,"modality":"must","object":"framework-neutral model, value semantics, pure policy","predicate":"owns","quote":"| `domain` | framework-neutral model, value semantics, pure policy | standard JavaScript only | React, router, Query, fetch, storage, telemetry | `planned` |","scope":"domain layer","source_surface":"SURF-6D234653CBFFF7A099EF","subject":"domain layer"},{"assertion_id":"A-ARCH-02","condition":"component responsibility MUST NOT own column","line_end":458,"line_start":458,"modality":"must_not","object":"owning React, router, Query, fetch, storage, telemetry","predicate":"forbids","quote":"| `domain` | framework-neutral model, value semantics, pure policy | standard JavaScript only | React, router, Query, fetch, storage, telemetry | `planned` |","scope":"domain layer","source_surface":"SURF-6D234653CBFFF7A099EF","subject":"domain layer"},{"assertion_id":"A-ARCH-03","condition":"component responsibility table","line_end":459,"line_start":459,"modality":"must","object":"use case, input/output port, QueryCachePort policy, orchestration, view-model contract","predicate":"owns","quote":"| `application` | use case, input/output port, `QueryCachePort` policy, orchestration, view-model contract | domain | concrete adapter, browser global, React component | `planned` |","scope":"application layer","source_surface":"SURF-6D234653CBFFF7A099EF","subject":"application layer"},{"assertion_id":"A-ARCH-04","condition":"component responsibility table","line_end":460,"line_start":460,"modality":"must","object":"page/component, user event, view state rendering","predicate":"owns","quote":"| `presentation` | page/component, user event, view state rendering | application public API | raw API DTO, fetch, storage key, telemetry transport | `planned` |","scope":"presentation layer","source_surface":"SURF-6D234653CBFFF7A099EF","subject":"presentation layer"},{"assertion_id":"A-ARCH-05","condition":"component responsibility table","line_end":461,"line_start":461,"modality":"must","object":"application output port implementation, envelope/schema/error mapping","predicate":"owns","quote":"| `adapters/http` | application output port implementation, envelope/schema/error mapping | application port, browser fetch | use-case policy, component rendering | `planned` |","scope":"adapters/http","source_surface":"SURF-6D234653CBFFF7A099EF","subject":"adapters/http"},{"assertion_id":"A-ARCH-06","condition":"component responsibility table","line_end":464,"line_start":464,"modality":"must","object":"application-owned QueryCachePort implementation, TanStack Query key/invalidation bridge","predicate":"owns","quote":"| `adapters/query-cache` | application-owned `QueryCachePort` implementation, TanStack Query key/invalidation bridge | application port, TanStack Query | use-case policy, page-local query key | `planned` |","scope":"adapters/query-cache","source_surface":"SURF-6D234653CBFFF7A099EF","subject":"adapters/query-cache"},{"assertion_id":"A-ARCH-07","condition":"component responsibility table","line_end":465,"line_start":465,"modality":"must","object":"config load, adapter construction, dependency injection, React mount","predicate":"owns","quote":"| `bootstrap` | config load, adapter construction, dependency injection, React mount | all runtime modules | business rule, page-specific orchestration | `planned` |","scope":"bootstrap","source_surface":"SURF-6D234653CBFFF7A099EF","subject":"bootstrap"},{"assertion_id":"A-ARCH-08","condition":"normative dependency summary","line_end":484,"line_start":484,"modality":"must_not","object":"concrete import of application -> adapters","predicate":"forbids","quote":"- `application -> adapters` concrete import는 `MUST NOT`이다.","scope":"layer dependency direction","source_surface":"SURF-6D234653CBFFF7A099EF","subject":"application layer"},{"assertion_id":"A-ARCH-09","condition":"normative dependency summary","line_end":485,"line_start":485,"modality":"must","object":"output port definition","predicate":"owns","quote":"- output port definition은 `application`이 `MUST` 소유한다.","scope":"port ownership","source_surface":"SURF-6D234653CBFFF7A099EF","subject":"application layer"},{"assertion_id":"A-ARCH-10","condition":"normative dependency summary; exclusive","line_end":488,"line_start":488,"modality":"must","object":"assembling concrete adapters (only bootstrap may)","predicate":"owns","quote":"- bootstrap만 concrete adapter를 조립할 수 있다.","scope":"composition root","source_surface":"SURF-6D234653CBFFF7A099EF","subject":"bootstrap"},{"assertion_id":"A-ARCH-11","condition":"port ownership matrix row QueryCachePort","line_end":496,"line_start":496,"modality":"must","object":"ResourceQueryPort/ResourceCommandPort/QueryCachePort definition; planned implementation is adapters/query-cache (TanStack Query)","predicate":"owns","quote":"| `QueryCachePort` | `application` | `adapters/query-cache` (`TanStack Query`) | application query/mutation orchestration | registry query key + cache command → cache state/invalidation result | `QUERY_CACHE_FAILURE` |","scope":"port ownership matrix","source_surface":"SURF-6D234653CBFFF7A099EF","subject":"application layer"},{"assertion_id":"A-ARCH-12","condition":"port ownership matrix row AuthSessionPort","line_end":497,"line_start":497,"modality":"must","object":"AuthSessionPort definition; planned implementation is external auth adapter; consumer routing + API client interceptor","predicate":"owns","quote":"| `AuthSessionPort` | `application` integration boundary | external auth adapter | routing + API client interceptor | opaque session state / request header callback | `AuthRequired`, `AuthIntegrationFailure` |","scope":"port ownership matrix","source_surface":"SURF-6D234653CBFFF7A099EF","subject":"application integration boundary"},{"assertion_id":"A-ARCH-13","condition":"AuthSessionPort note","line_end":503,"line_start":503,"modality":"must","object":"implementation detail decided by auth owner; prefers header supplier/opaque callback over returning token string as domain/application model","predicate":"delegates","quote":"`AuthSessionPort`는 token 문자열을 domain/application model로 반환하지 않는 형태를 우선한다. header supplier나 opaque credential attachment callback을 사용하고, 구현 세부는 auth owner가 정한다.","scope":"auth boundary","source_surface":"SURF-6D234653CBFFF7A099EF","subject":"AuthSessionPort"},{"assertion_id":"A-ARCH-14","condition":"composition root boot order failure","line_end":527,"line_start":527,"modality":"must","object":"if steps 2-4 fail do not mount product route and render only boot error shell; telemetry adapter creation failure continues via console-safe fallback","predicate":"has_failure_behavior","quote":"2~4단계가 실패하면 product route를 mount하지 않고 boot error shell만 렌더한다. telemetry adapter 생성 실패는 console-safe fallback으로 계속 진행할 수 있다.","scope":"composition root boot order","source_surface":"SURF-6D234653CBFFF7A099EF","subject":"bootstrap"},{"assertion_id":"A-ARCH-15","condition":"diagram review evidence","line_end":452,"line_start":452,"modality":"observed","object":"each received 100/100 PASS in wiki-diagram-reviewer rules/diagram-standards.md v2; PASS scope limited to dependency ownership view and static asset/config delivery slice; does not prove full release/rollback topology, real impl topology, or hosting state","predicate":"other","quote":"두 파일은 `wiki-diagram-reviewer`의 `rules/diagram-standards.md` v2 심사에서 각각 100/100 PASS를 받았다. PASS scope는 overview의 Clean Architecture dependency ownership view와 deployment의 static asset·`/config.json` delivery slice다. §12 전체 release/rollback topology, 실제 구현 topology, hosting 상태는 이 review가 증명하지 않는다. 근거: `docs/superpowers/specs/2026-07-18-ca-skeleton-frontend-operational-contract-review/diagram-review.md`.","scope":"4.1 architecture diagrams","source_surface":"SURF-6D234653CBFFF7A099EF","subject":"architecture-overview and architecture-deployment diagrams"},{"assertion_id":"A-ART-01","condition":"artifact registry row ART-FE-001","line_end":287,"line_start":287,"modality":"must","object":"ART-FE-001 build manifest (schema owner same branch)","predicate":"produces","quote":"| `ART-FE-001` | 1 | build manifest | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-build-bundle-supply-chain-contract`, `feature-frontend-release-cache-rollback-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/build-manifest.schema.json` | active |","scope":"artifact registry","source_surface":"SURF-B232E25AF69C949EA49F","subject":"feature-frontend-project-bootstrap-toolchain-contract"},{"assertion_id":"A-ART-02","condition":"artifact registry row ART-FE-001 consumers","line_end":287,"line_start":287,"modality":"must","object":"ART-FE-001 build manifest","predicate":"consumes","quote":"| `ART-FE-001` | 1 | build manifest | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-build-bundle-supply-chain-contract`, `feature-frontend-release-cache-rollback-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/build-manifest.schema.json` | active |","scope":"artifact registry","source_surface":"SURF-B232E25AF69C949EA49F","subject":"feature-frontend-build-bundle-supply-chain-contract, feature-frontend-release-cache-rollback-contract, feature-frontend-test-taxonomy-contract"},{"assertion_id":"A-ART-03","condition":"artifact registry row ART-FE-002","line_end":288,"line_start":288,"modality":"must","object":"ART-FE-002 bundle report (schema owner same branch)","predicate":"produces","quote":"| `ART-FE-002` | 1 | bundle report | `feature-frontend-build-bundle-supply-chain-contract` | `feature-frontend-build-bundle-supply-chain-contract` | `feature-web-vitals-performance-budget-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/bundle-report.schema.json` | active |","scope":"artifact registry","source_surface":"SURF-B232E25AF69C949EA49F","subject":"feature-frontend-build-bundle-supply-chain-contract"},{"assertion_id":"A-ART-04","condition":"artifact registry row ART-FE-002 consumers","line_end":288,"line_start":288,"modality":"must","object":"ART-FE-002 bundle report","predicate":"consumes","quote":"| `ART-FE-002` | 1 | bundle report | `feature-frontend-build-bundle-supply-chain-contract` | `feature-frontend-build-bundle-supply-chain-contract` | `feature-web-vitals-performance-budget-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/bundle-report.schema.json` | active |","scope":"artifact registry","source_surface":"SURF-B232E25AF69C949EA49F","subject":"feature-web-vitals-performance-budget-contract, feature-frontend-test-taxonomy-contract"},{"assertion_id":"A-ART-05","condition":"artifact registry row ART-FE-003","line_end":289,"line_start":289,"modality":"must","object":"ART-FE-003 release verification (schema owner same branch)","predicate":"produces","quote":"| `ART-FE-003` | 1 | release verification | `feature-frontend-release-cache-rollback-contract` | `feature-frontend-release-cache-rollback-contract` | `feature-frontend-contract-compatibility-governance` | `harness/source/artifact-schemas/ca-skeleton-frontend/release-verification.schema.json` | active |","scope":"artifact registry","source_surface":"SURF-B232E25AF69C949EA49F","subject":"feature-frontend-release-cache-rollback-contract"},{"assertion_id":"A-ART-06","condition":"artifact registry row ART-FE-003 consumer","line_end":289,"line_start":289,"modality":"must","object":"ART-FE-003 release verification","predicate":"consumes","quote":"| `ART-FE-003` | 1 | release verification | `feature-frontend-release-cache-rollback-contract` | `feature-frontend-release-cache-rollback-contract` | `feature-frontend-contract-compatibility-governance` | `harness/source/artifact-schemas/ca-skeleton-frontend/release-verification.schema.json` | active |","scope":"artifact registry","source_surface":"SURF-B232E25AF69C949EA49F","subject":"feature-frontend-contract-compatibility-governance"},{"assertion_id":"A-ART-07","condition":"artifact registry row ART-FE-004","line_end":290,"line_start":290,"modality":"must","object":"ART-FE-004 a11y report (schema owner same branch)","predicate":"produces","quote":"| `ART-FE-004` | 1 | a11y report | `feature-accessibility-baseline-contract` | `feature-accessibility-baseline-contract` | `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/a11y-report.schema.json` | active |","scope":"artifact registry","source_surface":"SURF-B232E25AF69C949EA49F","subject":"feature-accessibility-baseline-contract"},{"assertion_id":"A-ART-08","condition":"artifact registry row ART-FE-004 consumer","line_end":290,"line_start":290,"modality":"must","object":"ART-FE-004 a11y report","predicate":"consumes","quote":"| `ART-FE-004` | 1 | a11y report | `feature-accessibility-baseline-contract` | `feature-accessibility-baseline-contract` | `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/a11y-report.schema.json` | active |","scope":"artifact registry","source_surface":"SURF-B232E25AF69C949EA49F","subject":"feature-frontend-test-taxonomy-contract"},{"assertion_id":"A-ART-09","condition":"artifact registry governance","line_end":282,"line_start":282,"modality":"must","object":"sole decision on field add/rename; consuming branch pins imports ART-FE-0NN@1 instead of copying schema; checker verifies Schema Ref file exists","predicate":"owns","quote":"> `Schema Ref` 는 실제 JSON Schema 파일이며 검사기가 존재를 확인한다. 필드 추가·rename 은 `Schema Owner` 단독 결정이고, 소비 branch 는 본문에 스키마를 옮겨 적지 않고 frontmatter `imports` 에 `ART-FE-0NN@1` 로 pin 한다.","scope":"artifact registry governance","source_surface":"SURF-B232E25AF69C949EA49F","subject":"Schema Owner"},{"assertion_id":"A-ART-10","condition":"artifact registry naming convention","line_end":283,"line_start":283,"modality":"must","object":"camelCase unified for artifacts/** report files only; telemetry attribute vocabulary (snake_case) is a separate convention","predicate":"enforces","quote":"> **JSON artifact 필드 명명은 camelCase** 로 통일한다 — `artifacts/**` 의 report 파일에 한하며, telemetry attribute 어휘(§11.1 allowlist, snake_case)는 별개 규약이다.","scope":"artifacts/** report files","source_surface":"SURF-B232E25AF69C949EA49F","subject":"JSON artifact field naming"},{"assertion_id":"A-CG-01","condition":"contract registry governance","line_end":216,"line_start":216,"modality":"must","object":"pin this table via frontmatter imports FE-OC-0NN@1 without copying it","predicate":"requires","quote":"> 소비 문서는 이 표를 **복사하지 않고** frontmatter `imports` 에 `FE-OC-0NN@1` 로 pin 한다.","scope":"contract registry","source_surface":"SURF-8B1D68DCEF33CBA9980E","subject":"consuming documents"},{"assertion_id":"A-CG-02","condition":"contract registry governance","line_end":217,"line_start":217,"modality":"must","object":"stale pin -> STALE_IMPORTED_CONTRACT; two owners of same contract -> DUPLICATE_CONTRACT_OWNER; restating a foreign contract table -> FOREIGN_CONTRACT_RESTATEMENT","predicate":"enforces","quote":"> owner 가 revision 을 올리면 pin 이 낡은 문서가 `STALE_IMPORTED_CONTRACT` 로 잡히고, 두 문서가 같은 계약을 소유하면 `DUPLICATE_CONTRACT_OWNER` 로 막힌다. 남의 계약 표를 다시 적으면 `FOREIGN_CONTRACT_RESTATEMENT` 다.","scope":"contract registry","source_surface":"SURF-8B1D68DCEF33CBA9980E","subject":"contract registry"},{"assertion_id":"A-CG-03","condition":"contract registry governance","line_end":218,"line_start":218,"modality":"must","object":"FE-OC-001 and FE-OC-026 (Owner value is document slug)","predicate":"owns","quote":"> `Owner` 값은 문서 slug 다. `FE-OC-001`·`FE-OC-026` 은 §20 서두가 밝힌 대로 이 project hub 가 owner 다.","scope":"contract registry ownership","source_surface":"SURF-8B1D68DCEF33CBA9980E","subject":"ca-skeleton-frontend-operational-contract (this project hub)"},{"assertion_id":"A-CG-04","condition":"gate ownership governance","line_end":220,"line_start":220,"modality":"must","object":"SSOT for gate Owner and Revision; fixture, Covered FE-OC, and pass condition norms remain owned by §15.1","predicate":"owns","quote":"> gate(`FE-GATE-*`) 행의 `Owner` 와 `Revision` 은 이 표가 SSOT 다. 각 gate 의 fixture·`Covered FE-OC`·pass condition 규범은 §15.1 이 계속 보유하며 여기로 옮기지 않는다 — 이 표는 *누가 소유하고 몇 번째 판인가*, §15.1 은 *무엇을 검사하는가* 다.","scope":"gate registry","source_surface":"SURF-8B1D68DCEF33CBA9980E","subject":"contract registry table"},{"assertion_id":"A-CG-05","condition":"gate ownership governance","line_end":221,"line_start":221,"modality":"must","object":"Owner is the branch that produces the §15.1 Evidence artifact; FE-GATE-017 is hub-owned because the reviewed diagram is hub frontmatter diagrams: property","predicate":"other","quote":"> Owner 는 §15.1 의 `Evidence artifact` 를 §20 `Measurable completion` 이 실제로 산출하는 branch 다. `FE-GATE-017` 만 검토 대상 다이어그램이 hub frontmatter `diagrams:` 소유이므로 hub 가 owner 다.","scope":"gate registry","source_surface":"SURF-8B1D68DCEF33CBA9980E","subject":"contract registry"},{"assertion_id":"A-CG-06","condition":"contract registry row FE-OC-001","line_end":225,"line_start":225,"modality":"must","object":"FE-OC-001 fe.evidence-grade: implementation claims MUST show evidence grade and MUST NOT claim completion without repo evidence","predicate":"owns","quote":"| `FE-OC-001` | `fe.evidence-grade` | 1 | operational-contract | `ca-skeleton-frontend-operational-contract` | 구현 주장을 문서에 쓸 때 | 모든 구현 주장은 evidence grade를 MUST 표시하고 repo evidence가 없는 상태에서 구현 완료를 MUST NOT 주장 | evidence ledger | active |","scope":"evidence-grade contract","source_surface":"SURF-8B1D68DCEF33CBA9980E","subject":"ca-skeleton-frontend-operational-contract"},{"assertion_id":"A-CG-07","condition":"contract registry row FE-OC-002","line_end":226,"line_start":226,"modality":"must","object":"FE-OC-002 fe.clean-architecture-layering: MUST keep domain <- application <- presentation direction and application-owned output port","predicate":"owns","quote":"| `FE-OC-002` | `fe.clean-architecture-layering` | 1 | operational-contract | `feature-frontend-clean-architecture-layering-contract` | layer 간 import 를 추가·변경할 때 | `domain <- application <- presentation` 의존 방향과 application-owned output port를 MUST 지킴 | dependency rule report | active |","scope":"clean-architecture-layering contract","source_surface":"SURF-8B1D68DCEF33CBA9980E","subject":"feature-frontend-clean-architecture-layering-contract"},{"assertion_id":"A-CG-08","condition":"contract registry row FE-OC-005","line_end":229,"line_start":229,"modality":"must","object":"FE-OC-005 fe.routing-navigation-guard: route ID/path/params/access/loading/error owner must be one route registry","predicate":"owns","quote":"| `FE-OC-005` | `fe.routing-navigation-guard` | 1 | operational-contract | `feature-routing-navigation-guard-contract` | route 를 추가·변경할 때 | route ID/path/params/access/loading/error owner는 route registry 하나여야 함 | route registry snapshot | active |","scope":"routing-navigation-guard contract","source_surface":"SURF-8B1D68DCEF33CBA9980E","subject":"feature-routing-navigation-guard-contract"},{"assertion_id":"A-CG-09","condition":"contract registry row FE-OC-006","line_end":230,"line_start":230,"modality":"must","object":"FE-OC-006 fe.api-client.shared-transport: all HTTP MUST pass shared client; page MUST NOT implement timeout/abort/response parsing","predicate":"owns","quote":"| `FE-OC-006` | `fe.api-client.shared-transport` | 1 | operational-contract | `feature-api-client-response-envelope-contract` | HTTP 요청을 보낼 때 | 모든 HTTP는 shared client를 MUST 통과하고 timeout·abort·response parsing을 page에서 구현하면 안 됨 | API contract tests | active |","scope":"api-client shared-transport contract","source_surface":"SURF-8B1D68DCEF33CBA9980E","subject":"feature-api-client-response-envelope-contract"},{"assertion_id":"A-CG-10","condition":"contract registry row FE-OC-010","line_end":234,"line_start":234,"modality":"must","object":"FE-OC-010 fe.auth-session-integration: skeleton consumes session state but MUST NOT own token lifecycle","predicate":"owns","quote":"| `FE-OC-010` | `fe.auth-session-integration` | 1 | operational-contract | `feature-frontend-auth-session-integration-contract` | session 상태를 읽거나 갱신할 때 | skeleton은 session state를 소비하되 token lifecycle을 MUST 소유하지 않음 | port contract test | active |","scope":"auth-session-integration contract","source_surface":"SURF-8B1D68DCEF33CBA9980E","subject":"feature-frontend-auth-session-integration-contract"},{"assertion_id":"A-CG-11","condition":"contract registry row FE-OC-012","line_end":236,"line_start":236,"modality":"must","object":"FE-OC-012 fe.server-state-caching: query key and invalidation MUST use registry factory only","predicate":"owns","quote":"| `FE-OC-012` | `fe.server-state-caching` | 1 | operational-contract | `feature-server-state-caching-contract` | server state 를 캐시하거나 무효화할 때 | query key와 invalidation은 registry factory만 MUST 사용 | cache tests | active |","scope":"server-state-caching contract","source_surface":"SURF-8B1D68DCEF33CBA9980E","subject":"feature-server-state-caching-contract"},{"assertion_id":"A-CG-12","condition":"contract registry row FE-OC-022","line_end":246,"line_start":246,"modality":"must","object":"FE-OC-022 fe.contract-registry: 8 registries MUST record single primary owner and compatibility impact","predicate":"owns","quote":"| `FE-OC-022` | `fe.contract-registry` | 1 | operational-contract | `feature-frontend-contract-registry-governance` | 8개 registry 중 하나를 변경할 때 | 8개 registry는 single primary owner와 compatibility impact를 MUST 기록 | registry diff check | active |","scope":"contract-registry governance","source_surface":"SURF-8B1D68DCEF33CBA9980E","subject":"feature-frontend-contract-registry-governance"},{"assertion_id":"A-CG-13","condition":"contract registry row FE-OC-026","line_end":250,"line_start":250,"modality":"must","object":"FE-OC-026 fe.answer-boundary: external answers MUST preserve evidence grade and MUST NOT state target numbers as measured results","predicate":"owns","quote":"| `FE-OC-026` | `fe.answer-boundary` | 1 | operational-contract | `ca-skeleton-frontend-operational-contract` | 외부 공개 답변을 작성할 때 | 외부 답변은 evidence grade를 MUST 보존하고 목표 수치를 측정 결과처럼 말하면 안 됨 | answer boundary checklist | active |","scope":"answer-boundary contract","source_surface":"SURF-8B1D68DCEF33CBA9980E","subject":"ca-skeleton-frontend-operational-contract"},{"assertion_id":"A-CG-14","condition":"gate registry row FE-GATE-017","line_end":267,"line_start":267,"modality":"must","object":"FE-GATE-017 fe.gate.diagram-review: if the two scoped diagrams miss reviewer threshold, documentation readiness MUST be blocked","predicate":"owns","quote":"| `FE-GATE-017` | `fe.gate.diagram-review` | 1 | gate | `ca-skeleton-frontend-operational-contract` | hub 소유 아키텍처 다이어그램을 갱신할 때 | scoped 다이어그램 2종이 reviewer threshold 미달이면 documentation readiness 를 MUST 차단 | reviewer report | active |","scope":"diagram-review gate","source_surface":"SURF-8B1D68DCEF33CBA9980E","subject":"ca-skeleton-frontend-operational-contract"},{"assertion_id":"A-CG-15","condition":"gate registry row FE-GATE-019 (revision 2)","line_end":269,"line_start":269,"modality":"must","object":"FE-GATE-019 fe.gate.hosting-header at revision 2: if declared Cache-Control/content-type/security header differ from actual response, release MUST be blocked","predicate":"owns","quote":"| `FE-GATE-019` | `fe.gate.hosting-header` | 2 | gate | `feature-frontend-release-cache-rollback-contract` | hosting 의 header(cache·security) 설정을 배포할 때 | 선언한 Cache-Control·content-type·security header 와 실제 응답이 다르면 release 를 MUST 차단 | hosting header report | active |","scope":"hosting-header gate","source_surface":"SURF-8B1D68DCEF33CBA9980E","subject":"feature-frontend-release-cache-rollback-contract"},{"assertion_id":"A-FS-00","condition":"flow stage registry governance","line_end":295,"line_start":295,"modality":"must","object":"§7.3 keeps ownership of the 8-step order; this table fixes per-stage owner and invariants","predicate":"delegates","quote":"> §7.3 응답 처리 순서 8단계에 **단계별 owner** 를 붙인 것이다. 순서 자체는 §7.3 이 계속 소유하고, 이 표는 *각 단계를 누가 소유하며 그 단계가 지켜야 할 불변식이 무엇인가* 를 고정한다.","scope":"response flow stages","source_surface":"SURF-D0C60A8A68037EF0AF03","subject":"flow stage registry"},{"assertion_id":"A-FS-01","condition":"flow stage row 1","line_end":300,"line_start":300,"modality":"must","object":"FLOW-FE-RESP-001 (stage 1): await transport completion producing raw Response; timeout/abort owned here and no exception passed downstream","predicate":"owns","quote":"| `FLOW-FE-RESP-001` | 1 | `feature-api-client-response-envelope-contract` | HTTP 요청 | transport 완료 대기 | raw Response | timeout·abort 는 이 단계가 소유하고 이후 단계로 예외를 넘기지 않는다 | 1 |","scope":"response flow stage 1","source_surface":"SURF-D0C60A8A68037EF0AF03","subject":"feature-api-client-response-envelope-contract"},{"assertion_id":"A-FS-02","condition":"flow stage row 2","line_end":301,"line_start":301,"modality":"must","object":"FLOW-FE-RESP-002 (stage 2): content-type expectation check; on mismatch do not parse body and convert to failure","predicate":"owns","quote":"| `FLOW-FE-RESP-002` | 2 | `feature-api-client-response-envelope-contract` | raw Response | content-type 기대값 검사 | 본문 판독 가능 Response | 기대와 다르면 본문을 파싱하지 않고 실패로 전환 | 1 |","scope":"response flow stage 2","source_surface":"SURF-D0C60A8A68037EF0AF03","subject":"feature-api-client-response-envelope-contract"},{"assertion_id":"A-FS-03","condition":"flow stage row 3","line_end":302,"line_start":302,"modality":"must","object":"FLOW-FE-RESP-003 (stage 3): JSON parse to unvalidated JSON; parse failure discards raw body and converts to failure","predicate":"owns","quote":"| `FLOW-FE-RESP-003` | 3 | `feature-api-client-response-envelope-contract` | 본문 판독 가능 Response | JSON parse | unvalidated JSON | parse 실패는 raw body 를 버리고 실패로 전환 | 1 |","scope":"response flow stage 3","source_surface":"SURF-D0C60A8A68037EF0AF03","subject":"feature-api-client-response-envelope-contract"},{"assertion_id":"A-FS-04","condition":"flow stage row 4","line_end":303,"line_start":303,"modality":"must","object":"FLOW-FE-RESP-004 (stage 4): shared envelope schema validation; boundary validation uses .safeParse() non-throwing and does not leak throw upward","predicate":"owns","quote":"| `FLOW-FE-RESP-004` | 4 | `feature-runtime-schema-validation-contract` | unvalidated JSON | envelope 공유 스키마 검증 | discriminated envelope | 경계 검증은 `.safeParse()` non-throwing — throw 를 상위로 누출하지 않는다 | 1 |","scope":"response flow stage 4","source_surface":"SURF-D0C60A8A68037EF0AF03","subject":"feature-runtime-schema-validation-contract"},{"assertion_id":"A-FS-05","condition":"flow stage row 5","line_end":304,"line_start":304,"modality":"must","object":"FLOW-FE-RESP-005 (stage 5): success/failure branch validation; a 200 with invalid envelope is not returned as success","predicate":"owns","quote":"| `FLOW-FE-RESP-005` | 5 | `feature-runtime-schema-validation-contract` | discriminated envelope | success/failure 분기 검증 | 분기 확정 envelope | 200 이어도 envelope 이 invalid 하면 success 로 반환하지 않는다 | 1 |","scope":"response flow stage 5","source_surface":"SURF-D0C60A8A68037EF0AF03","subject":"feature-runtime-schema-validation-contract"},{"assertion_id":"A-FS-06","condition":"flow stage row 6","line_end":305,"line_start":305,"modality":"must","object":"FLOW-FE-RESP-006 (stage 6): per-operation payload schema validation producing validated payload deep clone; invalid payload is SCHEMA_MISMATCH; mapper receives only validated payload","predicate":"owns","quote":"| `FLOW-FE-RESP-006` | 6 | `feature-runtime-schema-validation-contract` | 분기 확정 envelope | payload per-operation 스키마 검증 | 검증된 payload(deep clone) | payload invalid 는 `SCHEMA_MISMATCH`; mapper 는 검증 통과분만 받는다 | 1 |","scope":"response flow stage 6","source_surface":"SURF-D0C60A8A68037EF0AF03","subject":"feature-runtime-schema-validation-contract"},{"assertion_id":"A-FS-07","condition":"flow stage row 7","line_end":306,"line_start":306,"modality":"must","object":"FLOW-FE-RESP-007 (stage 7): DTO -> application model mapping; output is model not view-model; view-model projection is owned by application/view-models/","predicate":"owns","quote":"| `FLOW-FE-RESP-007` | 7 | `feature-boundary-mapper-viewmodel-contract` | 검증된 payload | DTO → application model 매핑 | application model | 이 단계 산출물은 model 이고 view-model 이 아니다 — view-model 투영은 `application/view-models/` 소유(§4.2·§4.4 2-stage) | 1 |","scope":"response flow stage 7","source_surface":"SURF-D0C60A8A68037EF0AF03","subject":"feature-boundary-mapper-viewmodel-contract"},{"assertion_id":"A-FS-08","condition":"flow stage row 8","line_end":307,"line_start":307,"modality":"must","object":"FLOW-FE-RESP-008 (stage 8): total function returning application result or normalized failure; unmapped exception resolves to UNKNOWN_FAILURE and throw is not passed to presentation","predicate":"owns","quote":"| `FLOW-FE-RESP-008` | 8 | `feature-frontend-error-classification-boundary-contract` | application model 또는 실패 신호 | 정규화된 결과 반환 | application result 또는 normalized failure | 총함수 — 미매핑 예외는 `UNKNOWN_FAILURE` 로 귀결하고 throw 를 presentation 으로 통과시키지 않는다 | 1 |","scope":"response flow stage 8","source_surface":"SURF-D0C60A8A68037EF0AF03","subject":"feature-frontend-error-classification-boundary-contract"},{"assertion_id":"A-IB-01","condition":"supply-chain minimums","line_end":1444,"line_start":1444,"modality":"must","object":"pnpm + committed lockfile; lockfile drift is a blocking condition; evidence artifacts/quality/lockfile-check.txt","predicate":"requires","quote":"| package manager | pnpm + committed lockfile | lockfile drift | `artifacts/quality/lockfile-check.txt` |","scope":"supply-chain","source_surface":"SURF-18EB18848A7CABF9DEFC","subject":"package manager control"},{"assertion_id":"A-IB-02","condition":"supply-chain minimums","line_end":1445,"line_start":1445,"modality":"must","object":"frozen lockfile; dependency resolution mutation is a blocking condition","predicate":"requires","quote":"| install | frozen lockfile | dependency resolution mutation | install log |","scope":"supply-chain","source_surface":"SURF-18EB18848A7CABF9DEFC","subject":"install control"},{"assertion_id":"A-IB-03","condition":"supply-chain minimums","line_end":1451,"line_start":1451,"modality":"must","object":"CI build metadata; buildId/commit mismatch is blocking; evidence build manifest","predicate":"validates","quote":"| provenance | CI build metadata | buildId/commit mismatch | build manifest |","scope":"supply-chain","source_surface":"SURF-18EB18848A7CABF9DEFC","subject":"provenance control"},{"assertion_id":"A-IB-04","condition":"supply-chain minimums honesty note","line_end":1453,"line_start":1453,"modality":"observed","object":"currently deferred because repository/organization policy is absent; does not claim a specific tool was used","predicate":"other","quote":"Scanner name과 severity threshold는 repository/organization policy가 없어 현재 `deferred`다. 특정 도구를 사용했다고 주장하지 않는다.","scope":"supply-chain","source_surface":"SURF-18EB18848A7CABF9DEFC","subject":"scanner name and severity threshold"},{"assertion_id":"A-IB-05","condition":"browser security boundary","line_end":1457,"line_start":1457,"modality":"must","object":"treated as a public artifact","predicate":"other","quote":"- browser bundle은 public artifact로 간주한다.","scope":"browser security","source_surface":"SURF-18EB18848A7CABF9DEFC","subject":"browser bundle"},{"assertion_id":"A-IB-06","condition":"browser security boundary","line_end":1459,"line_start":1459,"modality":"must_not","object":"default prohibited import/API rule target","predicate":"forbids","quote":"- `dangerouslySetInnerHTML`은 default prohibited import/API rule 대상이다.","scope":"browser security","source_surface":"SURF-18EB18848A7CABF9DEFC","subject":"dangerouslySetInnerHTML"},{"assertion_id":"A-IB-07","condition":"browser security boundary","line_end":1461,"line_start":1461,"modality":"must_not","object":"prohibited by default","predicate":"forbids","quote":"- `eval`, dynamic code execution, untrusted script URL은 금지 default다.","scope":"browser security","source_surface":"SURF-18EB18848A7CABF9DEFC","subject":"eval, dynamic code execution, untrusted script URL"},{"assertion_id":"A-IB-08","condition":"browser security boundary","line_end":1462,"line_start":1462,"modality":"must","object":"joint responsibility of hosting/backend header owner and frontend compatibility test","predicate":"delegates","quote":"- CSP, HSTS, frame policy, referrer policy는 hosting/backend header owner와 frontend compatibility test가 공동 책임이다.","scope":"browser security header ownership","source_surface":"SURF-18EB18848A7CABF9DEFC","subject":"CSP, HSTS, frame policy, referrer policy"},{"assertion_id":"A-IB-09","condition":"browser security boundary","line_end":1464,"line_start":1464,"modality":"must","object":"is not an authorization control","predicate":"other","quote":"- route guard는 authorization control이 아니다.","scope":"browser security","source_surface":"SURF-18EB18848A7CABF9DEFC","subject":"route guard"},{"assertion_id":"A-IB-10","condition":"browser security boundary","line_end":1466,"line_start":1466,"modality":"must_not","object":"not deployed to production public path by default","predicate":"forbids","quote":"- source map은 production public path에 기본 배포하지 않는다.","scope":"browser security","source_surface":"SURF-18EB18848A7CABF9DEFC","subject":"source map"},{"assertion_id":"A-IB-11","condition":"dependency update policy","line_end":1474,"line_start":1474,"modality":"must","object":"a suppression past its expiry is a gate failure","predicate":"has_failure_behavior","quote":"- expiry가 지난 suppression은 gate failure다.","scope":"dependency update policy","source_surface":"SURF-18EB18848A7CABF9DEFC","subject":"expired suppression"},{"assertion_id":"A-PD-00","condition":"decision registry governance","line_end":406,"line_start":406,"modality":"must","object":"project-wide decision SSOT; existing FE-D* migrated one-to-one to stable IDs; branches pin DEC-...@1 only","predicate":"owns","quote":"> Project contract v2의 project-wide decision SSOT. 기존 `FE-D*`는 아래 stable ID로 일대일 이관되며 branch는 `DEC-...@1`만 pin한다.","scope":"project decisions","source_surface":"SURF-14516553A707A270380E","subject":"6.1 stable decision registry"},{"assertion_id":"A-PD-01","condition":"status conditional-default","line_end":410,"line_start":410,"modality":"may","object":"package manager default is pnpm and packageManager field + pnpm-lock.yaml are committed","predicate":"other","quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TOOLCHAIN-001` | 1 | `toolchain` | package manager default는 pnpm이며 packageManager field와 pnpm-lock.yaml을 commit한다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D001` |","scope":"toolchain decision","source_surface":"SURF-14516553A707A270380E","subject":"toolchain decision"},{"assertion_id":"A-PD-02","condition":"status accepted-documented-only","line_end":415,"line_start":415,"modality":"must","object":"application-owned QueryCachePort with TanStack Query adapter; server state is not replicated into client store","predicate":"owns","quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SERVER-STATE-001` | 1 | `server-state` | application-owned QueryCachePort와 TanStack Query adapter를 사용하고 client store에 server state를 복제하지 않는다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D006`; [[raw/official-docs/tanstack-query-server-state-official]] |","scope":"server-state decision","source_surface":"SURF-14516553A707A270380E","subject":"server-state decision"},{"assertion_id":"A-PD-03","condition":"status accepted-documented-only","line_end":418,"line_start":418,"modality":"must","object":"separate domain, application, presentation, adapters, bootstrap responsibilities","predicate":"other","quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-ARCHITECTURE-001` | 1 | `architecture` | domain, application, presentation, adapters, bootstrap 책임을 분리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D009` |","scope":"architecture decision","source_surface":"SURF-14516553A707A270380E","subject":"architecture decision"},{"assertion_id":"A-PD-04","condition":"status accepted-documented-only","line_end":419,"line_start":419,"modality":"must","object":"owned by application and implemented by adapter","predicate":"owns","quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-PORT-OWNERSHIP-001` | 1 | `port-ownership` | output port interface는 application이 소유하고 adapter가 구현한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D010` |","scope":"port-ownership decision","source_surface":"SURF-14516553A707A270380E","subject":"output port interface"},{"assertion_id":"A-PD-05","condition":"status accepted-documented-only","line_end":420,"line_start":420,"modality":"must","object":"single composition root that injects concrete adapters into application","predicate":"owns","quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-COMPOSITION-ROOT-001` | 1 | `composition-root` | bootstrap을 단일 composition root로 두고 concrete adapter를 application에 주입한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D011` |","scope":"composition-root decision","source_surface":"SURF-14516553A707A270380E","subject":"bootstrap"},{"assertion_id":"A-PD-06","condition":"status conditional-default","line_end":423,"line_start":423,"modality":"may","object":"default is 10 seconds; no separate browser connect timeout is claimed","predicate":"has_threshold","quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TIMEOUT-001` | 1 | `timeout` | request total timeout default는 10초이며 별도 browser connect timeout은 주장하지 않는다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D014` |","scope":"timeout decision","source_surface":"SURF-14516553A707A270380E","subject":"request total timeout"},{"assertion_id":"A-PD-07","condition":"status conditional-default","line_end":424,"line_start":424,"modality":"may","object":"max 2 retries after initial call, exponential backoff with full jitter, 2 second cap","predicate":"has_threshold","quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-RETRY-001` | 1 | `retry` | retry는 initial call 이후 최대 2회, exponential backoff와 full jitter, 2초 cap을 사용한다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D015` |","scope":"retry decision","source_surface":"SURF-14516553A707A270380E","subject":"retry policy"},{"assertion_id":"A-PD-08","condition":"status accepted-documented-only","line_end":425,"line_start":425,"modality":"must","object":"allowed only with a stable idempotency key and a backend replay contract","predicate":"requires","quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-IDEMPOTENCY-001` | 1 | `idempotency` | mutation auto-retry는 stable idempotency key와 backend replay contract가 있을 때만 허용한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D016` |","scope":"idempotency decision","source_surface":"SURF-14516553A707A270380E","subject":"mutation auto-retry"},{"assertion_id":"A-PD-09","condition":"status accepted-documented-only","line_end":426,"line_start":426,"modality":"must","object":"owned by external owner; skeleton consumes AuthSessionPort only","predicate":"delegates","quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-AUTH-BOUNDARY-001` | 1 | `auth-boundary` | auth lifecycle은 외부 owner가 소유하고 skeleton은 AuthSessionPort만 소비한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D017`; [[raw/project-notes/keycloak-patterns-overview]] |","scope":"auth-boundary decision","source_surface":"SURF-14516553A707A270380E","subject":"auth lifecycle"},{"assertion_id":"A-PD-10","condition":"status accepted-documented-only","line_end":427,"line_start":427,"modality":"must","object":"route, API operation, env, storage, error, query, telemetry, release token managed as 8 registries","predicate":"has_cardinality","quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-REGISTRY-001` | 1 | `registry` | route, API operation, env, storage, error, query, telemetry, release token을 8개 registry로 관리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D018` |","scope":"registry decision","source_surface":"SURF-14516553A707A270380E","subject":"registry decision"},{"assertion_id":"A-PD-11","condition":"status accepted-documented-only","line_end":430,"line_start":430,"modality":"must","object":"best-effort queue with redaction; sink failure does not fail the UI","predicate":"has_failure_behavior","quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TELEMETRY-001` | 1 | `telemetry` | telemetry는 best-effort queue와 redaction을 사용하며 sink failure가 UI를 실패시키지 않는다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D021` |","scope":"telemetry decision","source_surface":"SURF-14516553A707A270380E","subject":"telemetry decision"},{"assertion_id":"A-PD-12","condition":"status conditional-default","line_end":431,"line_start":431,"modality":"may","object":"default is Vitest, RTL, MSW, Playwright, axe","predicate":"other","quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TEST-STACK-001` | 1 | `test-stack` | test stack default는 Vitest, RTL, MSW, Playwright, axe다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D022` |","scope":"test-stack decision","source_surface":"SURF-14516553A707A270380E","subject":"test-stack decision"},{"assertion_id":"A-PD-13","condition":"status accepted-documented-only","line_end":433,"line_start":433,"modality":"must","object":"dependency lock, secret scan, vulnerability scan, license inventory, dependency review separated into merge/release gates","predicate":"other","quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SUPPLY-CHAIN-001` | 1 | `supply-chain` | dependency lock, secret scan, vulnerability scan, license inventory, dependency review를 merge/release gate로 분리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D024` |","scope":"supply-chain decision","source_surface":"SURF-14516553A707A270380E","subject":"supply-chain decision"},{"assertion_id":"A-PD-14","condition":"revision record §3.3 protocol","line_end":438,"line_start":438,"modality":"observed","object":"2026-07-21 additive change keeping revision 1; added dependency review as a correction of an incomplete summary, not a new decision","predicate":"other","quote":"> - 2026-07-21 · `DEC-...-SUPPLY-CHAIN-001` · `compatibility_impact: additive` · revision 유지(1). Decision Summary 에 `dependency review` 를 추가했다. 이는 새 결정이 아니라 **불완전한 요약의 정정**이다 — `FE-OC-018` 과 §13.1 이 처음부터 dependency review 를 요구했고 §3.2 `FE-D024` 도 이를 포함하는데 이 registry 행만 4개 control 로 적혀 있었다. 기존 4개 control 의 동작은 바뀌지 않고, gate 정의(§15.1 `FE-GATE-013`)도 이미 dependency-review fixture 를 포함한 채 revision 1 이므로 같은 판정을 적용한다.","scope":"supply-chain decision revision","source_surface":"SURF-14516553A707A270380E","subject":"DEC-...-SUPPLY-CHAIN-001 revision record"},{"assertion_id":"A-RF-01","condition":"boot sequence diagram","line_end":831,"line_start":831,"modality":"must","object":"served to Browser as a no-cache app shell","predicate":"other","quote":" HTML-->>Browser: no-cache app shell","scope":"boot sequence","source_surface":"SURF-3B1BBB934337F8CF96B4","subject":"index.html app shell"},{"assertion_id":"A-RF-02","condition":"boot sequence diagram","line_end":833,"line_start":833,"modality":"must","object":"GET runtime config from /config.json with no-store","predicate":"consumes","quote":" Boot->>Config: GET runtime config (no-store)","scope":"boot sequence","source_surface":"SURF-3B1BBB934337F8CF96B4","subject":"bootstrap"},{"assertion_id":"A-RF-03","condition":"boot sequence diagram","line_end":835,"line_start":835,"modality":"must","object":"validate config + compatibility via Zod schemas","predicate":"validates","quote":" Boot->>Schema: validate config + compatibility","scope":"boot sequence","source_surface":"SURF-3B1BBB934337F8CF96B4","subject":"bootstrap"},{"assertion_id":"A-RF-04","condition":"boot sequence diagram alt: valid and compatible","line_end":838,"line_start":837,"modality":"must","object":"on valid and compatible config, compose dependencies and mount React App","predicate":"runs_before","quote":" Schema-->>Boot: normalized public config\n Boot->>App: compose dependencies and mount","scope":"boot sequence","source_surface":"SURF-3B1BBB934337F8CF96B4","subject":"bootstrap"},{"assertion_id":"A-RF-05","condition":"boot sequence diagram alt: invalid config","line_end":841,"line_start":840,"modality":"must","object":"invalid config yields BOOT_CONFIG_FAILURE and renders boot error shell with product routes not mounted","predicate":"has_failure_behavior","quote":" Schema-->>Boot: BOOT_CONFIG_FAILURE\n Boot-->>Browser: boot error shell, product routes not mounted","scope":"boot sequence","source_surface":"SURF-3B1BBB934337F8CF96B4","subject":"bootstrap"},{"assertion_id":"A-RF-06","condition":"boot sequence diagram alt: version mismatch","line_end":844,"line_start":843,"modality":"must","object":"version mismatch yields DEPLOY_MISMATCH and controlled recovery UI with no reload loop","predicate":"has_failure_behavior","quote":" Schema-->>Boot: DEPLOY_MISMATCH\n Boot-->>Browser: controlled recovery UI, no reload loop","scope":"boot sequence","source_surface":"SURF-3B1BBB934337F8CF96B4","subject":"bootstrap"},{"assertion_id":"A-SQ-01","condition":"request sequence diagram","line_end":1061,"line_start":1061,"modality":"must","object":"execute use case on Application","predicate":"delegates","quote":" UI->>App: execute use case","scope":"request sequence","source_surface":"SURF-1BAA71C85C1C65E712DE","subject":"Presentation"},{"assertion_id":"A-SQ-02","condition":"request sequence diagram","line_end":1062,"line_start":1062,"modality":"must","object":"issue query/mutation with registry key to QueryCachePort / TanStack adapter","predicate":"uses","quote":" App->>Query: query/mutation with registry key","scope":"request sequence","source_surface":"SURF-1BAA71C85C1C65E712DE","subject":"Application"},{"assertion_id":"A-SQ-03","condition":"request sequence diagram","line_end":1063,"line_start":1063,"modality":"must","object":"call application output port (HTTP Adapter)","predicate":"uses","quote":" Query->>HTTP: application output port","scope":"request sequence","source_surface":"SURF-1BAA71C85C1C65E712DE","subject":"QueryCachePort / TanStack adapter"},{"assertion_id":"A-SQ-04","condition":"request sequence diagram","line_end":1064,"line_start":1064,"modality":"must","object":"attach opaque session context via AuthSessionPort","predicate":"delegates","quote":" HTTP->>Auth: attach opaque session context","scope":"request sequence","source_surface":"SURF-1BAA71C85C1C65E712DE","subject":"HTTP Adapter"},{"assertion_id":"A-SQ-05","condition":"request sequence diagram alt: success envelope","line_end":1070,"line_start":1069,"modality":"must","object":"envelope + payload validate via Runtime Schema yielding normalized model","predicate":"validates","quote":" HTTP->>Schema: envelope + payload validate\n Schema-->>HTTP: normalized model","scope":"request sequence","source_surface":"SURF-1BAA71C85C1C65E712DE","subject":"HTTP Adapter"},{"assertion_id":"A-SQ-06","condition":"request sequence diagram alt: success envelope","line_end":1073,"line_start":1073,"modality":"must","object":"return view-model to Presentation on success","predicate":"returns","quote":" App-->>UI: view-model","scope":"request sequence","source_surface":"SURF-1BAA71C85C1C65E712DE","subject":"Application"},{"assertion_id":"A-SQ-07","condition":"request sequence diagram alt: retry candidate","line_end":1078,"line_start":1076,"modality":"must","object":"retry candidate network/429/502/503/504 -> bounded backoff + jitter -> result or terminal failure","predicate":"has_failure_behavior","quote":" API-->>HTTP: network/429/502/503/504\n HTTP->>HTTP: bounded backoff + jitter\n HTTP-->>Query: result or terminal failure","scope":"request sequence","source_surface":"SURF-1BAA71C85C1C65E712DE","subject":"HTTP Adapter"},{"assertion_id":"A-SQ-08","condition":"request sequence diagram alt: contract/auth failure","line_end":1083,"line_start":1082,"modality":"must","object":"contract/auth failure invalid schema / 401 / 403 -> non-retryable normalized failure","predicate":"has_failure_behavior","quote":" API-->>HTTP: invalid schema / 401 / 403\n HTTP-->>Query: non-retryable normalized failure","scope":"request sequence","source_surface":"SURF-1BAA71C85C1C65E712DE","subject":"HTTP Adapter"},{"assertion_id":"A-SQ-09","condition":"request sequence diagram alt: query-cache adapter failure","line_end":1088,"line_start":1087,"modality":"must","object":"query-cache adapter failure QUERY_CACHE_FAILURE -> uncached-safe fallback or terminal error","predicate":"has_failure_behavior","quote":" Query-->>App: QUERY_CACHE_FAILURE\n App-->>UI: uncached-safe fallback or terminal error","scope":"request sequence","source_surface":"SURF-1BAA71C85C1C65E712DE","subject":"QueryCachePort / TanStack adapter"},{"assertion_id":"A-WI-00","condition":"work item governance","line_end":2023,"line_start":2023,"modality":"must","object":"branch handoff SSOT; Dependencies use stable WI IDs only; Applies Decisions pin revision 1","predicate":"owns","quote":"> Project contract v2의 branch handoff SSOT. `Dependencies`는 stable WI ID만 사용하고 `Applies Decisions`는 revision 1에 pin한다.","scope":"work items","source_surface":"SURF-AADE57CE9F4169C82F8A","subject":"8.0 실행계획 (work item table)"},{"assertion_id":"A-WI-01","condition":"work item row 001","line_end":2027,"line_start":2027,"modality":"must","object":"branch feature-frontend-project-bootstrap-toolchain-contract; completion = manifest·engines·pnpm lock·checkJs scripts + frozen install evidence; no dependencies","predicate":"maps_to","quote":"| `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` |","scope":"work items","source_surface":"SURF-AADE57CE9F4169C82F8A","subject":"WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-001"},{"assertion_id":"A-WI-02","condition":"work item row 002","line_end":2028,"line_start":2028,"modality":"must","object":"branch feature-frontend-clean-architecture-layering-contract applies ARCHITECTURE-001, PORT-OWNERSHIP-001, COMPOSITION-ROOT-001; depends on WI-001","predicate":"requires","quote":"| `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` |","scope":"work items","source_surface":"SURF-AADE57CE9F4169C82F8A","subject":"WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-002"},{"assertion_id":"A-WI-03","condition":"work item row 005","line_end":2031,"line_start":2031,"modality":"must","object":"branch feature-api-client-response-envelope-contract applies TIMEOUT-001, RETRY-001, IDEMPOTENCY-001; depends on WI-004, WI-002","predicate":"requires","quote":"| `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` |","scope":"work items","source_surface":"SURF-AADE57CE9F4169C82F8A","subject":"WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-005"},{"assertion_id":"A-WI-04","condition":"work item row 008","line_end":2034,"line_start":2034,"modality":"must","object":"branch feature-frontend-auth-session-integration-contract applies AUTH-BOUNDARY-001, PORT-OWNERSHIP-001; depends on WI-002","predicate":"requires","quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-008` | `feature-frontend-auth-session-integration-contract` | AuthSessionPort·bounded 401 replay와 token lifecycle import 금지가 test로 고정된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-AUTH-BOUNDARY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-PORT-OWNERSHIP-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-002` | `planned` |","scope":"work items","source_surface":"SURF-AADE57CE9F4169C82F8A","subject":"WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-008"},{"assertion_id":"A-WI-05","condition":"work item row 016","line_end":2042,"line_start":2042,"modality":"must","object":"branch feature-sample-feature-slice-contract-fixture depends on WI-005, WI-006, WI-007, WI-009, WI-010","predicate":"runs_after","quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-016` | `feature-sample-feature-slice-contract-fixture` | full contract slice와 sample removal smoke test가 통과한다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SAMPLE-FIXTURE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-005`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-006`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-007`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-009`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-010` | `planned` |","scope":"work items","source_surface":"SURF-AADE57CE9F4169C82F8A","subject":"WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-016"},{"assertion_id":"A-WI-06","condition":"work item row 024","line_end":2050,"line_start":2050,"modality":"must","object":"branch feature-frontend-release-cache-rollback-contract applies DEPLOYMENT-001, CACHE-POLICY-001, OFFLINE-CACHE-001; depends on WI-020, WI-004, WI-023","predicate":"runs_after","quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-024` | `feature-frontend-release-cache-rollback-contract` | release tuple·cache header·mixed fixture failure·rollback drill이 검증된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-DEPLOYMENT-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-CACHE-POLICY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-OFFLINE-CACHE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-020`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-004`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-023` | `planned` |","scope":"work items","source_surface":"SURF-AADE57CE9F4169C82F8A","subject":"WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-024"},{"assertion_id":"A-WI-07","condition":"work item row 027","line_end":2053,"line_start":2053,"modality":"must","object":"branch feature-frontend-ci-quality-gates-contract depends on WI-017, WI-020, WI-024, WI-025, WI-026","predicate":"runs_after","quote":"| `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` |","scope":"work items","source_surface":"SURF-AADE57CE9F4169C82F8A","subject":"WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-027"}],"candidate_manifest_sha256":"9023023a3d775e1a53057350a701ca5176c2ed58f8d2430dda04c12689ff8252","candidates":[{"assertion_a":"A-ARCH-01","assertion_b":"A-ARCH-02","candidate_id":"SEM-B7C900F119E5BE6F18E4","grouping_key":{"condition":"","predicate":"","scope":"domain layer","subject":"domain layer"},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-01","assertion_b":"A-ARCH-03","candidate_id":"SEM-1141A58AE65C5640C4F1","grouping_key":{"condition":"component responsibility table","predicate":"owns","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-01","assertion_b":"A-ARCH-04","candidate_id":"SEM-13AE72CEE9E5D822059A","grouping_key":{"condition":"component responsibility table","predicate":"owns","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-01","assertion_b":"A-ARCH-05","candidate_id":"SEM-9DB3F41941DF333C5545","grouping_key":{"condition":"component responsibility table","predicate":"owns","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-01","assertion_b":"A-ARCH-06","candidate_id":"SEM-39F806EF754B595993B2","grouping_key":{"condition":"component responsibility table","predicate":"owns","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-01","assertion_b":"A-ARCH-07","candidate_id":"SEM-2E6084F0E377FE30CEDE","grouping_key":{"condition":"component responsibility table","predicate":"owns","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-01","assertion_b":"A-WI-01","candidate_id":"SEM-A367189E824A325EFBDD","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-01","assertion_b":"A-WI-02","candidate_id":"SEM-FD59119014CC879CF140","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-01","assertion_b":"A-WI-03","candidate_id":"SEM-004F3CFBA1BB527BDCAB","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-01","assertion_b":"A-WI-04","candidate_id":"SEM-77162A3FF3C8497F5041","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-01","assertion_b":"A-WI-05","candidate_id":"SEM-6E1F0FFA9F0FAB5BD5C9","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-01","assertion_b":"A-WI-06","candidate_id":"SEM-5EF18E2A91F2FBC338AA","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-01","assertion_b":"A-WI-07","candidate_id":"SEM-E6F30A4D08E0FA7410CF","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-02","assertion_b":"A-ARCH-03","candidate_id":"SEM-08FB2FB86BCFDAAC4F63","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-02","assertion_b":"A-ARCH-04","candidate_id":"SEM-8EC5694486F1415B044C","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-02","assertion_b":"A-ARCH-05","candidate_id":"SEM-B34AAEE54407AD605E89","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-02","assertion_b":"A-ARCH-06","candidate_id":"SEM-A4B620A892F3ABF5A0C0","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-02","assertion_b":"A-ARCH-07","candidate_id":"SEM-302D87DCF4CEDED799D4","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-02","assertion_b":"A-WI-01","candidate_id":"SEM-A783D66133CAB50B1222","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-02","assertion_b":"A-WI-02","candidate_id":"SEM-E9B914D916FF3BFE6C85","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-02","assertion_b":"A-WI-03","candidate_id":"SEM-52090C80DA96397DD0D4","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-02","assertion_b":"A-WI-04","candidate_id":"SEM-D599925069F5883FA4E4","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-02","assertion_b":"A-WI-05","candidate_id":"SEM-D9426AE19085EB7E6498","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-02","assertion_b":"A-WI-06","candidate_id":"SEM-479DE59F43675FE6B0C4","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-02","assertion_b":"A-WI-07","candidate_id":"SEM-00D8A876516D9FEA086D","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-03","assertion_b":"A-ARCH-04","candidate_id":"SEM-1DEA92BC9ED946CE4359","grouping_key":{"condition":"component responsibility table","predicate":"owns","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-03","assertion_b":"A-ARCH-05","candidate_id":"SEM-9541037832070B6A2727","grouping_key":{"condition":"component responsibility table","predicate":"owns","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-03","assertion_b":"A-ARCH-06","candidate_id":"SEM-05918E31E73225CDE4B4","grouping_key":{"condition":"component responsibility table","predicate":"owns","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-03","assertion_b":"A-ARCH-07","candidate_id":"SEM-44E425C0C7BE49E99CE3","grouping_key":{"condition":"component responsibility table","predicate":"owns","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-03","assertion_b":"A-ARCH-09","candidate_id":"SEM-5B2BA99D09DBBE0967CE","grouping_key":{"condition":"","predicate":"owns","scope":"","subject":"application layer"},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-03","assertion_b":"A-ARCH-11","candidate_id":"SEM-4B2022C567E9D837715B","grouping_key":{"condition":"","predicate":"owns","scope":"","subject":"application layer"},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-03","assertion_b":"A-ARCH-12","candidate_id":"SEM-2CD91CC4B17F3616FB5C","grouping_key":{"condition":"","predicate":"owns","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-03","assertion_b":"A-WI-01","candidate_id":"SEM-2384D5EDC00481CF5FF6","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-03","assertion_b":"A-WI-02","candidate_id":"SEM-D054CFC1D567D33E4A02","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-03","assertion_b":"A-WI-03","candidate_id":"SEM-02C7639B3860FA8DF077","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-03","assertion_b":"A-WI-04","candidate_id":"SEM-16F5865FEB47E529724D","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-03","assertion_b":"A-WI-05","candidate_id":"SEM-187C2AC5FEBE3B7CABCD","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-03","assertion_b":"A-WI-06","candidate_id":"SEM-C928F8F0C2502F294E3D","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-03","assertion_b":"A-WI-07","candidate_id":"SEM-F783D6E2AA20571126C5","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-04","assertion_b":"A-ARCH-05","candidate_id":"SEM-FD481B4BDCA20BCDC9F3","grouping_key":{"condition":"component responsibility table","predicate":"owns","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-04","assertion_b":"A-ARCH-06","candidate_id":"SEM-1D3DD226D807BBA31768","grouping_key":{"condition":"component responsibility table","predicate":"owns","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-04","assertion_b":"A-ARCH-07","candidate_id":"SEM-6EE8A849B8787D589C05","grouping_key":{"condition":"component responsibility table","predicate":"owns","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-04","assertion_b":"A-WI-01","candidate_id":"SEM-23F05EE6E75E2DE7C2B6","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-04","assertion_b":"A-WI-02","candidate_id":"SEM-FF6D7DABDE2E56816669","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-04","assertion_b":"A-WI-03","candidate_id":"SEM-2988AFCB253A0A816FDD","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-04","assertion_b":"A-WI-04","candidate_id":"SEM-304C46F0EC2EF86F6904","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-04","assertion_b":"A-WI-05","candidate_id":"SEM-8A16F318B4E378DC49D2","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-04","assertion_b":"A-WI-06","candidate_id":"SEM-02433E7CF35A5FE3CC75","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-04","assertion_b":"A-WI-07","candidate_id":"SEM-ABF1557C1FC433572BE0","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-05","assertion_b":"A-ARCH-06","candidate_id":"SEM-31788CC5BEDA897C7205","grouping_key":{"condition":"component responsibility table","predicate":"owns","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-05","assertion_b":"A-ARCH-07","candidate_id":"SEM-5CDD15D87B04128E017F","grouping_key":{"condition":"component responsibility table","predicate":"owns","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-05","assertion_b":"A-WI-01","candidate_id":"SEM-B651C068CDE26EA1BFEE","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-05","assertion_b":"A-WI-02","candidate_id":"SEM-BFEFD4F9D6928EC9A3A9","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-05","assertion_b":"A-WI-03","candidate_id":"SEM-75925FAE7EF9965419C1","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-05","assertion_b":"A-WI-04","candidate_id":"SEM-03A7B2E68C5AE1290E41","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-05","assertion_b":"A-WI-05","candidate_id":"SEM-925B9DDC669709107309","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-05","assertion_b":"A-WI-06","candidate_id":"SEM-79EF36CE2FF5167A1D57","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-05","assertion_b":"A-WI-07","candidate_id":"SEM-8CBA090361DFB8EBAE1A","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-06","assertion_b":"A-ARCH-07","candidate_id":"SEM-CA909C1920C36BD1D96B","grouping_key":{"condition":"component responsibility table","predicate":"owns","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-06","assertion_b":"A-ARCH-11","candidate_id":"SEM-5BDF670DD12C047D93B6","grouping_key":{"condition":"","predicate":"owns","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-06","assertion_b":"A-WI-01","candidate_id":"SEM-23F1D95A980B15BD859A","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-06","assertion_b":"A-WI-02","candidate_id":"SEM-DEECCBAC1411A867B378","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-06","assertion_b":"A-WI-03","candidate_id":"SEM-4832CF6E30A5ED1E6209","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-06","assertion_b":"A-WI-04","candidate_id":"SEM-D14962C145A7009DCFC0","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-06","assertion_b":"A-WI-05","candidate_id":"SEM-33CCB0310400430E4043","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-06","assertion_b":"A-WI-06","candidate_id":"SEM-8BDDDA543D2DB25D91F8","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-06","assertion_b":"A-WI-07","candidate_id":"SEM-687665532FF2E4491E01","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-07","assertion_b":"A-WI-01","candidate_id":"SEM-680EE0FD027227021257","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-07","assertion_b":"A-WI-02","candidate_id":"SEM-EE64766796E722A6B8DA","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-07","assertion_b":"A-WI-03","candidate_id":"SEM-0AFEDBCC8AB532AADE9E","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-07","assertion_b":"A-WI-04","candidate_id":"SEM-2461D540027FC03620C4","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-07","assertion_b":"A-WI-05","candidate_id":"SEM-80068D14E920169120D0","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-07","assertion_b":"A-WI-06","candidate_id":"SEM-465CBFC782921DA99952","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-07","assertion_b":"A-WI-07","candidate_id":"SEM-F4B7EC052401C7693439","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-09","assertion_b":"A-ARCH-11","candidate_id":"SEM-F342C823F2CF41BA5E94","grouping_key":{"condition":"","predicate":"owns","scope":"","subject":"application layer"},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-09","assertion_b":"A-ARCH-12","candidate_id":"SEM-07F9615DEFF20A01153C","grouping_key":{"condition":"","predicate":"owns","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-11","assertion_b":"A-ARCH-12","candidate_id":"SEM-8EF42ABCE3EE863CA5C0","grouping_key":{"condition":"","predicate":"owns","scope":"port ownership matrix","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-11","assertion_b":"A-SQ-02","candidate_id":"SEM-5AF2EC5E3858E9CC81D3","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ARCH-12","assertion_b":"A-ARCH-13","candidate_id":"SEM-67371FEDBC93ACAB6152","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ART-01","assertion_b":"A-ART-02","candidate_id":"SEM-8359FFFA97FCE29F78F0","grouping_key":{"condition":"","predicate":"","scope":"artifact registry","subject":""},"rule_ids":["C6","C7"]},{"assertion_a":"A-ART-01","assertion_b":"A-ART-03","candidate_id":"SEM-9014AA1ACD705EB72D8A","grouping_key":{"condition":"","predicate":"produces","scope":"artifact registry","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ART-01","assertion_b":"A-ART-04","candidate_id":"SEM-8A0D97AC232CDD6C776B","grouping_key":{"condition":"","predicate":"","scope":"artifact registry","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ART-01","assertion_b":"A-ART-05","candidate_id":"SEM-B8002DBCF1D8C61F523F","grouping_key":{"condition":"","predicate":"produces","scope":"artifact registry","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ART-01","assertion_b":"A-ART-06","candidate_id":"SEM-8513F4BADD93601B2E9D","grouping_key":{"condition":"","predicate":"","scope":"artifact registry","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ART-01","assertion_b":"A-ART-07","candidate_id":"SEM-F461B950E6B1641A4EF0","grouping_key":{"condition":"","predicate":"produces","scope":"artifact registry","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ART-01","assertion_b":"A-ART-08","candidate_id":"SEM-4238B73F73CFCEC3F438","grouping_key":{"condition":"","predicate":"","scope":"artifact registry","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ART-01","assertion_b":"A-CG-15","candidate_id":"SEM-D21F255517DC71B5A69C","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ART-01","assertion_b":"A-WI-01","candidate_id":"SEM-150D601416F8F7CA23CC","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ART-01","assertion_b":"A-WI-06","candidate_id":"SEM-1F2FE43D2B89F9B44B8C","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ART-02","assertion_b":"A-ART-03","candidate_id":"SEM-897B777C9698D288B931","grouping_key":{"condition":"","predicate":"","scope":"artifact registry","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ART-02","assertion_b":"A-ART-04","candidate_id":"SEM-FEA8F1A945F3F8180FEF","grouping_key":{"condition":"","predicate":"consumes","scope":"artifact registry","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ART-02","assertion_b":"A-ART-05","candidate_id":"SEM-1D73C1272AAA50133F2E","grouping_key":{"condition":"","predicate":"","scope":"artifact registry","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ART-02","assertion_b":"A-ART-06","candidate_id":"SEM-F34B78E2FEB9E2D91927","grouping_key":{"condition":"","predicate":"consumes","scope":"artifact registry","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ART-02","assertion_b":"A-ART-07","candidate_id":"SEM-B2805A20AC4F1EBB8073","grouping_key":{"condition":"","predicate":"","scope":"artifact registry","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ART-02","assertion_b":"A-ART-08","candidate_id":"SEM-DDDD023FE5DDA4EF4E76","grouping_key":{"condition":"","predicate":"consumes","scope":"artifact registry","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ART-02","assertion_b":"A-CG-15","candidate_id":"SEM-9921CD29E1CCD21C26D0","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ART-02","assertion_b":"A-WI-01","candidate_id":"SEM-FA7388637A6BCDAC0BF8","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ART-02","assertion_b":"A-WI-06","candidate_id":"SEM-1969D9367461A92C6CCC","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ART-03","assertion_b":"A-ART-04","candidate_id":"SEM-C9659A4AB39E934532DC","grouping_key":{"condition":"","predicate":"","scope":"artifact registry","subject":""},"rule_ids":["C6","C7"]},{"assertion_a":"A-ART-03","assertion_b":"A-ART-07","candidate_id":"SEM-F9D4AA5C3A40C3523113","grouping_key":{"condition":"","predicate":"produces","scope":"artifact registry","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ART-03","assertion_b":"A-ART-08","candidate_id":"SEM-C79E60769E2AA643136A","grouping_key":{"condition":"","predicate":"","scope":"artifact registry","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ART-04","assertion_b":"A-ART-07","candidate_id":"SEM-1702F6FA22CC0ABE10C4","grouping_key":{"condition":"","predicate":"","scope":"artifact registry","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ART-04","assertion_b":"A-ART-08","candidate_id":"SEM-58346293FFFCF2D80673","grouping_key":{"condition":"","predicate":"consumes","scope":"artifact registry","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ART-05","assertion_b":"A-ART-06","candidate_id":"SEM-F25A38DC0B5BEF9419D8","grouping_key":{"condition":"","predicate":"","scope":"artifact registry","subject":""},"rule_ids":["C6","C7"]},{"assertion_a":"A-ART-05","assertion_b":"A-CG-15","candidate_id":"SEM-4CDE24C8CBDD6E21C7F8","grouping_key":{"condition":"","predicate":"","scope":"","subject":"feature-frontend-release-cache-rollback-contract"},"rule_ids":["C6"]},{"assertion_a":"A-ART-05","assertion_b":"A-WI-06","candidate_id":"SEM-4C06C3764C04824FAA5E","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ART-06","assertion_b":"A-CG-15","candidate_id":"SEM-956953101CB0DA8E045C","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ART-06","assertion_b":"A-WI-06","candidate_id":"SEM-8664121E0E86192C5424","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-ART-07","assertion_b":"A-ART-08","candidate_id":"SEM-1B6FEA8613F89994333A","grouping_key":{"condition":"","predicate":"","scope":"artifact registry","subject":""},"rule_ids":["C6","C7"]},{"assertion_a":"A-ART-09","assertion_b":"A-CG-01","candidate_id":"SEM-7D0AB03857619746DFCC","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-CG-03","assertion_b":"A-CG-04","candidate_id":"SEM-87B3149CDFBDE340327A","grouping_key":{"condition":"","predicate":"owns","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-CG-03","assertion_b":"A-CG-06","candidate_id":"SEM-B5E0E6D5EBEEFE156969","grouping_key":{"condition":"","predicate":"owns","scope":"","subject":""},"rule_ids":["C6","C7"]},{"assertion_a":"A-CG-03","assertion_b":"A-CG-13","candidate_id":"SEM-525E44A6716A50B46C7D","grouping_key":{"condition":"","predicate":"owns","scope":"","subject":""},"rule_ids":["C6","C7"]},{"assertion_a":"A-CG-05","assertion_b":"A-CG-14","candidate_id":"SEM-34089A2F97592DB42EF3","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6","C7"]},{"assertion_a":"A-CG-06","assertion_b":"A-CG-13","candidate_id":"SEM-9D689A643533B08F32F4","grouping_key":{"condition":"","predicate":"owns","scope":"","subject":"ca-skeleton-frontend-operational-contract"},"rule_ids":["C6"]},{"assertion_a":"A-CG-06","assertion_b":"A-CG-14","candidate_id":"SEM-B43DE933374FA4DDABD3","grouping_key":{"condition":"","predicate":"owns","scope":"","subject":"ca-skeleton-frontend-operational-contract"},"rule_ids":["C6"]},{"assertion_a":"A-CG-07","assertion_b":"A-WI-02","candidate_id":"SEM-0838E0BDE08A58375035","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-CG-09","assertion_b":"A-FS-01","candidate_id":"SEM-FF0DC073B67B164B0B7A","grouping_key":{"condition":"","predicate":"owns","scope":"","subject":"feature-api-client-response-envelope-contract"},"rule_ids":["C6"]},{"assertion_a":"A-CG-09","assertion_b":"A-FS-02","candidate_id":"SEM-DE4449EB62D33E3EAEBA","grouping_key":{"condition":"","predicate":"owns","scope":"","subject":"feature-api-client-response-envelope-contract"},"rule_ids":["C6"]},{"assertion_a":"A-CG-09","assertion_b":"A-FS-03","candidate_id":"SEM-972AEE6B16A58F93E143","grouping_key":{"condition":"","predicate":"owns","scope":"","subject":"feature-api-client-response-envelope-contract"},"rule_ids":["C6"]},{"assertion_a":"A-CG-09","assertion_b":"A-WI-03","candidate_id":"SEM-0B6743DBE0BCC7FCB7A7","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-CG-10","assertion_b":"A-WI-04","candidate_id":"SEM-1BCA4BC5830827274856","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-CG-13","assertion_b":"A-CG-14","candidate_id":"SEM-EFC89A7DFF11A82FDE18","grouping_key":{"condition":"","predicate":"owns","scope":"","subject":"ca-skeleton-frontend-operational-contract"},"rule_ids":["C6"]},{"assertion_a":"A-CG-15","assertion_b":"A-WI-06","candidate_id":"SEM-64D59E4874685914D9FA","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-FS-01","assertion_b":"A-FS-02","candidate_id":"SEM-808C3D624B202A13B834","grouping_key":{"condition":"","predicate":"owns","scope":"","subject":"feature-api-client-response-envelope-contract"},"rule_ids":["C6"]},{"assertion_a":"A-FS-01","assertion_b":"A-FS-03","candidate_id":"SEM-2B169F2B4D5B994A1048","grouping_key":{"condition":"","predicate":"owns","scope":"","subject":"feature-api-client-response-envelope-contract"},"rule_ids":["C6"]},{"assertion_a":"A-FS-01","assertion_b":"A-WI-03","candidate_id":"SEM-7108FEF6E1BA4E742BE7","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-FS-02","assertion_b":"A-FS-03","candidate_id":"SEM-04951558109B1C7F829B","grouping_key":{"condition":"","predicate":"owns","scope":"","subject":"feature-api-client-response-envelope-contract"},"rule_ids":["C6"]},{"assertion_a":"A-FS-02","assertion_b":"A-WI-03","candidate_id":"SEM-70FBA2CC0013B3B4B26E","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-FS-03","assertion_b":"A-WI-03","candidate_id":"SEM-76D95C8B49DDE20E1A3B","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-FS-04","assertion_b":"A-FS-05","candidate_id":"SEM-92C6C3551783A0313213","grouping_key":{"condition":"","predicate":"owns","scope":"","subject":"feature-runtime-schema-validation-contract"},"rule_ids":["C6"]},{"assertion_a":"A-FS-04","assertion_b":"A-FS-06","candidate_id":"SEM-C8D745A695FB430DE4A2","grouping_key":{"condition":"","predicate":"owns","scope":"","subject":"feature-runtime-schema-validation-contract"},"rule_ids":["C6"]},{"assertion_a":"A-FS-05","assertion_b":"A-FS-06","candidate_id":"SEM-93D86B840148D8A4B227","grouping_key":{"condition":"","predicate":"owns","scope":"","subject":"feature-runtime-schema-validation-contract"},"rule_ids":["C6"]},{"assertion_a":"A-PD-01","assertion_b":"A-PD-02","candidate_id":"SEM-C6E6CA228D9EFC058A50","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-01","assertion_b":"A-PD-03","candidate_id":"SEM-B76A86C031F173342070","grouping_key":{"condition":"","predicate":"other","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-01","assertion_b":"A-PD-04","candidate_id":"SEM-3A70E60D37FC91ADDC2A","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-01","assertion_b":"A-PD-05","candidate_id":"SEM-4EA964EDD9BD62817485","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-01","assertion_b":"A-PD-06","candidate_id":"SEM-CA2465ED01987A881B87","grouping_key":{"condition":"status conditional-default","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-01","assertion_b":"A-PD-07","candidate_id":"SEM-807E447136B567057155","grouping_key":{"condition":"status conditional-default","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-01","assertion_b":"A-PD-08","candidate_id":"SEM-F21CA678F91558197F16","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-01","assertion_b":"A-PD-09","candidate_id":"SEM-E9CF30A370CEBE605141","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-01","assertion_b":"A-PD-10","candidate_id":"SEM-7C29AE13221EC4E797D6","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-01","assertion_b":"A-PD-11","candidate_id":"SEM-9EF7234A0A7EAE9ACE0F","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-01","assertion_b":"A-PD-12","candidate_id":"SEM-8F81DB0E50A524181947","grouping_key":{"condition":"status conditional-default","predicate":"other","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-01","assertion_b":"A-PD-13","candidate_id":"SEM-539BD9A80FA0B24ED0BC","grouping_key":{"condition":"","predicate":"other","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-02","assertion_b":"A-PD-03","candidate_id":"SEM-4AF0D62DDBA08B6EDBD2","grouping_key":{"condition":"status accepted-documented-only","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-02","assertion_b":"A-PD-04","candidate_id":"SEM-D9D03EDC15AF099F90AE","grouping_key":{"condition":"status accepted-documented-only","predicate":"owns","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-02","assertion_b":"A-PD-05","candidate_id":"SEM-42153BB1E44941B6959C","grouping_key":{"condition":"status accepted-documented-only","predicate":"owns","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-02","assertion_b":"A-PD-06","candidate_id":"SEM-25745BD6E07025D1C8C9","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-02","assertion_b":"A-PD-07","candidate_id":"SEM-14C9CCA8412204CCD3B3","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-02","assertion_b":"A-PD-08","candidate_id":"SEM-F8F8A16203190B8EDCF9","grouping_key":{"condition":"status accepted-documented-only","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-02","assertion_b":"A-PD-09","candidate_id":"SEM-3C03EAD74EEE7CEAB89E","grouping_key":{"condition":"status accepted-documented-only","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-02","assertion_b":"A-PD-10","candidate_id":"SEM-AFB410AA572A711031FA","grouping_key":{"condition":"status accepted-documented-only","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-02","assertion_b":"A-PD-11","candidate_id":"SEM-FF277D10AB6BA99A09A9","grouping_key":{"condition":"status accepted-documented-only","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-02","assertion_b":"A-PD-12","candidate_id":"SEM-9F80AC55D507DAE5701C","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-02","assertion_b":"A-PD-13","candidate_id":"SEM-5723BA773F08EC58D43D","grouping_key":{"condition":"status accepted-documented-only","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-03","assertion_b":"A-PD-04","candidate_id":"SEM-08ABF47CF5CA7B96C173","grouping_key":{"condition":"status accepted-documented-only","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-03","assertion_b":"A-PD-05","candidate_id":"SEM-5813E89AC1AEBA8E206C","grouping_key":{"condition":"status accepted-documented-only","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-03","assertion_b":"A-PD-06","candidate_id":"SEM-8106BD40C32BA6C09629","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-03","assertion_b":"A-PD-07","candidate_id":"SEM-3B9D5455F558BEC68B43","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-03","assertion_b":"A-PD-08","candidate_id":"SEM-679342F3AF529EAA644E","grouping_key":{"condition":"status accepted-documented-only","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-03","assertion_b":"A-PD-09","candidate_id":"SEM-EE9B5A2860D5853AC82F","grouping_key":{"condition":"status accepted-documented-only","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-03","assertion_b":"A-PD-10","candidate_id":"SEM-BDCAA0F6343030A83D0A","grouping_key":{"condition":"status accepted-documented-only","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-03","assertion_b":"A-PD-11","candidate_id":"SEM-4D506ECD20796AC8B611","grouping_key":{"condition":"status accepted-documented-only","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-03","assertion_b":"A-PD-12","candidate_id":"SEM-02EDA290D9C98620F850","grouping_key":{"condition":"","predicate":"other","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-03","assertion_b":"A-PD-13","candidate_id":"SEM-3666AF35F0E2D6D0957A","grouping_key":{"condition":"status accepted-documented-only","predicate":"other","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-04","assertion_b":"A-PD-05","candidate_id":"SEM-F06E535A764D2EC9E130","grouping_key":{"condition":"status accepted-documented-only","predicate":"owns","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-04","assertion_b":"A-PD-06","candidate_id":"SEM-3E8FCF1822D834C29F22","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-04","assertion_b":"A-PD-07","candidate_id":"SEM-DC52DF376B6BC4633BC9","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-04","assertion_b":"A-PD-08","candidate_id":"SEM-A491C2C7DEB0D9A1EEFF","grouping_key":{"condition":"status accepted-documented-only","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-04","assertion_b":"A-PD-09","candidate_id":"SEM-71C2F98DA2F8DB9BD586","grouping_key":{"condition":"status accepted-documented-only","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-04","assertion_b":"A-PD-10","candidate_id":"SEM-EE5FB568ECC042A2A739","grouping_key":{"condition":"status accepted-documented-only","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-04","assertion_b":"A-PD-11","candidate_id":"SEM-D1FEF8517FE311C98C50","grouping_key":{"condition":"status accepted-documented-only","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-04","assertion_b":"A-PD-12","candidate_id":"SEM-4967B7ADA3CCE28AD941","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-04","assertion_b":"A-PD-13","candidate_id":"SEM-5D91CA7CD56C89CCF372","grouping_key":{"condition":"status accepted-documented-only","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-05","assertion_b":"A-PD-06","candidate_id":"SEM-8C6020E00DFF2CB9C9A4","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-05","assertion_b":"A-PD-07","candidate_id":"SEM-19D5E9959FA29FAF1C9F","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-05","assertion_b":"A-PD-08","candidate_id":"SEM-926706A6537A89F3F9A3","grouping_key":{"condition":"status accepted-documented-only","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-05","assertion_b":"A-PD-09","candidate_id":"SEM-9A0042E233D3D7C74E43","grouping_key":{"condition":"status accepted-documented-only","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-05","assertion_b":"A-PD-10","candidate_id":"SEM-768E3BF9CAAA2CE2AC94","grouping_key":{"condition":"status accepted-documented-only","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-05","assertion_b":"A-PD-11","candidate_id":"SEM-3980559612A553D6DF56","grouping_key":{"condition":"status accepted-documented-only","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-05","assertion_b":"A-PD-12","candidate_id":"SEM-C3FD19238BF73779F0F1","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-05","assertion_b":"A-PD-13","candidate_id":"SEM-0F8A57633CF4C0D23FA9","grouping_key":{"condition":"status accepted-documented-only","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-06","assertion_b":"A-PD-07","candidate_id":"SEM-9B1D7B1813CBBD4FEE85","grouping_key":{"condition":"status conditional-default","predicate":"has_threshold","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-06","assertion_b":"A-PD-08","candidate_id":"SEM-A2E4B802C1273E37F5C1","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-06","assertion_b":"A-PD-09","candidate_id":"SEM-A56F168C5E2C461A42B1","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-06","assertion_b":"A-PD-10","candidate_id":"SEM-F754A9F289CE3D634E16","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-06","assertion_b":"A-PD-11","candidate_id":"SEM-CB5098E61D3DE5C69C7E","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-06","assertion_b":"A-PD-12","candidate_id":"SEM-D6CBB7807073A78F0983","grouping_key":{"condition":"status conditional-default","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-06","assertion_b":"A-PD-13","candidate_id":"SEM-D5D798F17E953AC9A7CB","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-07","assertion_b":"A-PD-08","candidate_id":"SEM-FDB41924EA28CA45C9DD","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-07","assertion_b":"A-PD-09","candidate_id":"SEM-EC6D807E0F7888DE2FAD","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-07","assertion_b":"A-PD-10","candidate_id":"SEM-F9511C869B8C21FB887F","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-07","assertion_b":"A-PD-11","candidate_id":"SEM-FB7F096F40F16FE95A8A","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-07","assertion_b":"A-PD-12","candidate_id":"SEM-68A7AB53E2F4AF9666FA","grouping_key":{"condition":"status conditional-default","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-07","assertion_b":"A-PD-13","candidate_id":"SEM-6F0D3B2F92F96FB6F8A6","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-08","assertion_b":"A-PD-09","candidate_id":"SEM-0272947495E513D54C49","grouping_key":{"condition":"status accepted-documented-only","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-08","assertion_b":"A-PD-10","candidate_id":"SEM-55747D1A71B42DF73C38","grouping_key":{"condition":"status accepted-documented-only","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-08","assertion_b":"A-PD-11","candidate_id":"SEM-A5039B8AF63A920653F4","grouping_key":{"condition":"status accepted-documented-only","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-08","assertion_b":"A-PD-12","candidate_id":"SEM-BCB9BD3642ABA41B303A","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-08","assertion_b":"A-PD-13","candidate_id":"SEM-CC4690A7BC7FAFAB9DCC","grouping_key":{"condition":"status accepted-documented-only","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-09","assertion_b":"A-PD-10","candidate_id":"SEM-1C28EAFF5D715B850CDA","grouping_key":{"condition":"status accepted-documented-only","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-09","assertion_b":"A-PD-11","candidate_id":"SEM-CF1709FECE58A0A486CE","grouping_key":{"condition":"status accepted-documented-only","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-09","assertion_b":"A-PD-12","candidate_id":"SEM-054E066C6CF2F2571E5D","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-09","assertion_b":"A-PD-13","candidate_id":"SEM-C36A3AB80A076B649919","grouping_key":{"condition":"status accepted-documented-only","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-10","assertion_b":"A-PD-11","candidate_id":"SEM-A8D156BE1A6E4849A475","grouping_key":{"condition":"status accepted-documented-only","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-10","assertion_b":"A-PD-12","candidate_id":"SEM-E7397CC3E543B161F350","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-10","assertion_b":"A-PD-13","candidate_id":"SEM-B86E8DF18A7DA17A9C51","grouping_key":{"condition":"status accepted-documented-only","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-11","assertion_b":"A-PD-12","candidate_id":"SEM-7EC56AE35F46B0DE831F","grouping_key":{"condition":"","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-11","assertion_b":"A-PD-13","candidate_id":"SEM-E88C711A63287CB95B6F","grouping_key":{"condition":"status accepted-documented-only","predicate":"","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-12","assertion_b":"A-PD-13","candidate_id":"SEM-9AFC6611DA31266EB089","grouping_key":{"condition":"","predicate":"other","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-PD-13","assertion_b":"A-PD-14","candidate_id":"SEM-86D2FA4B1B325991851C","grouping_key":{"condition":"","predicate":"other","scope":"","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-WI-01","assertion_b":"A-WI-02","candidate_id":"SEM-2733455AAD64810EEFE5","grouping_key":{"condition":"","predicate":"","scope":"work items","subject":""},"rule_ids":["C6","C7"]},{"assertion_a":"A-WI-01","assertion_b":"A-WI-03","candidate_id":"SEM-37D3123F1A400EF2C28F","grouping_key":{"condition":"","predicate":"","scope":"work items","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-WI-01","assertion_b":"A-WI-04","candidate_id":"SEM-232C2899AB159052D7D5","grouping_key":{"condition":"","predicate":"","scope":"work items","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-WI-01","assertion_b":"A-WI-05","candidate_id":"SEM-109BBB3A51E79EEF2803","grouping_key":{"condition":"","predicate":"","scope":"work items","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-WI-01","assertion_b":"A-WI-06","candidate_id":"SEM-463FC9C119E3BE4184F7","grouping_key":{"condition":"","predicate":"","scope":"work items","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-WI-01","assertion_b":"A-WI-07","candidate_id":"SEM-20701A4EE8C0A1200D14","grouping_key":{"condition":"","predicate":"","scope":"work items","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-WI-02","assertion_b":"A-WI-03","candidate_id":"SEM-40F50617DED8CE95B1C2","grouping_key":{"condition":"","predicate":"requires","scope":"work items","subject":""},"rule_ids":["C6","C7"]},{"assertion_a":"A-WI-02","assertion_b":"A-WI-04","candidate_id":"SEM-26D3B9EECC86F2B110CB","grouping_key":{"condition":"","predicate":"requires","scope":"work items","subject":""},"rule_ids":["C6","C7"]},{"assertion_a":"A-WI-02","assertion_b":"A-WI-05","candidate_id":"SEM-22A9D8ABDC703DB35145","grouping_key":{"condition":"","predicate":"","scope":"work items","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-WI-02","assertion_b":"A-WI-06","candidate_id":"SEM-E6C2ADCF76A7AD6A760A","grouping_key":{"condition":"","predicate":"","scope":"work items","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-WI-02","assertion_b":"A-WI-07","candidate_id":"SEM-1430EF76679CA1718BEE","grouping_key":{"condition":"","predicate":"","scope":"work items","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-WI-03","assertion_b":"A-WI-04","candidate_id":"SEM-ED20736C43AFFA57346C","grouping_key":{"condition":"","predicate":"requires","scope":"work items","subject":""},"rule_ids":["C6","C7"]},{"assertion_a":"A-WI-03","assertion_b":"A-WI-05","candidate_id":"SEM-099089BB829F7F1DB913","grouping_key":{"condition":"","predicate":"","scope":"work items","subject":""},"rule_ids":["C6","C7"]},{"assertion_a":"A-WI-03","assertion_b":"A-WI-06","candidate_id":"SEM-8373262E833D9D6BEB9C","grouping_key":{"condition":"","predicate":"","scope":"work items","subject":""},"rule_ids":["C6","C7"]},{"assertion_a":"A-WI-03","assertion_b":"A-WI-07","candidate_id":"SEM-D1B7AD7BA9B16A9C1A77","grouping_key":{"condition":"","predicate":"","scope":"work items","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-WI-04","assertion_b":"A-WI-05","candidate_id":"SEM-10CA7B5F53E87092709B","grouping_key":{"condition":"","predicate":"","scope":"work items","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-WI-04","assertion_b":"A-WI-06","candidate_id":"SEM-DC72EEFBBE81FAA85289","grouping_key":{"condition":"","predicate":"","scope":"work items","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-WI-04","assertion_b":"A-WI-07","candidate_id":"SEM-10456E0A84854CDBABFA","grouping_key":{"condition":"","predicate":"","scope":"work items","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-WI-05","assertion_b":"A-WI-06","candidate_id":"SEM-C6C2D876D7778D1C6051","grouping_key":{"condition":"","predicate":"runs_after","scope":"work items","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-WI-05","assertion_b":"A-WI-07","candidate_id":"SEM-D8DEE55CBDFA8CC819B2","grouping_key":{"condition":"","predicate":"runs_after","scope":"work items","subject":""},"rule_ids":["C6"]},{"assertion_a":"A-WI-06","assertion_b":"A-WI-07","candidate_id":"SEM-8467EDCA8F2D47362089","grouping_key":{"condition":"","predicate":"runs_after","scope":"work items","subject":""},"rule_ids":["C6","C7"]}],"coverage":{"assertions":98,"candidate_pairs":233,"eligible_surfaces":9,"processed_surfaces":9},"document_sha256":"5cdbbea21dddbd102e2b096ccdf0b281a24ddea2406e34c8f41dfb5dbad2f3e5","explicit_blocking":[],"mode":"hub","ontology_sha256":"76d41a29233c830e1940ebb3244263e2b9bfb8dd6a01f2a1d1c51ce5a1b10468","output_schema":"semantic-audit-result/v1","schema_version":"semantic-verdict-request/v1","subject":"raw/project-notes/ca-skeleton-frontend-operational-contract.md"},"audit_request_sha256":"325dee6df2eb1f8d4790551b25963d7937e24bc4fa0124d00c40f436266f99e0","audit_result":{"auditor":{"contract_version":"semantic-coherence/v1","model_id":"claude-opus-4-8","run_id":"a3c7aa5da457e9fd4"},"mode":"hub","request_sha256":"325dee6df2eb1f8d4790551b25963d7937e24bc4fa0124d00c40f436266f99e0","schema_version":"semantic-audit-result/v1","subject":"raw/project-notes/ca-skeleton-frontend-operational-contract.md","verdicts":[{"candidate_id":"SEM-B7C900F119E5BE6F18E4","evidence_a":{"line_end":458,"line_start":458,"quote":"| `domain` | framework-neutral model, value semantics, pure policy | standard JavaScript only | React, router, Query, fetch, storage, telemetry | `planned` |"},"evidence_b":{"line_end":458,"line_start":458,"quote":"| `domain` | framework-neutral model, value semantics, pure policy | standard JavaScript only | React, router, Query, fetch, storage, telemetry | `planned` |"},"proof_manifest":null,"rationale":"Same subject 'domain layer' on the architecture/port ownership surface: one entry states its positive responsibility while the other states its prohibited scope; a compatible responsibility+boundary pair, not conflicting values for one property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-1141A58AE65C5640C4F1","evidence_a":{"line_end":458,"line_start":458,"quote":"| `domain` | framework-neutral model, value semantics, pure policy | standard JavaScript only | React, router, Query, fetch, storage, telemetry | `planned` |"},"evidence_b":{"line_end":459,"line_start":459,"quote":"| `application` | use case, input/output port, `QueryCachePort` policy, orchestration, view-model contract | domain | concrete adapter, browser global, React component | `planned` |"},"proof_manifest":null,"rationale":"Distinct entries of the same architecture/port ownership surface: 'A-ARCH-01' (owns 'domain layer') and 'A-ARCH-03' (owns 'application layer') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-13AE72CEE9E5D822059A","evidence_a":{"line_end":458,"line_start":458,"quote":"| `domain` | framework-neutral model, value semantics, pure policy | standard JavaScript only | React, router, Query, fetch, storage, telemetry | `planned` |"},"evidence_b":{"line_end":460,"line_start":460,"quote":"| `presentation` | page/component, user event, view state rendering | application public API | raw API DTO, fetch, storage key, telemetry transport | `planned` |"},"proof_manifest":null,"rationale":"Distinct entries of the same architecture/port ownership surface: 'A-ARCH-01' (owns 'domain layer') and 'A-ARCH-04' (owns 'presentation layer') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-9DB3F41941DF333C5545","evidence_a":{"line_end":458,"line_start":458,"quote":"| `domain` | framework-neutral model, value semantics, pure policy | standard JavaScript only | React, router, Query, fetch, storage, telemetry | `planned` |"},"evidence_b":{"line_end":461,"line_start":461,"quote":"| `adapters/http` | application output port implementation, envelope/schema/error mapping | application port, browser fetch | use-case policy, component rendering | `planned` |"},"proof_manifest":null,"rationale":"Distinct entries of the same architecture/port ownership surface: 'A-ARCH-01' (owns 'domain layer') and 'A-ARCH-05' (owns 'adapters/http') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-39F806EF754B595993B2","evidence_a":{"line_end":458,"line_start":458,"quote":"| `domain` | framework-neutral model, value semantics, pure policy | standard JavaScript only | React, router, Query, fetch, storage, telemetry | `planned` |"},"evidence_b":{"line_end":464,"line_start":464,"quote":"| `adapters/query-cache` | application-owned `QueryCachePort` implementation, TanStack Query key/invalidation bridge | application port, TanStack Query | use-case policy, page-local query key | `planned` |"},"proof_manifest":null,"rationale":"Distinct entries of the same architecture/port ownership surface: 'A-ARCH-01' (owns 'domain layer') and 'A-ARCH-06' (owns 'adapters/query-cache') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-2E6084F0E377FE30CEDE","evidence_a":{"line_end":458,"line_start":458,"quote":"| `domain` | framework-neutral model, value semantics, pure policy | standard JavaScript only | React, router, Query, fetch, storage, telemetry | `planned` |"},"evidence_b":{"line_end":465,"line_start":465,"quote":"| `bootstrap` | config load, adapter construction, dependency injection, React mount | all runtime modules | business rule, page-specific orchestration | `planned` |"},"proof_manifest":null,"rationale":"Distinct entries of the same architecture/port ownership surface: 'A-ARCH-01' (owns 'domain layer') and 'A-ARCH-07' (owns 'bootstrap') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-A367189E824A325EFBDD","evidence_a":{"line_end":458,"line_start":458,"quote":"| `domain` | framework-neutral model, value semantics, pure policy | standard JavaScript only | React, router, Query, fetch, storage, telemetry | `planned` |"},"evidence_b":{"line_end":2027,"line_start":2027,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-01' governs 'domain layer' and 'A-WI-01' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-FD59119014CC879CF140","evidence_a":{"line_end":458,"line_start":458,"quote":"| `domain` | framework-neutral model, value semantics, pure policy | standard JavaScript only | React, router, Query, fetch, storage, telemetry | `planned` |"},"evidence_b":{"line_end":2028,"line_start":2028,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-01' governs 'domain layer' and 'A-WI-02' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-004F3CFBA1BB527BDCAB","evidence_a":{"line_end":458,"line_start":458,"quote":"| `domain` | framework-neutral model, value semantics, pure policy | standard JavaScript only | React, router, Query, fetch, storage, telemetry | `planned` |"},"evidence_b":{"line_end":2031,"line_start":2031,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-01' governs 'domain layer' and 'A-WI-03' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-77162A3FF3C8497F5041","evidence_a":{"line_end":458,"line_start":458,"quote":"| `domain` | framework-neutral model, value semantics, pure policy | standard JavaScript only | React, router, Query, fetch, storage, telemetry | `planned` |"},"evidence_b":{"line_end":2034,"line_start":2034,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-008` | `feature-frontend-auth-session-integration-contract` | AuthSessionPort·bounded 401 replay와 token lifecycle import 금지가 test로 고정된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-AUTH-BOUNDARY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-PORT-OWNERSHIP-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-002` | `planned` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-01' governs 'domain layer' and 'A-WI-04' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-6E1F0FFA9F0FAB5BD5C9","evidence_a":{"line_end":458,"line_start":458,"quote":"| `domain` | framework-neutral model, value semantics, pure policy | standard JavaScript only | React, router, Query, fetch, storage, telemetry | `planned` |"},"evidence_b":{"line_end":2042,"line_start":2042,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-016` | `feature-sample-feature-slice-contract-fixture` | full contract slice와 sample removal smoke test가 통과한다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SAMPLE-FIXTURE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-005`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-006`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-007`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-009`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-010` | `planned` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-01' governs 'domain layer' and 'A-WI-05' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-5EF18E2A91F2FBC338AA","evidence_a":{"line_end":458,"line_start":458,"quote":"| `domain` | framework-neutral model, value semantics, pure policy | standard JavaScript only | React, router, Query, fetch, storage, telemetry | `planned` |"},"evidence_b":{"line_end":2050,"line_start":2050,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-024` | `feature-frontend-release-cache-rollback-contract` | release tuple·cache header·mixed fixture failure·rollback drill이 검증된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-DEPLOYMENT-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-CACHE-POLICY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-OFFLINE-CACHE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-020`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-004`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-023` | `planned` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-01' governs 'domain layer' and 'A-WI-06' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-E6F30A4D08E0FA7410CF","evidence_a":{"line_end":458,"line_start":458,"quote":"| `domain` | framework-neutral model, value semantics, pure policy | standard JavaScript only | React, router, Query, fetch, storage, telemetry | `planned` |"},"evidence_b":{"line_end":2053,"line_start":2053,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-01' governs 'domain layer' and 'A-WI-07' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-08FB2FB86BCFDAAC4F63","evidence_a":{"line_end":458,"line_start":458,"quote":"| `domain` | framework-neutral model, value semantics, pure policy | standard JavaScript only | React, router, Query, fetch, storage, telemetry | `planned` |"},"evidence_b":{"line_end":459,"line_start":459,"quote":"| `application` | use case, input/output port, `QueryCachePort` policy, orchestration, view-model contract | domain | concrete adapter, browser global, React component | `planned` |"},"proof_manifest":null,"rationale":"Distinct entries of the same architecture/port ownership surface: 'A-ARCH-02' (forbids 'domain layer') and 'A-ARCH-03' (owns 'application layer') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-8EC5694486F1415B044C","evidence_a":{"line_end":458,"line_start":458,"quote":"| `domain` | framework-neutral model, value semantics, pure policy | standard JavaScript only | React, router, Query, fetch, storage, telemetry | `planned` |"},"evidence_b":{"line_end":460,"line_start":460,"quote":"| `presentation` | page/component, user event, view state rendering | application public API | raw API DTO, fetch, storage key, telemetry transport | `planned` |"},"proof_manifest":null,"rationale":"Distinct entries of the same architecture/port ownership surface: 'A-ARCH-02' (forbids 'domain layer') and 'A-ARCH-04' (owns 'presentation layer') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-B34AAEE54407AD605E89","evidence_a":{"line_end":458,"line_start":458,"quote":"| `domain` | framework-neutral model, value semantics, pure policy | standard JavaScript only | React, router, Query, fetch, storage, telemetry | `planned` |"},"evidence_b":{"line_end":461,"line_start":461,"quote":"| `adapters/http` | application output port implementation, envelope/schema/error mapping | application port, browser fetch | use-case policy, component rendering | `planned` |"},"proof_manifest":null,"rationale":"Distinct entries of the same architecture/port ownership surface: 'A-ARCH-02' (forbids 'domain layer') and 'A-ARCH-05' (owns 'adapters/http') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-A4B620A892F3ABF5A0C0","evidence_a":{"line_end":458,"line_start":458,"quote":"| `domain` | framework-neutral model, value semantics, pure policy | standard JavaScript only | React, router, Query, fetch, storage, telemetry | `planned` |"},"evidence_b":{"line_end":464,"line_start":464,"quote":"| `adapters/query-cache` | application-owned `QueryCachePort` implementation, TanStack Query key/invalidation bridge | application port, TanStack Query | use-case policy, page-local query key | `planned` |"},"proof_manifest":null,"rationale":"Distinct entries of the same architecture/port ownership surface: 'A-ARCH-02' (forbids 'domain layer') and 'A-ARCH-06' (owns 'adapters/query-cache') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-302D87DCF4CEDED799D4","evidence_a":{"line_end":458,"line_start":458,"quote":"| `domain` | framework-neutral model, value semantics, pure policy | standard JavaScript only | React, router, Query, fetch, storage, telemetry | `planned` |"},"evidence_b":{"line_end":465,"line_start":465,"quote":"| `bootstrap` | config load, adapter construction, dependency injection, React mount | all runtime modules | business rule, page-specific orchestration | `planned` |"},"proof_manifest":null,"rationale":"Distinct entries of the same architecture/port ownership surface: 'A-ARCH-02' (forbids 'domain layer') and 'A-ARCH-07' (owns 'bootstrap') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-A783D66133CAB50B1222","evidence_a":{"line_end":458,"line_start":458,"quote":"| `domain` | framework-neutral model, value semantics, pure policy | standard JavaScript only | React, router, Query, fetch, storage, telemetry | `planned` |"},"evidence_b":{"line_end":2027,"line_start":2027,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-02' governs 'domain layer' and 'A-WI-01' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-E9B914D916FF3BFE6C85","evidence_a":{"line_end":458,"line_start":458,"quote":"| `domain` | framework-neutral model, value semantics, pure policy | standard JavaScript only | React, router, Query, fetch, storage, telemetry | `planned` |"},"evidence_b":{"line_end":2028,"line_start":2028,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-02' governs 'domain layer' and 'A-WI-02' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-52090C80DA96397DD0D4","evidence_a":{"line_end":458,"line_start":458,"quote":"| `domain` | framework-neutral model, value semantics, pure policy | standard JavaScript only | React, router, Query, fetch, storage, telemetry | `planned` |"},"evidence_b":{"line_end":2031,"line_start":2031,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-02' governs 'domain layer' and 'A-WI-03' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-D599925069F5883FA4E4","evidence_a":{"line_end":458,"line_start":458,"quote":"| `domain` | framework-neutral model, value semantics, pure policy | standard JavaScript only | React, router, Query, fetch, storage, telemetry | `planned` |"},"evidence_b":{"line_end":2034,"line_start":2034,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-008` | `feature-frontend-auth-session-integration-contract` | AuthSessionPort·bounded 401 replay와 token lifecycle import 금지가 test로 고정된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-AUTH-BOUNDARY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-PORT-OWNERSHIP-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-002` | `planned` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-02' governs 'domain layer' and 'A-WI-04' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-D9426AE19085EB7E6498","evidence_a":{"line_end":458,"line_start":458,"quote":"| `domain` | framework-neutral model, value semantics, pure policy | standard JavaScript only | React, router, Query, fetch, storage, telemetry | `planned` |"},"evidence_b":{"line_end":2042,"line_start":2042,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-016` | `feature-sample-feature-slice-contract-fixture` | full contract slice와 sample removal smoke test가 통과한다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SAMPLE-FIXTURE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-005`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-006`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-007`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-009`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-010` | `planned` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-02' governs 'domain layer' and 'A-WI-05' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-479DE59F43675FE6B0C4","evidence_a":{"line_end":458,"line_start":458,"quote":"| `domain` | framework-neutral model, value semantics, pure policy | standard JavaScript only | React, router, Query, fetch, storage, telemetry | `planned` |"},"evidence_b":{"line_end":2050,"line_start":2050,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-024` | `feature-frontend-release-cache-rollback-contract` | release tuple·cache header·mixed fixture failure·rollback drill이 검증된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-DEPLOYMENT-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-CACHE-POLICY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-OFFLINE-CACHE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-020`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-004`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-023` | `planned` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-02' governs 'domain layer' and 'A-WI-06' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-00D8A876516D9FEA086D","evidence_a":{"line_end":458,"line_start":458,"quote":"| `domain` | framework-neutral model, value semantics, pure policy | standard JavaScript only | React, router, Query, fetch, storage, telemetry | `planned` |"},"evidence_b":{"line_end":2053,"line_start":2053,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-02' governs 'domain layer' and 'A-WI-07' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-1DEA92BC9ED946CE4359","evidence_a":{"line_end":459,"line_start":459,"quote":"| `application` | use case, input/output port, `QueryCachePort` policy, orchestration, view-model contract | domain | concrete adapter, browser global, React component | `planned` |"},"evidence_b":{"line_end":460,"line_start":460,"quote":"| `presentation` | page/component, user event, view state rendering | application public API | raw API DTO, fetch, storage key, telemetry transport | `planned` |"},"proof_manifest":null,"rationale":"Distinct entries of the same architecture/port ownership surface: 'A-ARCH-03' (owns 'application layer') and 'A-ARCH-04' (owns 'presentation layer') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-9541037832070B6A2727","evidence_a":{"line_end":459,"line_start":459,"quote":"| `application` | use case, input/output port, `QueryCachePort` policy, orchestration, view-model contract | domain | concrete adapter, browser global, React component | `planned` |"},"evidence_b":{"line_end":461,"line_start":461,"quote":"| `adapters/http` | application output port implementation, envelope/schema/error mapping | application port, browser fetch | use-case policy, component rendering | `planned` |"},"proof_manifest":null,"rationale":"Distinct entries of the same architecture/port ownership surface: 'A-ARCH-03' (owns 'application layer') and 'A-ARCH-05' (owns 'adapters/http') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-05918E31E73225CDE4B4","evidence_a":{"line_end":459,"line_start":459,"quote":"| `application` | use case, input/output port, `QueryCachePort` policy, orchestration, view-model contract | domain | concrete adapter, browser global, React component | `planned` |"},"evidence_b":{"line_end":464,"line_start":464,"quote":"| `adapters/query-cache` | application-owned `QueryCachePort` implementation, TanStack Query key/invalidation bridge | application port, TanStack Query | use-case policy, page-local query key | `planned` |"},"proof_manifest":null,"rationale":"Distinct entries of the same architecture/port ownership surface: 'A-ARCH-03' (owns 'application layer') and 'A-ARCH-06' (owns 'adapters/query-cache') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-44E425C0C7BE49E99CE3","evidence_a":{"line_end":459,"line_start":459,"quote":"| `application` | use case, input/output port, `QueryCachePort` policy, orchestration, view-model contract | domain | concrete adapter, browser global, React component | `planned` |"},"evidence_b":{"line_end":465,"line_start":465,"quote":"| `bootstrap` | config load, adapter construction, dependency injection, React mount | all runtime modules | business rule, page-specific orchestration | `planned` |"},"proof_manifest":null,"rationale":"Distinct entries of the same architecture/port ownership surface: 'A-ARCH-03' (owns 'application layer') and 'A-ARCH-07' (owns 'bootstrap') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-5B2BA99D09DBBE0967CE","evidence_a":{"line_end":459,"line_start":459,"quote":"| `application` | use case, input/output port, `QueryCachePort` policy, orchestration, view-model contract | domain | concrete adapter, browser global, React component | `planned` |"},"evidence_b":{"line_end":485,"line_start":485,"quote":"- output port definition은 `application`이 `MUST` 소유한다."},"proof_manifest":null,"rationale":"Both surfaces attribute the same ownership to 'application layer': 'A-ARCH-03' (application layer) states the registry/general ownership and 'A-ARCH-09' (port ownership) the specific detail of the same object; identical value, no divergence.","verdict":"CONSISTENT"},{"candidate_id":"SEM-4B2022C567E9D837715B","evidence_a":{"line_end":459,"line_start":459,"quote":"| `application` | use case, input/output port, `QueryCachePort` policy, orchestration, view-model contract | domain | concrete adapter, browser global, React component | `planned` |"},"evidence_b":{"line_end":496,"line_start":496,"quote":"| `QueryCachePort` | `application` | `adapters/query-cache` (`TanStack Query`) | application query/mutation orchestration | registry query key + cache command → cache state/invalidation result | `QUERY_CACHE_FAILURE` |"},"proof_manifest":null,"rationale":"Both surfaces attribute the same ownership to 'application layer': 'A-ARCH-03' (application layer) states the registry/general ownership and 'A-ARCH-11' (port ownership matrix) the specific detail of the same object; identical value, no divergence.","verdict":"CONSISTENT"},{"candidate_id":"SEM-2CD91CC4B17F3616FB5C","evidence_a":{"line_end":459,"line_start":459,"quote":"| `application` | use case, input/output port, `QueryCachePort` policy, orchestration, view-model contract | domain | concrete adapter, browser global, React component | `planned` |"},"evidence_b":{"line_end":497,"line_start":497,"quote":"| `AuthSessionPort` | `application` integration boundary | external auth adapter | routing + API client interceptor | opaque session state / request header callback | `AuthRequired`, `AuthIntegrationFailure` |"},"proof_manifest":null,"rationale":"Distinct entries of the same architecture/port ownership surface: 'A-ARCH-03' (owns 'application layer') and 'A-ARCH-12' (owns 'application integration boundary') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-2384D5EDC00481CF5FF6","evidence_a":{"line_end":459,"line_start":459,"quote":"| `application` | use case, input/output port, `QueryCachePort` policy, orchestration, view-model contract | domain | concrete adapter, browser global, React component | `planned` |"},"evidence_b":{"line_end":2027,"line_start":2027,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-03' governs 'application layer' and 'A-WI-01' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-D054CFC1D567D33E4A02","evidence_a":{"line_end":459,"line_start":459,"quote":"| `application` | use case, input/output port, `QueryCachePort` policy, orchestration, view-model contract | domain | concrete adapter, browser global, React component | `planned` |"},"evidence_b":{"line_end":2028,"line_start":2028,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-03' governs 'application layer' and 'A-WI-02' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-02C7639B3860FA8DF077","evidence_a":{"line_end":459,"line_start":459,"quote":"| `application` | use case, input/output port, `QueryCachePort` policy, orchestration, view-model contract | domain | concrete adapter, browser global, React component | `planned` |"},"evidence_b":{"line_end":2031,"line_start":2031,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-03' governs 'application layer' and 'A-WI-03' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-16F5865FEB47E529724D","evidence_a":{"line_end":459,"line_start":459,"quote":"| `application` | use case, input/output port, `QueryCachePort` policy, orchestration, view-model contract | domain | concrete adapter, browser global, React component | `planned` |"},"evidence_b":{"line_end":2034,"line_start":2034,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-008` | `feature-frontend-auth-session-integration-contract` | AuthSessionPort·bounded 401 replay와 token lifecycle import 금지가 test로 고정된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-AUTH-BOUNDARY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-PORT-OWNERSHIP-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-002` | `planned` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-03' governs 'application layer' and 'A-WI-04' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-187C2AC5FEBE3B7CABCD","evidence_a":{"line_end":459,"line_start":459,"quote":"| `application` | use case, input/output port, `QueryCachePort` policy, orchestration, view-model contract | domain | concrete adapter, browser global, React component | `planned` |"},"evidence_b":{"line_end":2042,"line_start":2042,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-016` | `feature-sample-feature-slice-contract-fixture` | full contract slice와 sample removal smoke test가 통과한다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SAMPLE-FIXTURE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-005`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-006`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-007`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-009`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-010` | `planned` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-03' governs 'application layer' and 'A-WI-05' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-C928F8F0C2502F294E3D","evidence_a":{"line_end":459,"line_start":459,"quote":"| `application` | use case, input/output port, `QueryCachePort` policy, orchestration, view-model contract | domain | concrete adapter, browser global, React component | `planned` |"},"evidence_b":{"line_end":2050,"line_start":2050,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-024` | `feature-frontend-release-cache-rollback-contract` | release tuple·cache header·mixed fixture failure·rollback drill이 검증된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-DEPLOYMENT-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-CACHE-POLICY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-OFFLINE-CACHE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-020`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-004`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-023` | `planned` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-03' governs 'application layer' and 'A-WI-06' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-F783D6E2AA20571126C5","evidence_a":{"line_end":459,"line_start":459,"quote":"| `application` | use case, input/output port, `QueryCachePort` policy, orchestration, view-model contract | domain | concrete adapter, browser global, React component | `planned` |"},"evidence_b":{"line_end":2053,"line_start":2053,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-03' governs 'application layer' and 'A-WI-07' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-FD481B4BDCA20BCDC9F3","evidence_a":{"line_end":460,"line_start":460,"quote":"| `presentation` | page/component, user event, view state rendering | application public API | raw API DTO, fetch, storage key, telemetry transport | `planned` |"},"evidence_b":{"line_end":461,"line_start":461,"quote":"| `adapters/http` | application output port implementation, envelope/schema/error mapping | application port, browser fetch | use-case policy, component rendering | `planned` |"},"proof_manifest":null,"rationale":"Distinct entries of the same architecture/port ownership surface: 'A-ARCH-04' (owns 'presentation layer') and 'A-ARCH-05' (owns 'adapters/http') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-1D3DD226D807BBA31768","evidence_a":{"line_end":460,"line_start":460,"quote":"| `presentation` | page/component, user event, view state rendering | application public API | raw API DTO, fetch, storage key, telemetry transport | `planned` |"},"evidence_b":{"line_end":464,"line_start":464,"quote":"| `adapters/query-cache` | application-owned `QueryCachePort` implementation, TanStack Query key/invalidation bridge | application port, TanStack Query | use-case policy, page-local query key | `planned` |"},"proof_manifest":null,"rationale":"Distinct entries of the same architecture/port ownership surface: 'A-ARCH-04' (owns 'presentation layer') and 'A-ARCH-06' (owns 'adapters/query-cache') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-6EE8A849B8787D589C05","evidence_a":{"line_end":460,"line_start":460,"quote":"| `presentation` | page/component, user event, view state rendering | application public API | raw API DTO, fetch, storage key, telemetry transport | `planned` |"},"evidence_b":{"line_end":465,"line_start":465,"quote":"| `bootstrap` | config load, adapter construction, dependency injection, React mount | all runtime modules | business rule, page-specific orchestration | `planned` |"},"proof_manifest":null,"rationale":"Distinct entries of the same architecture/port ownership surface: 'A-ARCH-04' (owns 'presentation layer') and 'A-ARCH-07' (owns 'bootstrap') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-23F05EE6E75E2DE7C2B6","evidence_a":{"line_end":460,"line_start":460,"quote":"| `presentation` | page/component, user event, view state rendering | application public API | raw API DTO, fetch, storage key, telemetry transport | `planned` |"},"evidence_b":{"line_end":2027,"line_start":2027,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-04' governs 'presentation layer' and 'A-WI-01' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-FF6D7DABDE2E56816669","evidence_a":{"line_end":460,"line_start":460,"quote":"| `presentation` | page/component, user event, view state rendering | application public API | raw API DTO, fetch, storage key, telemetry transport | `planned` |"},"evidence_b":{"line_end":2028,"line_start":2028,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-04' governs 'presentation layer' and 'A-WI-02' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-2988AFCB253A0A816FDD","evidence_a":{"line_end":460,"line_start":460,"quote":"| `presentation` | page/component, user event, view state rendering | application public API | raw API DTO, fetch, storage key, telemetry transport | `planned` |"},"evidence_b":{"line_end":2031,"line_start":2031,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-04' governs 'presentation layer' and 'A-WI-03' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-304C46F0EC2EF86F6904","evidence_a":{"line_end":460,"line_start":460,"quote":"| `presentation` | page/component, user event, view state rendering | application public API | raw API DTO, fetch, storage key, telemetry transport | `planned` |"},"evidence_b":{"line_end":2034,"line_start":2034,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-008` | `feature-frontend-auth-session-integration-contract` | AuthSessionPort·bounded 401 replay와 token lifecycle import 금지가 test로 고정된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-AUTH-BOUNDARY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-PORT-OWNERSHIP-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-002` | `planned` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-04' governs 'presentation layer' and 'A-WI-04' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-8A16F318B4E378DC49D2","evidence_a":{"line_end":460,"line_start":460,"quote":"| `presentation` | page/component, user event, view state rendering | application public API | raw API DTO, fetch, storage key, telemetry transport | `planned` |"},"evidence_b":{"line_end":2042,"line_start":2042,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-016` | `feature-sample-feature-slice-contract-fixture` | full contract slice와 sample removal smoke test가 통과한다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SAMPLE-FIXTURE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-005`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-006`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-007`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-009`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-010` | `planned` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-04' governs 'presentation layer' and 'A-WI-05' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-02433E7CF35A5FE3CC75","evidence_a":{"line_end":460,"line_start":460,"quote":"| `presentation` | page/component, user event, view state rendering | application public API | raw API DTO, fetch, storage key, telemetry transport | `planned` |"},"evidence_b":{"line_end":2050,"line_start":2050,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-024` | `feature-frontend-release-cache-rollback-contract` | release tuple·cache header·mixed fixture failure·rollback drill이 검증된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-DEPLOYMENT-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-CACHE-POLICY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-OFFLINE-CACHE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-020`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-004`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-023` | `planned` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-04' governs 'presentation layer' and 'A-WI-06' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-ABF1557C1FC433572BE0","evidence_a":{"line_end":460,"line_start":460,"quote":"| `presentation` | page/component, user event, view state rendering | application public API | raw API DTO, fetch, storage key, telemetry transport | `planned` |"},"evidence_b":{"line_end":2053,"line_start":2053,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-04' governs 'presentation layer' and 'A-WI-07' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-31788CC5BEDA897C7205","evidence_a":{"line_end":461,"line_start":461,"quote":"| `adapters/http` | application output port implementation, envelope/schema/error mapping | application port, browser fetch | use-case policy, component rendering | `planned` |"},"evidence_b":{"line_end":464,"line_start":464,"quote":"| `adapters/query-cache` | application-owned `QueryCachePort` implementation, TanStack Query key/invalidation bridge | application port, TanStack Query | use-case policy, page-local query key | `planned` |"},"proof_manifest":null,"rationale":"Distinct entries of the same architecture/port ownership surface: 'A-ARCH-05' (owns 'adapters/http') and 'A-ARCH-06' (owns 'adapters/query-cache') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-5CDD15D87B04128E017F","evidence_a":{"line_end":461,"line_start":461,"quote":"| `adapters/http` | application output port implementation, envelope/schema/error mapping | application port, browser fetch | use-case policy, component rendering | `planned` |"},"evidence_b":{"line_end":465,"line_start":465,"quote":"| `bootstrap` | config load, adapter construction, dependency injection, React mount | all runtime modules | business rule, page-specific orchestration | `planned` |"},"proof_manifest":null,"rationale":"Distinct entries of the same architecture/port ownership surface: 'A-ARCH-05' (owns 'adapters/http') and 'A-ARCH-07' (owns 'bootstrap') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-B651C068CDE26EA1BFEE","evidence_a":{"line_end":461,"line_start":461,"quote":"| `adapters/http` | application output port implementation, envelope/schema/error mapping | application port, browser fetch | use-case policy, component rendering | `planned` |"},"evidence_b":{"line_end":2027,"line_start":2027,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-05' governs 'adapters/http' and 'A-WI-01' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-BFEFD4F9D6928EC9A3A9","evidence_a":{"line_end":461,"line_start":461,"quote":"| `adapters/http` | application output port implementation, envelope/schema/error mapping | application port, browser fetch | use-case policy, component rendering | `planned` |"},"evidence_b":{"line_end":2028,"line_start":2028,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-05' governs 'adapters/http' and 'A-WI-02' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-75925FAE7EF9965419C1","evidence_a":{"line_end":461,"line_start":461,"quote":"| `adapters/http` | application output port implementation, envelope/schema/error mapping | application port, browser fetch | use-case policy, component rendering | `planned` |"},"evidence_b":{"line_end":2031,"line_start":2031,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-05' governs 'adapters/http' and 'A-WI-03' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-03A7B2E68C5AE1290E41","evidence_a":{"line_end":461,"line_start":461,"quote":"| `adapters/http` | application output port implementation, envelope/schema/error mapping | application port, browser fetch | use-case policy, component rendering | `planned` |"},"evidence_b":{"line_end":2034,"line_start":2034,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-008` | `feature-frontend-auth-session-integration-contract` | AuthSessionPort·bounded 401 replay와 token lifecycle import 금지가 test로 고정된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-AUTH-BOUNDARY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-PORT-OWNERSHIP-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-002` | `planned` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-05' governs 'adapters/http' and 'A-WI-04' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-925B9DDC669709107309","evidence_a":{"line_end":461,"line_start":461,"quote":"| `adapters/http` | application output port implementation, envelope/schema/error mapping | application port, browser fetch | use-case policy, component rendering | `planned` |"},"evidence_b":{"line_end":2042,"line_start":2042,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-016` | `feature-sample-feature-slice-contract-fixture` | full contract slice와 sample removal smoke test가 통과한다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SAMPLE-FIXTURE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-005`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-006`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-007`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-009`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-010` | `planned` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-05' governs 'adapters/http' and 'A-WI-05' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-79EF36CE2FF5167A1D57","evidence_a":{"line_end":461,"line_start":461,"quote":"| `adapters/http` | application output port implementation, envelope/schema/error mapping | application port, browser fetch | use-case policy, component rendering | `planned` |"},"evidence_b":{"line_end":2050,"line_start":2050,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-024` | `feature-frontend-release-cache-rollback-contract` | release tuple·cache header·mixed fixture failure·rollback drill이 검증된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-DEPLOYMENT-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-CACHE-POLICY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-OFFLINE-CACHE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-020`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-004`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-023` | `planned` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-05' governs 'adapters/http' and 'A-WI-06' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-8CBA090361DFB8EBAE1A","evidence_a":{"line_end":461,"line_start":461,"quote":"| `adapters/http` | application output port implementation, envelope/schema/error mapping | application port, browser fetch | use-case policy, component rendering | `planned` |"},"evidence_b":{"line_end":2053,"line_start":2053,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-05' governs 'adapters/http' and 'A-WI-07' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-CA909C1920C36BD1D96B","evidence_a":{"line_end":464,"line_start":464,"quote":"| `adapters/query-cache` | application-owned `QueryCachePort` implementation, TanStack Query key/invalidation bridge | application port, TanStack Query | use-case policy, page-local query key | `planned` |"},"evidence_b":{"line_end":465,"line_start":465,"quote":"| `bootstrap` | config load, adapter construction, dependency injection, React mount | all runtime modules | business rule, page-specific orchestration | `planned` |"},"proof_manifest":null,"rationale":"Distinct entries of the same architecture/port ownership surface: 'A-ARCH-06' (owns 'adapters/query-cache') and 'A-ARCH-07' (owns 'bootstrap') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-5BDF670DD12C047D93B6","evidence_a":{"line_end":464,"line_start":464,"quote":"| `adapters/query-cache` | application-owned `QueryCachePort` implementation, TanStack Query key/invalidation bridge | application port, TanStack Query | use-case policy, page-local query key | `planned` |"},"evidence_b":{"line_end":496,"line_start":496,"quote":"| `QueryCachePort` | `application` | `adapters/query-cache` (`TanStack Query`) | application query/mutation orchestration | registry query key + cache command → cache state/invalidation result | `QUERY_CACHE_FAILURE` |"},"proof_manifest":null,"rationale":"QueryCachePort ownership appears to differ but the quoted scopes resolve it: the component-responsibility row (scope 'adapters/query-cache') assigns the TanStack Query *implementation* to adapters/query-cache, while the port-ownership matrix (scope 'port ownership matrix') assigns the port *definition* to the application layer. The differing scope (implementation view vs definition view) is the documented definition/implementation split, not a conflicting owner.","verdict":"CONTEXTUAL_VARIANT"},{"candidate_id":"SEM-23F1D95A980B15BD859A","evidence_a":{"line_end":464,"line_start":464,"quote":"| `adapters/query-cache` | application-owned `QueryCachePort` implementation, TanStack Query key/invalidation bridge | application port, TanStack Query | use-case policy, page-local query key | `planned` |"},"evidence_b":{"line_end":2027,"line_start":2027,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-06' governs 'adapters/query-cache' and 'A-WI-01' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-DEECCBAC1411A867B378","evidence_a":{"line_end":464,"line_start":464,"quote":"| `adapters/query-cache` | application-owned `QueryCachePort` implementation, TanStack Query key/invalidation bridge | application port, TanStack Query | use-case policy, page-local query key | `planned` |"},"evidence_b":{"line_end":2028,"line_start":2028,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-06' governs 'adapters/query-cache' and 'A-WI-02' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-4832CF6E30A5ED1E6209","evidence_a":{"line_end":464,"line_start":464,"quote":"| `adapters/query-cache` | application-owned `QueryCachePort` implementation, TanStack Query key/invalidation bridge | application port, TanStack Query | use-case policy, page-local query key | `planned` |"},"evidence_b":{"line_end":2031,"line_start":2031,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-06' governs 'adapters/query-cache' and 'A-WI-03' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-D14962C145A7009DCFC0","evidence_a":{"line_end":464,"line_start":464,"quote":"| `adapters/query-cache` | application-owned `QueryCachePort` implementation, TanStack Query key/invalidation bridge | application port, TanStack Query | use-case policy, page-local query key | `planned` |"},"evidence_b":{"line_end":2034,"line_start":2034,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-008` | `feature-frontend-auth-session-integration-contract` | AuthSessionPort·bounded 401 replay와 token lifecycle import 금지가 test로 고정된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-AUTH-BOUNDARY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-PORT-OWNERSHIP-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-002` | `planned` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-06' governs 'adapters/query-cache' and 'A-WI-04' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-33CCB0310400430E4043","evidence_a":{"line_end":464,"line_start":464,"quote":"| `adapters/query-cache` | application-owned `QueryCachePort` implementation, TanStack Query key/invalidation bridge | application port, TanStack Query | use-case policy, page-local query key | `planned` |"},"evidence_b":{"line_end":2042,"line_start":2042,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-016` | `feature-sample-feature-slice-contract-fixture` | full contract slice와 sample removal smoke test가 통과한다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SAMPLE-FIXTURE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-005`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-006`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-007`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-009`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-010` | `planned` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-06' governs 'adapters/query-cache' and 'A-WI-05' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-8BDDDA543D2DB25D91F8","evidence_a":{"line_end":464,"line_start":464,"quote":"| `adapters/query-cache` | application-owned `QueryCachePort` implementation, TanStack Query key/invalidation bridge | application port, TanStack Query | use-case policy, page-local query key | `planned` |"},"evidence_b":{"line_end":2050,"line_start":2050,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-024` | `feature-frontend-release-cache-rollback-contract` | release tuple·cache header·mixed fixture failure·rollback drill이 검증된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-DEPLOYMENT-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-CACHE-POLICY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-OFFLINE-CACHE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-020`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-004`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-023` | `planned` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-06' governs 'adapters/query-cache' and 'A-WI-06' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-687665532FF2E4491E01","evidence_a":{"line_end":464,"line_start":464,"quote":"| `adapters/query-cache` | application-owned `QueryCachePort` implementation, TanStack Query key/invalidation bridge | application port, TanStack Query | use-case policy, page-local query key | `planned` |"},"evidence_b":{"line_end":2053,"line_start":2053,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-06' governs 'adapters/query-cache' and 'A-WI-07' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-680EE0FD027227021257","evidence_a":{"line_end":465,"line_start":465,"quote":"| `bootstrap` | config load, adapter construction, dependency injection, React mount | all runtime modules | business rule, page-specific orchestration | `planned` |"},"evidence_b":{"line_end":2027,"line_start":2027,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-07' governs 'bootstrap' and 'A-WI-01' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-EE64766796E722A6B8DA","evidence_a":{"line_end":465,"line_start":465,"quote":"| `bootstrap` | config load, adapter construction, dependency injection, React mount | all runtime modules | business rule, page-specific orchestration | `planned` |"},"evidence_b":{"line_end":2028,"line_start":2028,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-07' governs 'bootstrap' and 'A-WI-02' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-0AFEDBCC8AB532AADE9E","evidence_a":{"line_end":465,"line_start":465,"quote":"| `bootstrap` | config load, adapter construction, dependency injection, React mount | all runtime modules | business rule, page-specific orchestration | `planned` |"},"evidence_b":{"line_end":2031,"line_start":2031,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-07' governs 'bootstrap' and 'A-WI-03' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-2461D540027FC03620C4","evidence_a":{"line_end":465,"line_start":465,"quote":"| `bootstrap` | config load, adapter construction, dependency injection, React mount | all runtime modules | business rule, page-specific orchestration | `planned` |"},"evidence_b":{"line_end":2034,"line_start":2034,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-008` | `feature-frontend-auth-session-integration-contract` | AuthSessionPort·bounded 401 replay와 token lifecycle import 금지가 test로 고정된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-AUTH-BOUNDARY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-PORT-OWNERSHIP-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-002` | `planned` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-07' governs 'bootstrap' and 'A-WI-04' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-80068D14E920169120D0","evidence_a":{"line_end":465,"line_start":465,"quote":"| `bootstrap` | config load, adapter construction, dependency injection, React mount | all runtime modules | business rule, page-specific orchestration | `planned` |"},"evidence_b":{"line_end":2042,"line_start":2042,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-016` | `feature-sample-feature-slice-contract-fixture` | full contract slice와 sample removal smoke test가 통과한다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SAMPLE-FIXTURE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-005`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-006`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-007`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-009`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-010` | `planned` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-07' governs 'bootstrap' and 'A-WI-05' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-465CBFC782921DA99952","evidence_a":{"line_end":465,"line_start":465,"quote":"| `bootstrap` | config load, adapter construction, dependency injection, React mount | all runtime modules | business rule, page-specific orchestration | `planned` |"},"evidence_b":{"line_end":2050,"line_start":2050,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-024` | `feature-frontend-release-cache-rollback-contract` | release tuple·cache header·mixed fixture failure·rollback drill이 검증된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-DEPLOYMENT-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-CACHE-POLICY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-OFFLINE-CACHE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-020`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-004`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-023` | `planned` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-07' governs 'bootstrap' and 'A-WI-06' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-F4B7EC052401C7693439","evidence_a":{"line_end":465,"line_start":465,"quote":"| `bootstrap` | config load, adapter construction, dependency injection, React mount | all runtime modules | business rule, page-specific orchestration | `planned` |"},"evidence_b":{"line_end":2053,"line_start":2053,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (architecture/port ownership surface vs work item table surface): 'A-ARCH-07' governs 'bootstrap' and 'A-WI-07' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-F342C823F2CF41BA5E94","evidence_a":{"line_end":485,"line_start":485,"quote":"- output port definition은 `application`이 `MUST` 소유한다."},"evidence_b":{"line_end":496,"line_start":496,"quote":"| `QueryCachePort` | `application` | `adapters/query-cache` (`TanStack Query`) | application query/mutation orchestration | registry query key + cache command → cache state/invalidation result | `QUERY_CACHE_FAILURE` |"},"proof_manifest":null,"rationale":"Both surfaces attribute the same ownership to 'application layer': 'A-ARCH-09' (port ownership) states the registry/general ownership and 'A-ARCH-11' (port ownership matrix) the specific detail of the same object; identical value, no divergence.","verdict":"CONSISTENT"},{"candidate_id":"SEM-07F9615DEFF20A01153C","evidence_a":{"line_end":485,"line_start":485,"quote":"- output port definition은 `application`이 `MUST` 소유한다."},"evidence_b":{"line_end":497,"line_start":497,"quote":"| `AuthSessionPort` | `application` integration boundary | external auth adapter | routing + API client interceptor | opaque session state / request header callback | `AuthRequired`, `AuthIntegrationFailure` |"},"proof_manifest":null,"rationale":"Distinct entries of the same architecture/port ownership surface: 'A-ARCH-09' (owns 'application layer') and 'A-ARCH-12' (owns 'application integration boundary') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-8EF42ABCE3EE863CA5C0","evidence_a":{"line_end":496,"line_start":496,"quote":"| `QueryCachePort` | `application` | `adapters/query-cache` (`TanStack Query`) | application query/mutation orchestration | registry query key + cache command → cache state/invalidation result | `QUERY_CACHE_FAILURE` |"},"evidence_b":{"line_end":497,"line_start":497,"quote":"| `AuthSessionPort` | `application` integration boundary | external auth adapter | routing + API client interceptor | opaque session state / request header callback | `AuthRequired`, `AuthIntegrationFailure` |"},"proof_manifest":null,"rationale":"Distinct entries of the same architecture/port ownership surface: 'A-ARCH-11' (owns 'application layer') and 'A-ARCH-12' (owns 'application integration boundary') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-5AF2EC5E3858E9CC81D3","evidence_a":{"line_end":496,"line_start":496,"quote":"| `QueryCachePort` | `application` | `adapters/query-cache` (`TanStack Query`) | application query/mutation orchestration | registry query key + cache command → cache state/invalidation result | `QUERY_CACHE_FAILURE` |"},"evidence_b":{"line_end":1062,"line_start":1062,"quote":" App->>Query: query/mutation with registry key"},"proof_manifest":null,"rationale":"Same branch/artifact referenced from two authoritative surfaces (architecture/port ownership surface vs request sequence surface): 'A-ARCH-11' (owns 'application layer') and 'A-SQ-02' (uses 'Application') supply compatible facets of one concern (e.g., contract/gate ownership vs work-item schedule, producer vs consumer/own-gate, or contract vs owned flow-stage) without either taking over the other's exclusive responsibility.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-67371FEDBC93ACAB6152","evidence_a":{"line_end":497,"line_start":497,"quote":"| `AuthSessionPort` | `application` integration boundary | external auth adapter | routing + API client interceptor | opaque session state / request header callback | `AuthRequired`, `AuthIntegrationFailure` |"},"evidence_b":{"line_end":503,"line_start":503,"quote":"`AuthSessionPort`는 token 문자열을 domain/application model로 반환하지 않는 형태를 우선한다. header supplier나 opaque credential attachment callback을 사용하고, 구현 세부는 auth owner가 정한다."},"proof_manifest":null,"rationale":"Distinct entries of the same architecture/port ownership surface: 'A-ARCH-12' (owns 'application integration boundary') and 'A-ARCH-13' (delegates 'AuthSessionPort') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-8359FFFA97FCE29F78F0","evidence_a":{"line_end":287,"line_start":287,"quote":"| `ART-FE-001` | 1 | build manifest | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-build-bundle-supply-chain-contract`, `feature-frontend-release-cache-rollback-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/build-manifest.schema.json` | active |"},"evidence_b":{"line_end":287,"line_start":287,"quote":"| `ART-FE-001` | 1 | build manifest | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-build-bundle-supply-chain-contract`, `feature-frontend-release-cache-rollback-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/build-manifest.schema.json` | active |"},"proof_manifest":null,"rationale":"Distinct entries of the same artifact registry surface: 'A-ART-01' (produces 'feature-frontend-project-bootstrap-toolc...') and 'A-ART-02' (consumes 'feature-frontend-build-bundle-supply-cha...') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-9014AA1ACD705EB72D8A","evidence_a":{"line_end":287,"line_start":287,"quote":"| `ART-FE-001` | 1 | build manifest | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-build-bundle-supply-chain-contract`, `feature-frontend-release-cache-rollback-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/build-manifest.schema.json` | active |"},"evidence_b":{"line_end":288,"line_start":288,"quote":"| `ART-FE-002` | 1 | bundle report | `feature-frontend-build-bundle-supply-chain-contract` | `feature-frontend-build-bundle-supply-chain-contract` | `feature-web-vitals-performance-budget-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/bundle-report.schema.json` | active |"},"proof_manifest":null,"rationale":"Distinct entries of the same artifact registry surface: 'A-ART-01' (produces 'feature-frontend-project-bootstrap-toolc...') and 'A-ART-03' (produces 'feature-frontend-build-bundle-supply-cha...') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-8A0D97AC232CDD6C776B","evidence_a":{"line_end":287,"line_start":287,"quote":"| `ART-FE-001` | 1 | build manifest | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-build-bundle-supply-chain-contract`, `feature-frontend-release-cache-rollback-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/build-manifest.schema.json` | active |"},"evidence_b":{"line_end":288,"line_start":288,"quote":"| `ART-FE-002` | 1 | bundle report | `feature-frontend-build-bundle-supply-chain-contract` | `feature-frontend-build-bundle-supply-chain-contract` | `feature-web-vitals-performance-budget-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/bundle-report.schema.json` | active |"},"proof_manifest":null,"rationale":"Distinct entries of the same artifact registry surface: 'A-ART-01' (produces 'feature-frontend-project-bootstrap-toolc...') and 'A-ART-04' (consumes 'feature-web-vitals-performance-budget-co...') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-B8002DBCF1D8C61F523F","evidence_a":{"line_end":287,"line_start":287,"quote":"| `ART-FE-001` | 1 | build manifest | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-build-bundle-supply-chain-contract`, `feature-frontend-release-cache-rollback-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/build-manifest.schema.json` | active |"},"evidence_b":{"line_end":289,"line_start":289,"quote":"| `ART-FE-003` | 1 | release verification | `feature-frontend-release-cache-rollback-contract` | `feature-frontend-release-cache-rollback-contract` | `feature-frontend-contract-compatibility-governance` | `harness/source/artifact-schemas/ca-skeleton-frontend/release-verification.schema.json` | active |"},"proof_manifest":null,"rationale":"Distinct entries of the same artifact registry surface: 'A-ART-01' (produces 'feature-frontend-project-bootstrap-toolc...') and 'A-ART-05' (produces 'feature-frontend-release-cache-rollback-...') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-8513F4BADD93601B2E9D","evidence_a":{"line_end":287,"line_start":287,"quote":"| `ART-FE-001` | 1 | build manifest | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-build-bundle-supply-chain-contract`, `feature-frontend-release-cache-rollback-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/build-manifest.schema.json` | active |"},"evidence_b":{"line_end":289,"line_start":289,"quote":"| `ART-FE-003` | 1 | release verification | `feature-frontend-release-cache-rollback-contract` | `feature-frontend-release-cache-rollback-contract` | `feature-frontend-contract-compatibility-governance` | `harness/source/artifact-schemas/ca-skeleton-frontend/release-verification.schema.json` | active |"},"proof_manifest":null,"rationale":"Distinct entries of the same artifact registry surface: 'A-ART-01' (produces 'feature-frontend-project-bootstrap-toolc...') and 'A-ART-06' (consumes 'feature-frontend-contract-compatibility-...') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-F461B950E6B1641A4EF0","evidence_a":{"line_end":287,"line_start":287,"quote":"| `ART-FE-001` | 1 | build manifest | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-build-bundle-supply-chain-contract`, `feature-frontend-release-cache-rollback-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/build-manifest.schema.json` | active |"},"evidence_b":{"line_end":290,"line_start":290,"quote":"| `ART-FE-004` | 1 | a11y report | `feature-accessibility-baseline-contract` | `feature-accessibility-baseline-contract` | `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/a11y-report.schema.json` | active |"},"proof_manifest":null,"rationale":"Distinct entries of the same artifact registry surface: 'A-ART-01' (produces 'feature-frontend-project-bootstrap-toolc...') and 'A-ART-07' (produces 'feature-accessibility-baseline-contract') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-4238B73F73CFCEC3F438","evidence_a":{"line_end":287,"line_start":287,"quote":"| `ART-FE-001` | 1 | build manifest | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-build-bundle-supply-chain-contract`, `feature-frontend-release-cache-rollback-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/build-manifest.schema.json` | active |"},"evidence_b":{"line_end":290,"line_start":290,"quote":"| `ART-FE-004` | 1 | a11y report | `feature-accessibility-baseline-contract` | `feature-accessibility-baseline-contract` | `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/a11y-report.schema.json` | active |"},"proof_manifest":null,"rationale":"Distinct entries of the same artifact registry surface: 'A-ART-01' (produces 'feature-frontend-project-bootstrap-toolc...') and 'A-ART-08' (consumes 'feature-frontend-test-taxonomy-contract') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-D21F255517DC71B5A69C","evidence_a":{"line_end":287,"line_start":287,"quote":"| `ART-FE-001` | 1 | build manifest | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-build-bundle-supply-chain-contract`, `feature-frontend-release-cache-rollback-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/build-manifest.schema.json` | active |"},"evidence_b":{"line_end":269,"line_start":269,"quote":"| `FE-GATE-019` | `fe.gate.hosting-header` | 2 | gate | `feature-frontend-release-cache-rollback-contract` | hosting 의 header(cache·security) 설정을 배포할 때 | 선언한 Cache-Control·content-type·security header 와 실제 응답이 다르면 release 를 MUST 차단 | hosting header report | active |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (artifact registry surface vs contract/gate registry surface): 'A-ART-01' governs 'feature-frontend-project-bootstrap-toolc...' and 'A-CG-15' governs 'feature-frontend-release-cache-rollback-...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-150D601416F8F7CA23CC","evidence_a":{"line_end":287,"line_start":287,"quote":"| `ART-FE-001` | 1 | build manifest | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-build-bundle-supply-chain-contract`, `feature-frontend-release-cache-rollback-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/build-manifest.schema.json` | active |"},"evidence_b":{"line_end":2027,"line_start":2027,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Same branch/artifact referenced from two authoritative surfaces (artifact registry surface vs work item table surface): 'A-ART-01' (produces 'feature-frontend-project-bootstrap-toolc...') and 'A-WI-01' (maps_to 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') supply compatible facets of one concern (e.g., contract/gate ownership vs work-item schedule, producer vs consumer/own-gate, or contract vs owned flow-stage) without either taking over the other's exclusive responsibility.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-1F2FE43D2B89F9B44B8C","evidence_a":{"line_end":287,"line_start":287,"quote":"| `ART-FE-001` | 1 | build manifest | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-build-bundle-supply-chain-contract`, `feature-frontend-release-cache-rollback-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/build-manifest.schema.json` | active |"},"evidence_b":{"line_end":2050,"line_start":2050,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-024` | `feature-frontend-release-cache-rollback-contract` | release tuple·cache header·mixed fixture failure·rollback drill이 검증된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-DEPLOYMENT-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-CACHE-POLICY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-OFFLINE-CACHE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-020`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-004`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-023` | `planned` |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (artifact registry surface vs work item table surface): 'A-ART-01' governs 'feature-frontend-project-bootstrap-toolc...' and 'A-WI-06' governs 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-897B777C9698D288B931","evidence_a":{"line_end":287,"line_start":287,"quote":"| `ART-FE-001` | 1 | build manifest | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-build-bundle-supply-chain-contract`, `feature-frontend-release-cache-rollback-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/build-manifest.schema.json` | active |"},"evidence_b":{"line_end":288,"line_start":288,"quote":"| `ART-FE-002` | 1 | bundle report | `feature-frontend-build-bundle-supply-chain-contract` | `feature-frontend-build-bundle-supply-chain-contract` | `feature-web-vitals-performance-budget-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/bundle-report.schema.json` | active |"},"proof_manifest":null,"rationale":"Distinct entries of the same artifact registry surface: 'A-ART-02' (consumes 'feature-frontend-build-bundle-supply-cha...') and 'A-ART-03' (produces 'feature-frontend-build-bundle-supply-cha...') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-FEA8F1A945F3F8180FEF","evidence_a":{"line_end":287,"line_start":287,"quote":"| `ART-FE-001` | 1 | build manifest | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-build-bundle-supply-chain-contract`, `feature-frontend-release-cache-rollback-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/build-manifest.schema.json` | active |"},"evidence_b":{"line_end":288,"line_start":288,"quote":"| `ART-FE-002` | 1 | bundle report | `feature-frontend-build-bundle-supply-chain-contract` | `feature-frontend-build-bundle-supply-chain-contract` | `feature-web-vitals-performance-budget-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/bundle-report.schema.json` | active |"},"proof_manifest":null,"rationale":"Distinct entries of the same artifact registry surface: 'A-ART-02' (consumes 'feature-frontend-build-bundle-supply-cha...') and 'A-ART-04' (consumes 'feature-web-vitals-performance-budget-co...') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-1D73C1272AAA50133F2E","evidence_a":{"line_end":287,"line_start":287,"quote":"| `ART-FE-001` | 1 | build manifest | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-build-bundle-supply-chain-contract`, `feature-frontend-release-cache-rollback-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/build-manifest.schema.json` | active |"},"evidence_b":{"line_end":289,"line_start":289,"quote":"| `ART-FE-003` | 1 | release verification | `feature-frontend-release-cache-rollback-contract` | `feature-frontend-release-cache-rollback-contract` | `feature-frontend-contract-compatibility-governance` | `harness/source/artifact-schemas/ca-skeleton-frontend/release-verification.schema.json` | active |"},"proof_manifest":null,"rationale":"Distinct entries of the same artifact registry surface: 'A-ART-02' (consumes 'feature-frontend-build-bundle-supply-cha...') and 'A-ART-05' (produces 'feature-frontend-release-cache-rollback-...') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-F34B78E2FEB9E2D91927","evidence_a":{"line_end":287,"line_start":287,"quote":"| `ART-FE-001` | 1 | build manifest | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-build-bundle-supply-chain-contract`, `feature-frontend-release-cache-rollback-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/build-manifest.schema.json` | active |"},"evidence_b":{"line_end":289,"line_start":289,"quote":"| `ART-FE-003` | 1 | release verification | `feature-frontend-release-cache-rollback-contract` | `feature-frontend-release-cache-rollback-contract` | `feature-frontend-contract-compatibility-governance` | `harness/source/artifact-schemas/ca-skeleton-frontend/release-verification.schema.json` | active |"},"proof_manifest":null,"rationale":"Distinct entries of the same artifact registry surface: 'A-ART-02' (consumes 'feature-frontend-build-bundle-supply-cha...') and 'A-ART-06' (consumes 'feature-frontend-contract-compatibility-...') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-B2805A20AC4F1EBB8073","evidence_a":{"line_end":287,"line_start":287,"quote":"| `ART-FE-001` | 1 | build manifest | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-build-bundle-supply-chain-contract`, `feature-frontend-release-cache-rollback-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/build-manifest.schema.json` | active |"},"evidence_b":{"line_end":290,"line_start":290,"quote":"| `ART-FE-004` | 1 | a11y report | `feature-accessibility-baseline-contract` | `feature-accessibility-baseline-contract` | `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/a11y-report.schema.json` | active |"},"proof_manifest":null,"rationale":"Distinct entries of the same artifact registry surface: 'A-ART-02' (consumes 'feature-frontend-build-bundle-supply-cha...') and 'A-ART-07' (produces 'feature-accessibility-baseline-contract') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-DDDD023FE5DDA4EF4E76","evidence_a":{"line_end":287,"line_start":287,"quote":"| `ART-FE-001` | 1 | build manifest | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-build-bundle-supply-chain-contract`, `feature-frontend-release-cache-rollback-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/build-manifest.schema.json` | active |"},"evidence_b":{"line_end":290,"line_start":290,"quote":"| `ART-FE-004` | 1 | a11y report | `feature-accessibility-baseline-contract` | `feature-accessibility-baseline-contract` | `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/a11y-report.schema.json` | active |"},"proof_manifest":null,"rationale":"Distinct entries of the same artifact registry surface: 'A-ART-02' (consumes 'feature-frontend-build-bundle-supply-cha...') and 'A-ART-08' (consumes 'feature-frontend-test-taxonomy-contract') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-9921CD29E1CCD21C26D0","evidence_a":{"line_end":287,"line_start":287,"quote":"| `ART-FE-001` | 1 | build manifest | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-build-bundle-supply-chain-contract`, `feature-frontend-release-cache-rollback-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/build-manifest.schema.json` | active |"},"evidence_b":{"line_end":269,"line_start":269,"quote":"| `FE-GATE-019` | `fe.gate.hosting-header` | 2 | gate | `feature-frontend-release-cache-rollback-contract` | hosting 의 header(cache·security) 설정을 배포할 때 | 선언한 Cache-Control·content-type·security header 와 실제 응답이 다르면 release 를 MUST 차단 | hosting header report | active |"},"proof_manifest":null,"rationale":"Same branch/artifact referenced from two authoritative surfaces (artifact registry surface vs contract/gate registry surface): 'A-ART-02' (consumes 'feature-frontend-build-bundle-supply-cha...') and 'A-CG-15' (owns 'feature-frontend-release-cache-rollback-...') supply compatible facets of one concern (e.g., contract/gate ownership vs work-item schedule, producer vs consumer/own-gate, or contract vs owned flow-stage) without either taking over the other's exclusive responsibility.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-FA7388637A6BCDAC0BF8","evidence_a":{"line_end":287,"line_start":287,"quote":"| `ART-FE-001` | 1 | build manifest | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-build-bundle-supply-chain-contract`, `feature-frontend-release-cache-rollback-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/build-manifest.schema.json` | active |"},"evidence_b":{"line_end":2027,"line_start":2027,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Same branch/artifact referenced from two authoritative surfaces (artifact registry surface vs work item table surface): 'A-ART-02' (consumes 'feature-frontend-build-bundle-supply-cha...') and 'A-WI-01' (maps_to 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') supply compatible facets of one concern (e.g., contract/gate ownership vs work-item schedule, producer vs consumer/own-gate, or contract vs owned flow-stage) without either taking over the other's exclusive responsibility.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-1969D9367461A92C6CCC","evidence_a":{"line_end":287,"line_start":287,"quote":"| `ART-FE-001` | 1 | build manifest | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-project-bootstrap-toolchain-contract` | `feature-frontend-build-bundle-supply-chain-contract`, `feature-frontend-release-cache-rollback-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/build-manifest.schema.json` | active |"},"evidence_b":{"line_end":2050,"line_start":2050,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-024` | `feature-frontend-release-cache-rollback-contract` | release tuple·cache header·mixed fixture failure·rollback drill이 검증된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-DEPLOYMENT-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-CACHE-POLICY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-OFFLINE-CACHE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-020`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-004`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-023` | `planned` |"},"proof_manifest":null,"rationale":"Same branch/artifact referenced from two authoritative surfaces (artifact registry surface vs work item table surface): 'A-ART-02' (consumes 'feature-frontend-build-bundle-supply-cha...') and 'A-WI-06' (runs_after 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') supply compatible facets of one concern (e.g., contract/gate ownership vs work-item schedule, producer vs consumer/own-gate, or contract vs owned flow-stage) without either taking over the other's exclusive responsibility.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-C9659A4AB39E934532DC","evidence_a":{"line_end":288,"line_start":288,"quote":"| `ART-FE-002` | 1 | bundle report | `feature-frontend-build-bundle-supply-chain-contract` | `feature-frontend-build-bundle-supply-chain-contract` | `feature-web-vitals-performance-budget-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/bundle-report.schema.json` | active |"},"evidence_b":{"line_end":288,"line_start":288,"quote":"| `ART-FE-002` | 1 | bundle report | `feature-frontend-build-bundle-supply-chain-contract` | `feature-frontend-build-bundle-supply-chain-contract` | `feature-web-vitals-performance-budget-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/bundle-report.schema.json` | active |"},"proof_manifest":null,"rationale":"Distinct entries of the same artifact registry surface: 'A-ART-03' (produces 'feature-frontend-build-bundle-supply-cha...') and 'A-ART-04' (consumes 'feature-web-vitals-performance-budget-co...') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-F9D4AA5C3A40C3523113","evidence_a":{"line_end":288,"line_start":288,"quote":"| `ART-FE-002` | 1 | bundle report | `feature-frontend-build-bundle-supply-chain-contract` | `feature-frontend-build-bundle-supply-chain-contract` | `feature-web-vitals-performance-budget-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/bundle-report.schema.json` | active |"},"evidence_b":{"line_end":290,"line_start":290,"quote":"| `ART-FE-004` | 1 | a11y report | `feature-accessibility-baseline-contract` | `feature-accessibility-baseline-contract` | `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/a11y-report.schema.json` | active |"},"proof_manifest":null,"rationale":"Distinct entries of the same artifact registry surface: 'A-ART-03' (produces 'feature-frontend-build-bundle-supply-cha...') and 'A-ART-07' (produces 'feature-accessibility-baseline-contract') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-C79E60769E2AA643136A","evidence_a":{"line_end":288,"line_start":288,"quote":"| `ART-FE-002` | 1 | bundle report | `feature-frontend-build-bundle-supply-chain-contract` | `feature-frontend-build-bundle-supply-chain-contract` | `feature-web-vitals-performance-budget-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/bundle-report.schema.json` | active |"},"evidence_b":{"line_end":290,"line_start":290,"quote":"| `ART-FE-004` | 1 | a11y report | `feature-accessibility-baseline-contract` | `feature-accessibility-baseline-contract` | `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/a11y-report.schema.json` | active |"},"proof_manifest":null,"rationale":"Distinct entries of the same artifact registry surface: 'A-ART-03' (produces 'feature-frontend-build-bundle-supply-cha...') and 'A-ART-08' (consumes 'feature-frontend-test-taxonomy-contract') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-1702F6FA22CC0ABE10C4","evidence_a":{"line_end":288,"line_start":288,"quote":"| `ART-FE-002` | 1 | bundle report | `feature-frontend-build-bundle-supply-chain-contract` | `feature-frontend-build-bundle-supply-chain-contract` | `feature-web-vitals-performance-budget-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/bundle-report.schema.json` | active |"},"evidence_b":{"line_end":290,"line_start":290,"quote":"| `ART-FE-004` | 1 | a11y report | `feature-accessibility-baseline-contract` | `feature-accessibility-baseline-contract` | `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/a11y-report.schema.json` | active |"},"proof_manifest":null,"rationale":"Distinct entries of the same artifact registry surface: 'A-ART-04' (consumes 'feature-web-vitals-performance-budget-co...') and 'A-ART-07' (produces 'feature-accessibility-baseline-contract') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-58346293FFFCF2D80673","evidence_a":{"line_end":288,"line_start":288,"quote":"| `ART-FE-002` | 1 | bundle report | `feature-frontend-build-bundle-supply-chain-contract` | `feature-frontend-build-bundle-supply-chain-contract` | `feature-web-vitals-performance-budget-contract`, `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/bundle-report.schema.json` | active |"},"evidence_b":{"line_end":290,"line_start":290,"quote":"| `ART-FE-004` | 1 | a11y report | `feature-accessibility-baseline-contract` | `feature-accessibility-baseline-contract` | `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/a11y-report.schema.json` | active |"},"proof_manifest":null,"rationale":"Distinct entries of the same artifact registry surface: 'A-ART-04' (consumes 'feature-web-vitals-performance-budget-co...') and 'A-ART-08' (consumes 'feature-frontend-test-taxonomy-contract') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-F25A38DC0B5BEF9419D8","evidence_a":{"line_end":289,"line_start":289,"quote":"| `ART-FE-003` | 1 | release verification | `feature-frontend-release-cache-rollback-contract` | `feature-frontend-release-cache-rollback-contract` | `feature-frontend-contract-compatibility-governance` | `harness/source/artifact-schemas/ca-skeleton-frontend/release-verification.schema.json` | active |"},"evidence_b":{"line_end":289,"line_start":289,"quote":"| `ART-FE-003` | 1 | release verification | `feature-frontend-release-cache-rollback-contract` | `feature-frontend-release-cache-rollback-contract` | `feature-frontend-contract-compatibility-governance` | `harness/source/artifact-schemas/ca-skeleton-frontend/release-verification.schema.json` | active |"},"proof_manifest":null,"rationale":"Distinct entries of the same artifact registry surface: 'A-ART-05' (produces 'feature-frontend-release-cache-rollback-...') and 'A-ART-06' (consumes 'feature-frontend-contract-compatibility-...') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-4CDE24C8CBDD6E21C7F8","evidence_a":{"line_end":289,"line_start":289,"quote":"| `ART-FE-003` | 1 | release verification | `feature-frontend-release-cache-rollback-contract` | `feature-frontend-release-cache-rollback-contract` | `feature-frontend-contract-compatibility-governance` | `harness/source/artifact-schemas/ca-skeleton-frontend/release-verification.schema.json` | active |"},"evidence_b":{"line_end":269,"line_start":269,"quote":"| `FE-GATE-019` | `fe.gate.hosting-header` | 2 | gate | `feature-frontend-release-cache-rollback-contract` | hosting 의 header(cache·security) 설정을 배포할 때 | 선언한 Cache-Control·content-type·security header 와 실제 응답이 다르면 release 를 MUST 차단 | hosting header report | active |"},"proof_manifest":null,"rationale":"Same branch/artifact referenced from two authoritative surfaces (artifact registry surface vs contract/gate registry surface): 'A-ART-05' (produces 'feature-frontend-release-cache-rollback-...') and 'A-CG-15' (owns 'feature-frontend-release-cache-rollback-...') supply compatible facets of one concern (e.g., contract/gate ownership vs work-item schedule, producer vs consumer/own-gate, or contract vs owned flow-stage) without either taking over the other's exclusive responsibility.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-4C06C3764C04824FAA5E","evidence_a":{"line_end":289,"line_start":289,"quote":"| `ART-FE-003` | 1 | release verification | `feature-frontend-release-cache-rollback-contract` | `feature-frontend-release-cache-rollback-contract` | `feature-frontend-contract-compatibility-governance` | `harness/source/artifact-schemas/ca-skeleton-frontend/release-verification.schema.json` | active |"},"evidence_b":{"line_end":2050,"line_start":2050,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-024` | `feature-frontend-release-cache-rollback-contract` | release tuple·cache header·mixed fixture failure·rollback drill이 검증된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-DEPLOYMENT-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-CACHE-POLICY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-OFFLINE-CACHE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-020`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-004`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-023` | `planned` |"},"proof_manifest":null,"rationale":"Same branch/artifact referenced from two authoritative surfaces (artifact registry surface vs work item table surface): 'A-ART-05' (produces 'feature-frontend-release-cache-rollback-...') and 'A-WI-06' (runs_after 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') supply compatible facets of one concern (e.g., contract/gate ownership vs work-item schedule, producer vs consumer/own-gate, or contract vs owned flow-stage) without either taking over the other's exclusive responsibility.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-956953101CB0DA8E045C","evidence_a":{"line_end":289,"line_start":289,"quote":"| `ART-FE-003` | 1 | release verification | `feature-frontend-release-cache-rollback-contract` | `feature-frontend-release-cache-rollback-contract` | `feature-frontend-contract-compatibility-governance` | `harness/source/artifact-schemas/ca-skeleton-frontend/release-verification.schema.json` | active |"},"evidence_b":{"line_end":269,"line_start":269,"quote":"| `FE-GATE-019` | `fe.gate.hosting-header` | 2 | gate | `feature-frontend-release-cache-rollback-contract` | hosting 의 header(cache·security) 설정을 배포할 때 | 선언한 Cache-Control·content-type·security header 와 실제 응답이 다르면 release 를 MUST 차단 | hosting header report | active |"},"proof_manifest":null,"rationale":"Distinct concerns on separate authoritative surfaces (artifact registry surface vs contract/gate registry surface): 'A-ART-06' governs 'feature-frontend-contract-compatibility-...' and 'A-CG-15' governs 'feature-frontend-release-cache-rollback-...'; different objects with no shared exclusive property, so both hold without conflict.","verdict":"CONSISTENT"},{"candidate_id":"SEM-8664121E0E86192C5424","evidence_a":{"line_end":289,"line_start":289,"quote":"| `ART-FE-003` | 1 | release verification | `feature-frontend-release-cache-rollback-contract` | `feature-frontend-release-cache-rollback-contract` | `feature-frontend-contract-compatibility-governance` | `harness/source/artifact-schemas/ca-skeleton-frontend/release-verification.schema.json` | active |"},"evidence_b":{"line_end":2050,"line_start":2050,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-024` | `feature-frontend-release-cache-rollback-contract` | release tuple·cache header·mixed fixture failure·rollback drill이 검증된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-DEPLOYMENT-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-CACHE-POLICY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-OFFLINE-CACHE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-020`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-004`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-023` | `planned` |"},"proof_manifest":null,"rationale":"Same branch/artifact referenced from two authoritative surfaces (artifact registry surface vs work item table surface): 'A-ART-06' (consumes 'feature-frontend-contract-compatibility-...') and 'A-WI-06' (runs_after 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') supply compatible facets of one concern (e.g., contract/gate ownership vs work-item schedule, producer vs consumer/own-gate, or contract vs owned flow-stage) without either taking over the other's exclusive responsibility.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-1B6FEA8613F89994333A","evidence_a":{"line_end":290,"line_start":290,"quote":"| `ART-FE-004` | 1 | a11y report | `feature-accessibility-baseline-contract` | `feature-accessibility-baseline-contract` | `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/a11y-report.schema.json` | active |"},"evidence_b":{"line_end":290,"line_start":290,"quote":"| `ART-FE-004` | 1 | a11y report | `feature-accessibility-baseline-contract` | `feature-accessibility-baseline-contract` | `feature-frontend-test-taxonomy-contract` | `harness/source/artifact-schemas/ca-skeleton-frontend/a11y-report.schema.json` | active |"},"proof_manifest":null,"rationale":"Distinct entries of the same artifact registry surface: 'A-ART-07' (produces 'feature-accessibility-baseline-contract') and 'A-ART-08' (consumes 'feature-frontend-test-taxonomy-contract') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-7D0AB03857619746DFCC","evidence_a":{"line_end":282,"line_start":282,"quote":"> `Schema Ref` 는 실제 JSON Schema 파일이며 검사기가 존재를 확인한다. 필드 추가·rename 은 `Schema Owner` 단독 결정이고, 소비 branch 는 본문에 스키마를 옮겨 적지 않고 frontmatter `imports` 에 `ART-FE-0NN@1` 로 pin 한다."},"evidence_b":{"line_end":216,"line_start":216,"quote":"> 소비 문서는 이 표를 **복사하지 않고** frontmatter `imports` 에 `FE-OC-0NN@1` 로 pin 한다."},"proof_manifest":null,"rationale":"Same branch/artifact referenced from two authoritative surfaces (artifact registry surface vs contract/gate registry surface): 'A-ART-09' (owns 'Schema Owner') and 'A-CG-01' (requires 'consuming documents') supply compatible facets of one concern (e.g., contract/gate ownership vs work-item schedule, producer vs consumer/own-gate, or contract vs owned flow-stage) without either taking over the other's exclusive responsibility.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-87B3149CDFBDE340327A","evidence_a":{"line_end":218,"line_start":218,"quote":"> `Owner` 값은 문서 slug 다. `FE-OC-001`·`FE-OC-026` 은 §20 서두가 밝힌 대로 이 project hub 가 owner 다."},"evidence_b":{"line_end":220,"line_start":220,"quote":"> gate(`FE-GATE-*`) 행의 `Owner` 와 `Revision` 은 이 표가 SSOT 다. 각 gate 의 fixture·`Covered FE-OC`·pass condition 규범은 §15.1 이 계속 보유하며 여기로 옮기지 않는다 — 이 표는 *누가 소유하고 몇 번째 판인가*, §15.1 은 *무엇을 검사하는가* 다."},"proof_manifest":null,"rationale":"Distinct entries of the same contract/gate registry surface: 'A-CG-03' (owns 'ca-skeleton-frontend-operational-contrac...') and 'A-CG-04' (owns 'contract registry table') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-B5E0E6D5EBEEFE156969","evidence_a":{"line_end":218,"line_start":218,"quote":"> `Owner` 값은 문서 slug 다. `FE-OC-001`·`FE-OC-026` 은 §20 서두가 밝힌 대로 이 project hub 가 owner 다."},"evidence_b":{"line_end":225,"line_start":225,"quote":"| `FE-OC-001` | `fe.evidence-grade` | 1 | operational-contract | `ca-skeleton-frontend-operational-contract` | 구현 주장을 문서에 쓸 때 | 모든 구현 주장은 evidence grade를 MUST 표시하고 repo evidence가 없는 상태에서 구현 완료를 MUST NOT 주장 | evidence ledger | active |"},"proof_manifest":null,"rationale":"Both surfaces attribute the same ownership to 'the same object': 'A-CG-03' (contract registry ownership) states the registry/general ownership and 'A-CG-06' (evidence-grade contract) the specific detail of the same object; identical value, no divergence.","verdict":"CONSISTENT"},{"candidate_id":"SEM-525E44A6716A50B46C7D","evidence_a":{"line_end":218,"line_start":218,"quote":"> `Owner` 값은 문서 slug 다. `FE-OC-001`·`FE-OC-026` 은 §20 서두가 밝힌 대로 이 project hub 가 owner 다."},"evidence_b":{"line_end":250,"line_start":250,"quote":"| `FE-OC-026` | `fe.answer-boundary` | 1 | operational-contract | `ca-skeleton-frontend-operational-contract` | 외부 공개 답변을 작성할 때 | 외부 답변은 evidence grade를 MUST 보존하고 목표 수치를 측정 결과처럼 말하면 안 됨 | answer boundary checklist | active |"},"proof_manifest":null,"rationale":"Both surfaces attribute the same ownership to 'the same object': 'A-CG-03' (contract registry ownership) states the registry/general ownership and 'A-CG-13' (answer-boundary contract) the specific detail of the same object; identical value, no divergence.","verdict":"CONSISTENT"},{"candidate_id":"SEM-34089A2F97592DB42EF3","evidence_a":{"line_end":221,"line_start":221,"quote":"> Owner 는 §15.1 의 `Evidence artifact` 를 §20 `Measurable completion` 이 실제로 산출하는 branch 다. `FE-GATE-017` 만 검토 대상 다이어그램이 hub frontmatter `diagrams:` 소유이므로 hub 가 owner 다."},"evidence_b":{"line_end":267,"line_start":267,"quote":"| `FE-GATE-017` | `fe.gate.diagram-review` | 1 | gate | `ca-skeleton-frontend-operational-contract` | hub 소유 아키텍처 다이어그램을 갱신할 때 | scoped 다이어그램 2종이 reviewer threshold 미달이면 documentation readiness 를 MUST 차단 | reviewer report | active |"},"proof_manifest":null,"rationale":"Both surfaces attribute the same ownership to 'the same object': 'A-CG-05' (gate registry) states the registry/general ownership and 'A-CG-14' (diagram-review gate) the specific detail of the same object; identical value, no divergence.","verdict":"CONSISTENT"},{"candidate_id":"SEM-9D689A643533B08F32F4","evidence_a":{"line_end":225,"line_start":225,"quote":"| `FE-OC-001` | `fe.evidence-grade` | 1 | operational-contract | `ca-skeleton-frontend-operational-contract` | 구현 주장을 문서에 쓸 때 | 모든 구현 주장은 evidence grade를 MUST 표시하고 repo evidence가 없는 상태에서 구현 완료를 MUST NOT 주장 | evidence ledger | active |"},"evidence_b":{"line_end":250,"line_start":250,"quote":"| `FE-OC-026` | `fe.answer-boundary` | 1 | operational-contract | `ca-skeleton-frontend-operational-contract` | 외부 공개 답변을 작성할 때 | 외부 답변은 evidence grade를 MUST 보존하고 목표 수치를 측정 결과처럼 말하면 안 됨 | answer boundary checklist | active |"},"proof_manifest":null,"rationale":"Same owner 'ca-skeleton-frontend-operational-contract' on the contract/gate registry surface owns two distinct entries ('evidence-grade contract' vs 'answer-boundary contract'); each is a separate stage/contract in the decomposition, so they compose rather than contend for one exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-B43DE933374FA4DDABD3","evidence_a":{"line_end":225,"line_start":225,"quote":"| `FE-OC-001` | `fe.evidence-grade` | 1 | operational-contract | `ca-skeleton-frontend-operational-contract` | 구현 주장을 문서에 쓸 때 | 모든 구현 주장은 evidence grade를 MUST 표시하고 repo evidence가 없는 상태에서 구현 완료를 MUST NOT 주장 | evidence ledger | active |"},"evidence_b":{"line_end":267,"line_start":267,"quote":"| `FE-GATE-017` | `fe.gate.diagram-review` | 1 | gate | `ca-skeleton-frontend-operational-contract` | hub 소유 아키텍처 다이어그램을 갱신할 때 | scoped 다이어그램 2종이 reviewer threshold 미달이면 documentation readiness 를 MUST 차단 | reviewer report | active |"},"proof_manifest":null,"rationale":"Same owner 'ca-skeleton-frontend-operational-contract' on the contract/gate registry surface owns two distinct entries ('evidence-grade contract' vs 'diagram-review gate'); each is a separate stage/contract in the decomposition, so they compose rather than contend for one exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-0838E0BDE08A58375035","evidence_a":{"line_end":226,"line_start":226,"quote":"| `FE-OC-002` | `fe.clean-architecture-layering` | 1 | operational-contract | `feature-frontend-clean-architecture-layering-contract` | layer 간 import 를 추가·변경할 때 | `domain <- application <- presentation` 의존 방향과 application-owned output port를 MUST 지킴 | dependency rule report | active |"},"evidence_b":{"line_end":2028,"line_start":2028,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Same branch/artifact referenced from two authoritative surfaces (contract/gate registry surface vs work item table surface): 'A-CG-07' (owns 'feature-frontend-clean-architecture-laye...') and 'A-WI-02' (requires 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') supply compatible facets of one concern (e.g., contract/gate ownership vs work-item schedule, producer vs consumer/own-gate, or contract vs owned flow-stage) without either taking over the other's exclusive responsibility.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-FF0DC073B67B164B0B7A","evidence_a":{"line_end":230,"line_start":230,"quote":"| `FE-OC-006` | `fe.api-client.shared-transport` | 1 | operational-contract | `feature-api-client-response-envelope-contract` | HTTP 요청을 보낼 때 | 모든 HTTP는 shared client를 MUST 통과하고 timeout·abort·response parsing을 page에서 구현하면 안 됨 | API contract tests | active |"},"evidence_b":{"line_end":300,"line_start":300,"quote":"| `FLOW-FE-RESP-001` | 1 | `feature-api-client-response-envelope-contract` | HTTP 요청 | transport 완료 대기 | raw Response | timeout·abort 는 이 단계가 소유하고 이후 단계로 예외를 넘기지 않는다 | 1 |"},"proof_manifest":null,"rationale":"Same branch/artifact referenced from two authoritative surfaces (contract/gate registry surface vs response flow-stage registry surface): 'A-CG-09' (owns 'feature-api-client-response-envelope-con...') and 'A-FS-01' (owns 'feature-api-client-response-envelope-con...') supply compatible facets of one concern (e.g., contract/gate ownership vs work-item schedule, producer vs consumer/own-gate, or contract vs owned flow-stage) without either taking over the other's exclusive responsibility.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-DE4449EB62D33E3EAEBA","evidence_a":{"line_end":230,"line_start":230,"quote":"| `FE-OC-006` | `fe.api-client.shared-transport` | 1 | operational-contract | `feature-api-client-response-envelope-contract` | HTTP 요청을 보낼 때 | 모든 HTTP는 shared client를 MUST 통과하고 timeout·abort·response parsing을 page에서 구현하면 안 됨 | API contract tests | active |"},"evidence_b":{"line_end":301,"line_start":301,"quote":"| `FLOW-FE-RESP-002` | 2 | `feature-api-client-response-envelope-contract` | raw Response | content-type 기대값 검사 | 본문 판독 가능 Response | 기대와 다르면 본문을 파싱하지 않고 실패로 전환 | 1 |"},"proof_manifest":null,"rationale":"Same branch/artifact referenced from two authoritative surfaces (contract/gate registry surface vs response flow-stage registry surface): 'A-CG-09' (owns 'feature-api-client-response-envelope-con...') and 'A-FS-02' (owns 'feature-api-client-response-envelope-con...') supply compatible facets of one concern (e.g., contract/gate ownership vs work-item schedule, producer vs consumer/own-gate, or contract vs owned flow-stage) without either taking over the other's exclusive responsibility.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-972AEE6B16A58F93E143","evidence_a":{"line_end":230,"line_start":230,"quote":"| `FE-OC-006` | `fe.api-client.shared-transport` | 1 | operational-contract | `feature-api-client-response-envelope-contract` | HTTP 요청을 보낼 때 | 모든 HTTP는 shared client를 MUST 통과하고 timeout·abort·response parsing을 page에서 구현하면 안 됨 | API contract tests | active |"},"evidence_b":{"line_end":302,"line_start":302,"quote":"| `FLOW-FE-RESP-003` | 3 | `feature-api-client-response-envelope-contract` | 본문 판독 가능 Response | JSON parse | unvalidated JSON | parse 실패는 raw body 를 버리고 실패로 전환 | 1 |"},"proof_manifest":null,"rationale":"Same branch/artifact referenced from two authoritative surfaces (contract/gate registry surface vs response flow-stage registry surface): 'A-CG-09' (owns 'feature-api-client-response-envelope-con...') and 'A-FS-03' (owns 'feature-api-client-response-envelope-con...') supply compatible facets of one concern (e.g., contract/gate ownership vs work-item schedule, producer vs consumer/own-gate, or contract vs owned flow-stage) without either taking over the other's exclusive responsibility.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-0B6743DBE0BCC7FCB7A7","evidence_a":{"line_end":230,"line_start":230,"quote":"| `FE-OC-006` | `fe.api-client.shared-transport` | 1 | operational-contract | `feature-api-client-response-envelope-contract` | HTTP 요청을 보낼 때 | 모든 HTTP는 shared client를 MUST 통과하고 timeout·abort·response parsing을 page에서 구현하면 안 됨 | API contract tests | active |"},"evidence_b":{"line_end":2031,"line_start":2031,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Same branch/artifact referenced from two authoritative surfaces (contract/gate registry surface vs work item table surface): 'A-CG-09' (owns 'feature-api-client-response-envelope-con...') and 'A-WI-03' (requires 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') supply compatible facets of one concern (e.g., contract/gate ownership vs work-item schedule, producer vs consumer/own-gate, or contract vs owned flow-stage) without either taking over the other's exclusive responsibility.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-1BCA4BC5830827274856","evidence_a":{"line_end":234,"line_start":234,"quote":"| `FE-OC-010` | `fe.auth-session-integration` | 1 | operational-contract | `feature-frontend-auth-session-integration-contract` | session 상태를 읽거나 갱신할 때 | skeleton은 session state를 소비하되 token lifecycle을 MUST 소유하지 않음 | port contract test | active |"},"evidence_b":{"line_end":2034,"line_start":2034,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-008` | `feature-frontend-auth-session-integration-contract` | AuthSessionPort·bounded 401 replay와 token lifecycle import 금지가 test로 고정된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-AUTH-BOUNDARY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-PORT-OWNERSHIP-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-002` | `planned` |"},"proof_manifest":null,"rationale":"Same branch/artifact referenced from two authoritative surfaces (contract/gate registry surface vs work item table surface): 'A-CG-10' (owns 'feature-frontend-auth-session-integratio...') and 'A-WI-04' (requires 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') supply compatible facets of one concern (e.g., contract/gate ownership vs work-item schedule, producer vs consumer/own-gate, or contract vs owned flow-stage) without either taking over the other's exclusive responsibility.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-EFC89A7DFF11A82FDE18","evidence_a":{"line_end":250,"line_start":250,"quote":"| `FE-OC-026` | `fe.answer-boundary` | 1 | operational-contract | `ca-skeleton-frontend-operational-contract` | 외부 공개 답변을 작성할 때 | 외부 답변은 evidence grade를 MUST 보존하고 목표 수치를 측정 결과처럼 말하면 안 됨 | answer boundary checklist | active |"},"evidence_b":{"line_end":267,"line_start":267,"quote":"| `FE-GATE-017` | `fe.gate.diagram-review` | 1 | gate | `ca-skeleton-frontend-operational-contract` | hub 소유 아키텍처 다이어그램을 갱신할 때 | scoped 다이어그램 2종이 reviewer threshold 미달이면 documentation readiness 를 MUST 차단 | reviewer report | active |"},"proof_manifest":null,"rationale":"Same owner 'ca-skeleton-frontend-operational-contract' on the contract/gate registry surface owns two distinct entries ('answer-boundary contract' vs 'diagram-review gate'); each is a separate stage/contract in the decomposition, so they compose rather than contend for one exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-64D59E4874685914D9FA","evidence_a":{"line_end":269,"line_start":269,"quote":"| `FE-GATE-019` | `fe.gate.hosting-header` | 2 | gate | `feature-frontend-release-cache-rollback-contract` | hosting 의 header(cache·security) 설정을 배포할 때 | 선언한 Cache-Control·content-type·security header 와 실제 응답이 다르면 release 를 MUST 차단 | hosting header report | active |"},"evidence_b":{"line_end":2050,"line_start":2050,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-024` | `feature-frontend-release-cache-rollback-contract` | release tuple·cache header·mixed fixture failure·rollback drill이 검증된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-DEPLOYMENT-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-CACHE-POLICY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-OFFLINE-CACHE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-020`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-004`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-023` | `planned` |"},"proof_manifest":null,"rationale":"Same branch/artifact referenced from two authoritative surfaces (contract/gate registry surface vs work item table surface): 'A-CG-15' (owns 'feature-frontend-release-cache-rollback-...') and 'A-WI-06' (runs_after 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') supply compatible facets of one concern (e.g., contract/gate ownership vs work-item schedule, producer vs consumer/own-gate, or contract vs owned flow-stage) without either taking over the other's exclusive responsibility.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-808C3D624B202A13B834","evidence_a":{"line_end":300,"line_start":300,"quote":"| `FLOW-FE-RESP-001` | 1 | `feature-api-client-response-envelope-contract` | HTTP 요청 | transport 완료 대기 | raw Response | timeout·abort 는 이 단계가 소유하고 이후 단계로 예외를 넘기지 않는다 | 1 |"},"evidence_b":{"line_end":301,"line_start":301,"quote":"| `FLOW-FE-RESP-002` | 2 | `feature-api-client-response-envelope-contract` | raw Response | content-type 기대값 검사 | 본문 판독 가능 Response | 기대와 다르면 본문을 파싱하지 않고 실패로 전환 | 1 |"},"proof_manifest":null,"rationale":"Same owner 'feature-api-client-response-envelope-contract' on the response flow-stage registry surface owns two distinct entries ('response flow stage 1' vs 'response flow stage 2'); each is a separate stage/contract in the decomposition, so they compose rather than contend for one exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-2B169F2B4D5B994A1048","evidence_a":{"line_end":300,"line_start":300,"quote":"| `FLOW-FE-RESP-001` | 1 | `feature-api-client-response-envelope-contract` | HTTP 요청 | transport 완료 대기 | raw Response | timeout·abort 는 이 단계가 소유하고 이후 단계로 예외를 넘기지 않는다 | 1 |"},"evidence_b":{"line_end":302,"line_start":302,"quote":"| `FLOW-FE-RESP-003` | 3 | `feature-api-client-response-envelope-contract` | 본문 판독 가능 Response | JSON parse | unvalidated JSON | parse 실패는 raw body 를 버리고 실패로 전환 | 1 |"},"proof_manifest":null,"rationale":"Same owner 'feature-api-client-response-envelope-contract' on the response flow-stage registry surface owns two distinct entries ('response flow stage 1' vs 'response flow stage 3'); each is a separate stage/contract in the decomposition, so they compose rather than contend for one exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-7108FEF6E1BA4E742BE7","evidence_a":{"line_end":300,"line_start":300,"quote":"| `FLOW-FE-RESP-001` | 1 | `feature-api-client-response-envelope-contract` | HTTP 요청 | transport 완료 대기 | raw Response | timeout·abort 는 이 단계가 소유하고 이후 단계로 예외를 넘기지 않는다 | 1 |"},"evidence_b":{"line_end":2031,"line_start":2031,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Same branch/artifact referenced from two authoritative surfaces (response flow-stage registry surface vs work item table surface): 'A-FS-01' (owns 'feature-api-client-response-envelope-con...') and 'A-WI-03' (requires 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') supply compatible facets of one concern (e.g., contract/gate ownership vs work-item schedule, producer vs consumer/own-gate, or contract vs owned flow-stage) without either taking over the other's exclusive responsibility.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-04951558109B1C7F829B","evidence_a":{"line_end":301,"line_start":301,"quote":"| `FLOW-FE-RESP-002` | 2 | `feature-api-client-response-envelope-contract` | raw Response | content-type 기대값 검사 | 본문 판독 가능 Response | 기대와 다르면 본문을 파싱하지 않고 실패로 전환 | 1 |"},"evidence_b":{"line_end":302,"line_start":302,"quote":"| `FLOW-FE-RESP-003` | 3 | `feature-api-client-response-envelope-contract` | 본문 판독 가능 Response | JSON parse | unvalidated JSON | parse 실패는 raw body 를 버리고 실패로 전환 | 1 |"},"proof_manifest":null,"rationale":"Same owner 'feature-api-client-response-envelope-contract' on the response flow-stage registry surface owns two distinct entries ('response flow stage 2' vs 'response flow stage 3'); each is a separate stage/contract in the decomposition, so they compose rather than contend for one exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-70FBA2CC0013B3B4B26E","evidence_a":{"line_end":301,"line_start":301,"quote":"| `FLOW-FE-RESP-002` | 2 | `feature-api-client-response-envelope-contract` | raw Response | content-type 기대값 검사 | 본문 판독 가능 Response | 기대와 다르면 본문을 파싱하지 않고 실패로 전환 | 1 |"},"evidence_b":{"line_end":2031,"line_start":2031,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Same branch/artifact referenced from two authoritative surfaces (response flow-stage registry surface vs work item table surface): 'A-FS-02' (owns 'feature-api-client-response-envelope-con...') and 'A-WI-03' (requires 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') supply compatible facets of one concern (e.g., contract/gate ownership vs work-item schedule, producer vs consumer/own-gate, or contract vs owned flow-stage) without either taking over the other's exclusive responsibility.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-76D95C8B49DDE20E1A3B","evidence_a":{"line_end":302,"line_start":302,"quote":"| `FLOW-FE-RESP-003` | 3 | `feature-api-client-response-envelope-contract` | 본문 판독 가능 Response | JSON parse | unvalidated JSON | parse 실패는 raw body 를 버리고 실패로 전환 | 1 |"},"evidence_b":{"line_end":2031,"line_start":2031,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Same branch/artifact referenced from two authoritative surfaces (response flow-stage registry surface vs work item table surface): 'A-FS-03' (owns 'feature-api-client-response-envelope-con...') and 'A-WI-03' (requires 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') supply compatible facets of one concern (e.g., contract/gate ownership vs work-item schedule, producer vs consumer/own-gate, or contract vs owned flow-stage) without either taking over the other's exclusive responsibility.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-92C6C3551783A0313213","evidence_a":{"line_end":303,"line_start":303,"quote":"| `FLOW-FE-RESP-004` | 4 | `feature-runtime-schema-validation-contract` | unvalidated JSON | envelope 공유 스키마 검증 | discriminated envelope | 경계 검증은 `.safeParse()` non-throwing — throw 를 상위로 누출하지 않는다 | 1 |"},"evidence_b":{"line_end":304,"line_start":304,"quote":"| `FLOW-FE-RESP-005` | 5 | `feature-runtime-schema-validation-contract` | discriminated envelope | success/failure 분기 검증 | 분기 확정 envelope | 200 이어도 envelope 이 invalid 하면 success 로 반환하지 않는다 | 1 |"},"proof_manifest":null,"rationale":"Same owner 'feature-runtime-schema-validation-contract' on the response flow-stage registry surface owns two distinct entries ('response flow stage 4' vs 'response flow stage 5'); each is a separate stage/contract in the decomposition, so they compose rather than contend for one exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-C8D745A695FB430DE4A2","evidence_a":{"line_end":303,"line_start":303,"quote":"| `FLOW-FE-RESP-004` | 4 | `feature-runtime-schema-validation-contract` | unvalidated JSON | envelope 공유 스키마 검증 | discriminated envelope | 경계 검증은 `.safeParse()` non-throwing — throw 를 상위로 누출하지 않는다 | 1 |"},"evidence_b":{"line_end":305,"line_start":305,"quote":"| `FLOW-FE-RESP-006` | 6 | `feature-runtime-schema-validation-contract` | 분기 확정 envelope | payload per-operation 스키마 검증 | 검증된 payload(deep clone) | payload invalid 는 `SCHEMA_MISMATCH`; mapper 는 검증 통과분만 받는다 | 1 |"},"proof_manifest":null,"rationale":"Same owner 'feature-runtime-schema-validation-contract' on the response flow-stage registry surface owns two distinct entries ('response flow stage 4' vs 'response flow stage 6'); each is a separate stage/contract in the decomposition, so they compose rather than contend for one exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-93D86B840148D8A4B227","evidence_a":{"line_end":304,"line_start":304,"quote":"| `FLOW-FE-RESP-005` | 5 | `feature-runtime-schema-validation-contract` | discriminated envelope | success/failure 분기 검증 | 분기 확정 envelope | 200 이어도 envelope 이 invalid 하면 success 로 반환하지 않는다 | 1 |"},"evidence_b":{"line_end":305,"line_start":305,"quote":"| `FLOW-FE-RESP-006` | 6 | `feature-runtime-schema-validation-contract` | 분기 확정 envelope | payload per-operation 스키마 검증 | 검증된 payload(deep clone) | payload invalid 는 `SCHEMA_MISMATCH`; mapper 는 검증 통과분만 받는다 | 1 |"},"proof_manifest":null,"rationale":"Same owner 'feature-runtime-schema-validation-contract' on the response flow-stage registry surface owns two distinct entries ('response flow stage 5' vs 'response flow stage 6'); each is a separate stage/contract in the decomposition, so they compose rather than contend for one exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-C6E6CA228D9EFC058A50","evidence_a":{"line_end":410,"line_start":410,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TOOLCHAIN-001` | 1 | `toolchain` | package manager default는 pnpm이며 packageManager field와 pnpm-lock.yaml을 commit한다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D001` |"},"evidence_b":{"line_end":415,"line_start":415,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SERVER-STATE-001` | 1 | `server-state` | application-owned QueryCachePort와 TanStack Query adapter를 사용하고 client store에 server state를 복제하지 않는다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D006`; [[raw/official-docs/tanstack-query-server-state-official]] |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-01' (other 'toolchain decision') and 'A-PD-02' (owns 'server-state decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-B76A86C031F173342070","evidence_a":{"line_end":410,"line_start":410,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TOOLCHAIN-001` | 1 | `toolchain` | package manager default는 pnpm이며 packageManager field와 pnpm-lock.yaml을 commit한다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D001` |"},"evidence_b":{"line_end":418,"line_start":418,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-ARCHITECTURE-001` | 1 | `architecture` | domain, application, presentation, adapters, bootstrap 책임을 분리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D009` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-01' (other 'toolchain decision') and 'A-PD-03' (other 'architecture decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-3A70E60D37FC91ADDC2A","evidence_a":{"line_end":410,"line_start":410,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TOOLCHAIN-001` | 1 | `toolchain` | package manager default는 pnpm이며 packageManager field와 pnpm-lock.yaml을 commit한다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D001` |"},"evidence_b":{"line_end":419,"line_start":419,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-PORT-OWNERSHIP-001` | 1 | `port-ownership` | output port interface는 application이 소유하고 adapter가 구현한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D010` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-01' (other 'toolchain decision') and 'A-PD-04' (owns 'output port interface') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-4EA964EDD9BD62817485","evidence_a":{"line_end":410,"line_start":410,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TOOLCHAIN-001` | 1 | `toolchain` | package manager default는 pnpm이며 packageManager field와 pnpm-lock.yaml을 commit한다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D001` |"},"evidence_b":{"line_end":420,"line_start":420,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-COMPOSITION-ROOT-001` | 1 | `composition-root` | bootstrap을 단일 composition root로 두고 concrete adapter를 application에 주입한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D011` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-01' (other 'toolchain decision') and 'A-PD-05' (owns 'bootstrap') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-CA2465ED01987A881B87","evidence_a":{"line_end":410,"line_start":410,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TOOLCHAIN-001` | 1 | `toolchain` | package manager default는 pnpm이며 packageManager field와 pnpm-lock.yaml을 commit한다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D001` |"},"evidence_b":{"line_end":423,"line_start":423,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TIMEOUT-001` | 1 | `timeout` | request total timeout default는 10초이며 별도 browser connect timeout은 주장하지 않는다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D014` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-01' (other 'toolchain decision') and 'A-PD-06' (has_threshold 'request total timeout') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-807E447136B567057155","evidence_a":{"line_end":410,"line_start":410,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TOOLCHAIN-001` | 1 | `toolchain` | package manager default는 pnpm이며 packageManager field와 pnpm-lock.yaml을 commit한다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D001` |"},"evidence_b":{"line_end":424,"line_start":424,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-RETRY-001` | 1 | `retry` | retry는 initial call 이후 최대 2회, exponential backoff와 full jitter, 2초 cap을 사용한다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D015` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-01' (other 'toolchain decision') and 'A-PD-07' (has_threshold 'retry policy') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-F21CA678F91558197F16","evidence_a":{"line_end":410,"line_start":410,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TOOLCHAIN-001` | 1 | `toolchain` | package manager default는 pnpm이며 packageManager field와 pnpm-lock.yaml을 commit한다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D001` |"},"evidence_b":{"line_end":425,"line_start":425,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-IDEMPOTENCY-001` | 1 | `idempotency` | mutation auto-retry는 stable idempotency key와 backend replay contract가 있을 때만 허용한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D016` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-01' (other 'toolchain decision') and 'A-PD-08' (requires 'mutation auto-retry') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-E9CF30A370CEBE605141","evidence_a":{"line_end":410,"line_start":410,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TOOLCHAIN-001` | 1 | `toolchain` | package manager default는 pnpm이며 packageManager field와 pnpm-lock.yaml을 commit한다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D001` |"},"evidence_b":{"line_end":426,"line_start":426,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-AUTH-BOUNDARY-001` | 1 | `auth-boundary` | auth lifecycle은 외부 owner가 소유하고 skeleton은 AuthSessionPort만 소비한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D017`; [[raw/project-notes/keycloak-patterns-overview]] |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-01' (other 'toolchain decision') and 'A-PD-09' (delegates 'auth lifecycle') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-7C29AE13221EC4E797D6","evidence_a":{"line_end":410,"line_start":410,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TOOLCHAIN-001` | 1 | `toolchain` | package manager default는 pnpm이며 packageManager field와 pnpm-lock.yaml을 commit한다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D001` |"},"evidence_b":{"line_end":427,"line_start":427,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-REGISTRY-001` | 1 | `registry` | route, API operation, env, storage, error, query, telemetry, release token을 8개 registry로 관리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D018` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-01' (other 'toolchain decision') and 'A-PD-10' (has_cardinality 'registry decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-9EF7234A0A7EAE9ACE0F","evidence_a":{"line_end":410,"line_start":410,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TOOLCHAIN-001` | 1 | `toolchain` | package manager default는 pnpm이며 packageManager field와 pnpm-lock.yaml을 commit한다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D001` |"},"evidence_b":{"line_end":430,"line_start":430,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TELEMETRY-001` | 1 | `telemetry` | telemetry는 best-effort queue와 redaction을 사용하며 sink failure가 UI를 실패시키지 않는다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D021` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-01' (other 'toolchain decision') and 'A-PD-11' (has_failure_behavior 'telemetry decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-8F81DB0E50A524181947","evidence_a":{"line_end":410,"line_start":410,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TOOLCHAIN-001` | 1 | `toolchain` | package manager default는 pnpm이며 packageManager field와 pnpm-lock.yaml을 commit한다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D001` |"},"evidence_b":{"line_end":431,"line_start":431,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TEST-STACK-001` | 1 | `test-stack` | test stack default는 Vitest, RTL, MSW, Playwright, axe다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D022` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-01' (other 'toolchain decision') and 'A-PD-12' (other 'test-stack decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-539BD9A80FA0B24ED0BC","evidence_a":{"line_end":410,"line_start":410,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TOOLCHAIN-001` | 1 | `toolchain` | package manager default는 pnpm이며 packageManager field와 pnpm-lock.yaml을 commit한다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D001` |"},"evidence_b":{"line_end":433,"line_start":433,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SUPPLY-CHAIN-001` | 1 | `supply-chain` | dependency lock, secret scan, vulnerability scan, license inventory, dependency review를 merge/release gate로 분리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D024` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-01' (other 'toolchain decision') and 'A-PD-13' (other 'supply-chain decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-4AF0D62DDBA08B6EDBD2","evidence_a":{"line_end":415,"line_start":415,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SERVER-STATE-001` | 1 | `server-state` | application-owned QueryCachePort와 TanStack Query adapter를 사용하고 client store에 server state를 복제하지 않는다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D006`; [[raw/official-docs/tanstack-query-server-state-official]] |"},"evidence_b":{"line_end":418,"line_start":418,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-ARCHITECTURE-001` | 1 | `architecture` | domain, application, presentation, adapters, bootstrap 책임을 분리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D009` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-02' (owns 'server-state decision') and 'A-PD-03' (other 'architecture decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-D9D03EDC15AF099F90AE","evidence_a":{"line_end":415,"line_start":415,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SERVER-STATE-001` | 1 | `server-state` | application-owned QueryCachePort와 TanStack Query adapter를 사용하고 client store에 server state를 복제하지 않는다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D006`; [[raw/official-docs/tanstack-query-server-state-official]] |"},"evidence_b":{"line_end":419,"line_start":419,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-PORT-OWNERSHIP-001` | 1 | `port-ownership` | output port interface는 application이 소유하고 adapter가 구현한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D010` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-02' (owns 'server-state decision') and 'A-PD-04' (owns 'output port interface') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-42153BB1E44941B6959C","evidence_a":{"line_end":415,"line_start":415,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SERVER-STATE-001` | 1 | `server-state` | application-owned QueryCachePort와 TanStack Query adapter를 사용하고 client store에 server state를 복제하지 않는다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D006`; [[raw/official-docs/tanstack-query-server-state-official]] |"},"evidence_b":{"line_end":420,"line_start":420,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-COMPOSITION-ROOT-001` | 1 | `composition-root` | bootstrap을 단일 composition root로 두고 concrete adapter를 application에 주입한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D011` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-02' (owns 'server-state decision') and 'A-PD-05' (owns 'bootstrap') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-25745BD6E07025D1C8C9","evidence_a":{"line_end":415,"line_start":415,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SERVER-STATE-001` | 1 | `server-state` | application-owned QueryCachePort와 TanStack Query adapter를 사용하고 client store에 server state를 복제하지 않는다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D006`; [[raw/official-docs/tanstack-query-server-state-official]] |"},"evidence_b":{"line_end":423,"line_start":423,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TIMEOUT-001` | 1 | `timeout` | request total timeout default는 10초이며 별도 browser connect timeout은 주장하지 않는다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D014` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-02' (owns 'server-state decision') and 'A-PD-06' (has_threshold 'request total timeout') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-14C9CCA8412204CCD3B3","evidence_a":{"line_end":415,"line_start":415,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SERVER-STATE-001` | 1 | `server-state` | application-owned QueryCachePort와 TanStack Query adapter를 사용하고 client store에 server state를 복제하지 않는다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D006`; [[raw/official-docs/tanstack-query-server-state-official]] |"},"evidence_b":{"line_end":424,"line_start":424,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-RETRY-001` | 1 | `retry` | retry는 initial call 이후 최대 2회, exponential backoff와 full jitter, 2초 cap을 사용한다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D015` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-02' (owns 'server-state decision') and 'A-PD-07' (has_threshold 'retry policy') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-F8F8A16203190B8EDCF9","evidence_a":{"line_end":415,"line_start":415,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SERVER-STATE-001` | 1 | `server-state` | application-owned QueryCachePort와 TanStack Query adapter를 사용하고 client store에 server state를 복제하지 않는다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D006`; [[raw/official-docs/tanstack-query-server-state-official]] |"},"evidence_b":{"line_end":425,"line_start":425,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-IDEMPOTENCY-001` | 1 | `idempotency` | mutation auto-retry는 stable idempotency key와 backend replay contract가 있을 때만 허용한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D016` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-02' (owns 'server-state decision') and 'A-PD-08' (requires 'mutation auto-retry') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-3C03EAD74EEE7CEAB89E","evidence_a":{"line_end":415,"line_start":415,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SERVER-STATE-001` | 1 | `server-state` | application-owned QueryCachePort와 TanStack Query adapter를 사용하고 client store에 server state를 복제하지 않는다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D006`; [[raw/official-docs/tanstack-query-server-state-official]] |"},"evidence_b":{"line_end":426,"line_start":426,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-AUTH-BOUNDARY-001` | 1 | `auth-boundary` | auth lifecycle은 외부 owner가 소유하고 skeleton은 AuthSessionPort만 소비한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D017`; [[raw/project-notes/keycloak-patterns-overview]] |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-02' (owns 'server-state decision') and 'A-PD-09' (delegates 'auth lifecycle') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-AFB410AA572A711031FA","evidence_a":{"line_end":415,"line_start":415,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SERVER-STATE-001` | 1 | `server-state` | application-owned QueryCachePort와 TanStack Query adapter를 사용하고 client store에 server state를 복제하지 않는다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D006`; [[raw/official-docs/tanstack-query-server-state-official]] |"},"evidence_b":{"line_end":427,"line_start":427,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-REGISTRY-001` | 1 | `registry` | route, API operation, env, storage, error, query, telemetry, release token을 8개 registry로 관리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D018` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-02' (owns 'server-state decision') and 'A-PD-10' (has_cardinality 'registry decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-FF277D10AB6BA99A09A9","evidence_a":{"line_end":415,"line_start":415,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SERVER-STATE-001` | 1 | `server-state` | application-owned QueryCachePort와 TanStack Query adapter를 사용하고 client store에 server state를 복제하지 않는다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D006`; [[raw/official-docs/tanstack-query-server-state-official]] |"},"evidence_b":{"line_end":430,"line_start":430,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TELEMETRY-001` | 1 | `telemetry` | telemetry는 best-effort queue와 redaction을 사용하며 sink failure가 UI를 실패시키지 않는다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D021` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-02' (owns 'server-state decision') and 'A-PD-11' (has_failure_behavior 'telemetry decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-9F80AC55D507DAE5701C","evidence_a":{"line_end":415,"line_start":415,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SERVER-STATE-001` | 1 | `server-state` | application-owned QueryCachePort와 TanStack Query adapter를 사용하고 client store에 server state를 복제하지 않는다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D006`; [[raw/official-docs/tanstack-query-server-state-official]] |"},"evidence_b":{"line_end":431,"line_start":431,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TEST-STACK-001` | 1 | `test-stack` | test stack default는 Vitest, RTL, MSW, Playwright, axe다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D022` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-02' (owns 'server-state decision') and 'A-PD-12' (other 'test-stack decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-5723BA773F08EC58D43D","evidence_a":{"line_end":415,"line_start":415,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SERVER-STATE-001` | 1 | `server-state` | application-owned QueryCachePort와 TanStack Query adapter를 사용하고 client store에 server state를 복제하지 않는다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D006`; [[raw/official-docs/tanstack-query-server-state-official]] |"},"evidence_b":{"line_end":433,"line_start":433,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SUPPLY-CHAIN-001` | 1 | `supply-chain` | dependency lock, secret scan, vulnerability scan, license inventory, dependency review를 merge/release gate로 분리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D024` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-02' (owns 'server-state decision') and 'A-PD-13' (other 'supply-chain decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-08ABF47CF5CA7B96C173","evidence_a":{"line_end":418,"line_start":418,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-ARCHITECTURE-001` | 1 | `architecture` | domain, application, presentation, adapters, bootstrap 책임을 분리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D009` |"},"evidence_b":{"line_end":419,"line_start":419,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-PORT-OWNERSHIP-001` | 1 | `port-ownership` | output port interface는 application이 소유하고 adapter가 구현한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D010` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-03' (other 'architecture decision') and 'A-PD-04' (owns 'output port interface') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-5813E89AC1AEBA8E206C","evidence_a":{"line_end":418,"line_start":418,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-ARCHITECTURE-001` | 1 | `architecture` | domain, application, presentation, adapters, bootstrap 책임을 분리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D009` |"},"evidence_b":{"line_end":420,"line_start":420,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-COMPOSITION-ROOT-001` | 1 | `composition-root` | bootstrap을 단일 composition root로 두고 concrete adapter를 application에 주입한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D011` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-03' (other 'architecture decision') and 'A-PD-05' (owns 'bootstrap') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-8106BD40C32BA6C09629","evidence_a":{"line_end":418,"line_start":418,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-ARCHITECTURE-001` | 1 | `architecture` | domain, application, presentation, adapters, bootstrap 책임을 분리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D009` |"},"evidence_b":{"line_end":423,"line_start":423,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TIMEOUT-001` | 1 | `timeout` | request total timeout default는 10초이며 별도 browser connect timeout은 주장하지 않는다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D014` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-03' (other 'architecture decision') and 'A-PD-06' (has_threshold 'request total timeout') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-3B9D5455F558BEC68B43","evidence_a":{"line_end":418,"line_start":418,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-ARCHITECTURE-001` | 1 | `architecture` | domain, application, presentation, adapters, bootstrap 책임을 분리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D009` |"},"evidence_b":{"line_end":424,"line_start":424,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-RETRY-001` | 1 | `retry` | retry는 initial call 이후 최대 2회, exponential backoff와 full jitter, 2초 cap을 사용한다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D015` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-03' (other 'architecture decision') and 'A-PD-07' (has_threshold 'retry policy') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-679342F3AF529EAA644E","evidence_a":{"line_end":418,"line_start":418,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-ARCHITECTURE-001` | 1 | `architecture` | domain, application, presentation, adapters, bootstrap 책임을 분리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D009` |"},"evidence_b":{"line_end":425,"line_start":425,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-IDEMPOTENCY-001` | 1 | `idempotency` | mutation auto-retry는 stable idempotency key와 backend replay contract가 있을 때만 허용한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D016` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-03' (other 'architecture decision') and 'A-PD-08' (requires 'mutation auto-retry') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-EE9B5A2860D5853AC82F","evidence_a":{"line_end":418,"line_start":418,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-ARCHITECTURE-001` | 1 | `architecture` | domain, application, presentation, adapters, bootstrap 책임을 분리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D009` |"},"evidence_b":{"line_end":426,"line_start":426,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-AUTH-BOUNDARY-001` | 1 | `auth-boundary` | auth lifecycle은 외부 owner가 소유하고 skeleton은 AuthSessionPort만 소비한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D017`; [[raw/project-notes/keycloak-patterns-overview]] |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-03' (other 'architecture decision') and 'A-PD-09' (delegates 'auth lifecycle') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-BDCAA0F6343030A83D0A","evidence_a":{"line_end":418,"line_start":418,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-ARCHITECTURE-001` | 1 | `architecture` | domain, application, presentation, adapters, bootstrap 책임을 분리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D009` |"},"evidence_b":{"line_end":427,"line_start":427,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-REGISTRY-001` | 1 | `registry` | route, API operation, env, storage, error, query, telemetry, release token을 8개 registry로 관리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D018` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-03' (other 'architecture decision') and 'A-PD-10' (has_cardinality 'registry decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-4D506ECD20796AC8B611","evidence_a":{"line_end":418,"line_start":418,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-ARCHITECTURE-001` | 1 | `architecture` | domain, application, presentation, adapters, bootstrap 책임을 분리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D009` |"},"evidence_b":{"line_end":430,"line_start":430,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TELEMETRY-001` | 1 | `telemetry` | telemetry는 best-effort queue와 redaction을 사용하며 sink failure가 UI를 실패시키지 않는다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D021` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-03' (other 'architecture decision') and 'A-PD-11' (has_failure_behavior 'telemetry decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-02EDA290D9C98620F850","evidence_a":{"line_end":418,"line_start":418,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-ARCHITECTURE-001` | 1 | `architecture` | domain, application, presentation, adapters, bootstrap 책임을 분리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D009` |"},"evidence_b":{"line_end":431,"line_start":431,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TEST-STACK-001` | 1 | `test-stack` | test stack default는 Vitest, RTL, MSW, Playwright, axe다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D022` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-03' (other 'architecture decision') and 'A-PD-12' (other 'test-stack decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-3666AF35F0E2D6D0957A","evidence_a":{"line_end":418,"line_start":418,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-ARCHITECTURE-001` | 1 | `architecture` | domain, application, presentation, adapters, bootstrap 책임을 분리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D009` |"},"evidence_b":{"line_end":433,"line_start":433,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SUPPLY-CHAIN-001` | 1 | `supply-chain` | dependency lock, secret scan, vulnerability scan, license inventory, dependency review를 merge/release gate로 분리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D024` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-03' (other 'architecture decision') and 'A-PD-13' (other 'supply-chain decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-F06E535A764D2EC9E130","evidence_a":{"line_end":419,"line_start":419,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-PORT-OWNERSHIP-001` | 1 | `port-ownership` | output port interface는 application이 소유하고 adapter가 구현한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D010` |"},"evidence_b":{"line_end":420,"line_start":420,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-COMPOSITION-ROOT-001` | 1 | `composition-root` | bootstrap을 단일 composition root로 두고 concrete adapter를 application에 주입한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D011` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-04' (owns 'output port interface') and 'A-PD-05' (owns 'bootstrap') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-3E8FCF1822D834C29F22","evidence_a":{"line_end":419,"line_start":419,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-PORT-OWNERSHIP-001` | 1 | `port-ownership` | output port interface는 application이 소유하고 adapter가 구현한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D010` |"},"evidence_b":{"line_end":423,"line_start":423,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TIMEOUT-001` | 1 | `timeout` | request total timeout default는 10초이며 별도 browser connect timeout은 주장하지 않는다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D014` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-04' (owns 'output port interface') and 'A-PD-06' (has_threshold 'request total timeout') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-DC52DF376B6BC4633BC9","evidence_a":{"line_end":419,"line_start":419,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-PORT-OWNERSHIP-001` | 1 | `port-ownership` | output port interface는 application이 소유하고 adapter가 구현한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D010` |"},"evidence_b":{"line_end":424,"line_start":424,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-RETRY-001` | 1 | `retry` | retry는 initial call 이후 최대 2회, exponential backoff와 full jitter, 2초 cap을 사용한다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D015` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-04' (owns 'output port interface') and 'A-PD-07' (has_threshold 'retry policy') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-A491C2C7DEB0D9A1EEFF","evidence_a":{"line_end":419,"line_start":419,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-PORT-OWNERSHIP-001` | 1 | `port-ownership` | output port interface는 application이 소유하고 adapter가 구현한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D010` |"},"evidence_b":{"line_end":425,"line_start":425,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-IDEMPOTENCY-001` | 1 | `idempotency` | mutation auto-retry는 stable idempotency key와 backend replay contract가 있을 때만 허용한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D016` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-04' (owns 'output port interface') and 'A-PD-08' (requires 'mutation auto-retry') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-71C2F98DA2F8DB9BD586","evidence_a":{"line_end":419,"line_start":419,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-PORT-OWNERSHIP-001` | 1 | `port-ownership` | output port interface는 application이 소유하고 adapter가 구현한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D010` |"},"evidence_b":{"line_end":426,"line_start":426,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-AUTH-BOUNDARY-001` | 1 | `auth-boundary` | auth lifecycle은 외부 owner가 소유하고 skeleton은 AuthSessionPort만 소비한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D017`; [[raw/project-notes/keycloak-patterns-overview]] |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-04' (owns 'output port interface') and 'A-PD-09' (delegates 'auth lifecycle') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-EE5FB568ECC042A2A739","evidence_a":{"line_end":419,"line_start":419,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-PORT-OWNERSHIP-001` | 1 | `port-ownership` | output port interface는 application이 소유하고 adapter가 구현한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D010` |"},"evidence_b":{"line_end":427,"line_start":427,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-REGISTRY-001` | 1 | `registry` | route, API operation, env, storage, error, query, telemetry, release token을 8개 registry로 관리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D018` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-04' (owns 'output port interface') and 'A-PD-10' (has_cardinality 'registry decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-D1FEF8517FE311C98C50","evidence_a":{"line_end":419,"line_start":419,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-PORT-OWNERSHIP-001` | 1 | `port-ownership` | output port interface는 application이 소유하고 adapter가 구현한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D010` |"},"evidence_b":{"line_end":430,"line_start":430,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TELEMETRY-001` | 1 | `telemetry` | telemetry는 best-effort queue와 redaction을 사용하며 sink failure가 UI를 실패시키지 않는다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D021` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-04' (owns 'output port interface') and 'A-PD-11' (has_failure_behavior 'telemetry decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-4967B7ADA3CCE28AD941","evidence_a":{"line_end":419,"line_start":419,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-PORT-OWNERSHIP-001` | 1 | `port-ownership` | output port interface는 application이 소유하고 adapter가 구현한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D010` |"},"evidence_b":{"line_end":431,"line_start":431,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TEST-STACK-001` | 1 | `test-stack` | test stack default는 Vitest, RTL, MSW, Playwright, axe다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D022` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-04' (owns 'output port interface') and 'A-PD-12' (other 'test-stack decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-5D91CA7CD56C89CCF372","evidence_a":{"line_end":419,"line_start":419,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-PORT-OWNERSHIP-001` | 1 | `port-ownership` | output port interface는 application이 소유하고 adapter가 구현한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D010` |"},"evidence_b":{"line_end":433,"line_start":433,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SUPPLY-CHAIN-001` | 1 | `supply-chain` | dependency lock, secret scan, vulnerability scan, license inventory, dependency review를 merge/release gate로 분리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D024` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-04' (owns 'output port interface') and 'A-PD-13' (other 'supply-chain decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-8C6020E00DFF2CB9C9A4","evidence_a":{"line_end":420,"line_start":420,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-COMPOSITION-ROOT-001` | 1 | `composition-root` | bootstrap을 단일 composition root로 두고 concrete adapter를 application에 주입한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D011` |"},"evidence_b":{"line_end":423,"line_start":423,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TIMEOUT-001` | 1 | `timeout` | request total timeout default는 10초이며 별도 browser connect timeout은 주장하지 않는다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D014` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-05' (owns 'bootstrap') and 'A-PD-06' (has_threshold 'request total timeout') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-19D5E9959FA29FAF1C9F","evidence_a":{"line_end":420,"line_start":420,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-COMPOSITION-ROOT-001` | 1 | `composition-root` | bootstrap을 단일 composition root로 두고 concrete adapter를 application에 주입한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D011` |"},"evidence_b":{"line_end":424,"line_start":424,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-RETRY-001` | 1 | `retry` | retry는 initial call 이후 최대 2회, exponential backoff와 full jitter, 2초 cap을 사용한다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D015` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-05' (owns 'bootstrap') and 'A-PD-07' (has_threshold 'retry policy') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-926706A6537A89F3F9A3","evidence_a":{"line_end":420,"line_start":420,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-COMPOSITION-ROOT-001` | 1 | `composition-root` | bootstrap을 단일 composition root로 두고 concrete adapter를 application에 주입한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D011` |"},"evidence_b":{"line_end":425,"line_start":425,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-IDEMPOTENCY-001` | 1 | `idempotency` | mutation auto-retry는 stable idempotency key와 backend replay contract가 있을 때만 허용한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D016` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-05' (owns 'bootstrap') and 'A-PD-08' (requires 'mutation auto-retry') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-9A0042E233D3D7C74E43","evidence_a":{"line_end":420,"line_start":420,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-COMPOSITION-ROOT-001` | 1 | `composition-root` | bootstrap을 단일 composition root로 두고 concrete adapter를 application에 주입한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D011` |"},"evidence_b":{"line_end":426,"line_start":426,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-AUTH-BOUNDARY-001` | 1 | `auth-boundary` | auth lifecycle은 외부 owner가 소유하고 skeleton은 AuthSessionPort만 소비한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D017`; [[raw/project-notes/keycloak-patterns-overview]] |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-05' (owns 'bootstrap') and 'A-PD-09' (delegates 'auth lifecycle') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-768E3BF9CAAA2CE2AC94","evidence_a":{"line_end":420,"line_start":420,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-COMPOSITION-ROOT-001` | 1 | `composition-root` | bootstrap을 단일 composition root로 두고 concrete adapter를 application에 주입한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D011` |"},"evidence_b":{"line_end":427,"line_start":427,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-REGISTRY-001` | 1 | `registry` | route, API operation, env, storage, error, query, telemetry, release token을 8개 registry로 관리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D018` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-05' (owns 'bootstrap') and 'A-PD-10' (has_cardinality 'registry decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-3980559612A553D6DF56","evidence_a":{"line_end":420,"line_start":420,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-COMPOSITION-ROOT-001` | 1 | `composition-root` | bootstrap을 단일 composition root로 두고 concrete adapter를 application에 주입한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D011` |"},"evidence_b":{"line_end":430,"line_start":430,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TELEMETRY-001` | 1 | `telemetry` | telemetry는 best-effort queue와 redaction을 사용하며 sink failure가 UI를 실패시키지 않는다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D021` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-05' (owns 'bootstrap') and 'A-PD-11' (has_failure_behavior 'telemetry decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-C3FD19238BF73779F0F1","evidence_a":{"line_end":420,"line_start":420,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-COMPOSITION-ROOT-001` | 1 | `composition-root` | bootstrap을 단일 composition root로 두고 concrete adapter를 application에 주입한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D011` |"},"evidence_b":{"line_end":431,"line_start":431,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TEST-STACK-001` | 1 | `test-stack` | test stack default는 Vitest, RTL, MSW, Playwright, axe다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D022` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-05' (owns 'bootstrap') and 'A-PD-12' (other 'test-stack decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-0F8A57633CF4C0D23FA9","evidence_a":{"line_end":420,"line_start":420,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-COMPOSITION-ROOT-001` | 1 | `composition-root` | bootstrap을 단일 composition root로 두고 concrete adapter를 application에 주입한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D011` |"},"evidence_b":{"line_end":433,"line_start":433,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SUPPLY-CHAIN-001` | 1 | `supply-chain` | dependency lock, secret scan, vulnerability scan, license inventory, dependency review를 merge/release gate로 분리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D024` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-05' (owns 'bootstrap') and 'A-PD-13' (other 'supply-chain decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-9B1D7B1813CBBD4FEE85","evidence_a":{"line_end":423,"line_start":423,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TIMEOUT-001` | 1 | `timeout` | request total timeout default는 10초이며 별도 browser connect timeout은 주장하지 않는다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D014` |"},"evidence_b":{"line_end":424,"line_start":424,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-RETRY-001` | 1 | `retry` | retry는 initial call 이후 최대 2회, exponential backoff와 full jitter, 2초 cap을 사용한다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D015` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-06' (has_threshold 'request total timeout') and 'A-PD-07' (has_threshold 'retry policy') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-A2E4B802C1273E37F5C1","evidence_a":{"line_end":423,"line_start":423,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TIMEOUT-001` | 1 | `timeout` | request total timeout default는 10초이며 별도 browser connect timeout은 주장하지 않는다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D014` |"},"evidence_b":{"line_end":425,"line_start":425,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-IDEMPOTENCY-001` | 1 | `idempotency` | mutation auto-retry는 stable idempotency key와 backend replay contract가 있을 때만 허용한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D016` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-06' (has_threshold 'request total timeout') and 'A-PD-08' (requires 'mutation auto-retry') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-A56F168C5E2C461A42B1","evidence_a":{"line_end":423,"line_start":423,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TIMEOUT-001` | 1 | `timeout` | request total timeout default는 10초이며 별도 browser connect timeout은 주장하지 않는다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D014` |"},"evidence_b":{"line_end":426,"line_start":426,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-AUTH-BOUNDARY-001` | 1 | `auth-boundary` | auth lifecycle은 외부 owner가 소유하고 skeleton은 AuthSessionPort만 소비한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D017`; [[raw/project-notes/keycloak-patterns-overview]] |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-06' (has_threshold 'request total timeout') and 'A-PD-09' (delegates 'auth lifecycle') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-F754A9F289CE3D634E16","evidence_a":{"line_end":423,"line_start":423,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TIMEOUT-001` | 1 | `timeout` | request total timeout default는 10초이며 별도 browser connect timeout은 주장하지 않는다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D014` |"},"evidence_b":{"line_end":427,"line_start":427,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-REGISTRY-001` | 1 | `registry` | route, API operation, env, storage, error, query, telemetry, release token을 8개 registry로 관리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D018` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-06' (has_threshold 'request total timeout') and 'A-PD-10' (has_cardinality 'registry decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-CB5098E61D3DE5C69C7E","evidence_a":{"line_end":423,"line_start":423,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TIMEOUT-001` | 1 | `timeout` | request total timeout default는 10초이며 별도 browser connect timeout은 주장하지 않는다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D014` |"},"evidence_b":{"line_end":430,"line_start":430,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TELEMETRY-001` | 1 | `telemetry` | telemetry는 best-effort queue와 redaction을 사용하며 sink failure가 UI를 실패시키지 않는다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D021` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-06' (has_threshold 'request total timeout') and 'A-PD-11' (has_failure_behavior 'telemetry decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-D6CBB7807073A78F0983","evidence_a":{"line_end":423,"line_start":423,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TIMEOUT-001` | 1 | `timeout` | request total timeout default는 10초이며 별도 browser connect timeout은 주장하지 않는다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D014` |"},"evidence_b":{"line_end":431,"line_start":431,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TEST-STACK-001` | 1 | `test-stack` | test stack default는 Vitest, RTL, MSW, Playwright, axe다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D022` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-06' (has_threshold 'request total timeout') and 'A-PD-12' (other 'test-stack decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-D5D798F17E953AC9A7CB","evidence_a":{"line_end":423,"line_start":423,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TIMEOUT-001` | 1 | `timeout` | request total timeout default는 10초이며 별도 browser connect timeout은 주장하지 않는다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D014` |"},"evidence_b":{"line_end":433,"line_start":433,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SUPPLY-CHAIN-001` | 1 | `supply-chain` | dependency lock, secret scan, vulnerability scan, license inventory, dependency review를 merge/release gate로 분리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D024` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-06' (has_threshold 'request total timeout') and 'A-PD-13' (other 'supply-chain decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-FDB41924EA28CA45C9DD","evidence_a":{"line_end":424,"line_start":424,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-RETRY-001` | 1 | `retry` | retry는 initial call 이후 최대 2회, exponential backoff와 full jitter, 2초 cap을 사용한다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D015` |"},"evidence_b":{"line_end":425,"line_start":425,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-IDEMPOTENCY-001` | 1 | `idempotency` | mutation auto-retry는 stable idempotency key와 backend replay contract가 있을 때만 허용한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D016` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-07' (has_threshold 'retry policy') and 'A-PD-08' (requires 'mutation auto-retry') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-EC6D807E0F7888DE2FAD","evidence_a":{"line_end":424,"line_start":424,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-RETRY-001` | 1 | `retry` | retry는 initial call 이후 최대 2회, exponential backoff와 full jitter, 2초 cap을 사용한다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D015` |"},"evidence_b":{"line_end":426,"line_start":426,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-AUTH-BOUNDARY-001` | 1 | `auth-boundary` | auth lifecycle은 외부 owner가 소유하고 skeleton은 AuthSessionPort만 소비한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D017`; [[raw/project-notes/keycloak-patterns-overview]] |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-07' (has_threshold 'retry policy') and 'A-PD-09' (delegates 'auth lifecycle') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-F9511C869B8C21FB887F","evidence_a":{"line_end":424,"line_start":424,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-RETRY-001` | 1 | `retry` | retry는 initial call 이후 최대 2회, exponential backoff와 full jitter, 2초 cap을 사용한다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D015` |"},"evidence_b":{"line_end":427,"line_start":427,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-REGISTRY-001` | 1 | `registry` | route, API operation, env, storage, error, query, telemetry, release token을 8개 registry로 관리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D018` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-07' (has_threshold 'retry policy') and 'A-PD-10' (has_cardinality 'registry decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-FB7F096F40F16FE95A8A","evidence_a":{"line_end":424,"line_start":424,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-RETRY-001` | 1 | `retry` | retry는 initial call 이후 최대 2회, exponential backoff와 full jitter, 2초 cap을 사용한다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D015` |"},"evidence_b":{"line_end":430,"line_start":430,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TELEMETRY-001` | 1 | `telemetry` | telemetry는 best-effort queue와 redaction을 사용하며 sink failure가 UI를 실패시키지 않는다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D021` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-07' (has_threshold 'retry policy') and 'A-PD-11' (has_failure_behavior 'telemetry decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-68A7AB53E2F4AF9666FA","evidence_a":{"line_end":424,"line_start":424,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-RETRY-001` | 1 | `retry` | retry는 initial call 이후 최대 2회, exponential backoff와 full jitter, 2초 cap을 사용한다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D015` |"},"evidence_b":{"line_end":431,"line_start":431,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TEST-STACK-001` | 1 | `test-stack` | test stack default는 Vitest, RTL, MSW, Playwright, axe다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D022` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-07' (has_threshold 'retry policy') and 'A-PD-12' (other 'test-stack decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-6F0D3B2F92F96FB6F8A6","evidence_a":{"line_end":424,"line_start":424,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-RETRY-001` | 1 | `retry` | retry는 initial call 이후 최대 2회, exponential backoff와 full jitter, 2초 cap을 사용한다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D015` |"},"evidence_b":{"line_end":433,"line_start":433,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SUPPLY-CHAIN-001` | 1 | `supply-chain` | dependency lock, secret scan, vulnerability scan, license inventory, dependency review를 merge/release gate로 분리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D024` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-07' (has_threshold 'retry policy') and 'A-PD-13' (other 'supply-chain decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-0272947495E513D54C49","evidence_a":{"line_end":425,"line_start":425,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-IDEMPOTENCY-001` | 1 | `idempotency` | mutation auto-retry는 stable idempotency key와 backend replay contract가 있을 때만 허용한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D016` |"},"evidence_b":{"line_end":426,"line_start":426,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-AUTH-BOUNDARY-001` | 1 | `auth-boundary` | auth lifecycle은 외부 owner가 소유하고 skeleton은 AuthSessionPort만 소비한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D017`; [[raw/project-notes/keycloak-patterns-overview]] |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-08' (requires 'mutation auto-retry') and 'A-PD-09' (delegates 'auth lifecycle') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-55747D1A71B42DF73C38","evidence_a":{"line_end":425,"line_start":425,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-IDEMPOTENCY-001` | 1 | `idempotency` | mutation auto-retry는 stable idempotency key와 backend replay contract가 있을 때만 허용한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D016` |"},"evidence_b":{"line_end":427,"line_start":427,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-REGISTRY-001` | 1 | `registry` | route, API operation, env, storage, error, query, telemetry, release token을 8개 registry로 관리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D018` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-08' (requires 'mutation auto-retry') and 'A-PD-10' (has_cardinality 'registry decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-A5039B8AF63A920653F4","evidence_a":{"line_end":425,"line_start":425,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-IDEMPOTENCY-001` | 1 | `idempotency` | mutation auto-retry는 stable idempotency key와 backend replay contract가 있을 때만 허용한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D016` |"},"evidence_b":{"line_end":430,"line_start":430,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TELEMETRY-001` | 1 | `telemetry` | telemetry는 best-effort queue와 redaction을 사용하며 sink failure가 UI를 실패시키지 않는다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D021` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-08' (requires 'mutation auto-retry') and 'A-PD-11' (has_failure_behavior 'telemetry decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-BCB9BD3642ABA41B303A","evidence_a":{"line_end":425,"line_start":425,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-IDEMPOTENCY-001` | 1 | `idempotency` | mutation auto-retry는 stable idempotency key와 backend replay contract가 있을 때만 허용한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D016` |"},"evidence_b":{"line_end":431,"line_start":431,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TEST-STACK-001` | 1 | `test-stack` | test stack default는 Vitest, RTL, MSW, Playwright, axe다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D022` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-08' (requires 'mutation auto-retry') and 'A-PD-12' (other 'test-stack decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-CC4690A7BC7FAFAB9DCC","evidence_a":{"line_end":425,"line_start":425,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-IDEMPOTENCY-001` | 1 | `idempotency` | mutation auto-retry는 stable idempotency key와 backend replay contract가 있을 때만 허용한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D016` |"},"evidence_b":{"line_end":433,"line_start":433,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SUPPLY-CHAIN-001` | 1 | `supply-chain` | dependency lock, secret scan, vulnerability scan, license inventory, dependency review를 merge/release gate로 분리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D024` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-08' (requires 'mutation auto-retry') and 'A-PD-13' (other 'supply-chain decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-1C28EAFF5D715B850CDA","evidence_a":{"line_end":426,"line_start":426,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-AUTH-BOUNDARY-001` | 1 | `auth-boundary` | auth lifecycle은 외부 owner가 소유하고 skeleton은 AuthSessionPort만 소비한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D017`; [[raw/project-notes/keycloak-patterns-overview]] |"},"evidence_b":{"line_end":427,"line_start":427,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-REGISTRY-001` | 1 | `registry` | route, API operation, env, storage, error, query, telemetry, release token을 8개 registry로 관리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D018` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-09' (delegates 'auth lifecycle') and 'A-PD-10' (has_cardinality 'registry decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-CF1709FECE58A0A486CE","evidence_a":{"line_end":426,"line_start":426,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-AUTH-BOUNDARY-001` | 1 | `auth-boundary` | auth lifecycle은 외부 owner가 소유하고 skeleton은 AuthSessionPort만 소비한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D017`; [[raw/project-notes/keycloak-patterns-overview]] |"},"evidence_b":{"line_end":430,"line_start":430,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TELEMETRY-001` | 1 | `telemetry` | telemetry는 best-effort queue와 redaction을 사용하며 sink failure가 UI를 실패시키지 않는다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D021` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-09' (delegates 'auth lifecycle') and 'A-PD-11' (has_failure_behavior 'telemetry decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-054E066C6CF2F2571E5D","evidence_a":{"line_end":426,"line_start":426,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-AUTH-BOUNDARY-001` | 1 | `auth-boundary` | auth lifecycle은 외부 owner가 소유하고 skeleton은 AuthSessionPort만 소비한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D017`; [[raw/project-notes/keycloak-patterns-overview]] |"},"evidence_b":{"line_end":431,"line_start":431,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TEST-STACK-001` | 1 | `test-stack` | test stack default는 Vitest, RTL, MSW, Playwright, axe다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D022` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-09' (delegates 'auth lifecycle') and 'A-PD-12' (other 'test-stack decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-C36A3AB80A076B649919","evidence_a":{"line_end":426,"line_start":426,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-AUTH-BOUNDARY-001` | 1 | `auth-boundary` | auth lifecycle은 외부 owner가 소유하고 skeleton은 AuthSessionPort만 소비한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D017`; [[raw/project-notes/keycloak-patterns-overview]] |"},"evidence_b":{"line_end":433,"line_start":433,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SUPPLY-CHAIN-001` | 1 | `supply-chain` | dependency lock, secret scan, vulnerability scan, license inventory, dependency review를 merge/release gate로 분리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D024` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-09' (delegates 'auth lifecycle') and 'A-PD-13' (other 'supply-chain decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-A8D156BE1A6E4849A475","evidence_a":{"line_end":427,"line_start":427,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-REGISTRY-001` | 1 | `registry` | route, API operation, env, storage, error, query, telemetry, release token을 8개 registry로 관리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D018` |"},"evidence_b":{"line_end":430,"line_start":430,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TELEMETRY-001` | 1 | `telemetry` | telemetry는 best-effort queue와 redaction을 사용하며 sink failure가 UI를 실패시키지 않는다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D021` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-10' (has_cardinality 'registry decision') and 'A-PD-11' (has_failure_behavior 'telemetry decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-E7397CC3E543B161F350","evidence_a":{"line_end":427,"line_start":427,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-REGISTRY-001` | 1 | `registry` | route, API operation, env, storage, error, query, telemetry, release token을 8개 registry로 관리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D018` |"},"evidence_b":{"line_end":431,"line_start":431,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TEST-STACK-001` | 1 | `test-stack` | test stack default는 Vitest, RTL, MSW, Playwright, axe다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D022` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-10' (has_cardinality 'registry decision') and 'A-PD-12' (other 'test-stack decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-B86E8DF18A7DA17A9C51","evidence_a":{"line_end":427,"line_start":427,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-REGISTRY-001` | 1 | `registry` | route, API operation, env, storage, error, query, telemetry, release token을 8개 registry로 관리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D018` |"},"evidence_b":{"line_end":433,"line_start":433,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SUPPLY-CHAIN-001` | 1 | `supply-chain` | dependency lock, secret scan, vulnerability scan, license inventory, dependency review를 merge/release gate로 분리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D024` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-10' (has_cardinality 'registry decision') and 'A-PD-13' (other 'supply-chain decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-7EC56AE35F46B0DE831F","evidence_a":{"line_end":430,"line_start":430,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TELEMETRY-001` | 1 | `telemetry` | telemetry는 best-effort queue와 redaction을 사용하며 sink failure가 UI를 실패시키지 않는다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D021` |"},"evidence_b":{"line_end":431,"line_start":431,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TEST-STACK-001` | 1 | `test-stack` | test stack default는 Vitest, RTL, MSW, Playwright, axe다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D022` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-11' (has_failure_behavior 'telemetry decision') and 'A-PD-12' (other 'test-stack decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-E88C711A63287CB95B6F","evidence_a":{"line_end":430,"line_start":430,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TELEMETRY-001` | 1 | `telemetry` | telemetry는 best-effort queue와 redaction을 사용하며 sink failure가 UI를 실패시키지 않는다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D021` |"},"evidence_b":{"line_end":433,"line_start":433,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SUPPLY-CHAIN-001` | 1 | `supply-chain` | dependency lock, secret scan, vulnerability scan, license inventory, dependency review를 merge/release gate로 분리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D024` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-11' (has_failure_behavior 'telemetry decision') and 'A-PD-13' (other 'supply-chain decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-9AFC6611DA31266EB089","evidence_a":{"line_end":431,"line_start":431,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-TEST-STACK-001` | 1 | `test-stack` | test stack default는 Vitest, RTL, MSW, Playwright, axe다 | `conditional-default` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D022` |"},"evidence_b":{"line_end":433,"line_start":433,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SUPPLY-CHAIN-001` | 1 | `supply-chain` | dependency lock, secret scan, vulnerability scan, license inventory, dependency review를 merge/release gate로 분리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D024` |"},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-12' (other 'test-stack decision') and 'A-PD-13' (other 'supply-chain decision') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-86D2FA4B1B325991851C","evidence_a":{"line_end":433,"line_start":433,"quote":"| `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SUPPLY-CHAIN-001` | 1 | `supply-chain` | dependency lock, secret scan, vulnerability scan, license inventory, dependency review를 merge/release gate로 분리한다 | `accepted-documented-only` | [[raw/project-notes/ca-skeleton-frontend-operational-contract]] | §3.2 `FE-D024` |"},"evidence_b":{"line_end":438,"line_start":438,"quote":"> - 2026-07-21 · `DEC-...-SUPPLY-CHAIN-001` · `compatibility_impact: additive` · revision 유지(1). Decision Summary 에 `dependency review` 를 추가했다. 이는 새 결정이 아니라 **불완전한 요약의 정정**이다 — `FE-OC-018` 과 §13.1 이 처음부터 dependency review 를 요구했고 §3.2 `FE-D024` 도 이를 포함하는데 이 registry 행만 4개 control 로 적혀 있었다. 기존 4개 control 의 동작은 바뀌지 않고, gate 정의(§15.1 `FE-GATE-013`)도 이미 dependency-review fixture 를 포함한 채 revision 1 이므로 같은 판정을 적용한다."},"proof_manifest":null,"rationale":"Distinct entries of the same project decision registry surface: 'A-PD-13' (other 'supply-chain decision') and 'A-PD-14' (other 'DEC-...-SUPPLY-CHAIN-001 revision record') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-2733455AAD64810EEFE5","evidence_a":{"line_end":2027,"line_start":2027,"quote":"| `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` |"},"evidence_b":{"line_end":2028,"line_start":2028,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct entries of the same work item table surface: 'A-WI-01' (maps_to 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') and 'A-WI-02' (requires 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-37D3123F1A400EF2C28F","evidence_a":{"line_end":2027,"line_start":2027,"quote":"| `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` |"},"evidence_b":{"line_end":2031,"line_start":2031,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct entries of the same work item table surface: 'A-WI-01' (maps_to 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') and 'A-WI-03' (requires 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-232C2899AB159052D7D5","evidence_a":{"line_end":2027,"line_start":2027,"quote":"| `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` |"},"evidence_b":{"line_end":2034,"line_start":2034,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-008` | `feature-frontend-auth-session-integration-contract` | AuthSessionPort·bounded 401 replay와 token lifecycle import 금지가 test로 고정된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-AUTH-BOUNDARY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-PORT-OWNERSHIP-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-002` | `planned` |"},"proof_manifest":null,"rationale":"Distinct entries of the same work item table surface: 'A-WI-01' (maps_to 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') and 'A-WI-04' (requires 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-109BBB3A51E79EEF2803","evidence_a":{"line_end":2027,"line_start":2027,"quote":"| `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` |"},"evidence_b":{"line_end":2042,"line_start":2042,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-016` | `feature-sample-feature-slice-contract-fixture` | full contract slice와 sample removal smoke test가 통과한다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SAMPLE-FIXTURE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-005`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-006`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-007`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-009`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-010` | `planned` |"},"proof_manifest":null,"rationale":"Distinct entries of the same work item table surface: 'A-WI-01' (maps_to 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') and 'A-WI-05' (runs_after 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-463FC9C119E3BE4184F7","evidence_a":{"line_end":2027,"line_start":2027,"quote":"| `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` |"},"evidence_b":{"line_end":2050,"line_start":2050,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-024` | `feature-frontend-release-cache-rollback-contract` | release tuple·cache header·mixed fixture failure·rollback drill이 검증된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-DEPLOYMENT-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-CACHE-POLICY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-OFFLINE-CACHE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-020`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-004`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-023` | `planned` |"},"proof_manifest":null,"rationale":"Distinct entries of the same work item table surface: 'A-WI-01' (maps_to 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') and 'A-WI-06' (runs_after 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-20701A4EE8C0A1200D14","evidence_a":{"line_end":2027,"line_start":2027,"quote":"| `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` |"},"evidence_b":{"line_end":2053,"line_start":2053,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct entries of the same work item table surface: 'A-WI-01' (maps_to 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') and 'A-WI-07' (runs_after 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-40F50617DED8CE95B1C2","evidence_a":{"line_end":2028,"line_start":2028,"quote":"| `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` |"},"evidence_b":{"line_end":2031,"line_start":2031,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct entries of the same work item table surface: 'A-WI-02' (requires 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') and 'A-WI-03' (requires 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-26D3B9EECC86F2B110CB","evidence_a":{"line_end":2028,"line_start":2028,"quote":"| `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` |"},"evidence_b":{"line_end":2034,"line_start":2034,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-008` | `feature-frontend-auth-session-integration-contract` | AuthSessionPort·bounded 401 replay와 token lifecycle import 금지가 test로 고정된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-AUTH-BOUNDARY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-PORT-OWNERSHIP-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-002` | `planned` |"},"proof_manifest":null,"rationale":"Distinct entries of the same work item table surface: 'A-WI-02' (requires 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') and 'A-WI-04' (requires 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-22A9D8ABDC703DB35145","evidence_a":{"line_end":2028,"line_start":2028,"quote":"| `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` |"},"evidence_b":{"line_end":2042,"line_start":2042,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-016` | `feature-sample-feature-slice-contract-fixture` | full contract slice와 sample removal smoke test가 통과한다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SAMPLE-FIXTURE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-005`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-006`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-007`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-009`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-010` | `planned` |"},"proof_manifest":null,"rationale":"Distinct entries of the same work item table surface: 'A-WI-02' (requires 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') and 'A-WI-05' (runs_after 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-E6C2ADCF76A7AD6A760A","evidence_a":{"line_end":2028,"line_start":2028,"quote":"| `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` |"},"evidence_b":{"line_end":2050,"line_start":2050,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-024` | `feature-frontend-release-cache-rollback-contract` | release tuple·cache header·mixed fixture failure·rollback drill이 검증된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-DEPLOYMENT-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-CACHE-POLICY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-OFFLINE-CACHE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-020`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-004`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-023` | `planned` |"},"proof_manifest":null,"rationale":"Distinct entries of the same work item table surface: 'A-WI-02' (requires 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') and 'A-WI-06' (runs_after 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-1430EF76679CA1718BEE","evidence_a":{"line_end":2028,"line_start":2028,"quote":"| `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` |"},"evidence_b":{"line_end":2053,"line_start":2053,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct entries of the same work item table surface: 'A-WI-02' (requires 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') and 'A-WI-07' (runs_after 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-ED20736C43AFFA57346C","evidence_a":{"line_end":2031,"line_start":2031,"quote":"| `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` |"},"evidence_b":{"line_end":2034,"line_start":2034,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-008` | `feature-frontend-auth-session-integration-contract` | AuthSessionPort·bounded 401 replay와 token lifecycle import 금지가 test로 고정된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-AUTH-BOUNDARY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-PORT-OWNERSHIP-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-002` | `planned` |"},"proof_manifest":null,"rationale":"Distinct entries of the same work item table surface: 'A-WI-03' (requires 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') and 'A-WI-04' (requires 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-099089BB829F7F1DB913","evidence_a":{"line_end":2031,"line_start":2031,"quote":"| `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` |"},"evidence_b":{"line_end":2042,"line_start":2042,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-016` | `feature-sample-feature-slice-contract-fixture` | full contract slice와 sample removal smoke test가 통과한다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SAMPLE-FIXTURE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-005`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-006`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-007`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-009`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-010` | `planned` |"},"proof_manifest":null,"rationale":"Distinct entries of the same work item table surface: 'A-WI-03' (requires 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') and 'A-WI-05' (runs_after 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-8373262E833D9D6BEB9C","evidence_a":{"line_end":2031,"line_start":2031,"quote":"| `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` |"},"evidence_b":{"line_end":2050,"line_start":2050,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-024` | `feature-frontend-release-cache-rollback-contract` | release tuple·cache header·mixed fixture failure·rollback drill이 검증된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-DEPLOYMENT-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-CACHE-POLICY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-OFFLINE-CACHE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-020`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-004`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-023` | `planned` |"},"proof_manifest":null,"rationale":"Distinct entries of the same work item table surface: 'A-WI-03' (requires 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') and 'A-WI-06' (runs_after 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-D1B7AD7BA9B16A9C1A77","evidence_a":{"line_end":2031,"line_start":2031,"quote":"| `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` |"},"evidence_b":{"line_end":2053,"line_start":2053,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct entries of the same work item table surface: 'A-WI-03' (requires 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') and 'A-WI-07' (runs_after 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-10CA7B5F53E87092709B","evidence_a":{"line_end":2034,"line_start":2034,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-008` | `feature-frontend-auth-session-integration-contract` | AuthSessionPort·bounded 401 replay와 token lifecycle import 금지가 test로 고정된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-AUTH-BOUNDARY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-PORT-OWNERSHIP-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-002` | `planned` |"},"evidence_b":{"line_end":2042,"line_start":2042,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-016` | `feature-sample-feature-slice-contract-fixture` | full contract slice와 sample removal smoke test가 통과한다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SAMPLE-FIXTURE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-005`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-006`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-007`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-009`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-010` | `planned` |"},"proof_manifest":null,"rationale":"Distinct entries of the same work item table surface: 'A-WI-04' (requires 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') and 'A-WI-05' (runs_after 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-DC72EEFBBE81FAA85289","evidence_a":{"line_end":2034,"line_start":2034,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-008` | `feature-frontend-auth-session-integration-contract` | AuthSessionPort·bounded 401 replay와 token lifecycle import 금지가 test로 고정된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-AUTH-BOUNDARY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-PORT-OWNERSHIP-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-002` | `planned` |"},"evidence_b":{"line_end":2050,"line_start":2050,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-024` | `feature-frontend-release-cache-rollback-contract` | release tuple·cache header·mixed fixture failure·rollback drill이 검증된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-DEPLOYMENT-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-CACHE-POLICY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-OFFLINE-CACHE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-020`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-004`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-023` | `planned` |"},"proof_manifest":null,"rationale":"Distinct entries of the same work item table surface: 'A-WI-04' (requires 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') and 'A-WI-06' (runs_after 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-10456E0A84854CDBABFA","evidence_a":{"line_end":2034,"line_start":2034,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-008` | `feature-frontend-auth-session-integration-contract` | AuthSessionPort·bounded 401 replay와 token lifecycle import 금지가 test로 고정된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-AUTH-BOUNDARY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-PORT-OWNERSHIP-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-002` | `planned` |"},"evidence_b":{"line_end":2053,"line_start":2053,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct entries of the same work item table surface: 'A-WI-04' (requires 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') and 'A-WI-07' (runs_after 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-C6C2D876D7778D1C6051","evidence_a":{"line_end":2042,"line_start":2042,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-016` | `feature-sample-feature-slice-contract-fixture` | full contract slice와 sample removal smoke test가 통과한다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SAMPLE-FIXTURE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-005`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-006`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-007`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-009`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-010` | `planned` |"},"evidence_b":{"line_end":2050,"line_start":2050,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-024` | `feature-frontend-release-cache-rollback-contract` | release tuple·cache header·mixed fixture failure·rollback drill이 검증된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-DEPLOYMENT-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-CACHE-POLICY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-OFFLINE-CACHE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-020`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-004`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-023` | `planned` |"},"proof_manifest":null,"rationale":"Distinct entries of the same work item table surface: 'A-WI-05' (runs_after 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') and 'A-WI-06' (runs_after 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-D8DEE55CBDFA8CC819B2","evidence_a":{"line_end":2042,"line_start":2042,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-016` | `feature-sample-feature-slice-contract-fixture` | full contract slice와 sample removal smoke test가 통과한다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-SAMPLE-FIXTURE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-005`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-006`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-007`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-009`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-010` | `planned` |"},"evidence_b":{"line_end":2053,"line_start":2053,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct entries of the same work item table surface: 'A-WI-05' (runs_after 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') and 'A-WI-07' (runs_after 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"},{"candidate_id":"SEM-8467EDCA8F2D47362089","evidence_a":{"line_end":2050,"line_start":2050,"quote":"| `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-024` | `feature-frontend-release-cache-rollback-contract` | release tuple·cache header·mixed fixture failure·rollback drill이 검증된다 | `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-DEPLOYMENT-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-CACHE-POLICY-001@1`, `DEC-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-OFFLINE-CACHE-001@1` | `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-020`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-004`, `WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONTRACT-023` | `planned` |"},"evidence_b":{"line_end":2053,"line_start":2053,"quote":"| `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` |"},"proof_manifest":null,"rationale":"Distinct entries of the same work item table surface: 'A-WI-06' (runs_after 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') and 'A-WI-07' (runs_after 'WI-CA-SKELETON-FRONTEND-OPERATIONAL-CONT...') assign separate concerns to separate owners in one decomposition; no overlap of an exclusive property.","verdict":"COMPLEMENTARY"}]},"auditor":{"contract_version":"semantic-coherence/v1","model_id":"claude-opus-4-8","run_id":"a3c7aa5da457e9fd4"},"auditor_contract_sha256":"1cbc67c27e5183a272687f635e3682a26d56785a1cf144da562eb7edd8f6cbce","coverage":{"candidate_pairs":233,"dropped_pairs":0,"eligible_surfaces":9,"processed_pairs":233,"processed_surfaces":9},"document_id":"3372295ac4a7655e7e68d4a65acd143f2c858a126261c28061d7ea7f0cc95193","document_sha256":"5cdbbea21dddbd102e2b096ccdf0b281a24ddea2406e34c8f41dfb5dbad2f3e5","findings":{"blocking":0,"readiness_blocking":0,"verified":0},"mode":"hub","ontology_sha256":"5d601b96f0ca4d75eea89e9086c38e3acf2c4f0c7833846ef58c6a5719603126","policy_sha256":"0465598e9c1c4f2c3400ba51bf4719aa4890d60d56dc83304fb2224e660562b7","proof_manifest_sha256":"37517e5f3dc66819f61f5a7bb8ace1921282415f10551d2defa5c3eb0985b570","schema_version":"semantic-certificate/v1","semantic_audit_sha256":"f78058648e52d4b566f5efd1e0c518e12a31886f074020ef15055f34ec8aec73","subject":"raw/project-notes/ca-skeleton-frontend-operational-contract.md","typed_contract_graph_sha256":"481fc3335a494c454ab13ad1d6a6ddccdec99aa8e083f6720ff8886bfa19cc89","verdict":"PASS"}
|