{
  "meta": {
    "title": "Pharos 프로젝트 체크리스트",
    "date": "2026-09-27",
    "head": "c8eb0f1e6e93df1705473067d17a0c61c8a70aa7",
    "hierarchy": "영역 → 기능 묶음 → 확인 항목",
    "scope": "P1 상품 CRUD 동기화 · 주문 수집",
    "note": "프로젝트 진행 관리 정본. 상태는 검증 근거가 있을 때만 변경하며 제품 전체 완료율로 환산하지 않습니다.",
    "status_banner": "P1 전체 미완료",
    "next_milestone_title": "API에서 첫 상품 게시",
    "next_milestone_route": "CS-X 통합 → CS-P1 → simulator 게시 증거",
    "next_milestone_note": "로그인·상품·판매계정·매핑 화면과 동기화 기반은 확보했습니다. 게시 실행 연결, 대사·리스팅 UI, 주문·주변 기능은 남아 있습니다.",
    "snapshot_note": "맥미니 전용 스택을 Cloudflare Tunnel로 배포했습니다. 로그인 없이 같은 Pharos 공간으로 진입하며 모든 방문자가 데이터를 보고 수정합니다. 새 브라우저 2개·상품 수정/reload·판매계정·매핑 확인. 실제 채널 CRUD·주문 E2E, 파일럿, 외부 백업·복원은 남아 있습니다."
  },
  "sections": [
    {
      "id": "S01",
      "title": "아키텍처와 범위",
      "intro": "원래 12노드 구성을 출발점으로, 현재 코드에서 확인한 경계와 P1 범위를 정리했습니다.",
      "groups": [
        {
          "id": "S01.01",
          "title": "전체 구성과 설계 기준",
          "items": [
            {
              "id": "S01.01.01",
              "status": "done",
              "title": "기존 아키텍처 원본·Archify 뷰어 게시",
              "note": "지정 에이전트의 12노드 JSON과 Archify HTML 보존. 9개 검사·4종 데스크톱 크기 containment PASS. 초기 설계 그림이며 실제 배포 토폴로지나 제품 기능 완료를 뜻하지 않는다. 뷰어 고정 메뉴는 영어.",
              "sources": [
                "docs/reports/pharos-checklist-sources/architecture-baseline.json",
                "docs/reports/pharos-checklist-sources/source-notes.md",
                "docs/reports/pharos-architecture.html",
                "docs/work-log/2026-09-27_cloudflare-deployment/architecture-delivery.json"
              ]
            },
            {
              "id": "S01.01.02",
              "status": "done",
              "title": "Web · API · worker 분리",
              "note": "Next.js 운영 콘솔, NestJS API, 별도 비동기 worker. 현재 저장소 구성 및 REC-6 build 근거.",
              "sources": [
                "docs/architecture/technical-architecture.md",
                "docs/verification/recovery-2026-09-25/rec6-clean-room-report.md"
              ]
            },
            {
              "id": "S01.01.03",
              "status": "done",
              "title": "P1 상품 동기화 + 주문 수집 범위 확정",
              "note": "네이버·쿠팡·카페24, 운영 UI·Excel·감사·사용량·출시 증거 포함.",
              "sources": ["docs/planning/product-sync-development-plan.md"]
            },
            {
              "id": "S01.01.04",
              "status": "done",
              "title": "상품 동기화 아키텍처 공백과 보완 설계",
              "note": "소유권·삭제·revision·참조 캐시·매핑·이미지·대사 등 G1~G12 분석. 설계 완료와 구현 상태는 분리.",
              "sources": ["docs/architecture/product-sync-architecture-review.md"]
            }
          ]
        },
        {
          "id": "S01.02",
          "title": "실행 경로와 저장소 역할",
          "items": [
            {
              "id": "S01.02.01",
              "status": "done",
              "title": "DB outbox → publisher → SQS → consumer 연결",
              "note": "기존 그림의 outbox 추정을 현재 worker-wiring/startPublisher 호출과 복구 검증으로 보강.",
              "sources": [
                "apps/worker/src/worker-wiring.ts",
                "docs/verification/recovery-2026-09-25/rec6-clean-room-report.md"
              ]
            },
            {
              "id": "S01.02.02",
              "status": "done",
              "title": "PostgreSQL 원장과 tenant RLS 경계",
              "note": "runtime/migration 역할 분리, tenant context, durable operation 상태. 해당 기반 범위의 검증.",
              "sources": [
                "docs/verification/recovery-2026-09-25/rec6-clean-room-report.md",
                "docs/verification/recovery-2026-09-25/credential-foundation-integration.md"
              ]
            },
            {
              "id": "S01.02.03",
              "status": "done",
              "title": "Redis 예산 · S3 파일/이미지 기반",
              "note": "기반 구성과 미디어 인입 검증 존재. Excel 업무 흐름 완료로 확대하지 않음.",
              "sources": [
                "docs/verification/recovery-2026-09-25/rec6-clean-room-report.md",
                "docs/verification/recovery-2026-09-25/w1-csm-csb-w2-nv2-cp2-integration.md"
              ]
            },
            {
              "id": "S01.02.04",
              "status": "done",
              "title": "OIDC 로그인 경로 보완",
              "note": "기존 12노드 그림에서 빠졌던 인증을 체크리스트에 포함. 두 사용자 browser 증거.",
              "sources": [
                "docs/verification/recovery-2026-09-25/auth-entry-integration.md",
                "docs/reports/pharos-checklist-sources/source-notes.md"
              ]
            }
          ]
        }
      ]
    },
    {
      "id": "S02",
      "title": "복구·개발 기반·보안",
      "intro": "중단 복구와 안전한 실행 기반. 제품 전체 인수 시험과 별개입니다.",
      "groups": [
        {
          "id": "S02.01",
          "title": "복구와 재현성",
          "items": [
            {
              "id": "S02.01.01",
              "status": "done",
              "title": "REC-6 독립 clean-room 기준선",
              "note": "0b90afd: build 11, unit 3,702건, DB/큐/스토리지 559건 skip0, 소유 자원 정리. 과거 SHA 기준.",
              "sources": ["docs/verification/recovery-2026-09-25/rec6-clean-room-report.md"]
            },
            {
              "id": "S02.01.02",
              "status": "done",
              "title": "로그인·workspace 전환 사용자 흐름",
              "note": "a1e26de: build9·통합34·web30, OIDC 사용자 2명 브라우저 검증.",
              "sources": ["docs/verification/recovery-2026-09-25/auth-entry-integration.md"]
            },
            {
              "id": "S02.01.03",
              "status": "done",
              "title": "진행 원장과 복구 절차 유지",
              "note": "progress.md와 recovery-plan을 인수인계 정본으로 사용. 이 체크리스트는 기준시점 스냅샷.",
              "sources": [
                "docs/planning/p1-execution/progress.md",
                "docs/reports/pharos-checklist-sources/source-notes.md"
              ]
            },
            {
              "id": "S02.01.04",
              "status": "partial",
              "title": "회원·초대·역할 관리와 전체 보안 인수",
              "note": "회원/초대 API와 /settings/members 화면 존재. 이 문서에서 해당 browser acceptance를 별도 확인하지 않았으며, 전체 P1 권한·보안 T28-03은 남음.",
              "sources": [
                "docs/planning/product-sync-development-plan.md",
                "apps/api/src/modules/identity/members.controller.ts",
                "apps/api/src/modules/identity/invitations.controller.ts",
                "apps/web/src/app/(console)/settings/members/page.tsx"
              ]
            }
          ]
        },
        {
          "id": "S02.02",
          "title": "자격증명과 권한",
          "items": [
            {
              "id": "S02.02.01",
              "status": "done",
              "title": "0209 암호화 자격증명 lifecycle",
              "note": "a7da485: build11·실제DB57·unit124, stale ref·회수·소유권 소실 검증.",
              "sources": [
                "docs/verification/recovery-2026-09-25/credential-foundation-integration.md"
              ]
            },
            {
              "id": "S02.02.02",
              "status": "done",
              "title": "0210 실행 출처·attempt·정산 계약",
              "note": "47d284a: build11·DB/큐118. local_simulator / provider / legacy 경계 분리.",
              "sources": [
                "docs/verification/recovery-2026-09-25/connection-provenance-integration.md"
              ]
            },
            {
              "id": "S02.02.03",
              "status": "done",
              "title": "토큰 갱신·회수·재연결 기반 확장",
              "note": "LIFECYCLE-EXT: claim 해제, revoke failed/unknown, adoption, breaker. ROOT 통합221건 기록.",
              "sources": ["docs/verification/recovery-2026-09-25/lifecycle-ext-integration.md"]
            },
            {
              "id": "S02.02.04",
              "status": "todo",
              "title": "refresh scheduler와 주기적 권한 점검",
              "note": "갱신 lifecycle 존재와 주기적 실행 완료를 구분. 0208 membership drift 감시도 후속.",
              "sources": [
                "docs/reports/pharos-checklist-sources/source-notes.md",
                "docs/verification/recovery-2026-09-25/w2-d1-csm2-c242-deployprep-integration.md"
              ]
            }
          ]
        }
      ]
    },
    {
      "id": "S03",
      "title": "판매계정과 연결 검증",
      "intro": "로컬 simulator 사용자 흐름은 연결됐습니다. 실제 판매계정 접속은 별도입니다.",
      "groups": [
        {
          "id": "S03.01",
          "title": "계정 사용자 흐름",
          "items": [
            {
              "id": "S03.01.01",
              "status": "done",
              "title": "판매계정 API와 명명 lifecycle",
              "note": "08b04bb: 생성·조회·회수·재연결·CAS. 통합405건 당시 제외3파일과 후속 교정 명시.",
              "sources": [
                "docs/verification/recovery-2026-09-25/account-api-integration.md",
                "docs/planning/p1-execution/progress.md"
              ]
            },
            {
              "id": "S03.01.02",
              "status": "done",
              "title": "IA-04 판매계정 화면",
              "note": "1ad0a43: 생성·검증·409·503·회수·재연결·reload·workspace 전환 20단계.",
              "sources": ["docs/verification/recovery-2026-09-25/account-ui-integration.md"]
            },
            {
              "id": "S03.01.03",
              "status": "done",
              "title": "API → 실제 큐 → built worker → simulator",
              "note": "f01cbeb: 통합69파일428건, 3채널×5결과·회수·재연결. 실제 채널 검증 아님.",
              "sources": ["docs/verification/recovery-2026-09-25/account-glue-integration.md"]
            },
            {
              "id": "S03.01.04",
              "status": "done",
              "title": "계정 요약 API와 MD 권한 분리",
              "note": "WEB-R: 필요한 6개 필드만 조회, tenant 경계·읽기 권한 검증. 최신 ROOT 게이트 포함.",
              "sources": [
                "docs/reports/pharos-checklist-sources/source-notes.md",
                "apps/web/src/app/(console)/mappings/page.tsx"
              ]
            }
          ]
        },
        {
          "id": "S03.02",
          "title": "인증 어댑터",
          "items": [
            {
              "id": "S03.02.01",
              "status": "done",
              "title": "네이버 인증 패키지",
              "note": "98ac507: 공식 문서/loopback 기준179건. 실계정 호출 없음.",
              "sources": ["docs/verification/recovery-2026-09-25/naver-auth-integration.md"]
            },
            {
              "id": "S03.02.02",
              "status": "done",
              "title": "쿠팡 인증 패키지",
              "note": "ab3449b: 공식 문서/loopback 기준128건. 실계정 호출 없음.",
              "sources": ["docs/verification/recovery-2026-09-25/coupang-auth-integration.md"]
            },
            {
              "id": "S03.02.03",
              "status": "done",
              "title": "카페24 OAuth 패키지",
              "note": "6184847: 공식 문서/loopback 기준186건. 실계정 호출 없음.",
              "sources": ["docs/verification/recovery-2026-09-25/cafe24-auth-integration.md"]
            },
            {
              "id": "S03.02.04",
              "status": "blocked",
              "title": "실제 3채널 연결·권한 확인",
              "note": "승인 계정, scope, 앱/API 접근 증거 필요. simulator 결과로 대체 불가.",
              "sources": [
                "docs/planning/product-sync-development-plan.md",
                "docs/reports/pharos-checklist-sources/source-notes.md"
              ]
            }
          ]
        }
      ]
    },
    {
      "id": "S04",
      "title": "상품 마스터·옵션·SKU",
      "intro": "운영자가 상품을 편집하는 경로와 채널에 실제 게시하는 경로를 분리했습니다.",
      "groups": [
        {
          "id": "S04.01",
          "title": "기본 상품과 동시 편집",
          "items": [
            {
              "id": "S04.01.01",
              "status": "done",
              "title": "상품 목록·상세·생성·수정 화면",
              "note": "ce7d9ec: DB/API26·web36, tenant 경계·409 복구 브라우저.",
              "sources": ["docs/verification/recovery-2026-09-25/product-entry-integration.md"]
            },
            {
              "id": "S04.01.02",
              "status": "done",
              "title": "Tri 필드 의미와 CAS 저장",
              "note": "생략/변경/비움 구분, expected_version 충돌, 상품+이벤트 원자성.",
              "sources": ["docs/verification/recovery-2026-09-25/product-entry-integration.md"]
            },
            {
              "id": "S04.01.03",
              "status": "todo",
              "title": "상품 product.* CUD 감사 보완",
              "note": "SKU 저장 감사와 별개로 기본 상품 CUD 감사 공백이 기록됨.",
              "sources": [
                "docs/verification/recovery-2026-09-25/w2-csc-csprice-cse1-csi-flake2-integration.md",
                "docs/reports/pharos-checklist-sources/source-notes.md"
              ]
            }
          ]
        },
        {
          "id": "S04.02",
          "title": "옵션·SKU와 판매 기준가",
          "items": [
            {
              "id": "S04.02.01",
              "status": "done",
              "title": "옵션 그룹·값·SKU 편집/보관",
              "note": "production 5f83186 + fixture a40a58b, DB/API37·web42·browser 근거.",
              "sources": ["docs/verification/recovery-2026-09-25/options-sku-integration.md"]
            },
            {
              "id": "S04.02.02",
              "status": "done",
              "title": "SKU 기준 판매가·정가 저장",
              "note": "CS-PRICE 567d625, 0307. KRW 정수, null 보존, 상한·정가/판매가 제약.",
              "sources": [
                "docs/verification/recovery-2026-09-25/w2-csc-csprice-cse1-csi-flake2-integration.md"
              ]
            },
            {
              "id": "S04.02.03",
              "status": "done",
              "title": "SKU 저장 감사와 product.updated 이벤트",
              "note": "가격만 바꿔도 동일 트랜잭션 감사·이벤트, 송신용 price-readiness 서비스.",
              "sources": [
                "docs/verification/recovery-2026-09-25/w2-csc-csprice-cse1-csi-flake2-integration.md"
              ]
            },
            {
              "id": "S04.02.04",
              "status": "todo",
              "title": "가격·필수값의 게시 직전 종합 검증",
              "note": "CS-P1에서 채널별 가격 제약·필드 소유권·현재 규칙 버전과 함께 판정.",
              "sources": [
                "docs/verification/recovery-2026-09-25/w2-csc-csprice-cse1-csi-flake2-integration.md",
                "docs/reports/pharos-checklist-sources/source-notes.md"
              ]
            }
          ]
        }
      ]
    },
    {
      "id": "S05",
      "title": "동기화 실행 기반",
      "intro": "데이터와 실행 엔진의 여러 조각은 완료. 첫 게시 사용자 경로는 아직 남아 있습니다.",
      "groups": [
        {
          "id": "S05.01",
          "title": "계약·상태·내구성",
          "items": [
            {
              "id": "S05.01.01",
              "status": "done",
              "title": "CS-0 CatalogPort와 product v2 계약",
              "note": "610add8: 공용 포트13개·쓰기 결과 접기·표지/지문, 통합28파일99건.",
              "sources": ["docs/verification/recovery-2026-09-25/cs0-integration.md"]
            },
            {
              "id": "S05.01.02",
              "status": "done",
              "title": "CS-A listing lifecycle · revision · 판매 수량",
              "note": "0400~0402, immutable revision·tenant/account 경계·미확정 쓰기 직렬화.",
              "sources": [
                "docs/verification/recovery-2026-09-25/w1-sim1-csa-nv1-cp1-integration.md"
              ]
            },
            {
              "id": "S05.01.03",
              "status": "done",
              "title": "OPS-G1 catalog staged write",
              "note": "0212: admission→prepare→send→result→application. unknown 재송신 차단과 복구 기반.",
              "sources": ["docs/verification/recovery-2026-09-25/w1-opsg1-c24-1-integration.md"]
            },
            {
              "id": "S05.01.04",
              "status": "done",
              "title": "OPS-G2 페이지 cursor와 lease",
              "note": "f145c5a: 페이지 결과+cursor 원자 저장, fence 기반 임대, 통합5파일27건.",
              "sources": ["docs/verification/recovery-2026-09-25/ops-g2-integration.md"]
            }
          ]
        },
        {
          "id": "S05.02",
          "title": "워커 복구와 오류 처리",
          "items": [
            {
              "id": "S05.02.01",
              "status": "done",
              "title": "0211 연결 검증 staged worker",
              "note": "c111d93: 실제 broker retention60·미수신 만료 관측, 크래시/재시작 복구.",
              "sources": ["docs/verification/recovery-2026-09-25/connection-worker-integration.md"]
            },
            {
              "id": "S05.02.02",
              "status": "done",
              "title": "로컬 HTTP simulator와 fault 시나리오",
              "note": "연결 검증 및 상품 timeout-after-effect·부분 거절·승인 대기·중복 후보.",
              "sources": [
                "docs/verification/recovery-2026-09-25/account-simulator-integration.md",
                "docs/verification/recovery-2026-09-25/w1-sim1-csa-nv1-cp1-integration.md"
              ]
            },
            {
              "id": "S05.02.03",
              "status": "done",
              "title": "CORE-ERR 응답 분류와 비재시도 격리",
              "note": "cb4454d: HTTP 상태 우선, HTML 비파싱, 비재시도 ChannelError dead-letter.",
              "sources": ["docs/verification/recovery-2026-09-25/core-err-integration.md"]
            },
            {
              "id": "S05.02.04",
              "status": "partial",
              "title": "CS-X 게시 실행·포트 레지스트리",
              "note": "최신 인계는 fix4 통합 검증 단계. source 테스트 보고와 ROOT 승인·통합을 구분. 현재 완료 근거 없음.",
              "sources": ["docs/reports/pharos-checklist-sources/source-notes.md"]
            },
            {
              "id": "S05.02.05",
              "status": "todo",
              "title": "워커 종료·일시 오류 나이 상한",
              "note": "WORKER-SHUTDOWN, OPS-G1 transient 무한 대기 상한, core request-left 공통 규칙 후속.",
              "sources": [
                "docs/reports/pharos-checklist-sources/source-notes.md",
                "docs/verification/recovery-2026-09-25/w1-opsg1-c24-1-integration.md"
              ]
            }
          ]
        }
      ]
    },
    {
      "id": "S06",
      "title": "매핑·렌더링·미디어",
      "intro": "매핑 규칙 화면까지 연결됐습니다. 게시 워커와 일부 미디어 배선은 후속입니다.",
      "groups": [
        {
          "id": "S06.01",
          "title": "참조 데이터와 매핑 규칙",
          "items": [
            {
              "id": "S06.01.01",
              "status": "done",
              "title": "CS-B 카테고리·참조 캐시",
              "note": "0403·0404, 실행 모드별 캐시·TTL·CAS·동일 트랜잭션 감사.",
              "sources": [
                "docs/verification/recovery-2026-09-25/w1-csm-csb-w2-nv2-cp2-integration.md"
              ]
            },
            {
              "id": "S06.01.02",
              "status": "done",
              "title": "CS-C 옵션·가격 규칙",
              "note": "옵션 정규화·중복 거부·영향 범위·행 잠금·충돌409.",
              "sources": [
                "docs/verification/recovery-2026-09-25/w2-csc-csprice-cse1-csi-flake2-integration.md"
              ]
            },
            {
              "id": "S06.01.03",
              "status": "done",
              "title": "CS-C2 가격 규칙 HTTP 개방",
              "note": "fa35ff5: 배수 문자열·절사·최소가 계약, PUT/CAS·가격 미리보기·감사.",
              "sources": [
                "docs/verification/recovery-2026-09-25/w3-csc2-csi2-cp3-nv3-c243-integration.md"
              ]
            },
            {
              "id": "S06.01.04",
              "status": "done",
              "title": "WEB-R IA-08 매핑 화면 + 병합 복구",
              "note": "3b8efc2: 카테고리/옵션/가격 편집, 409 병합, 계정 요약. 정적·unit14 tasks·통합6파일69건.",
              "sources": [
                "docs/reports/pharos-checklist-sources/source-notes.md",
                "apps/web/src/app/(console)/mappings/page.tsx"
              ]
            },
            {
              "id": "S06.01.05",
              "status": "todo",
              "title": "CS-C3 게시 미리보기 완성",
              "note": "전후 샘플·종합 검증과 채널별 송신 가능 여부. 기존 가격 미리보기와 별도 acceptance.",
              "sources": ["docs/reports/pharos-checklist-sources/source-notes.md"]
            }
          ]
        },
        {
          "id": "S06.02",
          "title": "렌더와 이미지",
          "items": [
            {
              "id": "S06.02.01",
              "status": "done",
              "title": "CS-E1 채널별 렌더·결정적 revision hash",
              "note": "full_replace 재조회 병합, Tri 의미, 규칙 저장/정산 경쟁 회귀.",
              "sources": [
                "docs/verification/recovery-2026-09-25/w2-csc-csprice-cse1-csi-flake2-integration.md"
              ]
            },
            {
              "id": "S06.02.02",
              "status": "done",
              "title": "CS-M 이미지 인입·렌디션·저장",
              "note": "0405, DNS/redirect SSRF 검사·크기 제한·MinIO·감사.",
              "sources": [
                "docs/verification/recovery-2026-09-25/w1-csm-csb-w2-nv2-cp2-integration.md"
              ]
            },
            {
              "id": "S06.02.03",
              "status": "done",
              "title": "CS-M2 업로드 오케스트레이터 slice",
              "note": "0b63cb9: ledger 정산·이미지 준비 관문·unknown 재업로드 차단. worker 등록은 별도.",
              "sources": [
                "docs/verification/recovery-2026-09-25/w2-d1-csm2-c242-deployprep-integration.md"
              ]
            },
            {
              "id": "S06.02.04",
              "status": "partial",
              "title": "미디어 업로드 워커 등록과 종료 회귀",
              "note": "CS-X 등록/복구 kind 배선·미디어 SIGKILL 등 후속. 서비스 구현만으로 종단간 완료 아님.",
              "sources": [
                "docs/verification/recovery-2026-09-25/w2-d1-csm2-c242-deployprep-integration.md",
                "docs/reports/pharos-checklist-sources/source-notes.md"
              ]
            },
            {
              "id": "S06.02.05",
              "status": "todo",
              "title": "고아 이미지 객체 정리와 동시 인입 상한",
              "note": "스토리지 저장~DB 커밋 사이 중단으로 남는 객체의 운영 정리 필요.",
              "sources": [
                "docs/verification/recovery-2026-09-25/w1-csm-csb-w2-nv2-cp2-integration.md"
              ]
            }
          ]
        }
      ]
    },
    {
      "id": "S07",
      "title": "채널 상품 어댑터",
      "intro": "아래 완료는 공식 문서와 fixture/loopback 계약 범위. 실제 판매 채널 인증이 아닙니다.",
      "groups": [
        {
          "id": "S07.01",
          "title": "네이버 · NV-1/2/3",
          "items": [
            {
              "id": "S07.01.01",
              "status": "done",
              "title": "카테고리·생성·수정·옵션 매핑",
              "note": "기본 payload, 원상품/채널상품 ID, 누락 매핑 거부, 요청 후 예외 unknown.",
              "sources": [
                "docs/verification/recovery-2026-09-25/w1-sim1-csa-nv1-cp1-integration.md",
                "docs/verification/recovery-2026-09-25/w1-csm-csb-w2-nv2-cp2-integration.md"
              ]
            },
            {
              "id": "S07.01.02",
              "status": "done",
              "title": "생성 timeout 대사와 capability",
              "note": "단일 후보만 accepted, 모호하면 unknown 유지, 기술 지원과 검증 수준 구분.",
              "sources": [
                "docs/verification/recovery-2026-09-25/w1-csm-csb-w2-nv2-cp2-integration.md"
              ]
            },
            {
              "id": "S07.01.03",
              "status": "done",
              "title": "상품 pull·배송 참조·카테고리 요건",
              "note": "bd9ac45: 두 ID 보존, snapshot hash 일치, unreadable skipped, simulator 정렬.",
              "sources": [
                "docs/verification/recovery-2026-09-25/w3-csc2-csi2-cp3-nv3-c243-integration.md"
              ]
            },
            {
              "id": "S07.01.04",
              "status": "todo",
              "title": "상태·삭제·이미지·적합성 잔여 범위",
              "note": "-10/-11/-14/-15, NV-ATTR 등 후속. 현재 기본 CRUD 어댑터만으로 전체 acceptance 미충족.",
              "sources": [
                "docs/planning/product-sync-development-plan.md",
                "docs/reports/pharos-checklist-sources/source-notes.md"
              ]
            }
          ]
        },
        {
          "id": "S07.02",
          "title": "쿠팡 · CP-1/2/3",
          "items": [
            {
              "id": "S07.02.01",
              "status": "done",
              "title": "생성·수정·vendorItemId 옵션 결속",
              "note": "200 item 상한, 승인대기 accepted, 전용 endpoint 전 가격/수량 전송 거부.",
              "sources": [
                "docs/verification/recovery-2026-09-25/w1-sim1-csa-nv1-cp1-integration.md",
                "docs/verification/recovery-2026-09-25/w1-csm-csb-w2-nv2-cp2-integration.md"
              ]
            },
            {
              "id": "S07.02.02",
              "status": "done",
              "title": "생성 timeout 대사·모호 결과 보류",
              "note": "처리 중·자정 경계 unknown, 후보 상한, 판매자 코드 검사.",
              "sources": [
                "docs/verification/recovery-2026-09-25/w1-csm-csb-w2-nv2-cp2-integration.md"
              ]
            },
            {
              "id": "S07.02.03",
              "status": "done",
              "title": "nextToken pull·출고/반품지·카테고리 요건",
              "note": "f074e2b: row skipped 계약, 계정429는 페이지 재시도.",
              "sources": [
                "docs/verification/recovery-2026-09-25/w3-csc2-csi2-cp3-nv3-c243-integration.md"
              ]
            },
            {
              "id": "S07.02.04",
              "status": "todo",
              "title": "판매상태·삭제·전용 가격·이미지 잔여 범위",
              "note": "승인/판매 상태별 명령과 삭제 선행조건, -10/-11/-14/-15 적합성 검증.",
              "sources": [
                "docs/planning/product-sync-development-plan.md",
                "docs/reports/pharos-checklist-sources/source-notes.md"
              ]
            }
          ]
        },
        {
          "id": "S07.03",
          "title": "카페24 · C24-1/2/3",
          "items": [
            {
              "id": "S07.03.01",
              "status": "done",
              "title": "생성·수정·variant 결속과 timeout 대사",
              "note": "판매중 생성·미지원 variant 값은 전송 전 거절. 패키지 계약 검증 범위.",
              "sources": [
                "docs/verification/recovery-2026-09-25/w1-opsg1-c24-1-integration.md",
                "docs/verification/recovery-2026-09-25/w2-d1-csm2-c242-deployprep-integration.md"
              ]
            },
            {
              "id": "S07.03.02",
              "status": "done",
              "title": "keyset pull·shop_no·배송 참조",
              "note": "537f2c6: since_product_no, 다중 쇼핑몰 재조회 범위 수정, unreadable skipped.",
              "sources": [
                "docs/verification/recovery-2026-09-25/w3-csc2-csi2-cp3-nv3-c243-integration.md"
              ]
            },
            {
              "id": "S07.03.03",
              "status": "done",
              "title": "미지원 category requirements 명시",
              "note": "공식 근거를 가진 unsupported 결과. 지원 기능으로 위장하지 않음.",
              "sources": [
                "docs/verification/recovery-2026-09-25/w3-csc2-csi2-cp3-nv3-c243-integration.md"
              ]
            },
            {
              "id": "S07.03.04",
              "status": "todo",
              "title": "상태·삭제·이미지·variant 잔여 범위",
              "note": "-10/-11/-14/-15와 기본 variant·read-after-write 계약 검증 필요.",
              "sources": [
                "docs/planning/product-sync-development-plan.md",
                "docs/reports/pharos-checklist-sources/source-notes.md"
              ]
            }
          ]
        }
      ]
    },
    {
      "id": "S08",
      "title": "가져오기·게시·대사 완성",
      "intro": "지금 우선 연결해야 할 사용자 가치 경로입니다.",
      "groups": [
        {
          "id": "S08.01",
          "title": "가져오기와 승인",
          "items": [
            {
              "id": "S08.01.01",
              "status": "done",
              "title": "CS-I snapshot inbox·페이지 원자 저장",
              "note": "0406·0407, hash·외부 version·출처 보존. poison item 격리, replay 중복0.",
              "sources": [
                "docs/verification/recovery-2026-09-25/w2-csc-csprice-cse1-csi-flake2-integration.md"
              ]
            },
            {
              "id": "S08.01.02",
              "status": "done",
              "title": "CS-I2 가져오기 제안 결정 서비스/API slice",
              "note": "0bf6a6c: accept/reject/bind_sku, 멱등·409·모드 경계·감사. module 등록은 미완료.",
              "sources": [
                "docs/verification/recovery-2026-09-25/w3-csc2-csi2-cp3-nv3-c243-integration.md"
              ]
            },
            {
              "id": "S08.01.03",
              "status": "partial",
              "title": "실제 AppModule과 pull 워커 배선",
              "note": "현재 catalog-sync.module에는 MediaModule·RulesModule만 등록. ImportModule/ImportProposalsModule은 CS-X 이후.",
              "sources": [
                "apps/api/src/modules/catalog-sync/catalog-sync.module.ts",
                "docs/verification/recovery-2026-09-25/w3-csc2-csi2-cp3-nv3-c243-integration.md"
              ]
            },
            {
              "id": "S08.01.04",
              "status": "todo",
              "title": "PULL-SKIP 읽지 못한 상품 처리",
              "note": "skipped 기록·last-seen·증분 pull·배송 캐시 키. 완료 전 provider 등록 보류.",
              "sources": [
                "docs/verification/recovery-2026-09-25/w3-csc2-csi2-cp3-nv3-c243-integration.md"
              ]
            }
          ]
        },
        {
          "id": "S08.02",
          "title": "첫 게시와 동시성",
          "items": [
            {
              "id": "S08.02.01",
              "status": "todo",
              "title": "CS-P1 API → simulator 첫 게시",
              "note": "202·항목별 결과·expected_version·멱등키·규칙/이미지 준비 관문을 한 경로로 증명.",
              "sources": [
                "docs/reports/pharos-checklist-sources/source-notes.md",
                "docs/planning/product-sync-development-plan.md"
              ]
            },
            {
              "id": "S08.02.02",
              "status": "todo",
              "title": "CS-P2 상태변경·삭제·outbox 취소",
              "note": "삭제 선행조건과 구 revision 송신0, 승인대기/판매상태 의미.",
              "sources": [
                "docs/reports/pharos-checklist-sources/source-notes.md",
                "docs/planning/product-sync-development-plan.md"
              ]
            },
            {
              "id": "S08.02.03",
              "status": "todo",
              "title": "CS-FRESH 변경 표시·판매 수량·시계 경쟁",
              "note": "상품 변경과 정산 경쟁, 전송 중 수량 유실, send_path, 동일 시계 비교를 정리.",
              "sources": [
                "docs/verification/recovery-2026-09-25/w2-csc-csprice-cse1-csi-flake2-integration.md",
                "docs/reports/pharos-checklist-sources/source-notes.md"
              ]
            }
          ]
        },
        {
          "id": "S08.03",
          "title": "대사와 운영 화면",
          "items": [
            {
              "id": "S08.03.01",
              "status": "partial",
              "title": "CS-D drift 탐지·리스팅 검색",
              "note": "최신 인계에서 DB/호스트 시계 혼용으로 fix2. ROOT 통합·최종 검증 미확인.",
              "sources": ["docs/reports/pharos-checklist-sources/source-notes.md"]
            },
            {
              "id": "S08.03.02",
              "status": "todo",
              "title": "CS-R 주기 대사와 orphan/missing 보고",
              "note": "증분/전체 스캔·cursor 재개·불완전 페이지 보존, 자동 삭제/재게시 금지.",
              "sources": ["docs/planning/product-sync-development-plan.md"]
            },
            {
              "id": "S08.03.03",
              "status": "todo",
              "title": "CS-S 회수 시 중단·재연결 시 재결속",
              "note": "listing suspended, external ID로 같은 계정에 재바인딩·대사 재개.",
              "sources": ["docs/planning/product-sync-development-plan.md"]
            },
            {
              "id": "S08.03.04",
              "status": "todo",
              "title": "CS-D2 차이 해결·소유권·revision rollback",
              "note": "overwrite/adopt/ignore, 필드 소유권 변경과 감사, 직전 confirmed 재발행.",
              "sources": ["docs/planning/product-sync-development-plan.md"]
            },
            {
              "id": "S08.03.05",
              "status": "todo",
              "title": "WEB-L/WEB-I/WEB-S 리스팅·가져오기·차이 화면",
              "note": "IA-07 목록/검색·가져오기 승인·필드 diff·unknown 재전송 금지. 매핑 IA-08과 별도.",
              "sources": [
                "docs/planning/product-sync-development-plan.md",
                "docs/planning/p1-execution/decomp/web-release.md"
              ]
            }
          ]
        }
      ]
    },
    {
      "id": "S09",
      "title": "주문·클레임·문의 읽기",
      "intro": "계약과 화면 요청 모델이 있어도, 주문 수집 종단간 완료 증거는 없습니다.",
      "groups": [
        {
          "id": "S09.01",
          "title": "수집과 보류 해결",
          "items": [
            {
              "id": "S09.01.01",
              "status": "done",
              "title": "주문 상태·보류 사유 계약 정의",
              "note": "collected/mapping_hold/ready, unmapped_sku 등 어휘. 계약 산출물에 한정.",
              "sources": ["packages/contracts/src/orders/order-workflow.ts"]
            },
            {
              "id": "S09.01.02",
              "status": "done",
              "title": "체크포인트·복구 설계 판정",
              "note": "stream별 cursor·page/item 복구·window watermark·binding history 설계. 구현 완료 아님.",
              "sources": ["docs/verification/recovery-2026-09-25/order-checkpoint-design.md"]
            },
            {
              "id": "S09.01.03",
              "status": "todo",
              "title": "주문 DB·정규화·upsert·상태전이",
              "note": "tenant/account/order/line 멱등키, 역순·지연·중복 이벤트 보존.",
              "sources": [
                "docs/planning/p1-execution/decomp/orders-operations.md",
                "docs/verification/recovery-2026-09-25/order-flow-map.md"
              ]
            },
            {
              "id": "S09.01.04",
              "status": "todo",
              "title": "3채널 주문 읽기 어댑터와 orders.pull",
              "note": "원문 상태·PII·페이지 cursor, worker→DB→API 경로 검증.",
              "sources": [
                "docs/planning/product-sync-development-plan.md",
                "docs/planning/p1-execution/decomp/orders-operations.md"
              ]
            },
            {
              "id": "S09.01.05",
              "status": "todo",
              "title": "주문 API·목록·상세·보류 화면",
              "note": "/orders 및 /orders/holds, 세트 구성 버전 고정·채널 옵션↔SKU 매핑·충돌 거부·재처리·ready 전이.",
              "sources": [
                "docs/planning/p1-execution/decomp/web-release.md",
                "docs/planning/p1-execution/decomp/orders-operations.md"
              ]
            },
            {
              "id": "S09.01.06",
              "status": "todo",
              "title": "클레임·문의 수집과 조회",
              "note": "P1 읽기 범위. 클레임 처리·문의 답변은 후속 단계.",
              "sources": ["docs/planning/product-sync-development-plan.md"]
            }
          ]
        }
      ]
    },
    {
      "id": "S10",
      "title": "Excel·작업센터·감사·사용량",
      "intro": "스토리지·계약·일부 감사 기반을 업무 기능 전체 완료와 구분했습니다.",
      "groups": [
        {
          "id": "S10.01",
          "title": "Excel 가져오기와 내보내기",
          "items": [
            {
              "id": "S10.01.01",
              "status": "todo",
              "title": "업로드·열 매핑·dry-run·부분 실패 보고",
              "note": "상품/옵션/리스팅/규칙/주문 대상, 멱등 commit·오류 행 격리, IA-19.",
              "sources": [
                "docs/planning/product-sync-development-plan.md",
                "docs/planning/p1-execution/decomp/web-release.md"
              ]
            },
            {
              "id": "S10.01.02",
              "status": "todo",
              "title": "파일 검사·CSV 수식 주입 차단",
              "note": "파일 형식/크기·검사·격리, 다운로드 파일 안전성. 이미지 SSRF 완료와 별개.",
              "sources": [
                "docs/architecture/technical-architecture.md",
                "docs/planning/product-sync-development-plan.md"
              ]
            },
            {
              "id": "S10.01.03",
              "status": "todo",
              "title": "내보내기 작업·TTL 링크·다운로드 감사",
              "note": "사유 필수, tenant 소유 presigned URL·상태/결과 화면.",
              "sources": ["docs/planning/p1-execution/decomp/web-release.md"]
            }
          ]
        },
        {
          "id": "S10.02",
          "title": "작업센터와 운영 지표",
          "items": [
            {
              "id": "S10.02.01",
              "status": "todo",
              "title": "작업센터·DLQ 조회·재처리 UI",
              "note": "원장·DLQ 서비스 기반 이후 IA-18의 사용자 해결 경로 완성.",
              "sources": [
                "docs/planning/product-sync-development-plan.md",
                "docs/planning/p1-execution/decomp/web-release.md"
              ]
            },
            {
              "id": "S10.02.02",
              "status": "todo",
              "title": "대시보드와 drill-down",
              "note": "수집 지연·전송 오류·drift·미매핑·참조 만료·계정 만료.",
              "sources": [
                "docs/planning/product-sync-development-plan.md",
                "docs/planning/p1-execution/decomp/orders-operations.md"
              ]
            },
            {
              "id": "S10.02.03",
              "status": "todo",
              "title": "계정별 예산 우선순위·관측·경보",
              "note": "주문 수집/대사/게시 경쟁, oldest outbox age·사고 훈련.",
              "sources": [
                "docs/planning/p1-execution/decomp/orders-operations.md",
                "docs/planning/product-sync-development-plan.md"
              ]
            }
          ]
        },
        {
          "id": "S10.03",
          "title": "감사·개인정보·사용량",
          "items": [
            {
              "id": "S10.03.01",
              "status": "done",
              "title": "계정·SKU·규칙·미디어·가져오기 감사 slice",
              "note": "관련 변경과 같은 트랜잭션에서 기록. 기본 상품 CUD 및 전 화면 감사는 별도.",
              "sources": [
                "docs/verification/recovery-2026-09-25/account-api-integration.md",
                "docs/verification/recovery-2026-09-25/w1-csm-csb-w2-nv2-cp2-integration.md",
                "docs/verification/recovery-2026-09-25/w2-csc-csprice-cse1-csi-flake2-integration.md",
                "docs/verification/recovery-2026-09-25/w3-csc2-csi2-cp3-nv3-c243-integration.md"
              ]
            },
            {
              "id": "S10.03.02",
              "status": "todo",
              "title": "IA-21 감사 검색·내보내기",
              "note": "필터·권한·사유·보존과 다운로드 흐름.",
              "sources": ["docs/planning/p1-execution/decomp/web-release.md"]
            },
            {
              "id": "S10.03.03",
              "status": "todo",
              "title": "수취인 PII 마스킹·보존 삭제",
              "note": "주문/파일/로그/백업 복원까지 정책·실행 검증.",
              "sources": [
                "docs/planning/product-sync-development-plan.md",
                "docs/planning/p1-execution/decomp/orders-operations.md"
              ]
            },
            {
              "id": "S10.03.04",
              "status": "todo",
              "title": "사용량 ledger·한도·수동 청구·IA-22",
              "note": "meter/event_key 멱등성, entitlement, 명세서 승인·취소.",
              "sources": [
                "docs/planning/p1-execution/decomp/orders-operations.md",
                "docs/planning/p1-execution/decomp/web-release.md"
              ]
            }
          ]
        }
      ]
    },
    {
      "id": "S11",
      "title": "품질·배포 준비·출시",
      "intro": "CI 통과, 배포 준비, 실제 배포, 실계정 검증은 서로 다른 게이트입니다.",
      "groups": [
        {
          "id": "S11.01",
          "title": "CI와 알려진 검증 결함",
          "items": [
            {
              "id": "S11.01.01",
              "status": "done",
              "title": "PR #4 및 #15 실제 CI/main 반영 기록",
              "note": "PR #15 main9534924까지 확인. 이후 WEB-R·FLAKE-3 새 병합의 main 반영은 별도.",
              "sources": [
                "docs/planning/p1-execution/progress.md",
                "docs/reports/pharos-checklist-sources/source-notes.md"
              ]
            },
            {
              "id": "S11.01.02",
              "status": "done",
              "title": "FLAKE/FLAKE-2 테스트 원인 교정",
              "note": "long poll·서버 바인드·시계·포트·OOM·HTTP timeout fixture 수정. 해당 기록 범위.",
              "sources": [
                "docs/planning/p1-execution/progress.md",
                "docs/verification/recovery-2026-09-25/w2-csc-csprice-cse1-csi-flake2-integration.md"
              ]
            },
            {
              "id": "S11.01.03",
              "status": "done",
              "title": "FLAKE-3 양방향 시계 차이 대응",
              "note": "bf6fdfc: 고정 sleep 대신 DB clock poll. ROOT 실제DB crash5·isolation5·recovery9 PASS.",
              "sources": ["docs/reports/pharos-checklist-sources/source-notes.md"]
            },
            {
              "id": "S11.01.04",
              "status": "partial",
              "title": "PR #15 media race flake 원인 해결",
              "note": "최초 실패·57P01 뒤 CI 재실행 PASS. FLAKE-4 후보로 남음; 원인 해결 완료 아님.",
              "sources": ["docs/reports/pharos-checklist-sources/source-notes.md"]
            },
            {
              "id": "S11.01.05",
              "status": "partial",
              "title": "최신 ROOT의 전체 통합·main 반영",
              "note": "3b8efc2 WEB-R 집중69건 PASS. 전체 P1 재검증/후속 main 병합 완료 근거 없음.",
              "sources": ["docs/reports/pharos-checklist-sources/source-notes.md"]
            }
          ]
        },
        {
          "id": "S11.02",
          "title": "배포 도구와 운영 환경",
          "items": [
            {
              "id": "S11.02.01",
              "status": "done",
              "title": "RDS 역할 호환 D1 변경 검증",
              "note": "0208 한정 승인 예외. 비superuser RDS 에뮬레이션·멤버십 음성 회귀. 실제 RDS 운영 적용 아님.",
              "sources": [
                "docs/verification/recovery-2026-09-25/w2-d1-csm2-c242-deployprep-integration.md"
              ]
            },
            {
              "id": "S11.02.02",
              "status": "done",
              "title": "DEPLOY-PREP Docker·ECS·수동 workflow·런북",
              "note": "41b3b73 정적/unit 게이트. 비활성 도구로 승인, 실제 apply·배포 없음.",
              "sources": [
                "docs/verification/recovery-2026-09-25/w2-d1-csm2-c242-deployprep-integration.md",
                "docs/operations/deploy-runbook.md"
              ]
            },
            {
              "id": "S11.02.03",
              "status": "done",
              "title": "현재 구현분 Cloudflare Tunnel 배포",
              "note": "https://pharos.aidp-shhong.org 공개. 맥미니 전용 DB·Redis·SQS 호환 큐·MinIO·Keycloak·Web/API/worker 기동, readyz·로그인·상품 생성/수정·화면 이동·서명 파일 접근/만료 검증. 큐 재시작 보존·로컬 DB snapshot 확인. 외부 백업/전체 복원·호스트 재부팅·실채널 검증은 별도 미완료.",
              "sources": [
                "docs/operations/macmini-runtime.md",
                "docs/operations/cloudflare-deploy-runbook.md",
                "infra/macmini/compose.yaml",
                "scripts/deploy-macmini.sh",
                "scripts/install-pharos-tunnel.py",
                "docs/work-log/2026-09-27_cloudflare-deployment/runtime-verification.json",
                "docs/work-log/2026-09-27_cloudflare-deployment/production-browser.json",
                "docs/work-log/2026-09-27_cloudflare-deployment/storage-verification.json"
              ]
            },
            {
              "id": "S11.02.04",
              "status": "done",
              "title": "프로젝트 체크리스트 Cloudflare 게시·상시 관리",
              "note": "https://pharos-checklist.pages.dev/ 게시. HTML/JSON HTTP200·원본 일치·공개 URL 브라우저19건 PASS. AGENTS 작업 전후 갱신·JSON→HTML·CI drift 검사 연결. 앱·Archify 바로가기 포함.",
              "sources": [
                "AGENTS.md",
                "scripts/render_project_checklist.py",
                "scripts/stage_project_checklist.py",
                "docs/operations/cloudflare-deploy-runbook.md",
                "docs/work-log/2026-09-27_cloudflare-deployment/checklist.md",
                "docs/work-log/2026-09-27_cloudflare-deployment/http-verification.json",
                "docs/work-log/2026-09-27_cloudflare-deployment/browser-verification.json"
              ]
            },
            {
              "id": "S11.02.05",
              "status": "done",
              "title": "로그인 없는 공개 작업 공간",
              "note": "사용자 지시로 로그인 화면 없이 공개. 모든 방문자가 같은 Pharos 작업 공간을 보고 수정한다. source c8eb0f1 배포, 새 브라우저 2개 자동 진입·개별 세션·상품 수정/reload·판매계정/매핑 등13건 PASS, 서비스9개 healthy.",
              "sources": [
                "docs/work-log/2026-09-27_pharos-public-access/context.md",
                "docs/work-log/2026-09-27_pharos-public-access/checklist.md",
                "docs/work-log/2026-09-27_pharos-public-access/browser-verification.json",
                "docs/work-log/2026-09-27_pharos-public-access/runtime-verification.json"
              ]
            }
          ]
        },
        {
          "id": "S11.03",
          "title": "T28 최종 출시 acceptance",
          "items": [
            {
              "id": "S11.03.01",
              "status": "todo",
              "title": "T28-01 FR × IA × 실행 테스트 추적표",
              "note": "게이트 없는 P1 leaf 및 15개 화면의 acceptance 증거 연결. 이 요약 체크리스트가 대체하지 않음.",
              "sources": ["docs/planning/product-sync-development-plan.md"]
            },
            {
              "id": "S11.03.02",
              "status": "todo",
              "title": "T28-02 부하·처리량·rate budget",
              "note": "일10만 주문행·대량 발행/대사·API p95·oldest outbox 경보.",
              "sources": ["docs/planning/product-sync-development-plan.md"]
            },
            {
              "id": "S11.03.03",
              "status": "todo",
              "title": "T28-03 테넌트·PII·SSRF·수식 주입",
              "note": "상품/주문/파일/자격증명/미디어 침범0을 전체 경로로 증명.",
              "sources": ["docs/planning/product-sync-development-plan.md"]
            },
            {
              "id": "S11.03.04",
              "status": "todo",
              "title": "T28-04 백업 복원·전송 정지·cursor 재개",
              "note": "복원 후 대사, 중복 상품 발행0·주문행 중복0.",
              "sources": ["docs/planning/product-sync-development-plan.md"]
            },
            {
              "id": "S11.03.05",
              "status": "todo",
              "title": "T28-05 전 화면 키보드·대량선택·오류 초점",
              "note": "완료된 일부 browser slice를 전체 P1 UI 검증으로 확대하지 않음. 현재 공개 콘솔의 390px 화면은 고정 sidebar로 본문이 좁아져 후속 반응형 보완 필요. 데스크톱 smoke와 별도.",
              "sources": [
                "docs/planning/product-sync-development-plan.md",
                "docs/work-log/2026-09-27_cloudflare-deployment/production-browser.json"
              ]
            },
            {
              "id": "S11.03.06",
              "status": "blocked",
              "title": "채널 -16 ×3 · T28-06 승인 실계정 E2E",
              "note": "등록→수정→상태→삭제→대사 및 주문→매핑→보류 해결. 로컬 simulator와 별도.",
              "sources": ["docs/planning/product-sync-development-plan.md"]
            },
            {
              "id": "S11.03.07",
              "status": "blocked",
              "title": "T28-07 파일럿 업무 비교",
              "note": "사전 기준선 대비 시간·오류율, 개선30% 미만이면 원인 분석 후 재시험. 외부 계정 외 기능 선행도 남음.",
              "sources": ["docs/planning/product-sync-development-plan.md"]
            },
            {
              "id": "S11.03.08",
              "status": "blocked",
              "title": "T28-08 출시 판정·rollback 리허설",
              "note": "revision/drift/order가 있는 상태의 하위호환·flag off 외부 쓰기0. 현재 출시 완료 아님.",
              "sources": ["docs/planning/product-sync-development-plan.md"]
            }
          ]
        }
      ]
    },
    {
      "id": "S12",
      "title": "후속 단계와 범위 밖",
      "intro": "초기 아키텍처에 등장해도 P1 미완료로 잘못 집계하지 않을 항목입니다.",
      "groups": [
        {
          "id": "S12.01",
          "title": "P2 · P3로 이연",
          "items": [
            {
              "id": "S12.01.01",
              "status": "later",
              "title": "문의 답변",
              "note": "P1은 읽기까지. 답변 송신은 P2.",
              "sources": ["docs/planning/product-sync-development-plan.md"]
            },
            {
              "id": "S12.01.02",
              "status": "later",
              "title": "재고 원장·예약·가용수량 송신",
              "note": "P3. P1의 listing 판매 수량과 재고 물류 원장은 다른 기능.",
              "sources": ["docs/planning/product-sync-development-plan.md"]
            },
            {
              "id": "S12.01.03",
              "status": "later",
              "title": "창고·출고·송장·클레임 처리",
              "note": "P3. 주문 수집의 ready 상태가 출고 처리 완료를 뜻하지 않음.",
              "sources": ["docs/planning/product-sync-development-plan.md"]
            }
          ]
        }
      ]
    }
  ]
}
