{
  "schemaVersion": 1,
  "contractId": "zerro-mobile-progress-evaluation",
  "sourcePaths": [
    "docs/README.md",
    "docs/80-artifacts/README.md",
    "docs/80-artifacts/ux-flow/mobile-index.json",
    "docs/10-product/PRODUCT_SCOPE.md",
    "docs/10-product/FIGMA_INVENTORY.md",
    "docs/10-product/UI_PRODUCTION_READINESS.md",
    "docs/70-progress/CURRENT.md",
    "apps/mobile/e2e/TEST_COVERAGE_GRAPH.md",
    "docs/40-mobile/RELEASE_STRATEGY.md",
    "docs/40-mobile/WORKING_AGREEMENT.md",
    "docs/00-governance/DECISIONS.md",
    "docs/20-contracts/API_CONTRACT.md",
    "docs/20-contracts/PROVIDER_ADAPTER_CONTRACT.md",
    "docs/40-mobile/policies/PROVIDER_POLICY.md"
  ],
  "previousApprovedBaselineSha": null,
  "axes": [
    {
      "axis": "scope-ui",
      "label": "Scope / UI",
      "question": "요구된 역할·화면·상태가 구현·검수 가능한가?"
    },
    {
      "axis": "runtime",
      "label": "Runtime integration",
      "question": "mock-only, local backend, production adapter 중 어디까지 연결됐는가?"
    },
    {
      "axis": "verification",
      "label": "Verification",
      "question": "같은 SHA/runtime의 재현 가능한 evidence가 있는가?"
    },
    {
      "axis": "production",
      "label": "Production closure",
      "question": "운영에 필요한 P0/P1/R0 gate가 닫혔는가?"
    },
    {
      "axis": "documentation",
      "label": "Documentation integrity",
      "question": "정본 간 충돌이나 source/evidence drift가 없는가?"
    }
  ],
  "statusModel": {
    "allowed": [
      "Verified",
      "Implemented, evidence pending",
      "Partial",
      "Provider pending",
      "Blocked by decision",
      "Out of scope",
      "Unknown"
    ],
    "precedence": [
      "Unknown",
      "Blocked by decision",
      "Provider pending",
      "Partial",
      "Implemented, evidence pending",
      "Verified",
      "Out of scope"
    ]
  },
  "items": [
    {
      "itemId": "scope-ui.emitter",
      "axis": "scope-ui",
      "role": "emitter",
      "surface": "배출자",
      "canonical": [
        { "path": "docs/10-product/PRODUCT_SCOPE.md", "heading": "배출자" },
        { "path": "docs/10-product/FIGMA_INVENTORY.md", "heading": "배출자" },
        { "path": "docs/10-product/UI_PRODUCTION_READINESS.md", "heading": "State completeness" }
      ],
      "evidence": { "kind": "mobile-index", "surfacePattern": "Emitter" }
    },
    {
      "itemId": "scope-ui.dispatcher",
      "axis": "scope-ui",
      "role": "dispatcher",
      "surface": "배차담당자",
      "canonical": [
        { "path": "docs/10-product/PRODUCT_SCOPE.md", "heading": "배차담당자" },
        { "path": "docs/10-product/FIGMA_INVENTORY.md", "heading": "배차" },
        { "path": "docs/10-product/UI_PRODUCTION_READINESS.md", "heading": "Interaction polish" }
      ],
      "evidence": { "kind": "mobile-index", "surfacePattern": "Dispatcher" }
    },
    {
      "itemId": "scope-ui.driver",
      "axis": "scope-ui",
      "role": "driver",
      "surface": "운전자",
      "canonical": [
        { "path": "docs/10-product/PRODUCT_SCOPE.md", "heading": "운전자" },
        { "path": "apps/mobile/e2e/TEST_COVERAGE_GRAPH.md", "heading": "Current Coverage Map" },
        { "path": "docs/10-product/UI_PRODUCTION_READINESS.md", "heading": "Testability" }
      ],
      "evidence": { "kind": "mobile-index", "surfacePattern": "Driver" }
    },
    {
      "itemId": "scope-ui.processor",
      "axis": "scope-ui",
      "role": "processor",
      "surface": "처리자",
      "canonical": [
        { "path": "docs/10-product/PRODUCT_SCOPE.md", "heading": "처리자" },
        { "path": "docs/10-product/FIGMA_INVENTORY.md", "heading": "처리" },
        { "path": "docs/10-product/UI_PRODUCTION_READINESS.md", "heading": "Role clarity" }
      ],
      "evidence": { "kind": "mobile-index", "surfacePattern": "Processor" }
    },
    {
      "itemId": "runtime.lifecycle",
      "axis": "runtime",
      "role": "common",
      "surface": "Lifecycle spine",
      "canonical": [
        { "path": "docs/70-progress/CURRENT.md", "heading": "Role-Based APP / Backend State" },
        { "path": "docs/20-contracts/API_CONTRACT.md", "heading": "Lifecycle" },
        { "path": "apps/mobile/e2e/TEST_COVERAGE_GRAPH.md", "heading": "Backend Wire Snapshot" }
      ],
      "evidence": { "kind": "backend-wire", "surfacePattern": "Lifecycle" }
    },
    {
      "itemId": "runtime.providers",
      "axis": "runtime",
      "role": "common",
      "surface": "Providers / file / OCR",
      "canonical": [
        { "path": "docs/20-contracts/PROVIDER_ADAPTER_CONTRACT.md", "heading": "Provider" },
        { "path": "docs/40-mobile/policies/PROVIDER_POLICY.md", "heading": "Provider" },
        { "path": "docs/40-mobile/RELEASE_STRATEGY.md", "heading": "Production Function Closure Priority" }
      ],
      "evidence": { "kind": "backend-wire", "surfacePattern": "External providers" }
    },
    {
      "itemId": "verification.goal-evidence",
      "axis": "verification",
      "role": "common",
      "surface": "Goal evidence manifest",
      "canonical": [
        { "path": "docs/80-artifacts/README.md", "heading": "Freshness And Ownership" },
        { "path": "docs/80-artifacts/ux-flow/mobile-index.json", "heading": "recentGoalEvidence" }
      ],
      "evidence": { "kind": "goal-manifest" }
    },
    {
      "itemId": "verification.maestro",
      "axis": "verification",
      "role": "common",
      "surface": "Maestro / device receipts",
      "canonical": [
        { "path": "apps/mobile/e2e/TEST_COVERAGE_GRAPH.md", "heading": "Harness" },
        { "path": "docs/40-mobile/WORKING_AGREEMENT.md", "heading": "Screenshot Evidence Policy" }
      ],
      "evidence": { "kind": "maestro" }
    },
    {
      "itemId": "production.priority",
      "axis": "production",
      "role": "common",
      "surface": "Production closure priority",
      "canonical": [
        { "path": "docs/40-mobile/RELEASE_STRATEGY.md", "heading": "Production Function Closure Priority" }
      ],
      "evidence": { "kind": "release-priority" }
    },
    {
      "itemId": "production.decisions",
      "axis": "production",
      "role": "common",
      "surface": "Decision gates",
      "canonical": [
        { "path": "docs/40-mobile/RELEASE_STRATEGY.md", "heading": "Decision Gates Before Implementation Issues" },
        { "path": "docs/00-governance/DECISIONS.md", "heading": "Production Issue Gates" }
      ],
      "evidence": { "kind": "decision-gates" }
    },
    {
      "itemId": "documentation.portal",
      "axis": "documentation",
      "role": "common",
      "surface": "Docs portal reachability",
      "canonical": [
        { "path": "docs/README.md", "heading": "Authority" },
        { "path": "docs/80-artifacts/README.md", "heading": "Hierarchy" }
      ],
      "evidence": { "kind": "docs" }
    },
    {
      "itemId": "documentation.identity",
      "axis": "documentation",
      "role": "common",
      "surface": "Source and evidence identity",
      "canonical": [
        { "path": "docs/70-progress/CURRENT.md", "heading": "Status" },
        { "path": "docs/80-artifacts/README.md", "heading": "Canonicality" }
      ],
      "evidence": { "kind": "identity" }
    }
  ],
  "renderer": {
    "title": "ZERRO APP Progress Evaluation",
    "subtitle": "구현·runtime·evidence·production·문서 정합성을 독립 축으로 읽는 review snapshot입니다.",
    "rootPortalLink": "progress/index.html",
    "rootPortalLabel": "APP Progress Evaluation",
    "sourceLinks": [
      { "label": "Current Progress", "href": "../../../docs/70-progress/CURRENT.md" },
      { "label": "Release Strategy", "href": "../../../docs/40-mobile/RELEASE_STRATEGY.md" },
      { "label": "Coverage Graph", "href": "../../../apps/mobile/e2e/TEST_COVERAGE_GRAPH.md" },
      { "label": "Maestro evidence audit", "href": "../../../docs/80-artifacts/progress/maestro-evidence-audit.json" },
      { "label": "Evaluation contract", "href": "../../../docs/80-artifacts/progress/mobile-progress-evaluation.json" }
    ]
  }
}
