Files
ewoooc/governance/pchome_growth_program_review.json
ogt 5dde049a07
Some checks failed
CD Pipeline / deploy (push) Has been cancelled
fix(ops): report Ollama embed failures accurately
2026-07-10 21:56:00 +08:00

251 lines
10 KiB
JSON

{
"version": "pchome_growth_program_review_v1",
"generated_at": "2026-07-10T21:54:36+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",
"post-import table verification",
"staleness detection"
],
"remaining": [
"authorized PChome backend, scheduled export, or mailbox-to-Drive acquisition connector",
"same-run source receipt and freshness verifier"
],
"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-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"
],
"remaining": [
"production 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": 7,
"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": 8,
"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"
],
"remaining": [
"replace preview-only gate chains with executable work items",
"shared trace_id, run_id and work_item_id envelope",
"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"
]
}
}