{
  "version": "pchome_growth_program_review_v1",
  "generated_at": "2026-07-11T12:00:00+08:00",
  "supersedes_status_only_completion": true,
  "goal": "以新鮮 PChome 業績、可信跨平台同款資料與可歸因動作持續提升業績",
  "production_baseline": {
    "runtime_source_sha": "b4284693e4a86057e24daa3aa2fb3494f046edae",
    "runtime_version": "V10.773",
    "latest_sales_date": "2026-06-24",
    "sales_age_days": 16,
    "catalog_product_count": 13032,
    "catalog_products_with_external_offer": 35,
    "catalog_external_offer_coverage_pct": 0.27,
    "top_opportunity_count": 20,
    "top_opportunity_actionable_mapped_count": 5,
    "top_opportunity_mapping_rate_pct": 25.0,
    "external_offer_sources_with_verified_rows": [
      "momo_reference"
    ],
    "verified_external_offer_count": 473,
    "verified_external_product_count": 394,
    "runtime_mcp_router_enabled": false,
    "runtime_rag_enabled": false
  },
  "implementation_receipt": {
    "feature_source_sha": "b8cc27e4c4ae8cc6a649bc04451b7e94d0611bef",
    "dev_integration_sha": "107d8ed",
    "runtime_version": "V10.775",
    "deployment_mode": "controlled_sync_with_targeted_rollback_archive",
    "gitea_cd_run": 1098,
    "gitea_cd_status": "waiting_runner_unavailable",
    "application_containers_healthy": 3,
    "database_container_recreated": false,
    "latest_sales_date": "2026-06-24",
    "sales_decision_ready": false,
    "valid_catalog_mapping_count": 31,
    "valid_catalog_mapping_rate_pct": 0.24,
    "runtime_platforms_with_data": 1,
    "catchup_result": {
      "scanned": 8,
      "candidates": 3,
      "auto_accepted": 0,
      "written": 0,
      "review_candidates": 3,
      "next_due": "cooldown_4.0h"
    }
  },
  "codebase_findings": {
    "relevant_file_count_approx": 250,
    "market_intel_module_count": 140,
    "market_intel_line_count": 53988,
    "mapping_backlog_service_line_count": 44888,
    "mapping_backlog_service_function_count": 297,
    "mapping_backlog_gate_marker_count": 1317,
    "ai_routes_pchome_growth_route_count": 96,
    "primary_root_causes": [
      "status and gate accumulation is much larger than the production data and action loop",
      "sales import polls Google Drive but does not acquire the report from the authorized upstream",
      "external source seeds overwrote runtime activation on every sync",
      "revenue scoring only selected momo_reference even when other normalized offers existed",
      "daily mapping backfill could be missed for a full day after a late container restart",
      "the first viewport did not block decisions when sales data was stale",
      "the source UI expanded every paused platform into a text-heavy card"
    ]
  },
  "work_items": [
    {
      "order": 1,
      "id": "PCH-GROWTH-P0-001",
      "priority": "P0",
      "status": "in_progress",
      "lane": "authorized_sales_acquisition",
      "objective": "Automatically acquire and import the latest PChome sales report",
      "completed": [
        "Google Drive polling and import",
        "authorized HTTPS, IMAP and controlled local-drop provider implementation",
        "SHA-256 source idempotency",
        "atomic two-table replace with rollback",
        "same-run source, policy, execution and freshness receipt",
        "post-import table verification",
        "staleness detection",
        "compact source-readiness cockpit"
      ],
      "remaining": [
        "configure at least one production authorized upstream export provider",
        "receive and import a report dated within one day in production"
      ],
      "production_acceptance": "latest sales age <= 1 day and decision_ready=true"
    },
    {
      "order": 2,
      "id": "PCH-GROWTH-P0-002",
      "priority": "P0",
      "status": "in_progress",
      "lane": "product_identity_graph",
      "objective": "Map the PChome catalog to verified same-product offers across platforms",
      "completed": [
        "MOMO exact and unit-price evidence model",
        "quality and variant gates",
        "bounded high-sales backfill"
      ],
      "remaining": [
        "raise full-catalog coverage from 0.27%",
        "brand, GTIN, MPN, model, size, count, color and seller identity graph",
        "automatic replay for unresolved high-sales products"
      ],
      "production_acceptance": "top revenue 80% weighted catalog coverage >= 90%"
    },
    {
      "order": 3,
      "id": "PCH-GROWTH-P0-003",
      "priority": "P0",
      "status": "in_progress",
      "lane": "lawful_multiplatform_acquisition",
      "objective": "Continuously acquire normalized offer evidence from relevant commerce platforms",
      "completed": [
        "15-source governed registry",
        "MOMO normalized offers",
        "PixelRAG evidence lane with blocked-page classification",
        "Yahoo, ETMall and friDay public capture feasibility proof"
      ],
      "remaining": [
        "authorized or structured-data adapters for Yahoo, ETMall and friDay",
        "Shopee authorized feed or seller API adapter",
        "Coupang official API eligibility and 403 backoff path",
        "Google Merchant price competitiveness and market insights eligibility",
        "Rakuten retry and backoff adapter",
        "Ruten and LINE Shopping feed contracts"
      ],
      "production_acceptance": "each active source has source receipt, normalized offers, verifier and freshness SLO"
    },
    {
      "order": 4,
      "id": "PCH-GROWTH-P0-004",
      "priority": "P0",
      "status": "runtime_deployed_dependency_blocked",
      "lane": "cross_platform_revenue_decision",
      "objective": "Compare every qualified platform offer without letting blocked or observational evidence drive price actions",
      "completed": [
        "multi-source latest-offer selection",
        "runtime source-policy enforcement",
        "observation-only evidence separation",
        "sales freshness decision gate",
        "catalog and platform coverage metrics",
        "Gitea main and dev integration",
        "production V10.775 service-layer readback",
        "bounded mapping catch-up receipt"
      ],
      "remaining": [
        "production multi-source offer ingestion"
      ],
      "production_acceptance": "fresh sales plus at least two enabled verified platforms produce replayable decisions"
    },
    {
      "order": 5,
      "id": "PCH-GROWTH-P0-005",
      "priority": "P0",
      "status": "not_started",
      "lane": "growth_action_and_attribution",
      "objective": "Turn recommendations into bounded price, promotion, content and exposure experiments and measure incremental revenue",
      "completed": [],
      "remaining": [
        "action contract and authorized PChome write adapter",
        "holdout or matched-control experiment design",
        "margin, stock and MAP policy guard",
        "post-action conversion and incremental revenue verifier",
        "automatic rollback and cooldown"
      ],
      "production_acceptance": "same run closes decide, apply, verify, attribute and learn with rollback evidence"
    },
    {
      "order": 6,
      "id": "PCH-GROWTH-P0-006",
      "priority": "P0",
      "status": "blocked_with_safe_next_action",
      "lane": "release_automation",
      "objective": "Restore deterministic Gitea CD so every accepted main commit reaches production with independent verification",
      "completed": [
        "Gitea main and dev source truth",
        "controlled sync fallback with targeted rollback archive",
        "production health, container and service-layer readback"
      ],
      "remaining": [
        "restore a registered runner with the ewoooc-host label",
        "run the latest main CD to Success",
        "persist source SHA, runtime version and post-deploy verifier as one durable deploy receipt"
      ],
      "production_acceptance": "latest main CD succeeds without manual file sync and production readback matches the deployed source SHA"
    },
    {
      "order": 7,
      "id": "PCH-GROWTH-P1-001",
      "priority": "P1",
      "status": "runtime_deployed_visible_auth_pending",
      "lane": "professional_ui_ux",
      "objective": "Provide a compact decision cockpit instead of a status and text wall",
      "completed": [
        "freshness-first next action",
                "multi-platform terminology",
                "real coverage metrics",
                "collapsed pending-source summary",
                "removed fake sales sparkline",
                "desktop and 390px mobile visual verification without horizontal overflow",
                "repaired the circular accent-token fallback that made primary buttons unreadable",
                "production V10.775 static asset readback",
                "sales automation first-viewport cockpit",
                "four-source readiness and runtime-closure readback",
                "manual upload removed from the primary workflow",
                "six-column verified-run history"
            ],
            "remaining": [
                "production V10.776 visible readback",
                "per-product cross-platform offer drawer and experiment outcome view"
            ],
      "production_acceptance": "first viewport shows freshness, revenue trend, coverage, risk and one executable next action without overflow"
    },
    {
      "order": 8,
      "id": "PCH-GROWTH-P1-002",
      "priority": "P1",
      "status": "in_progress",
      "lane": "ai_mcp_rag_runtime",
      "objective": "Use Ollama-first agents, MCP and RAG to automate retrieval, matching, validation and learning",
      "completed": [
        "internal MCP and RAG inventory",
        "PixelRAG receipts and capture manifests",
        "text RAG service implementation"
      ],
      "remaining": [
        "enable and verify MCP router runtime",
        "enable and verify RAG runtime",
        "Qwen3-VL Ollama-first visual replay",
        "PixelRAG receipt to RAG candidate replay",
        "restore GCP-A direct runtime and 110 primary proxy",
        "recover GCP-B bge-m3 embedding latency below the 30 second verifier SLO",
        "restore or formally retire the unreachable 111 fallback route",
        "agent outcome metrics and durable learning acknowledgement"
      ],
      "production_acceptance": "runtime flags enabled and same-run retrieval-to-decision receipts pass independent replay"
    },
    {
      "order": 9,
      "id": "PCH-GROWTH-P1-003",
      "priority": "P1",
      "status": "in_progress",
      "lane": "security_and_governance_automation",
      "objective": "Apply risk-based controlled execution with asset, policy, verifier, rollback and learning coverage",
      "completed": [
        "source and runtime review artifacts",
        "read-only visual evidence boundary",
        "production DB lifecycle red lines",
        "OpenTelemetry-compatible trace_id and span_id plus run_id and work_item_id envelope for sales acquisition",
        "medium-risk controlled apply without legacy HITL terminal",
        "durable acquisition receipt and atomic rollback verifier"
      ],
      "remaining": [
        "replace preview-only gate chains with executable work items",
        "SBOM and dependency policy enforcement",
        "automated drift work item creation",
        "security control coverage and production closure metrics"
      ],
      "production_acceptance": "low, medium and high actions close automatically under policy; only critical actions require break-glass"
    }
  ],
  "source_strategy": {
    "priority_order": [
      "official or explicitly authorized API and feed",
      "public structured product data that permits access",
      "PixelRAG visual evidence with OCR or VLM replay",
      "blocked-page classification, backoff and alternate source"
    ],
    "hard_rules": [
      "never bypass anti-bot controls",
      "never treat a blocked page as product evidence",
      "never write PixelRAG-only prices into the formal price table",
      "never allow a paused or disabled source to drive a pricing action",
      "never execute a sales action with stale PChome sales data"
    ]
  }
}
