{"ok":false,"collection_workspace_packet":{"store_id":0,"store_name":"","generated_at":"2026-06-13T05:02:57.479045+00:00","title":"External Evidence Collection Workspace Packet","summary":{"source_count":9,"ok_count":0,"warning_count":0,"blocker_count":9,"repair_action_count":69,"included_repair_action_count":69,"repair_queue_truncated":false,"due_count":3,"protected_count":0,"cooldown_count":0,"scheduled_count":1,"unconfigured_count":1,"execution_gap_count":54,"completion_gap_count":6,"runbook_gap_count":9,"probe_gap_count":9,"stability_gap_count":9,"latest_run_id":null,"scheduler_autorun_enabled":false,"scheduler_thread_alive":false},"rows":[{"source_id":"ai_search","provider":"ai_search","label":"AI 真实用户监测 source runbook","section":"ai","channel":"ai_browser","status":"blocker","priority":"P0","runbook_status":"due_now","execution_status":"warning","health_status":"warning","plan_state":"due","stability_status":"warning","latest_run_id":47,"latest_status":"not_mentioned","latest_checked_at":"2026-06-10T08:38:21.448242","latest_age_hours":68,"latest_error":"","next_run_at":"2026-06-12T08:38:21.448242+00:00","protected_until":null,"probe_status":"","probe_run_id":null,"signal_count":15,"success_rate":26.7,"repair_action_count":7,"repair_actions":[{"id":"external_evidence_workspace:ai_search:external_evidence_collection_completion_packet:requested_source_coverage","source":"external_evidence_collection_completion_packet","source_id":"ai_search","status":"blocker","priority":"P0","category":"collection_completion","code":"requested_source_coverage","title":"Requested source coverage","message":"8/9 requested source(s) did not produce an auditable row.","next_action":"Fix missing source configuration or collector section errors, then rerun collect-due for this store.","acceptance":"Every requested external source has a GeoPlatformEvidence row or an explicit missing-source explanation.","evidence":{"requested":9,"covered":1,"missing":8,"row_count":1},"latest_run_id":47},{"id":"external_evidence_workspace:ai_search:external_evidence_source_runbook:collect_due_source","source":"external_evidence_source_runbook","source_id":"ai_search","status":"warning","priority":"P0","category":"collection_due","code":"collect_due_source","title":"AI 真实用户监测 source runbook","message":"Cadence reached (48h); collect a fresh snapshot for baseline continuity.","next_action":"近 10 条成功率只有 0%，需要观察搜索 API/平台授权稳定性。","acceptance":"collect-due creates a fresh GeoPlatformEvidence row for the source; source state returns to scheduled/stable or explains a compliant not-found result; raw evidence, reliability score, checked_at, and error payload are retained","evidence":{"plan_state":"due","stability_status":"warning","next_run_at":"2026-06-12T08:38:21.448242+00:00","protected_until":null},"latest_run_id":47},{"id":"external_evidence_workspace:ai_search:external_evidence_source_execution_packet:connectivity_probe","source":"external_evidence_source_execution_packet","source_id":"ai_search","status":"warning","priority":"P1","category":"stability","code":"connectivity_probe","title":"Connectivity probe evidence","message":"No latest connectivity probe row for this source.","next_action":"Run /geo/evidence/probe-store before the next formal retry if the source is weak or blocked.","acceptance":"A recent connectivity probe confirms source access without writing formal evidence rows.","evidence":{"probe_run_id":null,"probe_status":"","status":"","completed_at":""},"latest_run_id":47},{"id":"external_evidence_workspace:ai_search:external_evidence_source_execution_packet:latest_formal_collection","source":"external_evidence_source_execution_packet","source_id":"ai_search","status":"warning","priority":"P1","category":"formal_collection","code":"latest_formal_collection","title":"Latest formal collection","message":"Latest source is reachable but evidence is weak, not found, or not mentioned.","next_action":"Run collect-due or repair source errors before relying on this source.","acceptance":"Latest GeoPlatformEvidence row is positive or has an auditable weak/not-found explanation.","evidence":{"run_id":47,"row_id":239,"status":"not_mentioned","checked_at":"2026-06-10T08:38:21.448242","age_hours":68,"error_message":null},"latest_run_id":47},{"id":"external_evidence_workspace:ai_search:external_evidence_source_execution_packet:scheduler_cadence","source":"external_evidence_source_execution_packet","source_id":"ai_search","status":"warning","priority":"P1","category":"scheduler","code":"scheduler_cadence","title":"Scheduler cadence","message":"Scheduler is not fully proven alive in this process.","next_action":"Enable GEO_EXTERNAL_EVIDENCE_AUTORUN and confirm the cloud process has an alive scheduler thread.","acceptance":"Long-term evidence refreshes run on configured cadence without manual operation.","evidence":{"autorun_enabled":false,"thread_alive":false,"last_status":"","interval_seconds":21600},"latest_run_id":47},{"id":"external_evidence_workspace:ai_search:external_evidence_source_execution_packet:source_ledger_coverage","source":"external_evidence_source_execution_packet","source_id":"ai_search","status":"warning","priority":"P1","category":"formal_collection","code":"source_ledger_coverage","title":"Source ledger coverage","message":"Latest formal row has no source_ledger coverage entry.","next_action":"Rerun with the current collector so source_ledger records requested/covered/missing states.","acceptance":"Latest run raw_payload.source_ledger includes this source_id.","evidence":{"run_id":47,"ledger_present":false,"ledger_entry":{}},"latest_run_id":47},{"id":"external_evidence_workspace:ai_search:external_evidence_source_execution_packet:stability_signal","source":"external_evidence_source_execution_packet","source_id":"ai_search","status":"warning","priority":"P1","category":"stability","code":"stability_signal","title":"Long-term stability signal","message":"Success rate 26.7% is below target 70%.","next_action":"Review latest signal, tune aliases or targets, then keep collecting until the success rate reaches target.","acceptance":"Recent formal collection and probe signals meet configured stability thresholds.","evidence":{"signal_count":15,"success_rate":26.7,"consecutive_blocker_count":0,"latest_status":"not_mentioned"},"latest_run_id":47}],"operator_steps":["Run collect-due for the selected store and retain the generated run id.","Review reliability grade, raw payload, checked_at, and source ledger after collection.","Use configured real-user AI monitor targets and store snapshots with answer text, URL, and screenshot when available.","Run collect-due for this store/source and retain the generated run id plus source ledger.","Run a connectivity probe before the next formal collection retry.","Collect enough successful probe and formal collection signals to satisfy the stability threshold.","Enable GEO_EXTERNAL_EVIDENCE_AUTORUN on the cloud server and confirm the scheduler thread is alive.","Fix missing source configuration or collector section errors, then rerun collect-due for this store."],"acceptance_criteria":["source is configured through official API, compliant search API, authorized sync, or AI monitor snapshot","collector plan can request this source explicitly through collect-due","latest formal collection row is auditable with reliability, checked_at, raw material, and ledger coverage","connectivity probe and stability matrix prove long-term source health","operators can see the compliance boundary before every retry"],"compliance_boundary":"Use configured real-user AI monitor targets and store snapshots with answer text, URL, and screenshot when available.","completion_packet":{"run_id":47,"status":"needs_repair","ok":false,"summary":{"requirement_count":4,"blocker_count":1,"warning_count":0,"platform_row_count":1,"requested_count":9,"covered_count":1,"missing_count":8,"ok_source_count":0,"cooldown_source_count":0,"blocked_source_count":0,"review_source_count":1,"avg_reliability_score":32.0},"next_action":"Review the candidate evidence manually, add verified links if needed, and tune store aliases or target keywords."},"runbook_item":{"id":"external_source:all:ai_search","source":"external_evidence_source_runbook","action_type":"collect_due_source","lane":"collection_due","lane_label":"Collection due","status":"due_now","priority_score":94,"priority_label":"P0","title":"AI 真实用户监测 source runbook","message":"Cadence reached (48h); collect a fresh snapshot for baseline continuity.","action":"近 10 条成功率只有 0%，需要观察搜索 API/平台授权稳定性。","action_url":"/geo/evidence","api_url":"/geo/api/evidence/external-source-runbook?store_id=0","store_id":0,"store_name":"","source_id":"ai_search","provider":"ai_search","section":"ai","channel":"ai_browser","configured":true,"target_count":40,"cadence_hours":48,"plan_state":"due","health_status":"warning","stability_status":"warning","latest_status":"not_mentioned","latest_status_label":"未提及本店","latest_checked_at":"2026-06-10T08:38:21.448242+00:00","latest_age_hours":68,"latest_error":"","latest_run_id":47,"next_run_at":"2026-06-12T08:38:21.448242+00:00","protected_until":null,"success_rate":26.7,"signal_count":15,"collection_signal_count":15,"probe_signal_count":0,"failure_streak":0,"consecutive_problem_count":10,"consecutive_blocker_count":0,"compliance_boundary":"Use configured real-user AI monitor targets and store snapshots with answer text, URL, and screenshot when available.","collector_options":{"include_maps":false,"include_search":false,"include_dianping":false,"include_ai":true,"map_provider_ids":[],"search_provider_ids":[]},"operator_steps":["Run collect-due for the selected store and retain the generated run id.","Review reliability grade, raw payload, checked_at, and source ledger after collection.","Use configured real-user AI monitor targets and store snapshots with answer text, URL, and screenshot when available."],"acceptance_criteria":["collect-due creates a fresh GeoPlatformEvidence row for the source","source state returns to scheduled/stable or explains a compliant not-found result","raw evidence, reliability score, checked_at, and error payload are retained","collection respects official APIs, authorized sync, or compliant public search boundaries"]},"execution_row":{"source_id":"ai_search","provider":"ai_search","label":"AI 真实用户监测","category":"ai","channel":"ai_browser","section":"ai","status":"warning","priority":"P1","configured":true,"target_count":40,"plan_state":"due","health_status":"warning","stability_status":"warning","latest_run_id":47,"latest_row_id":239,"latest_status":"not_mentioned","latest_checked_at":"2026-06-10T08:38:21.448242","latest_age_hours":68,"latest_reliability_grade":"C","latest_reliability_score":61.0,"latest_error":null,"item_count":1,"ledger_entry_present":false,"probe_status":"","probe_run_id":null,"signal_count":15,"success_rate":26.7,"compliance_boundary":"Use configured real-user AI monitor targets and store snapshots with answer text, URL, and screenshot when available.","requirements":[{"code":"source_catalog","title":"Source catalog entry","status":"ok","category":"source_contract","required":true,"priority":"P2","message":"Source exists in SOURCE_SPECS.","next_action":"Keep this source in the external evidence source catalog.","acceptance":"Source has a stable source_id, provider, channel, cadence, and compliance category.","evidence":{"source_id":"ai_search","provider":"ai_search","channel":"ai_browser","cadence_hours":48}},{"code":"source_configuration","title":"Cloud source configuration","status":"ok","category":"configuration","required":true,"priority":"P2","message":"已配置 AI 真实用户监测目标","next_action":"近 10 条成功率只有 0%，需要观察搜索 API/平台授权稳定性。","acceptance":"Cloud worker can legally access this source without bypassing platform access controls.","evidence":{"configured":true,"target_count":40,"config_env":""}},{"code":"collector_plan_contract","title":"Collector plan contract","status":"ok","category":"collector","required":true,"priority":"P2","message":"Cadence reached (48h); collect a fresh snapshot for baseline continuity.","next_action":"Repair collection plan routing or source catalog mapping before collect-due.","acceptance":"collection_packet.collector_options can request exactly this source.","evidence":{"state":"due","collector_options":{"include_maps":false,"include_search":false,"include_dianping":false,"include_ai":true,"map_provider_ids":[],"search_provider_ids":[]}}},{"code":"collection_plan_state","title":"Collection plan state","status":"ok","category":"collector","required":true,"priority":"P2","message":"Cadence reached (48h); collect a fresh snapshot for baseline continuity.","next_action":"Keep this source on the protected scheduler cadence.","acceptance":"Source is due, scheduled, or cooling down; protected/blocked states have an explicit repair path.","evidence":{"state":"due","reason":"Cadence reached (48h); collect a fresh snapshot for baseline continuity.","next_run_at":"2026-06-12T08:38:21.448242+00:00","protected_until":null}},{"code":"latest_formal_collection","title":"Latest formal collection","status":"warning","category":"formal_collection","required":true,"priority":"P1","message":"Latest source is reachable but evidence is weak, not found, or not mentioned.","next_action":"Run collect-due or repair source errors before relying on this source.","acceptance":"Latest GeoPlatformEvidence row is positive or has an auditable weak/not-found explanation.","evidence":{"run_id":47,"row_id":239,"status":"not_mentioned","checked_at":"2026-06-10T08:38:21.448242","age_hours":68,"error_message":null}},{"code":"source_ledger_coverage","title":"Source ledger coverage","status":"warning","category":"formal_collection","required":true,"priority":"P1","message":"Latest formal row has no source_ledger coverage entry.","next_action":"Rerun with the current collector so source_ledger records requested/covered/missing states.","acceptance":"Latest run raw_payload.source_ledger includes this source_id.","evidence":{"run_id":47,"ledger_present":false,"ledger_entry":{}}},{"code":"formal_row_quality","title":"Formal row quality","status":"ok","category":"formal_collection","required":true,"priority":"P2","message":"Formal row retains checked_at, reliability, and raw/error evidence material.","next_action":"Persist checked_at, reliability score, raw payload/excerpt, URL, error, and evidence items.","acceptance":"Formal row is auditable and can be used by reliability scoring and attribution baselines.","evidence":{"checked_at":true,"reliability":true,"raw_material":true,"item_count":1}},{"code":"connectivity_probe","title":"Connectivity probe evidence","status":"warning","category":"stability","required":false,"priority":"P1","message":"No latest connectivity probe row for this source.","next_action":"Run /geo/evidence/probe-store before the next formal retry if the source is weak or blocked.","acceptance":"A recent connectivity probe confirms source access without writing formal evidence rows.","evidence":{"probe_run_id":null,"probe_status":"","status":"","completed_at":""}},{"code":"stability_signal","title":"Long-term stability signal","status":"warning","category":"stability","required":true,"priority":"P1","message":"Success rate 26.7% is below target 70%.","next_action":"Review latest signal, tune aliases or targets, then keep collecting until the success rate reaches target.","acceptance":"Recent formal collection and probe signals meet configured stability thresholds.","evidence":{"signal_count":15,"success_rate":26.7,"consecutive_blocker_count":0,"latest_status":"not_mentioned"}},{"code":"compliance_boundary","title":"Compliance boundary","status":"ok","category":"compliance","required":true,"priority":"P2","message":"Use configured real-user AI monitor targets and store snapshots with answer text, URL, and screenshot when available.","next_action":"Define whether this source uses official API, compliant search API, authorized sync, or AI monitor snapshots.","acceptance":"Operators can see the allowed collection boundary before retrying.","evidence":{"channel":"ai_browser","compliance_note":"Use configured real-user AI monitor targets and store snapshots with answer text, URL, and screenshot when available.","ledger_compliance_note":""}},{"code":"scheduler_cadence","title":"Scheduler cadence","status":"warning","category":"scheduler","required":false,"priority":"P1","message":"Scheduler is not fully proven alive in this process.","next_action":"Enable GEO_EXTERNAL_EVIDENCE_AUTORUN and confirm the cloud process has an alive scheduler thread.","acceptance":"Long-term evidence refreshes run on configured cadence without manual operation.","evidence":{"autorun_enabled":false,"thread_alive":false,"last_status":"","interval_seconds":21600}}],"blocker_count":0,"warning_count":5,"next_action":"Run collect-due or repair source errors before relying on this source.","operator_steps":["Run collect-due for this store/source and retain the generated run id plus source ledger.","Run a connectivity probe before the next formal collection retry.","Collect enough successful probe and formal collection signals to satisfy the stability threshold.","Enable GEO_EXTERNAL_EVIDENCE_AUTORUN on the cloud server and confirm the scheduler thread is alive."],"acceptance_criteria":["source is configured through official API, compliant search API, authorized sync, or AI monitor snapshot","collector plan can request this source explicitly through collect-due","latest formal collection row is auditable with reliability, checked_at, raw material, and ledger coverage","connectivity probe and stability matrix prove long-term source health","operators can see the compliance boundary before every retry"]},"workspace_links":{"page":"/geo/evidence","workspace_api":"/geo/api/evidence/external-collection-workspace-packet?store_id=0&limit=80","runbook_api":"/geo/api/evidence/external-source-runbook?store_id=0","execution_api":"/geo/api/evidence/external-source-execution-packet?store_id=0&source_id=ai_search","completion_api":"/geo/api/evidence/external-collection-completion-packet?run_id=47","run_detail":"/geo/evidence/47","collect_due":"/geo/evidence/collect-due","probe":"/geo/evidence/probe-store"},"next_action":"Fix missing source configuration or collector section errors, then rerun collect-due for this store."},{"source_id":"amap","provider":"amap","label":"高德地图官方 API source runbook","section":"maps","channel":"official_api","status":"blocker","priority":"P0","runbook_status":"watch","execution_status":"warning","health_status":"warning","plan_state":"scheduled","stability_status":"warning","latest_run_id":12,"latest_status":"found_strong","latest_checked_at":"2026-06-08T11:34:00","latest_age_hours":113,"latest_error":"","next_run_at":"2026-06-15T11:34:00+00:00","protected_until":null,"probe_status":"","probe_run_id":null,"signal_count":2,"success_rate":0.0,"repair_action_count":7,"repair_actions":[{"id":"external_evidence_workspace:amap:external_evidence_collection_completion_packet:requested_source_coverage","source":"external_evidence_collection_completion_packet","source_id":"amap","status":"blocker","priority":"P0","category":"collection_completion","code":"requested_source_coverage","title":"Requested source coverage","message":"6/9 requested source(s) did not produce an auditable row.","next_action":"Fix missing source configuration or collector section errors, then rerun collect-due for this store.","acceptance":"Every requested external source has a GeoPlatformEvidence row or an explicit missing-source explanation.","evidence":{"requested":9,"covered":7,"missing":6,"row_count":7},"latest_run_id":12},{"id":"external_evidence_workspace:amap:external_evidence_source_execution_packet:connectivity_probe","source":"external_evidence_source_execution_packet","source_id":"amap","status":"warning","priority":"P1","category":"stability","code":"connectivity_probe","title":"Connectivity probe evidence","message":"No latest connectivity probe row for this source.","next_action":"Run /geo/evidence/probe-store before the next formal retry if the source is weak or blocked.","acceptance":"A recent connectivity probe confirms source access without writing formal evidence rows.","evidence":{"probe_run_id":null,"probe_status":"","status":"","completed_at":""},"latest_run_id":12},{"id":"external_evidence_workspace:amap:external_evidence_source_execution_packet:latest_formal_collection","source":"external_evidence_source_execution_packet","source_id":"amap","status":"warning","priority":"P1","category":"formal_collection","code":"latest_formal_collection","title":"Latest formal collection","message":"Latest formal collection needs review: found_strong.","next_action":"Run collect-due or repair source errors before relying on this source.","acceptance":"Latest GeoPlatformEvidence row is positive or has an auditable weak/not-found explanation.","evidence":{"run_id":12,"row_id":78,"status":"found_strong","checked_at":"2026-06-08T11:34:00","age_hours":113,"error_message":null},"latest_run_id":12},{"id":"external_evidence_workspace:amap:external_evidence_source_execution_packet:scheduler_cadence","source":"external_evidence_source_execution_packet","source_id":"amap","status":"warning","priority":"P1","category":"scheduler","code":"scheduler_cadence","title":"Scheduler cadence","message":"Scheduler is not fully proven alive in this process.","next_action":"Enable GEO_EXTERNAL_EVIDENCE_AUTORUN and confirm the cloud process has an alive scheduler thread.","acceptance":"Long-term evidence refreshes run on configured cadence without manual operation.","evidence":{"autorun_enabled":false,"thread_alive":false,"last_status":"","interval_seconds":21600},"latest_run_id":12},{"id":"external_evidence_workspace:amap:external_evidence_source_execution_packet:source_ledger_coverage","source":"external_evidence_source_execution_packet","source_id":"amap","status":"warning","priority":"P1","category":"formal_collection","code":"source_ledger_coverage","title":"Source ledger coverage","message":"Latest formal row has no source_ledger coverage entry.","next_action":"Rerun with the current collector so source_ledger records requested/covered/missing states.","acceptance":"Latest run raw_payload.source_ledger includes this source_id.","evidence":{"run_id":12,"ledger_present":false,"ledger_entry":{}},"latest_run_id":12},{"id":"external_evidence_workspace:amap:external_evidence_source_execution_packet:stability_signal","source":"external_evidence_source_execution_packet","source_id":"amap","status":"warning","priority":"P1","category":"stability","code":"stability_signal","title":"Long-term stability signal","message":"Success rate 0% is below target 70%.","next_action":"Review latest signal, tune aliases or targets, then keep collecting until the success rate reaches target.","acceptance":"Recent formal collection and probe signals meet configured stability thresholds.","evidence":{"signal_count":2,"success_rate":0.0,"consecutive_blocker_count":0,"latest_status":"found_strong"},"latest_run_id":12},{"id":"external_evidence_workspace:amap:external_evidence_source_runbook:prove_stability","source":"external_evidence_source_runbook","source_id":"amap","status":"warning","priority":"P2","category":"source_watch","code":"prove_stability","title":"高德地图官方 API source runbook","message":"Success rate 0% is below target 70%.","next_action":"Review latest signal, tune aliases or targets, then keep collecting until the success rate reaches target.","acceptance":"source reaches the minimum recent signal count; success rate meets or exceeds the configured stability target; raw evidence, reliability score, checked_at, and error payload are retained","evidence":{"plan_state":"scheduled","stability_status":"warning","next_run_at":"2026-06-15T11:34:00+00:00","protected_until":null},"latest_run_id":12}],"operator_steps":["Run probe plus formal collection until at least two recent successful signals exist.","Tune aliases, keywords, or monitor targets if public search returns weak evidence.","Use official map APIs with server-side keys, quota monitoring, and IP allowlists.","Run collect-due for this store/source and retain the generated run id plus source ledger.","Run a connectivity probe before the next formal collection retry.","Collect enough successful probe and formal collection signals to satisfy the stability threshold.","Enable GEO_EXTERNAL_EVIDENCE_AUTORUN on the cloud server and confirm the scheduler thread is alive.","Fix missing source configuration or collector section errors, then rerun collect-due for this store."],"acceptance_criteria":["source is configured through official API, compliant search API, authorized sync, or AI monitor snapshot","collector plan can request this source explicitly through collect-due","latest formal collection row is auditable with reliability, checked_at, raw material, and ledger coverage","connectivity probe and stability matrix prove long-term source health","operators can see the compliance boundary before every retry"],"compliance_boundary":"Use official map APIs with server-side keys, quota monitoring, and IP allowlists.","completion_packet":{"run_id":12,"status":"needs_repair","ok":false,"summary":{"requirement_count":4,"blocker_count":1,"warning_count":1,"platform_row_count":7,"requested_count":9,"covered_count":7,"missing_count":6,"ok_source_count":0,"cooldown_source_count":0,"blocked_source_count":0,"review_source_count":7,"avg_reliability_score":36.0},"next_action":"Review the candidate evidence manually, add verified links if needed, and tune store aliases or target keywords."},"runbook_item":{"id":"external_source:all:amap","source":"external_evidence_source_runbook","action_type":"prove_stability","lane":"source_watch","lane_label":"Needs observation","status":"watch","priority_score":62,"priority_label":"P2","title":"高德地图官方 API source runbook","message":"Success rate 0% is below target 70%.","action":"Review latest signal, tune aliases or targets, then keep collecting until the success rate reaches target.","action_url":"/geo/evidence","api_url":"/geo/api/evidence/external-source-runbook?store_id=0","store_id":0,"store_name":"","source_id":"amap","provider":"amap","section":"maps","channel":"official_api","configured":true,"target_count":0,"cadence_hours":168,"plan_state":"scheduled","health_status":"warning","stability_status":"warning","latest_status":"found_strong","latest_status_label":"已确认收录","latest_checked_at":"2026-06-08T11:34:00+00:00","latest_age_hours":113,"latest_error":"","latest_run_id":12,"next_run_at":"2026-06-15T11:34:00+00:00","protected_until":null,"success_rate":0.0,"signal_count":2,"collection_signal_count":2,"probe_signal_count":0,"failure_streak":0,"consecutive_problem_count":2,"consecutive_blocker_count":0,"compliance_boundary":"Use official map APIs with server-side keys, quota monitoring, and IP allowlists.","collector_options":{"include_maps":true,"include_search":false,"include_dianping":false,"include_ai":false,"map_provider_ids":["amap"],"search_provider_ids":[]},"operator_steps":["Run probe plus formal collection until at least two recent successful signals exist.","Tune aliases, keywords, or monitor targets if public search returns weak evidence.","Use official map APIs with server-side keys, quota monitoring, and IP allowlists."],"acceptance_criteria":["source reaches the minimum recent signal count","success rate meets or exceeds the configured stability target","raw evidence, reliability score, checked_at, and error payload are retained","collection respects official APIs, authorized sync, or compliant public search boundaries"]},"execution_row":{"source_id":"amap","provider":"amap","label":"高德地图官方 API","category":"map","channel":"official_api","section":"maps","status":"warning","priority":"P1","configured":true,"target_count":0,"plan_state":"scheduled","health_status":"warning","stability_status":"warning","latest_run_id":12,"latest_row_id":78,"latest_status":"found_strong","latest_checked_at":"2026-06-08T11:34:00","latest_age_hours":113,"latest_reliability_grade":"C","latest_reliability_score":64.2,"latest_error":null,"item_count":2,"ledger_entry_present":false,"probe_status":"","probe_run_id":null,"signal_count":2,"success_rate":0.0,"compliance_boundary":"Use official map APIs with server-side keys, quota monitoring, and IP allowlists.","requirements":[{"code":"source_catalog","title":"Source catalog entry","status":"ok","category":"source_contract","required":true,"priority":"P2","message":"Source exists in SOURCE_SPECS.","next_action":"Keep this source in the external evidence source catalog.","acceptance":"Source has a stable source_id, provider, channel, cadence, and compliance category.","evidence":{"source_id":"amap","provider":"amap","channel":"official_api","cadence_hours":168}},{"code":"source_configuration","title":"Cloud source configuration","status":"ok","category":"configuration","required":true,"priority":"P2","message":"配置已就绪","next_action":"近 10 条成功率只有 0%，需要观察搜索 API/平台授权稳定性。","acceptance":"Cloud worker can legally access this source without bypassing platform access controls.","evidence":{"configured":true,"target_count":0,"config_env":"AMAP_API_KEY"}},{"code":"collector_plan_contract","title":"Collector plan contract","status":"ok","category":"collector","required":true,"priority":"P2","message":"Fresh enough for current cadence (168h).","next_action":"Repair collection plan routing or source catalog mapping before collect-due.","acceptance":"collection_packet.collector_options can request exactly this source.","evidence":{"state":"scheduled","collector_options":{"include_maps":true,"include_search":false,"include_dianping":false,"include_ai":false,"map_provider_ids":["amap"],"search_provider_ids":[]}}},{"code":"collection_plan_state","title":"Collection plan state","status":"ok","category":"collector","required":true,"priority":"P2","message":"Fresh enough for current cadence (168h).","next_action":"Keep this source on the protected scheduler cadence.","acceptance":"Source is due, scheduled, or cooling down; protected/blocked states have an explicit repair path.","evidence":{"state":"scheduled","reason":"Fresh enough for current cadence (168h).","next_run_at":"2026-06-15T11:34:00+00:00","protected_until":null}},{"code":"latest_formal_collection","title":"Latest formal collection","status":"warning","category":"formal_collection","required":true,"priority":"P1","message":"Latest formal collection needs review: found_strong.","next_action":"Run collect-due or repair source errors before relying on this source.","acceptance":"Latest GeoPlatformEvidence row is positive or has an auditable weak/not-found explanation.","evidence":{"run_id":12,"row_id":78,"status":"found_strong","checked_at":"2026-06-08T11:34:00","age_hours":113,"error_message":null}},{"code":"source_ledger_coverage","title":"Source ledger coverage","status":"warning","category":"formal_collection","required":true,"priority":"P1","message":"Latest formal row has no source_ledger coverage entry.","next_action":"Rerun with the current collector so source_ledger records requested/covered/missing states.","acceptance":"Latest run raw_payload.source_ledger includes this source_id.","evidence":{"run_id":12,"ledger_present":false,"ledger_entry":{}}},{"code":"formal_row_quality","title":"Formal row quality","status":"ok","category":"formal_collection","required":true,"priority":"P2","message":"Formal row retains checked_at, reliability, and raw/error evidence material.","next_action":"Persist checked_at, reliability score, raw payload/excerpt, URL, error, and evidence items.","acceptance":"Formal row is auditable and can be used by reliability scoring and attribution baselines.","evidence":{"checked_at":true,"reliability":true,"raw_material":true,"item_count":2}},{"code":"connectivity_probe","title":"Connectivity probe evidence","status":"warning","category":"stability","required":false,"priority":"P1","message":"No latest connectivity probe row for this source.","next_action":"Run /geo/evidence/probe-store before the next formal retry if the source is weak or blocked.","acceptance":"A recent connectivity probe confirms source access without writing formal evidence rows.","evidence":{"probe_run_id":null,"probe_status":"","status":"","completed_at":""}},{"code":"stability_signal","title":"Long-term stability signal","status":"warning","category":"stability","required":true,"priority":"P1","message":"Success rate 0% is below target 70%.","next_action":"Review latest signal, tune aliases or targets, then keep collecting until the success rate reaches target.","acceptance":"Recent formal collection and probe signals meet configured stability thresholds.","evidence":{"signal_count":2,"success_rate":0.0,"consecutive_blocker_count":0,"latest_status":"found_strong"}},{"code":"compliance_boundary","title":"Compliance boundary","status":"ok","category":"compliance","required":true,"priority":"P2","message":"Use official map APIs with server-side keys, quota monitoring, and IP allowlists.","next_action":"Define whether this source uses official API, compliant search API, authorized sync, or AI monitor snapshots.","acceptance":"Operators can see the allowed collection boundary before retrying.","evidence":{"channel":"official_api","compliance_note":"Use official map APIs with server-side keys, quota monitoring, and IP allowlists.","ledger_compliance_note":""}},{"code":"scheduler_cadence","title":"Scheduler cadence","status":"warning","category":"scheduler","required":false,"priority":"P1","message":"Scheduler is not fully proven alive in this process.","next_action":"Enable GEO_EXTERNAL_EVIDENCE_AUTORUN and confirm the cloud process has an alive scheduler thread.","acceptance":"Long-term evidence refreshes run on configured cadence without manual operation.","evidence":{"autorun_enabled":false,"thread_alive":false,"last_status":"","interval_seconds":21600}}],"blocker_count":0,"warning_count":5,"next_action":"Run collect-due or repair source errors before relying on this source.","operator_steps":["Run collect-due for this store/source and retain the generated run id plus source ledger.","Run a connectivity probe before the next formal collection retry.","Collect enough successful probe and formal collection signals to satisfy the stability threshold.","Enable GEO_EXTERNAL_EVIDENCE_AUTORUN on the cloud server and confirm the scheduler thread is alive."],"acceptance_criteria":["source is configured through official API, compliant search API, authorized sync, or AI monitor snapshot","collector plan can request this source explicitly through collect-due","latest formal collection row is auditable with reliability, checked_at, raw material, and ledger coverage","connectivity probe and stability matrix prove long-term source health","operators can see the compliance boundary before every retry"]},"workspace_links":{"page":"/geo/evidence","workspace_api":"/geo/api/evidence/external-collection-workspace-packet?store_id=0&limit=80","runbook_api":"/geo/api/evidence/external-source-runbook?store_id=0","execution_api":"/geo/api/evidence/external-source-execution-packet?store_id=0&source_id=amap","completion_api":"/geo/api/evidence/external-collection-completion-packet?run_id=12","run_detail":"/geo/evidence/12","collect_due":"/geo/evidence/collect-due","probe":"/geo/evidence/probe-store"},"next_action":"Fix missing source configuration or collector section errors, then rerun collect-due for this store."},{"source_id":"baidu_maps","provider":"baidu_maps","label":"百度地图官方 API source runbook","section":"maps","channel":"official_api","status":"blocker","priority":"P0","runbook_status":"due_now","execution_status":"blocker","health_status":"warning","plan_state":"due","stability_status":"warning","latest_run_id":null,"latest_status":"","latest_checked_at":null,"latest_age_hours":null,"latest_error":"","next_run_at":"2026-06-13T05:02:57.426907+00:00","protected_until":null,"probe_status":"","probe_run_id":null,"signal_count":0,"success_rate":null,"repair_action_count":7,"repair_actions":[{"id":"external_evidence_workspace:baidu_maps:external_evidence_source_execution_packet:formal_row_quality","source":"external_evidence_source_execution_packet","source_id":"baidu_maps","status":"blocker","priority":"P0","category":"formal_collection","code":"formal_row_quality","title":"Formal row quality","message":"No formal row exists, so quality fields cannot be verified.","next_action":"Persist checked_at, reliability score, raw payload/excerpt, URL, error, and evidence items.","acceptance":"Formal row is auditable and can be used by reliability scoring and attribution baselines.","evidence":{},"latest_run_id":null},{"id":"external_evidence_workspace:baidu_maps:external_evidence_source_execution_packet:latest_formal_collection","source":"external_evidence_source_execution_packet","source_id":"baidu_maps","status":"blocker","priority":"P0","category":"formal_collection","code":"latest_formal_collection","title":"Latest formal collection","message":"No formal GeoPlatformEvidence row exists for this source.","next_action":"Run collect-due or repair source errors before relying on this source.","acceptance":"Latest GeoPlatformEvidence row is positive or has an auditable weak/not-found explanation.","evidence":{"run_id":null,"row_id":null,"status":"","checked_at":"","age_hours":null,"error_message":""},"latest_run_id":null},{"id":"external_evidence_workspace:baidu_maps:external_evidence_source_execution_packet:source_ledger_coverage","source":"external_evidence_source_execution_packet","source_id":"baidu_maps","status":"blocker","priority":"P0","category":"formal_collection","code":"source_ledger_coverage","title":"Source ledger coverage","message":"Latest formal row has no source_ledger coverage entry.","next_action":"Rerun with the current collector so source_ledger records requested/covered/missing states.","acceptance":"Latest run raw_payload.source_ledger includes this source_id.","evidence":{"run_id":null,"ledger_present":false,"ledger_entry":{}},"latest_run_id":null},{"id":"external_evidence_workspace:baidu_maps:external_evidence_source_execution_packet:connectivity_probe","source":"external_evidence_source_execution_packet","source_id":"baidu_maps","status":"warning","priority":"P1","category":"stability","code":"connectivity_probe","title":"Connectivity probe evidence","message":"No latest connectivity probe row for this source.","next_action":"Run /geo/evidence/probe-store before the next formal retry if the source is weak or blocked.","acceptance":"A recent connectivity probe confirms source access without writing formal evidence rows.","evidence":{"probe_run_id":null,"probe_status":"","status":"","completed_at":""},"latest_run_id":null},{"id":"external_evidence_workspace:baidu_maps:external_evidence_source_execution_packet:scheduler_cadence","source":"external_evidence_source_execution_packet","source_id":"baidu_maps","status":"warning","priority":"P1","category":"scheduler","code":"scheduler_cadence","title":"Scheduler cadence","message":"Scheduler is not fully proven alive in this process.","next_action":"Enable GEO_EXTERNAL_EVIDENCE_AUTORUN and confirm the cloud process has an alive scheduler thread.","acceptance":"Long-term evidence refreshes run on configured cadence without manual operation.","evidence":{"autorun_enabled":false,"thread_alive":false,"last_status":"","interval_seconds":21600},"latest_run_id":null},{"id":"external_evidence_workspace:baidu_maps:external_evidence_source_execution_packet:stability_signal","source":"external_evidence_source_execution_packet","source_id":"baidu_maps","status":"warning","priority":"P1","category":"stability","code":"stability_signal","title":"Long-term stability signal","message":"No collection or connectivity probe signal exists in the lookback window.","next_action":"Run connectivity probe and collect-due on this source for at least two successful signals.","acceptance":"Recent formal collection and probe signals meet configured stability thresholds.","evidence":{"signal_count":0,"success_rate":null,"consecutive_blocker_count":0,"latest_status":""},"latest_run_id":null},{"id":"external_evidence_workspace:baidu_maps:external_evidence_source_runbook:collect_due_source","source":"external_evidence_source_runbook","source_id":"baidu_maps","status":"warning","priority":"P1","category":"collection_due","code":"collect_due_source","title":"百度地图官方 API source runbook","message":"Configured but no collection row exists yet; run now to create the first auditable baseline.","next_action":"已具备配置，但还没有该来源的采集记录；建议立即运行外部证据采集。","acceptance":"collect-due creates a fresh GeoPlatformEvidence row for the source; source state returns to scheduled/stable or explains a compliant not-found result; raw evidence, reliability score, checked_at, and error payload are retained","evidence":{"plan_state":"due","stability_status":"warning","next_run_at":"2026-06-13T05:02:57.249172+00:00","protected_until":null},"latest_run_id":null}],"operator_steps":["Run collect-due for the selected store and retain the generated run id.","Review reliability grade, raw payload, checked_at, and source ledger after collection.","Use official map APIs with server-side keys, quota monitoring, and IP allowlists.","Run collect-due for this store/source and retain the generated run id plus source ledger.","Ensure formal rows persist checked_at, reliability score, raw payload/excerpt, and evidence items.","Run a connectivity probe before the next formal collection retry.","Collect enough successful probe and formal collection signals to satisfy the stability threshold.","Enable GEO_EXTERNAL_EVIDENCE_AUTORUN on the cloud server and confirm the scheduler thread is alive."],"acceptance_criteria":["source is configured through official API, compliant search API, authorized sync, or AI monitor snapshot","collector plan can request this source explicitly through collect-due","latest formal collection row is auditable with reliability, checked_at, raw material, and ledger coverage","connectivity probe and stability matrix prove long-term source health","operators can see the compliance boundary before every retry"],"compliance_boundary":"Use official map APIs with server-side keys, quota monitoring, and IP allowlists.","completion_packet":{"run_id":null,"status":"","ok":false,"summary":{},"next_action":""},"runbook_item":{"id":"external_source:all:baidu_maps","source":"external_evidence_source_runbook","action_type":"collect_due_source","lane":"collection_due","lane_label":"Collection due","status":"due_now","priority_score":82,"priority_label":"P1","title":"百度地图官方 API source runbook","message":"Configured but no collection row exists yet; run now to create the first auditable baseline.","action":"已具备配置，但还没有该来源的采集记录；建议立即运行外部证据采集。","action_url":"/geo/evidence","api_url":"/geo/api/evidence/external-source-runbook?store_id=0","store_id":0,"store_name":"","source_id":"baidu_maps","provider":"baidu_maps","section":"maps","channel":"official_api","configured":true,"target_count":0,"cadence_hours":168,"plan_state":"due","health_status":"warning","stability_status":"warning","latest_status":"","latest_status_label":"","latest_checked_at":null,"latest_age_hours":null,"latest_error":"","latest_run_id":null,"next_run_at":"2026-06-13T05:02:57.249172+00:00","protected_until":null,"success_rate":null,"signal_count":0,"collection_signal_count":0,"probe_signal_count":0,"failure_streak":0,"consecutive_problem_count":0,"consecutive_blocker_count":0,"compliance_boundary":"Use official map APIs with server-side keys, quota monitoring, and IP allowlists.","collector_options":{"include_maps":true,"include_search":false,"include_dianping":false,"include_ai":false,"map_provider_ids":["baidu_maps"],"search_provider_ids":[]},"operator_steps":["Run collect-due for the selected store and retain the generated run id.","Review reliability grade, raw payload, checked_at, and source ledger after collection.","Use official map APIs with server-side keys, quota monitoring, and IP allowlists."],"acceptance_criteria":["collect-due creates a fresh GeoPlatformEvidence row for the source","source state returns to scheduled/stable or explains a compliant not-found result","raw evidence, reliability score, checked_at, and error payload are retained","collection respects official APIs, authorized sync, or compliant public search boundaries"]},"execution_row":{"source_id":"baidu_maps","provider":"baidu_maps","label":"百度地图官方 API","category":"map","channel":"official_api","section":"maps","status":"blocker","priority":"P0","configured":true,"target_count":0,"plan_state":"due","health_status":"warning","stability_status":"warning","latest_run_id":null,"latest_row_id":null,"latest_status":"","latest_checked_at":null,"latest_age_hours":null,"latest_reliability_grade":"","latest_reliability_score":null,"latest_error":"","item_count":0,"ledger_entry_present":false,"probe_status":"","probe_run_id":null,"signal_count":0,"success_rate":null,"compliance_boundary":"Use official map APIs with server-side keys, quota monitoring, and IP allowlists.","requirements":[{"code":"source_catalog","title":"Source catalog entry","status":"ok","category":"source_contract","required":true,"priority":"P2","message":"Source exists in SOURCE_SPECS.","next_action":"Keep this source in the external evidence source catalog.","acceptance":"Source has a stable source_id, provider, channel, cadence, and compliance category.","evidence":{"source_id":"baidu_maps","provider":"baidu_maps","channel":"official_api","cadence_hours":168}},{"code":"source_configuration","title":"Cloud source configuration","status":"ok","category":"configuration","required":true,"priority":"P2","message":"配置已就绪","next_action":"已具备配置，但还没有该来源的采集记录；建议立即运行外部证据采集。","acceptance":"Cloud worker can legally access this source without bypassing platform access controls.","evidence":{"configured":true,"target_count":0,"config_env":"BAIDU_MAP_API_KEY"}},{"code":"collector_plan_contract","title":"Collector plan contract","status":"ok","category":"collector","required":true,"priority":"P2","message":"Configured but no collection row exists yet; run now to create the first auditable baseline.","next_action":"Repair collection plan routing or source catalog mapping before collect-due.","acceptance":"collection_packet.collector_options can request exactly this source.","evidence":{"state":"due","collector_options":{"include_maps":true,"include_search":false,"include_dianping":false,"include_ai":false,"map_provider_ids":["baidu_maps"],"search_provider_ids":[]}}},{"code":"collection_plan_state","title":"Collection plan state","status":"ok","category":"collector","required":true,"priority":"P2","message":"Configured but no collection row exists yet; run now to create the first auditable baseline.","next_action":"Keep this source on the protected scheduler cadence.","acceptance":"Source is due, scheduled, or cooling down; protected/blocked states have an explicit repair path.","evidence":{"state":"due","reason":"Configured but no collection row exists yet; run now to create the first auditable baseline.","next_run_at":"2026-06-13T05:02:57.356944+00:00","protected_until":null}},{"code":"latest_formal_collection","title":"Latest formal collection","status":"blocker","category":"formal_collection","required":true,"priority":"P0","message":"No formal GeoPlatformEvidence row exists for this source.","next_action":"Run collect-due or repair source errors before relying on this source.","acceptance":"Latest GeoPlatformEvidence row is positive or has an auditable weak/not-found explanation.","evidence":{"run_id":null,"row_id":null,"status":"","checked_at":"","age_hours":null,"error_message":""}},{"code":"source_ledger_coverage","title":"Source ledger coverage","status":"blocker","category":"formal_collection","required":true,"priority":"P0","message":"Latest formal row has no source_ledger coverage entry.","next_action":"Rerun with the current collector so source_ledger records requested/covered/missing states.","acceptance":"Latest run raw_payload.source_ledger includes this source_id.","evidence":{"run_id":null,"ledger_present":false,"ledger_entry":{}}},{"code":"formal_row_quality","title":"Formal row quality","status":"blocker","category":"formal_collection","required":true,"priority":"P0","message":"No formal row exists, so quality fields cannot be verified.","next_action":"Persist checked_at, reliability score, raw payload/excerpt, URL, error, and evidence items.","acceptance":"Formal row is auditable and can be used by reliability scoring and attribution baselines.","evidence":{}},{"code":"connectivity_probe","title":"Connectivity probe evidence","status":"warning","category":"stability","required":false,"priority":"P1","message":"No latest connectivity probe row for this source.","next_action":"Run /geo/evidence/probe-store before the next formal retry if the source is weak or blocked.","acceptance":"A recent connectivity probe confirms source access without writing formal evidence rows.","evidence":{"probe_run_id":null,"probe_status":"","status":"","completed_at":""}},{"code":"stability_signal","title":"Long-term stability signal","status":"warning","category":"stability","required":true,"priority":"P1","message":"No collection or connectivity probe signal exists in the lookback window.","next_action":"Run connectivity probe and collect-due on this source for at least two successful signals.","acceptance":"Recent formal collection and probe signals meet configured stability thresholds.","evidence":{"signal_count":0,"success_rate":null,"consecutive_blocker_count":0,"latest_status":""}},{"code":"compliance_boundary","title":"Compliance boundary","status":"ok","category":"compliance","required":true,"priority":"P2","message":"Use official map APIs with server-side keys, quota monitoring, and IP allowlists.","next_action":"Define whether this source uses official API, compliant search API, authorized sync, or AI monitor snapshots.","acceptance":"Operators can see the allowed collection boundary before retrying.","evidence":{"channel":"official_api","compliance_note":"Use official map APIs with server-side keys, quota monitoring, and IP allowlists.","ledger_compliance_note":""}},{"code":"scheduler_cadence","title":"Scheduler cadence","status":"warning","category":"scheduler","required":false,"priority":"P1","message":"Scheduler is not fully proven alive in this process.","next_action":"Enable GEO_EXTERNAL_EVIDENCE_AUTORUN and confirm the cloud process has an alive scheduler thread.","acceptance":"Long-term evidence refreshes run on configured cadence without manual operation.","evidence":{"autorun_enabled":false,"thread_alive":false,"last_status":"","interval_seconds":21600}}],"blocker_count":3,"warning_count":3,"next_action":"Run collect-due or repair source errors before relying on this source.","operator_steps":["Run collect-due for this store/source and retain the generated run id plus source ledger.","Ensure formal rows persist checked_at, reliability score, raw payload/excerpt, and evidence items.","Run a connectivity probe before the next formal collection retry.","Collect enough successful probe and formal collection signals to satisfy the stability threshold.","Enable GEO_EXTERNAL_EVIDENCE_AUTORUN on the cloud server and confirm the scheduler thread is alive."],"acceptance_criteria":["source is configured through official API, compliant search API, authorized sync, or AI monitor snapshot","collector plan can request this source explicitly through collect-due","latest formal collection row is auditable with reliability, checked_at, raw material, and ledger coverage","connectivity probe and stability matrix prove long-term source health","operators can see the compliance boundary before every retry"]},"workspace_links":{"page":"/geo/evidence","workspace_api":"/geo/api/evidence/external-collection-workspace-packet?store_id=0&limit=80","runbook_api":"/geo/api/evidence/external-source-runbook?store_id=0","execution_api":"/geo/api/evidence/external-source-execution-packet?store_id=0&source_id=baidu_maps","completion_api":"","run_detail":"","collect_due":"/geo/evidence/collect-due","probe":"/geo/evidence/probe-store"},"next_action":"Persist checked_at, reliability score, raw payload/excerpt, URL, error, and evidence items."},{"source_id":"dianping_monitor","provider":"dianping","label":"大众点评同步监控 source runbook","section":"dianping","channel":"external_sync","status":"blocker","priority":"P0","runbook_status":"blocked","execution_status":"blocker","health_status":"blocker","plan_state":"blocked","stability_status":"blocker","latest_run_id":null,"latest_status":"","latest_checked_at":null,"latest_age_hours":null,"latest_error":"","next_run_at":"2026-06-13T05:02:57.432105+00:00","protected_until":null,"probe_status":"","probe_run_id":null,"signal_count":0,"success_rate":null,"repair_action_count":9,"repair_actions":[{"id":"external_evidence_workspace:dianping_monitor:external_evidence_source_execution_packet:collection_plan_state","source":"external_evidence_source_execution_packet","source_id":"dianping_monitor","status":"blocker","priority":"P0","category":"collector","code":"collection_plan_state","title":"Collection plan state","message":"先配置大众点评监控目标（自店/竞品），并通过同步接口沉淀指标快照。","next_action":"Repair source configuration, authorization, target setup, or latest blocking error.","acceptance":"Source is due, scheduled, or cooling down; protected/blocked states have an explicit repair path.","evidence":{"state":"blocked","reason":"先配置大众点评监控目标（自店/竞品），并通过同步接口沉淀指标快照。","next_run_at":"2026-06-13T05:02:57.362145+00:00","protected_until":null},"latest_run_id":null},{"id":"external_evidence_workspace:dianping_monitor:external_evidence_source_execution_packet:formal_row_quality","source":"external_evidence_source_execution_packet","source_id":"dianping_monitor","status":"blocker","priority":"P0","category":"formal_collection","code":"formal_row_quality","title":"Formal row quality","message":"No formal row exists, so quality fields cannot be verified.","next_action":"Persist checked_at, reliability score, raw payload/excerpt, URL, error, and evidence items.","acceptance":"Formal row is auditable and can be used by reliability scoring and attribution baselines.","evidence":{},"latest_run_id":null},{"id":"external_evidence_workspace:dianping_monitor:external_evidence_source_execution_packet:latest_formal_collection","source":"external_evidence_source_execution_packet","source_id":"dianping_monitor","status":"blocker","priority":"P0","category":"formal_collection","code":"latest_formal_collection","title":"Latest formal collection","message":"No formal GeoPlatformEvidence row exists for this source.","next_action":"Run collect-due or repair source errors before relying on this source.","acceptance":"Latest GeoPlatformEvidence row is positive or has an auditable weak/not-found explanation.","evidence":{"run_id":null,"row_id":null,"status":"","checked_at":"","age_hours":null,"error_message":""},"latest_run_id":null},{"id":"external_evidence_workspace:dianping_monitor:external_evidence_source_execution_packet:source_configuration","source":"external_evidence_source_execution_packet","source_id":"dianping_monitor","status":"blocker","priority":"P0","category":"configuration","code":"source_configuration","title":"Cloud source configuration","message":"未配置大众点评监控目标","next_action":"先配置大众点评监控目标（自店/竞品），并通过同步接口沉淀指标快照。","acceptance":"Cloud worker can legally access this source without bypassing platform access controls.","evidence":{"configured":false,"target_count":0,"config_env":"DIANPING_OPEN_APP_KEY / DIANPING_OPEN_APP_SECRET / DIANPING_OPEN_ACCESS_TOKEN"},"latest_run_id":null},{"id":"external_evidence_workspace:dianping_monitor:external_evidence_source_execution_packet:source_ledger_coverage","source":"external_evidence_source_execution_packet","source_id":"dianping_monitor","status":"blocker","priority":"P0","category":"formal_collection","code":"source_ledger_coverage","title":"Source ledger coverage","message":"Latest formal row has no source_ledger coverage entry.","next_action":"Rerun with the current collector so source_ledger records requested/covered/missing states.","acceptance":"Latest run raw_payload.source_ledger includes this source_id.","evidence":{"run_id":null,"ledger_present":false,"ledger_entry":{}},"latest_run_id":null},{"id":"external_evidence_workspace:dianping_monitor:external_evidence_source_execution_packet:stability_signal","source":"external_evidence_source_execution_packet","source_id":"dianping_monitor","status":"blocker","priority":"P0","category":"stability","code":"stability_signal","title":"Long-term stability signal","message":"Health matrix has a configuration, authorization, or latest-source blocker.","next_action":"先配置大众点评监控目标（自店/竞品），并通过同步接口沉淀指标快照。","acceptance":"Recent formal collection and probe signals meet configured stability thresholds.","evidence":{"signal_count":0,"success_rate":null,"consecutive_blocker_count":0,"latest_status":""},"latest_run_id":null},{"id":"external_evidence_workspace:dianping_monitor:external_evidence_source_runbook:fix_external_source","source":"external_evidence_source_runbook","source_id":"dianping_monitor","status":"blocker","priority":"P0","category":"source_blocked","code":"fix_external_source","title":"大众点评同步监控 source runbook","message":"先配置大众点评监控目标（自店/竞品），并通过同步接口沉淀指标快照。","next_action":"先配置大众点评监控目标（自店/竞品），并通过同步接口沉淀指标快照。","acceptance":"latest blocker is fixed or converted into an auditable cooldown state; connectivity probe is warning/ok before formal collection retry; raw evidence, reliability score, checked_at, and error payload are retained","evidence":{"plan_state":"blocked","stability_status":"blocker","next_run_at":"2026-06-13T05:02:57.257163+00:00","protected_until":null},"latest_run_id":null},{"id":"external_evidence_workspace:dianping_monitor:external_evidence_source_execution_packet:connectivity_probe","source":"external_evidence_source_execution_packet","source_id":"dianping_monitor","status":"warning","priority":"P1","category":"stability","code":"connectivity_probe","title":"Connectivity probe evidence","message":"No latest connectivity probe row for this source.","next_action":"Run /geo/evidence/probe-store before the next formal retry if the source is weak or blocked.","acceptance":"A recent connectivity probe confirms source access without writing formal evidence rows.","evidence":{"probe_run_id":null,"probe_status":"","status":"","completed_at":""},"latest_run_id":null},{"id":"external_evidence_workspace:dianping_monitor:external_evidence_source_execution_packet:scheduler_cadence","source":"external_evidence_source_execution_packet","source_id":"dianping_monitor","status":"warning","priority":"P1","category":"scheduler","code":"scheduler_cadence","title":"Scheduler cadence","message":"Scheduler is not fully proven alive in this process.","next_action":"Enable GEO_EXTERNAL_EVIDENCE_AUTORUN and confirm the cloud process has an alive scheduler thread.","acceptance":"Long-term evidence refreshes run on configured cadence without manual operation.","evidence":{"autorun_enabled":false,"thread_alive":false,"last_status":"","interval_seconds":21600},"latest_run_id":null}],"operator_steps":["Fix missing API keys, authorized monitor targets, quota, or latest source errors.","Run a connectivity probe before writing new official evidence rows.","Use authorized Dianping/Meituan monitor targets or manually verified links; keep self and competitor targets separated.","Configure the required API key, authorized sync target, or real-user monitor target for this source.","Repair the source collection plan so collect-due can request this source explicitly.","Run collect-due for this store/source and retain the generated run id plus source ledger.","Ensure formal rows persist checked_at, reliability score, raw payload/excerpt, and evidence items.","Run a connectivity probe before the next formal collection retry."],"acceptance_criteria":["source is configured through official API, compliant search API, authorized sync, or AI monitor snapshot","collector plan can request this source explicitly through collect-due","latest formal collection row is auditable with reliability, checked_at, raw material, and ledger coverage","connectivity probe and stability matrix prove long-term source health","operators can see the compliance boundary before every retry"],"compliance_boundary":"Use authorized Dianping/Meituan monitor targets or manually verified links; keep self and competitor targets separated.","completion_packet":{"run_id":null,"status":"","ok":false,"summary":{},"next_action":""},"runbook_item":{"id":"external_source:all:dianping_monitor","source":"external_evidence_source_runbook","action_type":"fix_external_source","lane":"source_blocked","lane_label":"Source blocked","status":"blocked","priority_score":92,"priority_label":"P0","title":"大众点评同步监控 source runbook","message":"先配置大众点评监控目标（自店/竞品），并通过同步接口沉淀指标快照。","action":"先配置大众点评监控目标（自店/竞品），并通过同步接口沉淀指标快照。","action_url":"/geo/evidence","api_url":"/geo/api/evidence/external-source-runbook?store_id=0","store_id":0,"store_name":"","source_id":"dianping_monitor","provider":"dianping","section":"dianping","channel":"external_sync","configured":false,"target_count":0,"cadence_hours":24,"plan_state":"blocked","health_status":"blocker","stability_status":"blocker","latest_status":"","latest_status_label":"","latest_checked_at":null,"latest_age_hours":null,"latest_error":"","latest_run_id":null,"next_run_at":"2026-06-13T05:02:57.257163+00:00","protected_until":null,"success_rate":null,"signal_count":0,"collection_signal_count":0,"probe_signal_count":0,"failure_streak":0,"consecutive_problem_count":0,"consecutive_blocker_count":0,"compliance_boundary":"Use authorized Dianping/Meituan monitor targets or manually verified links; keep self and competitor targets separated.","collector_options":{"include_maps":false,"include_search":false,"include_dianping":true,"include_ai":false,"map_provider_ids":[],"search_provider_ids":[]},"operator_steps":["Fix missing API keys, authorized monitor targets, quota, or latest source errors.","Run a connectivity probe before writing new official evidence rows.","Use authorized Dianping/Meituan monitor targets or manually verified links; keep self and competitor targets separated."],"acceptance_criteria":["latest blocker is fixed or converted into an auditable cooldown state","connectivity probe is warning/ok before formal collection retry","raw evidence, reliability score, checked_at, and error payload are retained","collection respects official APIs, authorized sync, or compliant public search boundaries"]},"execution_row":{"source_id":"dianping_monitor","provider":"dianping","label":"大众点评同步监控","category":"life","channel":"external_sync","section":"dianping","status":"blocker","priority":"P0","configured":false,"target_count":0,"plan_state":"blocked","health_status":"blocker","stability_status":"blocker","latest_run_id":null,"latest_row_id":null,"latest_status":"","latest_checked_at":null,"latest_age_hours":null,"latest_reliability_grade":"","latest_reliability_score":null,"latest_error":"","item_count":0,"ledger_entry_present":false,"probe_status":"","probe_run_id":null,"signal_count":0,"success_rate":null,"compliance_boundary":"Use authorized Dianping/Meituan monitor targets or manually verified links; keep self and competitor targets separated.","requirements":[{"code":"source_catalog","title":"Source catalog entry","status":"ok","category":"source_contract","required":true,"priority":"P2","message":"Source exists in SOURCE_SPECS.","next_action":"Keep this source in the external evidence source catalog.","acceptance":"Source has a stable source_id, provider, channel, cadence, and compliance category.","evidence":{"source_id":"dianping_monitor","provider":"dianping","channel":"external_sync","cadence_hours":24}},{"code":"source_configuration","title":"Cloud source configuration","status":"blocker","category":"configuration","required":true,"priority":"P0","message":"未配置大众点评监控目标","next_action":"先配置大众点评监控目标（自店/竞品），并通过同步接口沉淀指标快照。","acceptance":"Cloud worker can legally access this source without bypassing platform access controls.","evidence":{"configured":false,"target_count":0,"config_env":"DIANPING_OPEN_APP_KEY / DIANPING_OPEN_APP_SECRET / DIANPING_OPEN_ACCESS_TOKEN"}},{"code":"collector_plan_contract","title":"Collector plan contract","status":"ok","category":"collector","required":true,"priority":"P2","message":"先配置大众点评监控目标（自店/竞品），并通过同步接口沉淀指标快照。","next_action":"Repair collection plan routing or source catalog mapping before collect-due.","acceptance":"collection_packet.collector_options can request exactly this source.","evidence":{"state":"blocked","collector_options":{"include_maps":false,"include_search":false,"include_dianping":true,"include_ai":false,"map_provider_ids":[],"search_provider_ids":[]}}},{"code":"collection_plan_state","title":"Collection plan state","status":"blocker","category":"collector","required":true,"priority":"P0","message":"先配置大众点评监控目标（自店/竞品），并通过同步接口沉淀指标快照。","next_action":"Repair source configuration, authorization, target setup, or latest blocking error.","acceptance":"Source is due, scheduled, or cooling down; protected/blocked states have an explicit repair path.","evidence":{"state":"blocked","reason":"先配置大众点评监控目标（自店/竞品），并通过同步接口沉淀指标快照。","next_run_at":"2026-06-13T05:02:57.362145+00:00","protected_until":null}},{"code":"latest_formal_collection","title":"Latest formal collection","status":"blocker","category":"formal_collection","required":true,"priority":"P0","message":"No formal GeoPlatformEvidence row exists for this source.","next_action":"Run collect-due or repair source errors before relying on this source.","acceptance":"Latest GeoPlatformEvidence row is positive or has an auditable weak/not-found explanation.","evidence":{"run_id":null,"row_id":null,"status":"","checked_at":"","age_hours":null,"error_message":""}},{"code":"source_ledger_coverage","title":"Source ledger coverage","status":"blocker","category":"formal_collection","required":true,"priority":"P0","message":"Latest formal row has no source_ledger coverage entry.","next_action":"Rerun with the current collector so source_ledger records requested/covered/missing states.","acceptance":"Latest run raw_payload.source_ledger includes this source_id.","evidence":{"run_id":null,"ledger_present":false,"ledger_entry":{}}},{"code":"formal_row_quality","title":"Formal row quality","status":"blocker","category":"formal_collection","required":true,"priority":"P0","message":"No formal row exists, so quality fields cannot be verified.","next_action":"Persist checked_at, reliability score, raw payload/excerpt, URL, error, and evidence items.","acceptance":"Formal row is auditable and can be used by reliability scoring and attribution baselines.","evidence":{}},{"code":"connectivity_probe","title":"Connectivity probe evidence","status":"warning","category":"stability","required":false,"priority":"P1","message":"No latest connectivity probe row for this source.","next_action":"Run /geo/evidence/probe-store before the next formal retry if the source is weak or blocked.","acceptance":"A recent connectivity probe confirms source access without writing formal evidence rows.","evidence":{"probe_run_id":null,"probe_status":"","status":"","completed_at":""}},{"code":"stability_signal","title":"Long-term stability signal","status":"blocker","category":"stability","required":true,"priority":"P0","message":"Health matrix has a configuration, authorization, or latest-source blocker.","next_action":"先配置大众点评监控目标（自店/竞品），并通过同步接口沉淀指标快照。","acceptance":"Recent formal collection and probe signals meet configured stability thresholds.","evidence":{"signal_count":0,"success_rate":null,"consecutive_blocker_count":0,"latest_status":""}},{"code":"compliance_boundary","title":"Compliance boundary","status":"ok","category":"compliance","required":true,"priority":"P2","message":"Use authorized Dianping/Meituan monitor targets or manually verified links; keep self and competitor targets separated.","next_action":"Define whether this source uses official API, compliant search API, authorized sync, or AI monitor snapshots.","acceptance":"Operators can see the allowed collection boundary before retrying.","evidence":{"channel":"external_sync","compliance_note":"Use authorized Dianping/Meituan monitor targets or manually verified links; keep self and competitor targets separated.","ledger_compliance_note":""}},{"code":"scheduler_cadence","title":"Scheduler cadence","status":"warning","category":"scheduler","required":false,"priority":"P1","message":"Scheduler is not fully proven alive in this process.","next_action":"Enable GEO_EXTERNAL_EVIDENCE_AUTORUN and confirm the cloud process has an alive scheduler thread.","acceptance":"Long-term evidence refreshes run on configured cadence without manual operation.","evidence":{"autorun_enabled":false,"thread_alive":false,"last_status":"","interval_seconds":21600}}],"blocker_count":6,"warning_count":2,"next_action":"先配置大众点评监控目标（自店/竞品），并通过同步接口沉淀指标快照。","operator_steps":["Configure the required API key, authorized sync target, or real-user monitor target for this source.","Repair the source collection plan so collect-due can request this source explicitly.","Run collect-due for this store/source and retain the generated run id plus source ledger.","Ensure formal rows persist checked_at, reliability score, raw payload/excerpt, and evidence items.","Run a connectivity probe before the next formal collection retry.","Collect enough successful probe and formal collection signals to satisfy the stability threshold.","Enable GEO_EXTERNAL_EVIDENCE_AUTORUN on the cloud server and confirm the scheduler thread is alive."],"acceptance_criteria":["source is configured through official API, compliant search API, authorized sync, or AI monitor snapshot","collector plan can request this source explicitly through collect-due","latest formal collection row is auditable with reliability, checked_at, raw material, and ledger coverage","connectivity probe and stability matrix prove long-term source health","operators can see the compliance boundary before every retry"]},"workspace_links":{"page":"/geo/evidence","workspace_api":"/geo/api/evidence/external-collection-workspace-packet?store_id=0&limit=80","runbook_api":"/geo/api/evidence/external-source-runbook?store_id=0","execution_api":"/geo/api/evidence/external-source-execution-packet?store_id=0&source_id=dianping_monitor","completion_api":"","run_detail":"","collect_due":"/geo/evidence/collect-due","probe":"/geo/evidence/probe-store"},"next_action":"Repair source configuration, authorization, target setup, or latest blocking error."},{"source_id":"dianping_search","provider":"dianping","label":"大众点评公开搜索 source runbook","section":"search","channel":"search_api","status":"blocker","priority":"P0","runbook_status":"blocked","execution_status":"blocker","health_status":"blocker","plan_state":"blocked","stability_status":"blocker","latest_run_id":77,"latest_status":"found","latest_checked_at":"2026-06-13T01:10:46.999286","latest_age_hours":3,"latest_error":"","next_run_at":"2026-06-16T01:10:46.999286+00:00","protected_until":null,"probe_status":"","probe_run_id":null,"signal_count":30,"success_rate":100.0,"repair_action_count":8,"repair_actions":[{"id":"external_evidence_workspace:dianping_search:external_evidence_collection_completion_packet:requested_source_coverage","source":"external_evidence_collection_completion_packet","source_id":"dianping_search","status":"blocker","priority":"P0","category":"collection_completion","code":"requested_source_coverage","title":"Requested source coverage","message":"3/9 requested source(s) did not produce an auditable row.","next_action":"Fix missing source configuration or collector section errors, then rerun collect-due for this store.","acceptance":"Every requested external source has a GeoPlatformEvidence row or an explicit missing-source explanation.","evidence":{"requested":9,"covered":7,"missing":3,"row_count":7},"latest_run_id":77},{"id":"external_evidence_workspace:dianping_search:external_evidence_source_execution_packet:collection_plan_state","source":"external_evidence_source_execution_packet","source_id":"dianping_search","status":"blocker","priority":"P0","category":"collector","code":"collection_plan_state","title":"Collection plan state","message":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_action":"Repair source configuration, authorization, target setup, or latest blocking error.","acceptance":"Source is due, scheduled, or cooling down; protected/blocked states have an explicit repair path.","evidence":{"state":"blocked","reason":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_run_at":"2026-06-16T01:10:46.999286+00:00","protected_until":null},"latest_run_id":77},{"id":"external_evidence_workspace:dianping_search:external_evidence_source_execution_packet:source_configuration","source":"external_evidence_source_execution_packet","source_id":"dianping_search","status":"blocker","priority":"P0","category":"configuration","code":"source_configuration","title":"Cloud source configuration","message":"缺少环境变量：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY","next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","acceptance":"Cloud worker can legally access this source without bypassing platform access controls.","evidence":{"configured":false,"target_count":0,"config_env":"BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY"},"latest_run_id":77},{"id":"external_evidence_workspace:dianping_search:external_evidence_source_execution_packet:stability_signal","source":"external_evidence_source_execution_packet","source_id":"dianping_search","status":"blocker","priority":"P0","category":"stability","code":"stability_signal","title":"Long-term stability signal","message":"Health matrix has a configuration, authorization, or latest-source blocker.","next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","acceptance":"Recent formal collection and probe signals meet configured stability thresholds.","evidence":{"signal_count":30,"success_rate":100.0,"consecutive_blocker_count":0,"latest_status":"found"},"latest_run_id":77},{"id":"external_evidence_workspace:dianping_search:external_evidence_source_runbook:fix_external_source","source":"external_evidence_source_runbook","source_id":"dianping_search","status":"blocker","priority":"P0","category":"source_blocked","code":"fix_external_source","title":"大众点评公开搜索 source runbook","message":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","acceptance":"latest blocker is fixed or converted into an auditable cooldown state; connectivity probe is warning/ok before formal collection retry; raw evidence, reliability score, checked_at, and error payload are retained","evidence":{"plan_state":"blocked","stability_status":"blocker","next_run_at":"2026-06-16T01:10:46.999286+00:00","protected_until":null},"latest_run_id":77},{"id":"external_evidence_workspace:dianping_search:external_evidence_source_execution_packet:connectivity_probe","source":"external_evidence_source_execution_packet","source_id":"dianping_search","status":"warning","priority":"P1","category":"stability","code":"connectivity_probe","title":"Connectivity probe evidence","message":"No latest connectivity probe row for this source.","next_action":"Run /geo/evidence/probe-store before the next formal retry if the source is weak or blocked.","acceptance":"A recent connectivity probe confirms source access without writing formal evidence rows.","evidence":{"probe_run_id":null,"probe_status":"","status":"","completed_at":""},"latest_run_id":77},{"id":"external_evidence_workspace:dianping_search:external_evidence_source_execution_packet:scheduler_cadence","source":"external_evidence_source_execution_packet","source_id":"dianping_search","status":"warning","priority":"P1","category":"scheduler","code":"scheduler_cadence","title":"Scheduler cadence","message":"Scheduler is not fully proven alive in this process.","next_action":"Enable GEO_EXTERNAL_EVIDENCE_AUTORUN and confirm the cloud process has an alive scheduler thread.","acceptance":"Long-term evidence refreshes run on configured cadence without manual operation.","evidence":{"autorun_enabled":false,"thread_alive":false,"last_status":"","interval_seconds":21600},"latest_run_id":77},{"id":"external_evidence_workspace:dianping_search:external_evidence_source_execution_packet:source_ledger_coverage","source":"external_evidence_source_execution_packet","source_id":"dianping_search","status":"warning","priority":"P1","category":"formal_collection","code":"source_ledger_coverage","title":"Source ledger coverage","message":"Latest formal row has no source_ledger coverage entry.","next_action":"Rerun with the current collector so source_ledger records requested/covered/missing states.","acceptance":"Latest run raw_payload.source_ledger includes this source_id.","evidence":{"run_id":77,"ledger_present":false,"ledger_entry":{}},"latest_run_id":77}],"operator_steps":["Fix missing API keys, authorized monitor targets, quota, or latest source errors.","Run a connectivity probe before writing new official evidence rows.","Use compliant public search APIs only; do not bypass platform login, captcha, robots, or access controls.","Configure the required API key, authorized sync target, or real-user monitor target for this source.","Repair the source collection plan so collect-due can request this source explicitly.","Run collect-due for this store/source and retain the generated run id plus source ledger.","Run a connectivity probe before the next formal collection retry.","Collect enough successful probe and formal collection signals to satisfy the stability threshold."],"acceptance_criteria":["source is configured through official API, compliant search API, authorized sync, or AI monitor snapshot","collector plan can request this source explicitly through collect-due","latest formal collection row is auditable with reliability, checked_at, raw material, and ledger coverage","connectivity probe and stability matrix prove long-term source health","operators can see the compliance boundary before every retry"],"compliance_boundary":"Use compliant public search APIs only; do not bypass platform login, captcha, robots, or access controls.","completion_packet":{"run_id":77,"status":"needs_repair","ok":false,"summary":{"requirement_count":4,"blocker_count":1,"warning_count":1,"platform_row_count":7,"requested_count":9,"covered_count":7,"missing_count":3,"ok_source_count":6,"cooldown_source_count":0,"blocked_source_count":0,"review_source_count":1,"avg_reliability_score":84.6},"next_action":"Review the candidate evidence manually, add verified links if needed, and tune store aliases or target keywords."},"runbook_item":{"id":"external_source:all:dianping_search","source":"external_evidence_source_runbook","action_type":"fix_external_source","lane":"source_blocked","lane_label":"Source blocked","status":"blocked","priority_score":92,"priority_label":"P0","title":"大众点评公开搜索 source runbook","message":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","action_url":"/geo/evidence","api_url":"/geo/api/evidence/external-source-runbook?store_id=0","store_id":0,"store_name":"","source_id":"dianping_search","provider":"dianping","section":"search","channel":"search_api","configured":false,"target_count":0,"cadence_hours":72,"plan_state":"blocked","health_status":"blocker","stability_status":"blocker","latest_status":"found","latest_status_label":"已找到","latest_checked_at":"2026-06-13T01:10:46.999286+00:00","latest_age_hours":3,"latest_error":"","latest_run_id":77,"next_run_at":"2026-06-16T01:10:46.999286+00:00","protected_until":null,"success_rate":100.0,"signal_count":30,"collection_signal_count":30,"probe_signal_count":0,"failure_streak":0,"consecutive_problem_count":0,"consecutive_blocker_count":0,"compliance_boundary":"Use compliant public search APIs only; do not bypass platform login, captcha, robots, or access controls.","collector_options":{"include_maps":false,"include_search":true,"include_dianping":false,"include_ai":false,"map_provider_ids":[],"search_provider_ids":["dianping"]},"operator_steps":["Fix missing API keys, authorized monitor targets, quota, or latest source errors.","Run a connectivity probe before writing new official evidence rows.","Use compliant public search APIs only; do not bypass platform login, captcha, robots, or access controls."],"acceptance_criteria":["latest blocker is fixed or converted into an auditable cooldown state","connectivity probe is warning/ok before formal collection retry","raw evidence, reliability score, checked_at, and error payload are retained","collection respects official APIs, authorized sync, or compliant public search boundaries"]},"execution_row":{"source_id":"dianping_search","provider":"dianping","label":"大众点评公开搜索","category":"life","channel":"search_api","section":"search","status":"blocker","priority":"P0","configured":false,"target_count":0,"plan_state":"blocked","health_status":"blocker","stability_status":"blocker","latest_run_id":77,"latest_row_id":446,"latest_status":"found","latest_checked_at":"2026-06-13T01:10:46.999286","latest_age_hours":3,"latest_reliability_grade":"A","latest_reliability_score":91.2,"latest_error":null,"item_count":2,"ledger_entry_present":false,"probe_status":"","probe_run_id":null,"signal_count":30,"success_rate":100.0,"compliance_boundary":"Use compliant public search APIs only; do not bypass platform login, captcha, robots, or access controls.","requirements":[{"code":"source_catalog","title":"Source catalog entry","status":"ok","category":"source_contract","required":true,"priority":"P2","message":"Source exists in SOURCE_SPECS.","next_action":"Keep this source in the external evidence source catalog.","acceptance":"Source has a stable source_id, provider, channel, cadence, and compliance category.","evidence":{"source_id":"dianping_search","provider":"dianping","channel":"search_api","cadence_hours":72}},{"code":"source_configuration","title":"Cloud source configuration","status":"blocker","category":"configuration","required":true,"priority":"P0","message":"缺少环境变量：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY","next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","acceptance":"Cloud worker can legally access this source without bypassing platform access controls.","evidence":{"configured":false,"target_count":0,"config_env":"BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY"}},{"code":"collector_plan_contract","title":"Collector plan contract","status":"ok","category":"collector","required":true,"priority":"P2","message":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_action":"Repair collection plan routing or source catalog mapping before collect-due.","acceptance":"collection_packet.collector_options can request exactly this source.","evidence":{"state":"blocked","collector_options":{"include_maps":false,"include_search":true,"include_dianping":false,"include_ai":false,"map_provider_ids":[],"search_provider_ids":["dianping"]}}},{"code":"collection_plan_state","title":"Collection plan state","status":"blocker","category":"collector","required":true,"priority":"P0","message":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_action":"Repair source configuration, authorization, target setup, or latest blocking error.","acceptance":"Source is due, scheduled, or cooling down; protected/blocked states have an explicit repair path.","evidence":{"state":"blocked","reason":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_run_at":"2026-06-16T01:10:46.999286+00:00","protected_until":null}},{"code":"latest_formal_collection","title":"Latest formal collection","status":"ok","category":"formal_collection","required":true,"priority":"P2","message":"Latest formal collection row is positive.","next_action":"Run collect-due or repair source errors before relying on this source.","acceptance":"Latest GeoPlatformEvidence row is positive or has an auditable weak/not-found explanation.","evidence":{"run_id":77,"row_id":446,"status":"found","checked_at":"2026-06-13T01:10:46.999286","age_hours":3,"error_message":null}},{"code":"source_ledger_coverage","title":"Source ledger coverage","status":"warning","category":"formal_collection","required":true,"priority":"P1","message":"Latest formal row has no source_ledger coverage entry.","next_action":"Rerun with the current collector so source_ledger records requested/covered/missing states.","acceptance":"Latest run raw_payload.source_ledger includes this source_id.","evidence":{"run_id":77,"ledger_present":false,"ledger_entry":{}}},{"code":"formal_row_quality","title":"Formal row quality","status":"ok","category":"formal_collection","required":true,"priority":"P2","message":"Formal row retains checked_at, reliability, and raw/error evidence material.","next_action":"Persist checked_at, reliability score, raw payload/excerpt, URL, error, and evidence items.","acceptance":"Formal row is auditable and can be used by reliability scoring and attribution baselines.","evidence":{"checked_at":true,"reliability":true,"raw_material":true,"item_count":2}},{"code":"connectivity_probe","title":"Connectivity probe evidence","status":"warning","category":"stability","required":false,"priority":"P1","message":"No latest connectivity probe row for this source.","next_action":"Run /geo/evidence/probe-store before the next formal retry if the source is weak or blocked.","acceptance":"A recent connectivity probe confirms source access without writing formal evidence rows.","evidence":{"probe_run_id":null,"probe_status":"","status":"","completed_at":""}},{"code":"stability_signal","title":"Long-term stability signal","status":"blocker","category":"stability","required":true,"priority":"P0","message":"Health matrix has a configuration, authorization, or latest-source blocker.","next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","acceptance":"Recent formal collection and probe signals meet configured stability thresholds.","evidence":{"signal_count":30,"success_rate":100.0,"consecutive_blocker_count":0,"latest_status":"found"}},{"code":"compliance_boundary","title":"Compliance boundary","status":"ok","category":"compliance","required":true,"priority":"P2","message":"Use compliant public search APIs only; do not bypass platform login, captcha, robots, or access controls.","next_action":"Define whether this source uses official API, compliant search API, authorized sync, or AI monitor snapshots.","acceptance":"Operators can see the allowed collection boundary before retrying.","evidence":{"channel":"search_api","compliance_note":"Use compliant public search APIs only; do not bypass platform login, captcha, robots, or access controls.","ledger_compliance_note":""}},{"code":"scheduler_cadence","title":"Scheduler cadence","status":"warning","category":"scheduler","required":false,"priority":"P1","message":"Scheduler is not fully proven alive in this process.","next_action":"Enable GEO_EXTERNAL_EVIDENCE_AUTORUN and confirm the cloud process has an alive scheduler thread.","acceptance":"Long-term evidence refreshes run on configured cadence without manual operation.","evidence":{"autorun_enabled":false,"thread_alive":false,"last_status":"","interval_seconds":21600}}],"blocker_count":3,"warning_count":3,"next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","operator_steps":["Configure the required API key, authorized sync target, or real-user monitor target for this source.","Repair the source collection plan so collect-due can request this source explicitly.","Run collect-due for this store/source and retain the generated run id plus source ledger.","Run a connectivity probe before the next formal collection retry.","Collect enough successful probe and formal collection signals to satisfy the stability threshold.","Enable GEO_EXTERNAL_EVIDENCE_AUTORUN on the cloud server and confirm the scheduler thread is alive."],"acceptance_criteria":["source is configured through official API, compliant search API, authorized sync, or AI monitor snapshot","collector plan can request this source explicitly through collect-due","latest formal collection row is auditable with reliability, checked_at, raw material, and ledger coverage","connectivity probe and stability matrix prove long-term source health","operators can see the compliance boundary before every retry"]},"workspace_links":{"page":"/geo/evidence","workspace_api":"/geo/api/evidence/external-collection-workspace-packet?store_id=0&limit=80","runbook_api":"/geo/api/evidence/external-source-runbook?store_id=0","execution_api":"/geo/api/evidence/external-source-execution-packet?store_id=0&source_id=dianping_search","completion_api":"/geo/api/evidence/external-collection-completion-packet?run_id=77","run_detail":"/geo/evidence/77","collect_due":"/geo/evidence/collect-due","probe":"/geo/evidence/probe-store"},"next_action":"Fix missing source configuration or collector section errors, then rerun collect-due for this store."},{"source_id":"douyin_search","provider":"douyin","label":"抖音公开搜索 source runbook","section":"search","channel":"search_api","status":"blocker","priority":"P0","runbook_status":"blocked","execution_status":"blocker","health_status":"blocker","plan_state":"blocked","stability_status":"blocker","latest_run_id":77,"latest_status":"found","latest_checked_at":"2026-06-13T01:10:46.999286","latest_age_hours":3,"latest_error":"","next_run_at":"2026-06-15T01:10:46.999286+00:00","protected_until":null,"probe_status":"","probe_run_id":null,"signal_count":30,"success_rate":100.0,"repair_action_count":8,"repair_actions":[{"id":"external_evidence_workspace:douyin_search:external_evidence_collection_completion_packet:requested_source_coverage","source":"external_evidence_collection_completion_packet","source_id":"douyin_search","status":"blocker","priority":"P0","category":"collection_completion","code":"requested_source_coverage","title":"Requested source coverage","message":"3/9 requested source(s) did not produce an auditable row.","next_action":"Fix missing source configuration or collector section errors, then rerun collect-due for this store.","acceptance":"Every requested external source has a GeoPlatformEvidence row or an explicit missing-source explanation.","evidence":{"requested":9,"covered":7,"missing":3,"row_count":7},"latest_run_id":77},{"id":"external_evidence_workspace:douyin_search:external_evidence_source_execution_packet:collection_plan_state","source":"external_evidence_source_execution_packet","source_id":"douyin_search","status":"blocker","priority":"P0","category":"collector","code":"collection_plan_state","title":"Collection plan state","message":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_action":"Repair source configuration, authorization, target setup, or latest blocking error.","acceptance":"Source is due, scheduled, or cooling down; protected/blocked states have an explicit repair path.","evidence":{"state":"blocked","reason":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_run_at":"2026-06-15T01:10:46.999286+00:00","protected_until":null},"latest_run_id":77},{"id":"external_evidence_workspace:douyin_search:external_evidence_source_execution_packet:source_configuration","source":"external_evidence_source_execution_packet","source_id":"douyin_search","status":"blocker","priority":"P0","category":"configuration","code":"source_configuration","title":"Cloud source configuration","message":"缺少环境变量：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY","next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","acceptance":"Cloud worker can legally access this source without bypassing platform access controls.","evidence":{"configured":false,"target_count":0,"config_env":"BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY"},"latest_run_id":77},{"id":"external_evidence_workspace:douyin_search:external_evidence_source_execution_packet:stability_signal","source":"external_evidence_source_execution_packet","source_id":"douyin_search","status":"blocker","priority":"P0","category":"stability","code":"stability_signal","title":"Long-term stability signal","message":"Health matrix has a configuration, authorization, or latest-source blocker.","next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","acceptance":"Recent formal collection and probe signals meet configured stability thresholds.","evidence":{"signal_count":30,"success_rate":100.0,"consecutive_blocker_count":0,"latest_status":"found"},"latest_run_id":77},{"id":"external_evidence_workspace:douyin_search:external_evidence_source_runbook:fix_external_source","source":"external_evidence_source_runbook","source_id":"douyin_search","status":"blocker","priority":"P0","category":"source_blocked","code":"fix_external_source","title":"抖音公开搜索 source runbook","message":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","acceptance":"latest blocker is fixed or converted into an auditable cooldown state; connectivity probe is warning/ok before formal collection retry; raw evidence, reliability score, checked_at, and error payload are retained","evidence":{"plan_state":"blocked","stability_status":"blocker","next_run_at":"2026-06-15T01:10:46.999286+00:00","protected_until":null},"latest_run_id":77},{"id":"external_evidence_workspace:douyin_search:external_evidence_source_execution_packet:connectivity_probe","source":"external_evidence_source_execution_packet","source_id":"douyin_search","status":"warning","priority":"P1","category":"stability","code":"connectivity_probe","title":"Connectivity probe evidence","message":"No latest connectivity probe row for this source.","next_action":"Run /geo/evidence/probe-store before the next formal retry if the source is weak or blocked.","acceptance":"A recent connectivity probe confirms source access without writing formal evidence rows.","evidence":{"probe_run_id":null,"probe_status":"","status":"","completed_at":""},"latest_run_id":77},{"id":"external_evidence_workspace:douyin_search:external_evidence_source_execution_packet:scheduler_cadence","source":"external_evidence_source_execution_packet","source_id":"douyin_search","status":"warning","priority":"P1","category":"scheduler","code":"scheduler_cadence","title":"Scheduler cadence","message":"Scheduler is not fully proven alive in this process.","next_action":"Enable GEO_EXTERNAL_EVIDENCE_AUTORUN and confirm the cloud process has an alive scheduler thread.","acceptance":"Long-term evidence refreshes run on configured cadence without manual operation.","evidence":{"autorun_enabled":false,"thread_alive":false,"last_status":"","interval_seconds":21600},"latest_run_id":77},{"id":"external_evidence_workspace:douyin_search:external_evidence_source_execution_packet:source_ledger_coverage","source":"external_evidence_source_execution_packet","source_id":"douyin_search","status":"warning","priority":"P1","category":"formal_collection","code":"source_ledger_coverage","title":"Source ledger coverage","message":"Latest formal row has no source_ledger coverage entry.","next_action":"Rerun with the current collector so source_ledger records requested/covered/missing states.","acceptance":"Latest run raw_payload.source_ledger includes this source_id.","evidence":{"run_id":77,"ledger_present":false,"ledger_entry":{}},"latest_run_id":77}],"operator_steps":["Fix missing API keys, authorized monitor targets, quota, or latest source errors.","Run a connectivity probe before writing new official evidence rows.","Use compliant public search APIs only; do not bypass platform login, captcha, robots, or access controls.","Configure the required API key, authorized sync target, or real-user monitor target for this source.","Repair the source collection plan so collect-due can request this source explicitly.","Run collect-due for this store/source and retain the generated run id plus source ledger.","Run a connectivity probe before the next formal collection retry.","Collect enough successful probe and formal collection signals to satisfy the stability threshold."],"acceptance_criteria":["source is configured through official API, compliant search API, authorized sync, or AI monitor snapshot","collector plan can request this source explicitly through collect-due","latest formal collection row is auditable with reliability, checked_at, raw material, and ledger coverage","connectivity probe and stability matrix prove long-term source health","operators can see the compliance boundary before every retry"],"compliance_boundary":"Use compliant public search APIs only; do not bypass platform login, captcha, robots, or access controls.","completion_packet":{"run_id":77,"status":"needs_repair","ok":false,"summary":{"requirement_count":4,"blocker_count":1,"warning_count":1,"platform_row_count":7,"requested_count":9,"covered_count":7,"missing_count":3,"ok_source_count":6,"cooldown_source_count":0,"blocked_source_count":0,"review_source_count":1,"avg_reliability_score":84.6},"next_action":"Review the candidate evidence manually, add verified links if needed, and tune store aliases or target keywords."},"runbook_item":{"id":"external_source:all:douyin_search","source":"external_evidence_source_runbook","action_type":"fix_external_source","lane":"source_blocked","lane_label":"Source blocked","status":"blocked","priority_score":92,"priority_label":"P0","title":"抖音公开搜索 source runbook","message":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","action_url":"/geo/evidence","api_url":"/geo/api/evidence/external-source-runbook?store_id=0","store_id":0,"store_name":"","source_id":"douyin_search","provider":"douyin","section":"search","channel":"search_api","configured":false,"target_count":0,"cadence_hours":48,"plan_state":"blocked","health_status":"blocker","stability_status":"blocker","latest_status":"found","latest_status_label":"已找到","latest_checked_at":"2026-06-13T01:10:46.999286+00:00","latest_age_hours":3,"latest_error":"","latest_run_id":77,"next_run_at":"2026-06-15T01:10:46.999286+00:00","protected_until":null,"success_rate":100.0,"signal_count":30,"collection_signal_count":30,"probe_signal_count":0,"failure_streak":0,"consecutive_problem_count":0,"consecutive_blocker_count":0,"compliance_boundary":"Use compliant public search APIs only; do not bypass platform login, captcha, robots, or access controls.","collector_options":{"include_maps":false,"include_search":true,"include_dianping":false,"include_ai":false,"map_provider_ids":[],"search_provider_ids":["douyin"]},"operator_steps":["Fix missing API keys, authorized monitor targets, quota, or latest source errors.","Run a connectivity probe before writing new official evidence rows.","Use compliant public search APIs only; do not bypass platform login, captcha, robots, or access controls."],"acceptance_criteria":["latest blocker is fixed or converted into an auditable cooldown state","connectivity probe is warning/ok before formal collection retry","raw evidence, reliability score, checked_at, and error payload are retained","collection respects official APIs, authorized sync, or compliant public search boundaries"]},"execution_row":{"source_id":"douyin_search","provider":"douyin","label":"抖音公开搜索","category":"social","channel":"search_api","section":"search","status":"blocker","priority":"P0","configured":false,"target_count":0,"plan_state":"blocked","health_status":"blocker","stability_status":"blocker","latest_run_id":77,"latest_row_id":448,"latest_status":"found","latest_checked_at":"2026-06-13T01:10:46.999286","latest_age_hours":3,"latest_reliability_grade":"B","latest_reliability_score":79.2,"latest_error":null,"item_count":4,"ledger_entry_present":false,"probe_status":"","probe_run_id":null,"signal_count":30,"success_rate":100.0,"compliance_boundary":"Use compliant public search APIs only; do not bypass platform login, captcha, robots, or access controls.","requirements":[{"code":"source_catalog","title":"Source catalog entry","status":"ok","category":"source_contract","required":true,"priority":"P2","message":"Source exists in SOURCE_SPECS.","next_action":"Keep this source in the external evidence source catalog.","acceptance":"Source has a stable source_id, provider, channel, cadence, and compliance category.","evidence":{"source_id":"douyin_search","provider":"douyin","channel":"search_api","cadence_hours":48}},{"code":"source_configuration","title":"Cloud source configuration","status":"blocker","category":"configuration","required":true,"priority":"P0","message":"缺少环境变量：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY","next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","acceptance":"Cloud worker can legally access this source without bypassing platform access controls.","evidence":{"configured":false,"target_count":0,"config_env":"BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY"}},{"code":"collector_plan_contract","title":"Collector plan contract","status":"ok","category":"collector","required":true,"priority":"P2","message":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_action":"Repair collection plan routing or source catalog mapping before collect-due.","acceptance":"collection_packet.collector_options can request exactly this source.","evidence":{"state":"blocked","collector_options":{"include_maps":false,"include_search":true,"include_dianping":false,"include_ai":false,"map_provider_ids":[],"search_provider_ids":["douyin"]}}},{"code":"collection_plan_state","title":"Collection plan state","status":"blocker","category":"collector","required":true,"priority":"P0","message":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_action":"Repair source configuration, authorization, target setup, or latest blocking error.","acceptance":"Source is due, scheduled, or cooling down; protected/blocked states have an explicit repair path.","evidence":{"state":"blocked","reason":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_run_at":"2026-06-15T01:10:46.999286+00:00","protected_until":null}},{"code":"latest_formal_collection","title":"Latest formal collection","status":"ok","category":"formal_collection","required":true,"priority":"P2","message":"Latest formal collection row is positive.","next_action":"Run collect-due or repair source errors before relying on this source.","acceptance":"Latest GeoPlatformEvidence row is positive or has an auditable weak/not-found explanation.","evidence":{"run_id":77,"row_id":448,"status":"found","checked_at":"2026-06-13T01:10:46.999286","age_hours":3,"error_message":null}},{"code":"source_ledger_coverage","title":"Source ledger coverage","status":"warning","category":"formal_collection","required":true,"priority":"P1","message":"Latest formal row has no source_ledger coverage entry.","next_action":"Rerun with the current collector so source_ledger records requested/covered/missing states.","acceptance":"Latest run raw_payload.source_ledger includes this source_id.","evidence":{"run_id":77,"ledger_present":false,"ledger_entry":{}}},{"code":"formal_row_quality","title":"Formal row quality","status":"ok","category":"formal_collection","required":true,"priority":"P2","message":"Formal row retains checked_at, reliability, and raw/error evidence material.","next_action":"Persist checked_at, reliability score, raw payload/excerpt, URL, error, and evidence items.","acceptance":"Formal row is auditable and can be used by reliability scoring and attribution baselines.","evidence":{"checked_at":true,"reliability":true,"raw_material":true,"item_count":4}},{"code":"connectivity_probe","title":"Connectivity probe evidence","status":"warning","category":"stability","required":false,"priority":"P1","message":"No latest connectivity probe row for this source.","next_action":"Run /geo/evidence/probe-store before the next formal retry if the source is weak or blocked.","acceptance":"A recent connectivity probe confirms source access without writing formal evidence rows.","evidence":{"probe_run_id":null,"probe_status":"","status":"","completed_at":""}},{"code":"stability_signal","title":"Long-term stability signal","status":"blocker","category":"stability","required":true,"priority":"P0","message":"Health matrix has a configuration, authorization, or latest-source blocker.","next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","acceptance":"Recent formal collection and probe signals meet configured stability thresholds.","evidence":{"signal_count":30,"success_rate":100.0,"consecutive_blocker_count":0,"latest_status":"found"}},{"code":"compliance_boundary","title":"Compliance boundary","status":"ok","category":"compliance","required":true,"priority":"P2","message":"Use compliant public search APIs only; do not bypass platform login, captcha, robots, or access controls.","next_action":"Define whether this source uses official API, compliant search API, authorized sync, or AI monitor snapshots.","acceptance":"Operators can see the allowed collection boundary before retrying.","evidence":{"channel":"search_api","compliance_note":"Use compliant public search APIs only; do not bypass platform login, captcha, robots, or access controls.","ledger_compliance_note":""}},{"code":"scheduler_cadence","title":"Scheduler cadence","status":"warning","category":"scheduler","required":false,"priority":"P1","message":"Scheduler is not fully proven alive in this process.","next_action":"Enable GEO_EXTERNAL_EVIDENCE_AUTORUN and confirm the cloud process has an alive scheduler thread.","acceptance":"Long-term evidence refreshes run on configured cadence without manual operation.","evidence":{"autorun_enabled":false,"thread_alive":false,"last_status":"","interval_seconds":21600}}],"blocker_count":3,"warning_count":3,"next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","operator_steps":["Configure the required API key, authorized sync target, or real-user monitor target for this source.","Repair the source collection plan so collect-due can request this source explicitly.","Run collect-due for this store/source and retain the generated run id plus source ledger.","Run a connectivity probe before the next formal collection retry.","Collect enough successful probe and formal collection signals to satisfy the stability threshold.","Enable GEO_EXTERNAL_EVIDENCE_AUTORUN on the cloud server and confirm the scheduler thread is alive."],"acceptance_criteria":["source is configured through official API, compliant search API, authorized sync, or AI monitor snapshot","collector plan can request this source explicitly through collect-due","latest formal collection row is auditable with reliability, checked_at, raw material, and ledger coverage","connectivity probe and stability matrix prove long-term source health","operators can see the compliance boundary before every retry"]},"workspace_links":{"page":"/geo/evidence","workspace_api":"/geo/api/evidence/external-collection-workspace-packet?store_id=0&limit=80","runbook_api":"/geo/api/evidence/external-source-runbook?store_id=0","execution_api":"/geo/api/evidence/external-source-execution-packet?store_id=0&source_id=douyin_search","completion_api":"/geo/api/evidence/external-collection-completion-packet?run_id=77","run_detail":"/geo/evidence/77","collect_due":"/geo/evidence/collect-due","probe":"/geo/evidence/probe-store"},"next_action":"Fix missing source configuration or collector section errors, then rerun collect-due for this store."},{"source_id":"meituan_search","provider":"meituan","label":"美团公开搜索 source runbook","section":"search","channel":"search_api","status":"blocker","priority":"P0","runbook_status":"blocked","execution_status":"blocker","health_status":"blocker","plan_state":"blocked","stability_status":"blocker","latest_run_id":77,"latest_status":"found","latest_checked_at":"2026-06-13T01:10:46.999286","latest_age_hours":3,"latest_error":"","next_run_at":"2026-06-16T01:10:46.999286+00:00","protected_until":null,"probe_status":"","probe_run_id":null,"signal_count":30,"success_rate":100.0,"repair_action_count":8,"repair_actions":[{"id":"external_evidence_workspace:meituan_search:external_evidence_collection_completion_packet:requested_source_coverage","source":"external_evidence_collection_completion_packet","source_id":"meituan_search","status":"blocker","priority":"P0","category":"collection_completion","code":"requested_source_coverage","title":"Requested source coverage","message":"3/9 requested source(s) did not produce an auditable row.","next_action":"Fix missing source configuration or collector section errors, then rerun collect-due for this store.","acceptance":"Every requested external source has a GeoPlatformEvidence row or an explicit missing-source explanation.","evidence":{"requested":9,"covered":7,"missing":3,"row_count":7},"latest_run_id":77},{"id":"external_evidence_workspace:meituan_search:external_evidence_source_execution_packet:collection_plan_state","source":"external_evidence_source_execution_packet","source_id":"meituan_search","status":"blocker","priority":"P0","category":"collector","code":"collection_plan_state","title":"Collection plan state","message":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_action":"Repair source configuration, authorization, target setup, or latest blocking error.","acceptance":"Source is due, scheduled, or cooling down; protected/blocked states have an explicit repair path.","evidence":{"state":"blocked","reason":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_run_at":"2026-06-16T01:10:46.999286+00:00","protected_until":null},"latest_run_id":77},{"id":"external_evidence_workspace:meituan_search:external_evidence_source_execution_packet:source_configuration","source":"external_evidence_source_execution_packet","source_id":"meituan_search","status":"blocker","priority":"P0","category":"configuration","code":"source_configuration","title":"Cloud source configuration","message":"缺少环境变量：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY","next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","acceptance":"Cloud worker can legally access this source without bypassing platform access controls.","evidence":{"configured":false,"target_count":0,"config_env":"BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY"},"latest_run_id":77},{"id":"external_evidence_workspace:meituan_search:external_evidence_source_execution_packet:stability_signal","source":"external_evidence_source_execution_packet","source_id":"meituan_search","status":"blocker","priority":"P0","category":"stability","code":"stability_signal","title":"Long-term stability signal","message":"Health matrix has a configuration, authorization, or latest-source blocker.","next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","acceptance":"Recent formal collection and probe signals meet configured stability thresholds.","evidence":{"signal_count":30,"success_rate":100.0,"consecutive_blocker_count":0,"latest_status":"found"},"latest_run_id":77},{"id":"external_evidence_workspace:meituan_search:external_evidence_source_runbook:fix_external_source","source":"external_evidence_source_runbook","source_id":"meituan_search","status":"blocker","priority":"P0","category":"source_blocked","code":"fix_external_source","title":"美团公开搜索 source runbook","message":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","acceptance":"latest blocker is fixed or converted into an auditable cooldown state; connectivity probe is warning/ok before formal collection retry; raw evidence, reliability score, checked_at, and error payload are retained","evidence":{"plan_state":"blocked","stability_status":"blocker","next_run_at":"2026-06-16T01:10:46.999286+00:00","protected_until":null},"latest_run_id":77},{"id":"external_evidence_workspace:meituan_search:external_evidence_source_execution_packet:connectivity_probe","source":"external_evidence_source_execution_packet","source_id":"meituan_search","status":"warning","priority":"P1","category":"stability","code":"connectivity_probe","title":"Connectivity probe evidence","message":"No latest connectivity probe row for this source.","next_action":"Run /geo/evidence/probe-store before the next formal retry if the source is weak or blocked.","acceptance":"A recent connectivity probe confirms source access without writing formal evidence rows.","evidence":{"probe_run_id":null,"probe_status":"","status":"","completed_at":""},"latest_run_id":77},{"id":"external_evidence_workspace:meituan_search:external_evidence_source_execution_packet:scheduler_cadence","source":"external_evidence_source_execution_packet","source_id":"meituan_search","status":"warning","priority":"P1","category":"scheduler","code":"scheduler_cadence","title":"Scheduler cadence","message":"Scheduler is not fully proven alive in this process.","next_action":"Enable GEO_EXTERNAL_EVIDENCE_AUTORUN and confirm the cloud process has an alive scheduler thread.","acceptance":"Long-term evidence refreshes run on configured cadence without manual operation.","evidence":{"autorun_enabled":false,"thread_alive":false,"last_status":"","interval_seconds":21600},"latest_run_id":77},{"id":"external_evidence_workspace:meituan_search:external_evidence_source_execution_packet:source_ledger_coverage","source":"external_evidence_source_execution_packet","source_id":"meituan_search","status":"warning","priority":"P1","category":"formal_collection","code":"source_ledger_coverage","title":"Source ledger coverage","message":"Latest formal row has no source_ledger coverage entry.","next_action":"Rerun with the current collector so source_ledger records requested/covered/missing states.","acceptance":"Latest run raw_payload.source_ledger includes this source_id.","evidence":{"run_id":77,"ledger_present":false,"ledger_entry":{}},"latest_run_id":77}],"operator_steps":["Fix missing API keys, authorized monitor targets, quota, or latest source errors.","Run a connectivity probe before writing new official evidence rows.","Use compliant public search APIs only; do not bypass platform login, captcha, robots, or access controls.","Configure the required API key, authorized sync target, or real-user monitor target for this source.","Repair the source collection plan so collect-due can request this source explicitly.","Run collect-due for this store/source and retain the generated run id plus source ledger.","Run a connectivity probe before the next formal collection retry.","Collect enough successful probe and formal collection signals to satisfy the stability threshold."],"acceptance_criteria":["source is configured through official API, compliant search API, authorized sync, or AI monitor snapshot","collector plan can request this source explicitly through collect-due","latest formal collection row is auditable with reliability, checked_at, raw material, and ledger coverage","connectivity probe and stability matrix prove long-term source health","operators can see the compliance boundary before every retry"],"compliance_boundary":"Use compliant public search APIs only; do not bypass platform login, captcha, robots, or access controls.","completion_packet":{"run_id":77,"status":"needs_repair","ok":false,"summary":{"requirement_count":4,"blocker_count":1,"warning_count":1,"platform_row_count":7,"requested_count":9,"covered_count":7,"missing_count":3,"ok_source_count":6,"cooldown_source_count":0,"blocked_source_count":0,"review_source_count":1,"avg_reliability_score":84.6},"next_action":"Review the candidate evidence manually, add verified links if needed, and tune store aliases or target keywords."},"runbook_item":{"id":"external_source:all:meituan_search","source":"external_evidence_source_runbook","action_type":"fix_external_source","lane":"source_blocked","lane_label":"Source blocked","status":"blocked","priority_score":92,"priority_label":"P0","title":"美团公开搜索 source runbook","message":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","action_url":"/geo/evidence","api_url":"/geo/api/evidence/external-source-runbook?store_id=0","store_id":0,"store_name":"","source_id":"meituan_search","provider":"meituan","section":"search","channel":"search_api","configured":false,"target_count":0,"cadence_hours":72,"plan_state":"blocked","health_status":"blocker","stability_status":"blocker","latest_status":"found","latest_status_label":"已找到","latest_checked_at":"2026-06-13T01:10:46.999286+00:00","latest_age_hours":3,"latest_error":"","latest_run_id":77,"next_run_at":"2026-06-16T01:10:46.999286+00:00","protected_until":null,"success_rate":100.0,"signal_count":30,"collection_signal_count":30,"probe_signal_count":0,"failure_streak":0,"consecutive_problem_count":0,"consecutive_blocker_count":0,"compliance_boundary":"Use compliant public search APIs only; do not bypass platform login, captcha, robots, or access controls.","collector_options":{"include_maps":false,"include_search":true,"include_dianping":false,"include_ai":false,"map_provider_ids":[],"search_provider_ids":["meituan"]},"operator_steps":["Fix missing API keys, authorized monitor targets, quota, or latest source errors.","Run a connectivity probe before writing new official evidence rows.","Use compliant public search APIs only; do not bypass platform login, captcha, robots, or access controls."],"acceptance_criteria":["latest blocker is fixed or converted into an auditable cooldown state","connectivity probe is warning/ok before formal collection retry","raw evidence, reliability score, checked_at, and error payload are retained","collection respects official APIs, authorized sync, or compliant public search boundaries"]},"execution_row":{"source_id":"meituan_search","provider":"meituan","label":"美团公开搜索","category":"life","channel":"search_api","section":"search","status":"blocker","priority":"P0","configured":false,"target_count":0,"plan_state":"blocked","health_status":"blocker","stability_status":"blocker","latest_run_id":77,"latest_row_id":445,"latest_status":"found","latest_checked_at":"2026-06-13T01:10:46.999286","latest_age_hours":3,"latest_reliability_grade":"A","latest_reliability_score":91.2,"latest_error":null,"item_count":2,"ledger_entry_present":false,"probe_status":"","probe_run_id":null,"signal_count":30,"success_rate":100.0,"compliance_boundary":"Use compliant public search APIs only; do not bypass platform login, captcha, robots, or access controls.","requirements":[{"code":"source_catalog","title":"Source catalog entry","status":"ok","category":"source_contract","required":true,"priority":"P2","message":"Source exists in SOURCE_SPECS.","next_action":"Keep this source in the external evidence source catalog.","acceptance":"Source has a stable source_id, provider, channel, cadence, and compliance category.","evidence":{"source_id":"meituan_search","provider":"meituan","channel":"search_api","cadence_hours":72}},{"code":"source_configuration","title":"Cloud source configuration","status":"blocker","category":"configuration","required":true,"priority":"P0","message":"缺少环境变量：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY","next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","acceptance":"Cloud worker can legally access this source without bypassing platform access controls.","evidence":{"configured":false,"target_count":0,"config_env":"BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY"}},{"code":"collector_plan_contract","title":"Collector plan contract","status":"ok","category":"collector","required":true,"priority":"P2","message":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_action":"Repair collection plan routing or source catalog mapping before collect-due.","acceptance":"collection_packet.collector_options can request exactly this source.","evidence":{"state":"blocked","collector_options":{"include_maps":false,"include_search":true,"include_dianping":false,"include_ai":false,"map_provider_ids":[],"search_provider_ids":["meituan"]}}},{"code":"collection_plan_state","title":"Collection plan state","status":"blocker","category":"collector","required":true,"priority":"P0","message":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_action":"Repair source configuration, authorization, target setup, or latest blocking error.","acceptance":"Source is due, scheduled, or cooling down; protected/blocked states have an explicit repair path.","evidence":{"state":"blocked","reason":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_run_at":"2026-06-16T01:10:46.999286+00:00","protected_until":null}},{"code":"latest_formal_collection","title":"Latest formal collection","status":"ok","category":"formal_collection","required":true,"priority":"P2","message":"Latest formal collection row is positive.","next_action":"Run collect-due or repair source errors before relying on this source.","acceptance":"Latest GeoPlatformEvidence row is positive or has an auditable weak/not-found explanation.","evidence":{"run_id":77,"row_id":445,"status":"found","checked_at":"2026-06-13T01:10:46.999286","age_hours":3,"error_message":null}},{"code":"source_ledger_coverage","title":"Source ledger coverage","status":"warning","category":"formal_collection","required":true,"priority":"P1","message":"Latest formal row has no source_ledger coverage entry.","next_action":"Rerun with the current collector so source_ledger records requested/covered/missing states.","acceptance":"Latest run raw_payload.source_ledger includes this source_id.","evidence":{"run_id":77,"ledger_present":false,"ledger_entry":{}}},{"code":"formal_row_quality","title":"Formal row quality","status":"ok","category":"formal_collection","required":true,"priority":"P2","message":"Formal row retains checked_at, reliability, and raw/error evidence material.","next_action":"Persist checked_at, reliability score, raw payload/excerpt, URL, error, and evidence items.","acceptance":"Formal row is auditable and can be used by reliability scoring and attribution baselines.","evidence":{"checked_at":true,"reliability":true,"raw_material":true,"item_count":2}},{"code":"connectivity_probe","title":"Connectivity probe evidence","status":"warning","category":"stability","required":false,"priority":"P1","message":"No latest connectivity probe row for this source.","next_action":"Run /geo/evidence/probe-store before the next formal retry if the source is weak or blocked.","acceptance":"A recent connectivity probe confirms source access without writing formal evidence rows.","evidence":{"probe_run_id":null,"probe_status":"","status":"","completed_at":""}},{"code":"stability_signal","title":"Long-term stability signal","status":"blocker","category":"stability","required":true,"priority":"P0","message":"Health matrix has a configuration, authorization, or latest-source blocker.","next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","acceptance":"Recent formal collection and probe signals meet configured stability thresholds.","evidence":{"signal_count":30,"success_rate":100.0,"consecutive_blocker_count":0,"latest_status":"found"}},{"code":"compliance_boundary","title":"Compliance boundary","status":"ok","category":"compliance","required":true,"priority":"P2","message":"Use compliant public search APIs only; do not bypass platform login, captcha, robots, or access controls.","next_action":"Define whether this source uses official API, compliant search API, authorized sync, or AI monitor snapshots.","acceptance":"Operators can see the allowed collection boundary before retrying.","evidence":{"channel":"search_api","compliance_note":"Use compliant public search APIs only; do not bypass platform login, captcha, robots, or access controls.","ledger_compliance_note":""}},{"code":"scheduler_cadence","title":"Scheduler cadence","status":"warning","category":"scheduler","required":false,"priority":"P1","message":"Scheduler is not fully proven alive in this process.","next_action":"Enable GEO_EXTERNAL_EVIDENCE_AUTORUN and confirm the cloud process has an alive scheduler thread.","acceptance":"Long-term evidence refreshes run on configured cadence without manual operation.","evidence":{"autorun_enabled":false,"thread_alive":false,"last_status":"","interval_seconds":21600}}],"blocker_count":3,"warning_count":3,"next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","operator_steps":["Configure the required API key, authorized sync target, or real-user monitor target for this source.","Repair the source collection plan so collect-due can request this source explicitly.","Run collect-due for this store/source and retain the generated run id plus source ledger.","Run a connectivity probe before the next formal collection retry.","Collect enough successful probe and formal collection signals to satisfy the stability threshold.","Enable GEO_EXTERNAL_EVIDENCE_AUTORUN on the cloud server and confirm the scheduler thread is alive."],"acceptance_criteria":["source is configured through official API, compliant search API, authorized sync, or AI monitor snapshot","collector plan can request this source explicitly through collect-due","latest formal collection row is auditable with reliability, checked_at, raw material, and ledger coverage","connectivity probe and stability matrix prove long-term source health","operators can see the compliance boundary before every retry"]},"workspace_links":{"page":"/geo/evidence","workspace_api":"/geo/api/evidence/external-collection-workspace-packet?store_id=0&limit=80","runbook_api":"/geo/api/evidence/external-source-runbook?store_id=0","execution_api":"/geo/api/evidence/external-source-execution-packet?store_id=0&source_id=meituan_search","completion_api":"/geo/api/evidence/external-collection-completion-packet?run_id=77","run_detail":"/geo/evidence/77","collect_due":"/geo/evidence/collect-due","probe":"/geo/evidence/probe-store"},"next_action":"Fix missing source configuration or collector section errors, then rerun collect-due for this store."},{"source_id":"tencent_maps","provider":"tencent_maps","label":"腾讯地图官方 API source runbook","section":"maps","channel":"official_api","status":"blocker","priority":"P0","runbook_status":"due_now","execution_status":"blocker","health_status":"warning","plan_state":"due","stability_status":"warning","latest_run_id":null,"latest_status":"","latest_checked_at":null,"latest_age_hours":null,"latest_error":"","next_run_at":"2026-06-13T05:02:57.427353+00:00","protected_until":null,"probe_status":"","probe_run_id":null,"signal_count":0,"success_rate":null,"repair_action_count":7,"repair_actions":[{"id":"external_evidence_workspace:tencent_maps:external_evidence_source_execution_packet:formal_row_quality","source":"external_evidence_source_execution_packet","source_id":"tencent_maps","status":"blocker","priority":"P0","category":"formal_collection","code":"formal_row_quality","title":"Formal row quality","message":"No formal row exists, so quality fields cannot be verified.","next_action":"Persist checked_at, reliability score, raw payload/excerpt, URL, error, and evidence items.","acceptance":"Formal row is auditable and can be used by reliability scoring and attribution baselines.","evidence":{},"latest_run_id":null},{"id":"external_evidence_workspace:tencent_maps:external_evidence_source_execution_packet:latest_formal_collection","source":"external_evidence_source_execution_packet","source_id":"tencent_maps","status":"blocker","priority":"P0","category":"formal_collection","code":"latest_formal_collection","title":"Latest formal collection","message":"No formal GeoPlatformEvidence row exists for this source.","next_action":"Run collect-due or repair source errors before relying on this source.","acceptance":"Latest GeoPlatformEvidence row is positive or has an auditable weak/not-found explanation.","evidence":{"run_id":null,"row_id":null,"status":"","checked_at":"","age_hours":null,"error_message":""},"latest_run_id":null},{"id":"external_evidence_workspace:tencent_maps:external_evidence_source_execution_packet:source_ledger_coverage","source":"external_evidence_source_execution_packet","source_id":"tencent_maps","status":"blocker","priority":"P0","category":"formal_collection","code":"source_ledger_coverage","title":"Source ledger coverage","message":"Latest formal row has no source_ledger coverage entry.","next_action":"Rerun with the current collector so source_ledger records requested/covered/missing states.","acceptance":"Latest run raw_payload.source_ledger includes this source_id.","evidence":{"run_id":null,"ledger_present":false,"ledger_entry":{}},"latest_run_id":null},{"id":"external_evidence_workspace:tencent_maps:external_evidence_source_execution_packet:connectivity_probe","source":"external_evidence_source_execution_packet","source_id":"tencent_maps","status":"warning","priority":"P1","category":"stability","code":"connectivity_probe","title":"Connectivity probe evidence","message":"No latest connectivity probe row for this source.","next_action":"Run /geo/evidence/probe-store before the next formal retry if the source is weak or blocked.","acceptance":"A recent connectivity probe confirms source access without writing formal evidence rows.","evidence":{"probe_run_id":null,"probe_status":"","status":"","completed_at":""},"latest_run_id":null},{"id":"external_evidence_workspace:tencent_maps:external_evidence_source_execution_packet:scheduler_cadence","source":"external_evidence_source_execution_packet","source_id":"tencent_maps","status":"warning","priority":"P1","category":"scheduler","code":"scheduler_cadence","title":"Scheduler cadence","message":"Scheduler is not fully proven alive in this process.","next_action":"Enable GEO_EXTERNAL_EVIDENCE_AUTORUN and confirm the cloud process has an alive scheduler thread.","acceptance":"Long-term evidence refreshes run on configured cadence without manual operation.","evidence":{"autorun_enabled":false,"thread_alive":false,"last_status":"","interval_seconds":21600},"latest_run_id":null},{"id":"external_evidence_workspace:tencent_maps:external_evidence_source_execution_packet:stability_signal","source":"external_evidence_source_execution_packet","source_id":"tencent_maps","status":"warning","priority":"P1","category":"stability","code":"stability_signal","title":"Long-term stability signal","message":"No collection or connectivity probe signal exists in the lookback window.","next_action":"Run connectivity probe and collect-due on this source for at least two successful signals.","acceptance":"Recent formal collection and probe signals meet configured stability thresholds.","evidence":{"signal_count":0,"success_rate":null,"consecutive_blocker_count":0,"latest_status":""},"latest_run_id":null},{"id":"external_evidence_workspace:tencent_maps:external_evidence_source_runbook:collect_due_source","source":"external_evidence_source_runbook","source_id":"tencent_maps","status":"warning","priority":"P1","category":"collection_due","code":"collect_due_source","title":"腾讯地图官方 API source runbook","message":"Configured but no collection row exists yet; run now to create the first auditable baseline.","next_action":"已具备配置，但还没有该来源的采集记录；建议立即运行外部证据采集。","acceptance":"collect-due creates a fresh GeoPlatformEvidence row for the source; source state returns to scheduled/stable or explains a compliant not-found result; raw evidence, reliability score, checked_at, and error payload are retained","evidence":{"plan_state":"due","stability_status":"warning","next_run_at":"2026-06-13T05:02:57.249860+00:00","protected_until":null},"latest_run_id":null}],"operator_steps":["Run collect-due for the selected store and retain the generated run id.","Review reliability grade, raw payload, checked_at, and source ledger after collection.","Use official map APIs with server-side keys, quota monitoring, and IP allowlists.","Run collect-due for this store/source and retain the generated run id plus source ledger.","Ensure formal rows persist checked_at, reliability score, raw payload/excerpt, and evidence items.","Run a connectivity probe before the next formal collection retry.","Collect enough successful probe and formal collection signals to satisfy the stability threshold.","Enable GEO_EXTERNAL_EVIDENCE_AUTORUN on the cloud server and confirm the scheduler thread is alive."],"acceptance_criteria":["source is configured through official API, compliant search API, authorized sync, or AI monitor snapshot","collector plan can request this source explicitly through collect-due","latest formal collection row is auditable with reliability, checked_at, raw material, and ledger coverage","connectivity probe and stability matrix prove long-term source health","operators can see the compliance boundary before every retry"],"compliance_boundary":"Use official map APIs with server-side keys, quota monitoring, and IP allowlists.","completion_packet":{"run_id":null,"status":"","ok":false,"summary":{},"next_action":""},"runbook_item":{"id":"external_source:all:tencent_maps","source":"external_evidence_source_runbook","action_type":"collect_due_source","lane":"collection_due","lane_label":"Collection due","status":"due_now","priority_score":82,"priority_label":"P1","title":"腾讯地图官方 API source runbook","message":"Configured but no collection row exists yet; run now to create the first auditable baseline.","action":"已具备配置，但还没有该来源的采集记录；建议立即运行外部证据采集。","action_url":"/geo/evidence","api_url":"/geo/api/evidence/external-source-runbook?store_id=0","store_id":0,"store_name":"","source_id":"tencent_maps","provider":"tencent_maps","section":"maps","channel":"official_api","configured":true,"target_count":0,"cadence_hours":168,"plan_state":"due","health_status":"warning","stability_status":"warning","latest_status":"","latest_status_label":"","latest_checked_at":null,"latest_age_hours":null,"latest_error":"","latest_run_id":null,"next_run_at":"2026-06-13T05:02:57.249860+00:00","protected_until":null,"success_rate":null,"signal_count":0,"collection_signal_count":0,"probe_signal_count":0,"failure_streak":0,"consecutive_problem_count":0,"consecutive_blocker_count":0,"compliance_boundary":"Use official map APIs with server-side keys, quota monitoring, and IP allowlists.","collector_options":{"include_maps":true,"include_search":false,"include_dianping":false,"include_ai":false,"map_provider_ids":["tencent_maps"],"search_provider_ids":[]},"operator_steps":["Run collect-due for the selected store and retain the generated run id.","Review reliability grade, raw payload, checked_at, and source ledger after collection.","Use official map APIs with server-side keys, quota monitoring, and IP allowlists."],"acceptance_criteria":["collect-due creates a fresh GeoPlatformEvidence row for the source","source state returns to scheduled/stable or explains a compliant not-found result","raw evidence, reliability score, checked_at, and error payload are retained","collection respects official APIs, authorized sync, or compliant public search boundaries"]},"execution_row":{"source_id":"tencent_maps","provider":"tencent_maps","label":"腾讯地图官方 API","category":"map","channel":"official_api","section":"maps","status":"blocker","priority":"P0","configured":true,"target_count":0,"plan_state":"due","health_status":"warning","stability_status":"warning","latest_run_id":null,"latest_row_id":null,"latest_status":"","latest_checked_at":null,"latest_age_hours":null,"latest_reliability_grade":"","latest_reliability_score":null,"latest_error":"","item_count":0,"ledger_entry_present":false,"probe_status":"","probe_run_id":null,"signal_count":0,"success_rate":null,"compliance_boundary":"Use official map APIs with server-side keys, quota monitoring, and IP allowlists.","requirements":[{"code":"source_catalog","title":"Source catalog entry","status":"ok","category":"source_contract","required":true,"priority":"P2","message":"Source exists in SOURCE_SPECS.","next_action":"Keep this source in the external evidence source catalog.","acceptance":"Source has a stable source_id, provider, channel, cadence, and compliance category.","evidence":{"source_id":"tencent_maps","provider":"tencent_maps","channel":"official_api","cadence_hours":168}},{"code":"source_configuration","title":"Cloud source configuration","status":"ok","category":"configuration","required":true,"priority":"P2","message":"配置已就绪","next_action":"已具备配置，但还没有该来源的采集记录；建议立即运行外部证据采集。","acceptance":"Cloud worker can legally access this source without bypassing platform access controls.","evidence":{"configured":true,"target_count":0,"config_env":"TENCENT_MAP_API_KEY"}},{"code":"collector_plan_contract","title":"Collector plan contract","status":"ok","category":"collector","required":true,"priority":"P2","message":"Configured but no collection row exists yet; run now to create the first auditable baseline.","next_action":"Repair collection plan routing or source catalog mapping before collect-due.","acceptance":"collection_packet.collector_options can request exactly this source.","evidence":{"state":"due","collector_options":{"include_maps":true,"include_search":false,"include_dianping":false,"include_ai":false,"map_provider_ids":["tencent_maps"],"search_provider_ids":[]}}},{"code":"collection_plan_state","title":"Collection plan state","status":"ok","category":"collector","required":true,"priority":"P2","message":"Configured but no collection row exists yet; run now to create the first auditable baseline.","next_action":"Keep this source on the protected scheduler cadence.","acceptance":"Source is due, scheduled, or cooling down; protected/blocked states have an explicit repair path.","evidence":{"state":"due","reason":"Configured but no collection row exists yet; run now to create the first auditable baseline.","next_run_at":"2026-06-13T05:02:57.357386+00:00","protected_until":null}},{"code":"latest_formal_collection","title":"Latest formal collection","status":"blocker","category":"formal_collection","required":true,"priority":"P0","message":"No formal GeoPlatformEvidence row exists for this source.","next_action":"Run collect-due or repair source errors before relying on this source.","acceptance":"Latest GeoPlatformEvidence row is positive or has an auditable weak/not-found explanation.","evidence":{"run_id":null,"row_id":null,"status":"","checked_at":"","age_hours":null,"error_message":""}},{"code":"source_ledger_coverage","title":"Source ledger coverage","status":"blocker","category":"formal_collection","required":true,"priority":"P0","message":"Latest formal row has no source_ledger coverage entry.","next_action":"Rerun with the current collector so source_ledger records requested/covered/missing states.","acceptance":"Latest run raw_payload.source_ledger includes this source_id.","evidence":{"run_id":null,"ledger_present":false,"ledger_entry":{}}},{"code":"formal_row_quality","title":"Formal row quality","status":"blocker","category":"formal_collection","required":true,"priority":"P0","message":"No formal row exists, so quality fields cannot be verified.","next_action":"Persist checked_at, reliability score, raw payload/excerpt, URL, error, and evidence items.","acceptance":"Formal row is auditable and can be used by reliability scoring and attribution baselines.","evidence":{}},{"code":"connectivity_probe","title":"Connectivity probe evidence","status":"warning","category":"stability","required":false,"priority":"P1","message":"No latest connectivity probe row for this source.","next_action":"Run /geo/evidence/probe-store before the next formal retry if the source is weak or blocked.","acceptance":"A recent connectivity probe confirms source access without writing formal evidence rows.","evidence":{"probe_run_id":null,"probe_status":"","status":"","completed_at":""}},{"code":"stability_signal","title":"Long-term stability signal","status":"warning","category":"stability","required":true,"priority":"P1","message":"No collection or connectivity probe signal exists in the lookback window.","next_action":"Run connectivity probe and collect-due on this source for at least two successful signals.","acceptance":"Recent formal collection and probe signals meet configured stability thresholds.","evidence":{"signal_count":0,"success_rate":null,"consecutive_blocker_count":0,"latest_status":""}},{"code":"compliance_boundary","title":"Compliance boundary","status":"ok","category":"compliance","required":true,"priority":"P2","message":"Use official map APIs with server-side keys, quota monitoring, and IP allowlists.","next_action":"Define whether this source uses official API, compliant search API, authorized sync, or AI monitor snapshots.","acceptance":"Operators can see the allowed collection boundary before retrying.","evidence":{"channel":"official_api","compliance_note":"Use official map APIs with server-side keys, quota monitoring, and IP allowlists.","ledger_compliance_note":""}},{"code":"scheduler_cadence","title":"Scheduler cadence","status":"warning","category":"scheduler","required":false,"priority":"P1","message":"Scheduler is not fully proven alive in this process.","next_action":"Enable GEO_EXTERNAL_EVIDENCE_AUTORUN and confirm the cloud process has an alive scheduler thread.","acceptance":"Long-term evidence refreshes run on configured cadence without manual operation.","evidence":{"autorun_enabled":false,"thread_alive":false,"last_status":"","interval_seconds":21600}}],"blocker_count":3,"warning_count":3,"next_action":"Run collect-due or repair source errors before relying on this source.","operator_steps":["Run collect-due for this store/source and retain the generated run id plus source ledger.","Ensure formal rows persist checked_at, reliability score, raw payload/excerpt, and evidence items.","Run a connectivity probe before the next formal collection retry.","Collect enough successful probe and formal collection signals to satisfy the stability threshold.","Enable GEO_EXTERNAL_EVIDENCE_AUTORUN on the cloud server and confirm the scheduler thread is alive."],"acceptance_criteria":["source is configured through official API, compliant search API, authorized sync, or AI monitor snapshot","collector plan can request this source explicitly through collect-due","latest formal collection row is auditable with reliability, checked_at, raw material, and ledger coverage","connectivity probe and stability matrix prove long-term source health","operators can see the compliance boundary before every retry"]},"workspace_links":{"page":"/geo/evidence","workspace_api":"/geo/api/evidence/external-collection-workspace-packet?store_id=0&limit=80","runbook_api":"/geo/api/evidence/external-source-runbook?store_id=0","execution_api":"/geo/api/evidence/external-source-execution-packet?store_id=0&source_id=tencent_maps","completion_api":"","run_detail":"","collect_due":"/geo/evidence/collect-due","probe":"/geo/evidence/probe-store"},"next_action":"Persist checked_at, reliability score, raw payload/excerpt, URL, error, and evidence items."},{"source_id":"xiaohongshu_search","provider":"xiaohongshu","label":"小红书公开搜索 source runbook","section":"search","channel":"search_api","status":"blocker","priority":"P0","runbook_status":"blocked","execution_status":"blocker","health_status":"blocker","plan_state":"blocked","stability_status":"blocker","latest_run_id":77,"latest_status":"found","latest_checked_at":"2026-06-13T01:10:46.999286","latest_age_hours":3,"latest_error":"","next_run_at":"2026-06-15T01:10:46.999286+00:00","protected_until":null,"probe_status":"","probe_run_id":null,"signal_count":30,"success_rate":73.3,"repair_action_count":8,"repair_actions":[{"id":"external_evidence_workspace:xiaohongshu_search:external_evidence_collection_completion_packet:requested_source_coverage","source":"external_evidence_collection_completion_packet","source_id":"xiaohongshu_search","status":"blocker","priority":"P0","category":"collection_completion","code":"requested_source_coverage","title":"Requested source coverage","message":"3/9 requested source(s) did not produce an auditable row.","next_action":"Fix missing source configuration or collector section errors, then rerun collect-due for this store.","acceptance":"Every requested external source has a GeoPlatformEvidence row or an explicit missing-source explanation.","evidence":{"requested":9,"covered":7,"missing":3,"row_count":7},"latest_run_id":77},{"id":"external_evidence_workspace:xiaohongshu_search:external_evidence_source_execution_packet:collection_plan_state","source":"external_evidence_source_execution_packet","source_id":"xiaohongshu_search","status":"blocker","priority":"P0","category":"collector","code":"collection_plan_state","title":"Collection plan state","message":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_action":"Repair source configuration, authorization, target setup, or latest blocking error.","acceptance":"Source is due, scheduled, or cooling down; protected/blocked states have an explicit repair path.","evidence":{"state":"blocked","reason":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_run_at":"2026-06-15T01:10:46.999286+00:00","protected_until":null},"latest_run_id":77},{"id":"external_evidence_workspace:xiaohongshu_search:external_evidence_source_execution_packet:source_configuration","source":"external_evidence_source_execution_packet","source_id":"xiaohongshu_search","status":"blocker","priority":"P0","category":"configuration","code":"source_configuration","title":"Cloud source configuration","message":"缺少环境变量：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY","next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","acceptance":"Cloud worker can legally access this source without bypassing platform access controls.","evidence":{"configured":false,"target_count":0,"config_env":"BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY"},"latest_run_id":77},{"id":"external_evidence_workspace:xiaohongshu_search:external_evidence_source_execution_packet:stability_signal","source":"external_evidence_source_execution_packet","source_id":"xiaohongshu_search","status":"blocker","priority":"P0","category":"stability","code":"stability_signal","title":"Long-term stability signal","message":"Health matrix has a configuration, authorization, or latest-source blocker.","next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","acceptance":"Recent formal collection and probe signals meet configured stability thresholds.","evidence":{"signal_count":30,"success_rate":73.3,"consecutive_blocker_count":0,"latest_status":"found"},"latest_run_id":77},{"id":"external_evidence_workspace:xiaohongshu_search:external_evidence_source_runbook:fix_external_source","source":"external_evidence_source_runbook","source_id":"xiaohongshu_search","status":"blocker","priority":"P0","category":"source_blocked","code":"fix_external_source","title":"小红书公开搜索 source runbook","message":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","acceptance":"latest blocker is fixed or converted into an auditable cooldown state; connectivity probe is warning/ok before formal collection retry; raw evidence, reliability score, checked_at, and error payload are retained","evidence":{"plan_state":"blocked","stability_status":"blocker","next_run_at":"2026-06-15T01:10:46.999286+00:00","protected_until":null},"latest_run_id":77},{"id":"external_evidence_workspace:xiaohongshu_search:external_evidence_source_execution_packet:connectivity_probe","source":"external_evidence_source_execution_packet","source_id":"xiaohongshu_search","status":"warning","priority":"P1","category":"stability","code":"connectivity_probe","title":"Connectivity probe evidence","message":"No latest connectivity probe row for this source.","next_action":"Run /geo/evidence/probe-store before the next formal retry if the source is weak or blocked.","acceptance":"A recent connectivity probe confirms source access without writing formal evidence rows.","evidence":{"probe_run_id":null,"probe_status":"","status":"","completed_at":""},"latest_run_id":77},{"id":"external_evidence_workspace:xiaohongshu_search:external_evidence_source_execution_packet:scheduler_cadence","source":"external_evidence_source_execution_packet","source_id":"xiaohongshu_search","status":"warning","priority":"P1","category":"scheduler","code":"scheduler_cadence","title":"Scheduler cadence","message":"Scheduler is not fully proven alive in this process.","next_action":"Enable GEO_EXTERNAL_EVIDENCE_AUTORUN and confirm the cloud process has an alive scheduler thread.","acceptance":"Long-term evidence refreshes run on configured cadence without manual operation.","evidence":{"autorun_enabled":false,"thread_alive":false,"last_status":"","interval_seconds":21600},"latest_run_id":77},{"id":"external_evidence_workspace:xiaohongshu_search:external_evidence_source_execution_packet:source_ledger_coverage","source":"external_evidence_source_execution_packet","source_id":"xiaohongshu_search","status":"warning","priority":"P1","category":"formal_collection","code":"source_ledger_coverage","title":"Source ledger coverage","message":"Latest formal row has no source_ledger coverage entry.","next_action":"Rerun with the current collector so source_ledger records requested/covered/missing states.","acceptance":"Latest run raw_payload.source_ledger includes this source_id.","evidence":{"run_id":77,"ledger_present":false,"ledger_entry":{}},"latest_run_id":77}],"operator_steps":["Fix missing API keys, authorized monitor targets, quota, or latest source errors.","Run a connectivity probe before writing new official evidence rows.","Use compliant public search APIs only; do not bypass platform login, captcha, robots, or access controls.","Configure the required API key, authorized sync target, or real-user monitor target for this source.","Repair the source collection plan so collect-due can request this source explicitly.","Run collect-due for this store/source and retain the generated run id plus source ledger.","Run a connectivity probe before the next formal collection retry.","Collect enough successful probe and formal collection signals to satisfy the stability threshold."],"acceptance_criteria":["source is configured through official API, compliant search API, authorized sync, or AI monitor snapshot","collector plan can request this source explicitly through collect-due","latest formal collection row is auditable with reliability, checked_at, raw material, and ledger coverage","connectivity probe and stability matrix prove long-term source health","operators can see the compliance boundary before every retry"],"compliance_boundary":"Use compliant public search APIs only; do not bypass platform login, captcha, robots, or access controls.","completion_packet":{"run_id":77,"status":"needs_repair","ok":false,"summary":{"requirement_count":4,"blocker_count":1,"warning_count":1,"platform_row_count":7,"requested_count":9,"covered_count":7,"missing_count":3,"ok_source_count":6,"cooldown_source_count":0,"blocked_source_count":0,"review_source_count":1,"avg_reliability_score":84.6},"next_action":"Review the candidate evidence manually, add verified links if needed, and tune store aliases or target keywords."},"runbook_item":{"id":"external_source:all:xiaohongshu_search","source":"external_evidence_source_runbook","action_type":"fix_external_source","lane":"source_blocked","lane_label":"Source blocked","status":"blocked","priority_score":92,"priority_label":"P0","title":"小红书公开搜索 source runbook","message":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","action_url":"/geo/evidence","api_url":"/geo/api/evidence/external-source-runbook?store_id=0","store_id":0,"store_name":"","source_id":"xiaohongshu_search","provider":"xiaohongshu","section":"search","channel":"search_api","configured":false,"target_count":0,"cadence_hours":48,"plan_state":"blocked","health_status":"blocker","stability_status":"blocker","latest_status":"found","latest_status_label":"已找到","latest_checked_at":"2026-06-13T01:10:46.999286+00:00","latest_age_hours":3,"latest_error":"","latest_run_id":77,"next_run_at":"2026-06-15T01:10:46.999286+00:00","protected_until":null,"success_rate":73.3,"signal_count":30,"collection_signal_count":30,"probe_signal_count":0,"failure_streak":0,"consecutive_problem_count":0,"consecutive_blocker_count":0,"compliance_boundary":"Use compliant public search APIs only; do not bypass platform login, captcha, robots, or access controls.","collector_options":{"include_maps":false,"include_search":true,"include_dianping":false,"include_ai":false,"map_provider_ids":[],"search_provider_ids":["xiaohongshu"]},"operator_steps":["Fix missing API keys, authorized monitor targets, quota, or latest source errors.","Run a connectivity probe before writing new official evidence rows.","Use compliant public search APIs only; do not bypass platform login, captcha, robots, or access controls."],"acceptance_criteria":["latest blocker is fixed or converted into an auditable cooldown state","connectivity probe is warning/ok before formal collection retry","raw evidence, reliability score, checked_at, and error payload are retained","collection respects official APIs, authorized sync, or compliant public search boundaries"]},"execution_row":{"source_id":"xiaohongshu_search","provider":"xiaohongshu","label":"小红书公开搜索","category":"social","channel":"search_api","section":"search","status":"blocker","priority":"P0","configured":false,"target_count":0,"plan_state":"blocked","health_status":"blocker","stability_status":"blocker","latest_run_id":77,"latest_row_id":447,"latest_status":"found","latest_checked_at":"2026-06-13T01:10:46.999286","latest_age_hours":3,"latest_reliability_grade":"A","latest_reliability_score":91.2,"latest_error":null,"item_count":2,"ledger_entry_present":false,"probe_status":"","probe_run_id":null,"signal_count":30,"success_rate":73.3,"compliance_boundary":"Use compliant public search APIs only; do not bypass platform login, captcha, robots, or access controls.","requirements":[{"code":"source_catalog","title":"Source catalog entry","status":"ok","category":"source_contract","required":true,"priority":"P2","message":"Source exists in SOURCE_SPECS.","next_action":"Keep this source in the external evidence source catalog.","acceptance":"Source has a stable source_id, provider, channel, cadence, and compliance category.","evidence":{"source_id":"xiaohongshu_search","provider":"xiaohongshu","channel":"search_api","cadence_hours":48}},{"code":"source_configuration","title":"Cloud source configuration","status":"blocker","category":"configuration","required":true,"priority":"P0","message":"缺少环境变量：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY","next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","acceptance":"Cloud worker can legally access this source without bypassing platform access controls.","evidence":{"configured":false,"target_count":0,"config_env":"BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY"}},{"code":"collector_plan_contract","title":"Collector plan contract","status":"ok","category":"collector","required":true,"priority":"P2","message":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_action":"Repair collection plan routing or source catalog mapping before collect-due.","acceptance":"collection_packet.collector_options can request exactly this source.","evidence":{"state":"blocked","collector_options":{"include_maps":false,"include_search":true,"include_dianping":false,"include_ai":false,"map_provider_ids":[],"search_provider_ids":["xiaohongshu"]}}},{"code":"collection_plan_state","title":"Collection plan state","status":"blocker","category":"collector","required":true,"priority":"P0","message":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_action":"Repair source configuration, authorization, target setup, or latest blocking error.","acceptance":"Source is due, scheduled, or cooling down; protected/blocked states have an explicit repair path.","evidence":{"state":"blocked","reason":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_run_at":"2026-06-15T01:10:46.999286+00:00","protected_until":null}},{"code":"latest_formal_collection","title":"Latest formal collection","status":"ok","category":"formal_collection","required":true,"priority":"P2","message":"Latest formal collection row is positive.","next_action":"Run collect-due or repair source errors before relying on this source.","acceptance":"Latest GeoPlatformEvidence row is positive or has an auditable weak/not-found explanation.","evidence":{"run_id":77,"row_id":447,"status":"found","checked_at":"2026-06-13T01:10:46.999286","age_hours":3,"error_message":null}},{"code":"source_ledger_coverage","title":"Source ledger coverage","status":"warning","category":"formal_collection","required":true,"priority":"P1","message":"Latest formal row has no source_ledger coverage entry.","next_action":"Rerun with the current collector so source_ledger records requested/covered/missing states.","acceptance":"Latest run raw_payload.source_ledger includes this source_id.","evidence":{"run_id":77,"ledger_present":false,"ledger_entry":{}}},{"code":"formal_row_quality","title":"Formal row quality","status":"ok","category":"formal_collection","required":true,"priority":"P2","message":"Formal row retains checked_at, reliability, and raw/error evidence material.","next_action":"Persist checked_at, reliability score, raw payload/excerpt, URL, error, and evidence items.","acceptance":"Formal row is auditable and can be used by reliability scoring and attribution baselines.","evidence":{"checked_at":true,"reliability":true,"raw_material":true,"item_count":2}},{"code":"connectivity_probe","title":"Connectivity probe evidence","status":"warning","category":"stability","required":false,"priority":"P1","message":"No latest connectivity probe row for this source.","next_action":"Run /geo/evidence/probe-store before the next formal retry if the source is weak or blocked.","acceptance":"A recent connectivity probe confirms source access without writing formal evidence rows.","evidence":{"probe_run_id":null,"probe_status":"","status":"","completed_at":""}},{"code":"stability_signal","title":"Long-term stability signal","status":"blocker","category":"stability","required":true,"priority":"P0","message":"Health matrix has a configuration, authorization, or latest-source blocker.","next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","acceptance":"Recent formal collection and probe signals meet configured stability thresholds.","evidence":{"signal_count":30,"success_rate":73.3,"consecutive_blocker_count":0,"latest_status":"found"}},{"code":"compliance_boundary","title":"Compliance boundary","status":"ok","category":"compliance","required":true,"priority":"P2","message":"Use compliant public search APIs only; do not bypass platform login, captcha, robots, or access controls.","next_action":"Define whether this source uses official API, compliant search API, authorized sync, or AI monitor snapshots.","acceptance":"Operators can see the allowed collection boundary before retrying.","evidence":{"channel":"search_api","compliance_note":"Use compliant public search APIs only; do not bypass platform login, captcha, robots, or access controls.","ledger_compliance_note":""}},{"code":"scheduler_cadence","title":"Scheduler cadence","status":"warning","category":"scheduler","required":false,"priority":"P1","message":"Scheduler is not fully proven alive in this process.","next_action":"Enable GEO_EXTERNAL_EVIDENCE_AUTORUN and confirm the cloud process has an alive scheduler thread.","acceptance":"Long-term evidence refreshes run on configured cadence without manual operation.","evidence":{"autorun_enabled":false,"thread_alive":false,"last_status":"","interval_seconds":21600}}],"blocker_count":3,"warning_count":3,"next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","operator_steps":["Configure the required API key, authorized sync target, or real-user monitor target for this source.","Repair the source collection plan so collect-due can request this source explicitly.","Run collect-due for this store/source and retain the generated run id plus source ledger.","Run a connectivity probe before the next formal collection retry.","Collect enough successful probe and formal collection signals to satisfy the stability threshold.","Enable GEO_EXTERNAL_EVIDENCE_AUTORUN on the cloud server and confirm the scheduler thread is alive."],"acceptance_criteria":["source is configured through official API, compliant search API, authorized sync, or AI monitor snapshot","collector plan can request this source explicitly through collect-due","latest formal collection row is auditable with reliability, checked_at, raw material, and ledger coverage","connectivity probe and stability matrix prove long-term source health","operators can see the compliance boundary before every retry"]},"workspace_links":{"page":"/geo/evidence","workspace_api":"/geo/api/evidence/external-collection-workspace-packet?store_id=0&limit=80","runbook_api":"/geo/api/evidence/external-source-runbook?store_id=0","execution_api":"/geo/api/evidence/external-source-execution-packet?store_id=0&source_id=xiaohongshu_search","completion_api":"/geo/api/evidence/external-collection-completion-packet?run_id=77","run_detail":"/geo/evidence/77","collect_due":"/geo/evidence/collect-due","probe":"/geo/evidence/probe-store"},"next_action":"Fix missing source configuration or collector section errors, then rerun collect-due for this store."}],"repair_queue":[{"id":"external_evidence_workspace:ai_search:external_evidence_collection_completion_packet:requested_source_coverage","source":"external_evidence_collection_completion_packet","source_id":"ai_search","status":"blocker","priority":"P0","category":"collection_completion","code":"requested_source_coverage","title":"Requested source coverage","message":"8/9 requested source(s) did not produce an auditable row.","next_action":"Fix missing source configuration or collector section errors, then rerun collect-due for this store.","acceptance":"Every requested external source has a GeoPlatformEvidence row or an explicit missing-source explanation.","evidence":{"requested":9,"covered":1,"missing":8,"row_count":1},"latest_run_id":47},{"id":"external_evidence_workspace:amap:external_evidence_collection_completion_packet:requested_source_coverage","source":"external_evidence_collection_completion_packet","source_id":"amap","status":"blocker","priority":"P0","category":"collection_completion","code":"requested_source_coverage","title":"Requested source coverage","message":"6/9 requested source(s) did not produce an auditable row.","next_action":"Fix missing source configuration or collector section errors, then rerun collect-due for this store.","acceptance":"Every requested external source has a GeoPlatformEvidence row or an explicit missing-source explanation.","evidence":{"requested":9,"covered":7,"missing":6,"row_count":7},"latest_run_id":12},{"id":"external_evidence_workspace:baidu_maps:external_evidence_source_execution_packet:formal_row_quality","source":"external_evidence_source_execution_packet","source_id":"baidu_maps","status":"blocker","priority":"P0","category":"formal_collection","code":"formal_row_quality","title":"Formal row quality","message":"No formal row exists, so quality fields cannot be verified.","next_action":"Persist checked_at, reliability score, raw payload/excerpt, URL, error, and evidence items.","acceptance":"Formal row is auditable and can be used by reliability scoring and attribution baselines.","evidence":{},"latest_run_id":null},{"id":"external_evidence_workspace:baidu_maps:external_evidence_source_execution_packet:latest_formal_collection","source":"external_evidence_source_execution_packet","source_id":"baidu_maps","status":"blocker","priority":"P0","category":"formal_collection","code":"latest_formal_collection","title":"Latest formal collection","message":"No formal GeoPlatformEvidence row exists for this source.","next_action":"Run collect-due or repair source errors before relying on this source.","acceptance":"Latest GeoPlatformEvidence row is positive or has an auditable weak/not-found explanation.","evidence":{"run_id":null,"row_id":null,"status":"","checked_at":"","age_hours":null,"error_message":""},"latest_run_id":null},{"id":"external_evidence_workspace:baidu_maps:external_evidence_source_execution_packet:source_ledger_coverage","source":"external_evidence_source_execution_packet","source_id":"baidu_maps","status":"blocker","priority":"P0","category":"formal_collection","code":"source_ledger_coverage","title":"Source ledger coverage","message":"Latest formal row has no source_ledger coverage entry.","next_action":"Rerun with the current collector so source_ledger records requested/covered/missing states.","acceptance":"Latest run raw_payload.source_ledger includes this source_id.","evidence":{"run_id":null,"ledger_present":false,"ledger_entry":{}},"latest_run_id":null},{"id":"external_evidence_workspace:dianping_monitor:external_evidence_source_execution_packet:collection_plan_state","source":"external_evidence_source_execution_packet","source_id":"dianping_monitor","status":"blocker","priority":"P0","category":"collector","code":"collection_plan_state","title":"Collection plan state","message":"先配置大众点评监控目标（自店/竞品），并通过同步接口沉淀指标快照。","next_action":"Repair source configuration, authorization, target setup, or latest blocking error.","acceptance":"Source is due, scheduled, or cooling down; protected/blocked states have an explicit repair path.","evidence":{"state":"blocked","reason":"先配置大众点评监控目标（自店/竞品），并通过同步接口沉淀指标快照。","next_run_at":"2026-06-13T05:02:57.362145+00:00","protected_until":null},"latest_run_id":null},{"id":"external_evidence_workspace:dianping_monitor:external_evidence_source_execution_packet:formal_row_quality","source":"external_evidence_source_execution_packet","source_id":"dianping_monitor","status":"blocker","priority":"P0","category":"formal_collection","code":"formal_row_quality","title":"Formal row quality","message":"No formal row exists, so quality fields cannot be verified.","next_action":"Persist checked_at, reliability score, raw payload/excerpt, URL, error, and evidence items.","acceptance":"Formal row is auditable and can be used by reliability scoring and attribution baselines.","evidence":{},"latest_run_id":null},{"id":"external_evidence_workspace:dianping_monitor:external_evidence_source_execution_packet:latest_formal_collection","source":"external_evidence_source_execution_packet","source_id":"dianping_monitor","status":"blocker","priority":"P0","category":"formal_collection","code":"latest_formal_collection","title":"Latest formal collection","message":"No formal GeoPlatformEvidence row exists for this source.","next_action":"Run collect-due or repair source errors before relying on this source.","acceptance":"Latest GeoPlatformEvidence row is positive or has an auditable weak/not-found explanation.","evidence":{"run_id":null,"row_id":null,"status":"","checked_at":"","age_hours":null,"error_message":""},"latest_run_id":null},{"id":"external_evidence_workspace:dianping_monitor:external_evidence_source_execution_packet:source_configuration","source":"external_evidence_source_execution_packet","source_id":"dianping_monitor","status":"blocker","priority":"P0","category":"configuration","code":"source_configuration","title":"Cloud source configuration","message":"未配置大众点评监控目标","next_action":"先配置大众点评监控目标（自店/竞品），并通过同步接口沉淀指标快照。","acceptance":"Cloud worker can legally access this source without bypassing platform access controls.","evidence":{"configured":false,"target_count":0,"config_env":"DIANPING_OPEN_APP_KEY / DIANPING_OPEN_APP_SECRET / DIANPING_OPEN_ACCESS_TOKEN"},"latest_run_id":null},{"id":"external_evidence_workspace:dianping_monitor:external_evidence_source_execution_packet:source_ledger_coverage","source":"external_evidence_source_execution_packet","source_id":"dianping_monitor","status":"blocker","priority":"P0","category":"formal_collection","code":"source_ledger_coverage","title":"Source ledger coverage","message":"Latest formal row has no source_ledger coverage entry.","next_action":"Rerun with the current collector so source_ledger records requested/covered/missing states.","acceptance":"Latest run raw_payload.source_ledger includes this source_id.","evidence":{"run_id":null,"ledger_present":false,"ledger_entry":{}},"latest_run_id":null},{"id":"external_evidence_workspace:dianping_monitor:external_evidence_source_execution_packet:stability_signal","source":"external_evidence_source_execution_packet","source_id":"dianping_monitor","status":"blocker","priority":"P0","category":"stability","code":"stability_signal","title":"Long-term stability signal","message":"Health matrix has a configuration, authorization, or latest-source blocker.","next_action":"先配置大众点评监控目标（自店/竞品），并通过同步接口沉淀指标快照。","acceptance":"Recent formal collection and probe signals meet configured stability thresholds.","evidence":{"signal_count":0,"success_rate":null,"consecutive_blocker_count":0,"latest_status":""},"latest_run_id":null},{"id":"external_evidence_workspace:dianping_monitor:external_evidence_source_runbook:fix_external_source","source":"external_evidence_source_runbook","source_id":"dianping_monitor","status":"blocker","priority":"P0","category":"source_blocked","code":"fix_external_source","title":"大众点评同步监控 source runbook","message":"先配置大众点评监控目标（自店/竞品），并通过同步接口沉淀指标快照。","next_action":"先配置大众点评监控目标（自店/竞品），并通过同步接口沉淀指标快照。","acceptance":"latest blocker is fixed or converted into an auditable cooldown state; connectivity probe is warning/ok before formal collection retry; raw evidence, reliability score, checked_at, and error payload are retained","evidence":{"plan_state":"blocked","stability_status":"blocker","next_run_at":"2026-06-13T05:02:57.257163+00:00","protected_until":null},"latest_run_id":null},{"id":"external_evidence_workspace:dianping_search:external_evidence_collection_completion_packet:requested_source_coverage","source":"external_evidence_collection_completion_packet","source_id":"dianping_search","status":"blocker","priority":"P0","category":"collection_completion","code":"requested_source_coverage","title":"Requested source coverage","message":"3/9 requested source(s) did not produce an auditable row.","next_action":"Fix missing source configuration or collector section errors, then rerun collect-due for this store.","acceptance":"Every requested external source has a GeoPlatformEvidence row or an explicit missing-source explanation.","evidence":{"requested":9,"covered":7,"missing":3,"row_count":7},"latest_run_id":77},{"id":"external_evidence_workspace:dianping_search:external_evidence_source_execution_packet:collection_plan_state","source":"external_evidence_source_execution_packet","source_id":"dianping_search","status":"blocker","priority":"P0","category":"collector","code":"collection_plan_state","title":"Collection plan state","message":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_action":"Repair source configuration, authorization, target setup, or latest blocking error.","acceptance":"Source is due, scheduled, or cooling down; protected/blocked states have an explicit repair path.","evidence":{"state":"blocked","reason":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_run_at":"2026-06-16T01:10:46.999286+00:00","protected_until":null},"latest_run_id":77},{"id":"external_evidence_workspace:dianping_search:external_evidence_source_execution_packet:source_configuration","source":"external_evidence_source_execution_packet","source_id":"dianping_search","status":"blocker","priority":"P0","category":"configuration","code":"source_configuration","title":"Cloud source configuration","message":"缺少环境变量：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY","next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","acceptance":"Cloud worker can legally access this source without bypassing platform access controls.","evidence":{"configured":false,"target_count":0,"config_env":"BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY"},"latest_run_id":77},{"id":"external_evidence_workspace:dianping_search:external_evidence_source_execution_packet:stability_signal","source":"external_evidence_source_execution_packet","source_id":"dianping_search","status":"blocker","priority":"P0","category":"stability","code":"stability_signal","title":"Long-term stability signal","message":"Health matrix has a configuration, authorization, or latest-source blocker.","next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","acceptance":"Recent formal collection and probe signals meet configured stability thresholds.","evidence":{"signal_count":30,"success_rate":100.0,"consecutive_blocker_count":0,"latest_status":"found"},"latest_run_id":77},{"id":"external_evidence_workspace:dianping_search:external_evidence_source_runbook:fix_external_source","source":"external_evidence_source_runbook","source_id":"dianping_search","status":"blocker","priority":"P0","category":"source_blocked","code":"fix_external_source","title":"大众点评公开搜索 source runbook","message":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","acceptance":"latest blocker is fixed or converted into an auditable cooldown state; connectivity probe is warning/ok before formal collection retry; raw evidence, reliability score, checked_at, and error payload are retained","evidence":{"plan_state":"blocked","stability_status":"blocker","next_run_at":"2026-06-16T01:10:46.999286+00:00","protected_until":null},"latest_run_id":77},{"id":"external_evidence_workspace:douyin_search:external_evidence_collection_completion_packet:requested_source_coverage","source":"external_evidence_collection_completion_packet","source_id":"douyin_search","status":"blocker","priority":"P0","category":"collection_completion","code":"requested_source_coverage","title":"Requested source coverage","message":"3/9 requested source(s) did not produce an auditable row.","next_action":"Fix missing source configuration or collector section errors, then rerun collect-due for this store.","acceptance":"Every requested external source has a GeoPlatformEvidence row or an explicit missing-source explanation.","evidence":{"requested":9,"covered":7,"missing":3,"row_count":7},"latest_run_id":77},{"id":"external_evidence_workspace:douyin_search:external_evidence_source_execution_packet:collection_plan_state","source":"external_evidence_source_execution_packet","source_id":"douyin_search","status":"blocker","priority":"P0","category":"collector","code":"collection_plan_state","title":"Collection plan state","message":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_action":"Repair source configuration, authorization, target setup, or latest blocking error.","acceptance":"Source is due, scheduled, or cooling down; protected/blocked states have an explicit repair path.","evidence":{"state":"blocked","reason":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_run_at":"2026-06-15T01:10:46.999286+00:00","protected_until":null},"latest_run_id":77},{"id":"external_evidence_workspace:douyin_search:external_evidence_source_execution_packet:source_configuration","source":"external_evidence_source_execution_packet","source_id":"douyin_search","status":"blocker","priority":"P0","category":"configuration","code":"source_configuration","title":"Cloud source configuration","message":"缺少环境变量：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY","next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","acceptance":"Cloud worker can legally access this source without bypassing platform access controls.","evidence":{"configured":false,"target_count":0,"config_env":"BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY"},"latest_run_id":77},{"id":"external_evidence_workspace:douyin_search:external_evidence_source_execution_packet:stability_signal","source":"external_evidence_source_execution_packet","source_id":"douyin_search","status":"blocker","priority":"P0","category":"stability","code":"stability_signal","title":"Long-term stability signal","message":"Health matrix has a configuration, authorization, or latest-source blocker.","next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","acceptance":"Recent formal collection and probe signals meet configured stability thresholds.","evidence":{"signal_count":30,"success_rate":100.0,"consecutive_blocker_count":0,"latest_status":"found"},"latest_run_id":77},{"id":"external_evidence_workspace:douyin_search:external_evidence_source_runbook:fix_external_source","source":"external_evidence_source_runbook","source_id":"douyin_search","status":"blocker","priority":"P0","category":"source_blocked","code":"fix_external_source","title":"抖音公开搜索 source runbook","message":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","acceptance":"latest blocker is fixed or converted into an auditable cooldown state; connectivity probe is warning/ok before formal collection retry; raw evidence, reliability score, checked_at, and error payload are retained","evidence":{"plan_state":"blocked","stability_status":"blocker","next_run_at":"2026-06-15T01:10:46.999286+00:00","protected_until":null},"latest_run_id":77},{"id":"external_evidence_workspace:meituan_search:external_evidence_collection_completion_packet:requested_source_coverage","source":"external_evidence_collection_completion_packet","source_id":"meituan_search","status":"blocker","priority":"P0","category":"collection_completion","code":"requested_source_coverage","title":"Requested source coverage","message":"3/9 requested source(s) did not produce an auditable row.","next_action":"Fix missing source configuration or collector section errors, then rerun collect-due for this store.","acceptance":"Every requested external source has a GeoPlatformEvidence row or an explicit missing-source explanation.","evidence":{"requested":9,"covered":7,"missing":3,"row_count":7},"latest_run_id":77},{"id":"external_evidence_workspace:meituan_search:external_evidence_source_execution_packet:collection_plan_state","source":"external_evidence_source_execution_packet","source_id":"meituan_search","status":"blocker","priority":"P0","category":"collector","code":"collection_plan_state","title":"Collection plan state","message":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_action":"Repair source configuration, authorization, target setup, or latest blocking error.","acceptance":"Source is due, scheduled, or cooling down; protected/blocked states have an explicit repair path.","evidence":{"state":"blocked","reason":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_run_at":"2026-06-16T01:10:46.999286+00:00","protected_until":null},"latest_run_id":77},{"id":"external_evidence_workspace:meituan_search:external_evidence_source_execution_packet:source_configuration","source":"external_evidence_source_execution_packet","source_id":"meituan_search","status":"blocker","priority":"P0","category":"configuration","code":"source_configuration","title":"Cloud source configuration","message":"缺少环境变量：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY","next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","acceptance":"Cloud worker can legally access this source without bypassing platform access controls.","evidence":{"configured":false,"target_count":0,"config_env":"BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY"},"latest_run_id":77},{"id":"external_evidence_workspace:meituan_search:external_evidence_source_execution_packet:stability_signal","source":"external_evidence_source_execution_packet","source_id":"meituan_search","status":"blocker","priority":"P0","category":"stability","code":"stability_signal","title":"Long-term stability signal","message":"Health matrix has a configuration, authorization, or latest-source blocker.","next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","acceptance":"Recent formal collection and probe signals meet configured stability thresholds.","evidence":{"signal_count":30,"success_rate":100.0,"consecutive_blocker_count":0,"latest_status":"found"},"latest_run_id":77},{"id":"external_evidence_workspace:meituan_search:external_evidence_source_runbook:fix_external_source","source":"external_evidence_source_runbook","source_id":"meituan_search","status":"blocker","priority":"P0","category":"source_blocked","code":"fix_external_source","title":"美团公开搜索 source runbook","message":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","acceptance":"latest blocker is fixed or converted into an auditable cooldown state; connectivity probe is warning/ok before formal collection retry; raw evidence, reliability score, checked_at, and error payload are retained","evidence":{"plan_state":"blocked","stability_status":"blocker","next_run_at":"2026-06-16T01:10:46.999286+00:00","protected_until":null},"latest_run_id":77},{"id":"external_evidence_workspace:tencent_maps:external_evidence_source_execution_packet:formal_row_quality","source":"external_evidence_source_execution_packet","source_id":"tencent_maps","status":"blocker","priority":"P0","category":"formal_collection","code":"formal_row_quality","title":"Formal row quality","message":"No formal row exists, so quality fields cannot be verified.","next_action":"Persist checked_at, reliability score, raw payload/excerpt, URL, error, and evidence items.","acceptance":"Formal row is auditable and can be used by reliability scoring and attribution baselines.","evidence":{},"latest_run_id":null},{"id":"external_evidence_workspace:tencent_maps:external_evidence_source_execution_packet:latest_formal_collection","source":"external_evidence_source_execution_packet","source_id":"tencent_maps","status":"blocker","priority":"P0","category":"formal_collection","code":"latest_formal_collection","title":"Latest formal collection","message":"No formal GeoPlatformEvidence row exists for this source.","next_action":"Run collect-due or repair source errors before relying on this source.","acceptance":"Latest GeoPlatformEvidence row is positive or has an auditable weak/not-found explanation.","evidence":{"run_id":null,"row_id":null,"status":"","checked_at":"","age_hours":null,"error_message":""},"latest_run_id":null},{"id":"external_evidence_workspace:tencent_maps:external_evidence_source_execution_packet:source_ledger_coverage","source":"external_evidence_source_execution_packet","source_id":"tencent_maps","status":"blocker","priority":"P0","category":"formal_collection","code":"source_ledger_coverage","title":"Source ledger coverage","message":"Latest formal row has no source_ledger coverage entry.","next_action":"Rerun with the current collector so source_ledger records requested/covered/missing states.","acceptance":"Latest run raw_payload.source_ledger includes this source_id.","evidence":{"run_id":null,"ledger_present":false,"ledger_entry":{}},"latest_run_id":null},{"id":"external_evidence_workspace:xiaohongshu_search:external_evidence_collection_completion_packet:requested_source_coverage","source":"external_evidence_collection_completion_packet","source_id":"xiaohongshu_search","status":"blocker","priority":"P0","category":"collection_completion","code":"requested_source_coverage","title":"Requested source coverage","message":"3/9 requested source(s) did not produce an auditable row.","next_action":"Fix missing source configuration or collector section errors, then rerun collect-due for this store.","acceptance":"Every requested external source has a GeoPlatformEvidence row or an explicit missing-source explanation.","evidence":{"requested":9,"covered":7,"missing":3,"row_count":7},"latest_run_id":77},{"id":"external_evidence_workspace:xiaohongshu_search:external_evidence_source_execution_packet:collection_plan_state","source":"external_evidence_source_execution_packet","source_id":"xiaohongshu_search","status":"blocker","priority":"P0","category":"collector","code":"collection_plan_state","title":"Collection plan state","message":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_action":"Repair source configuration, authorization, target setup, or latest blocking error.","acceptance":"Source is due, scheduled, or cooling down; protected/blocked states have an explicit repair path.","evidence":{"state":"blocked","reason":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_run_at":"2026-06-15T01:10:46.999286+00:00","protected_until":null},"latest_run_id":77},{"id":"external_evidence_workspace:xiaohongshu_search:external_evidence_source_execution_packet:source_configuration","source":"external_evidence_source_execution_packet","source_id":"xiaohongshu_search","status":"blocker","priority":"P0","category":"configuration","code":"source_configuration","title":"Cloud source configuration","message":"缺少环境变量：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY","next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","acceptance":"Cloud worker can legally access this source without bypassing platform access controls.","evidence":{"configured":false,"target_count":0,"config_env":"BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY"},"latest_run_id":77},{"id":"external_evidence_workspace:xiaohongshu_search:external_evidence_source_execution_packet:stability_signal","source":"external_evidence_source_execution_packet","source_id":"xiaohongshu_search","status":"blocker","priority":"P0","category":"stability","code":"stability_signal","title":"Long-term stability signal","message":"Health matrix has a configuration, authorization, or latest-source blocker.","next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","acceptance":"Recent formal collection and probe signals meet configured stability thresholds.","evidence":{"signal_count":30,"success_rate":73.3,"consecutive_blocker_count":0,"latest_status":"found"},"latest_run_id":77},{"id":"external_evidence_workspace:xiaohongshu_search:external_evidence_source_runbook:fix_external_source","source":"external_evidence_source_runbook","source_id":"xiaohongshu_search","status":"blocker","priority":"P0","category":"source_blocked","code":"fix_external_source","title":"小红书公开搜索 source runbook","message":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","next_action":"先补齐配置：BING_SEARCH_API_KEY / SERPAPI_API_KEY / BRAVE_SEARCH_API_KEY / TAVILY_API_KEY。","acceptance":"latest blocker is fixed or converted into an auditable cooldown state; connectivity probe is warning/ok before formal collection retry; raw evidence, reliability score, checked_at, and error payload are retained","evidence":{"plan_state":"blocked","stability_status":"blocker","next_run_at":"2026-06-15T01:10:46.999286+00:00","protected_until":null},"latest_run_id":77},{"id":"external_evidence_workspace:ai_search:external_evidence_source_runbook:collect_due_source","source":"external_evidence_source_runbook","source_id":"ai_search","status":"warning","priority":"P0","category":"collection_due","code":"collect_due_source","title":"AI 真实用户监测 source runbook","message":"Cadence reached (48h); collect a fresh snapshot for baseline continuity.","next_action":"近 10 条成功率只有 0%，需要观察搜索 API/平台授权稳定性。","acceptance":"collect-due creates a fresh GeoPlatformEvidence row for the source; source state returns to scheduled/stable or explains a compliant not-found result; raw evidence, reliability score, checked_at, and error payload are retained","evidence":{"plan_state":"due","stability_status":"warning","next_run_at":"2026-06-12T08:38:21.448242+00:00","protected_until":null},"latest_run_id":47},{"id":"external_evidence_workspace:ai_search:external_evidence_source_execution_packet:connectivity_probe","source":"external_evidence_source_execution_packet","source_id":"ai_search","status":"warning","priority":"P1","category":"stability","code":"connectivity_probe","title":"Connectivity probe evidence","message":"No latest connectivity probe row for this source.","next_action":"Run /geo/evidence/probe-store before the next formal retry if the source is weak or blocked.","acceptance":"A recent connectivity probe confirms source access without writing formal evidence rows.","evidence":{"probe_run_id":null,"probe_status":"","status":"","completed_at":""},"latest_run_id":47},{"id":"external_evidence_workspace:ai_search:external_evidence_source_execution_packet:latest_formal_collection","source":"external_evidence_source_execution_packet","source_id":"ai_search","status":"warning","priority":"P1","category":"formal_collection","code":"latest_formal_collection","title":"Latest formal collection","message":"Latest source is reachable but evidence is weak, not found, or not mentioned.","next_action":"Run collect-due or repair source errors before relying on this source.","acceptance":"Latest GeoPlatformEvidence row is positive or has an auditable weak/not-found explanation.","evidence":{"run_id":47,"row_id":239,"status":"not_mentioned","checked_at":"2026-06-10T08:38:21.448242","age_hours":68,"error_message":null},"latest_run_id":47},{"id":"external_evidence_workspace:ai_search:external_evidence_source_execution_packet:scheduler_cadence","source":"external_evidence_source_execution_packet","source_id":"ai_search","status":"warning","priority":"P1","category":"scheduler","code":"scheduler_cadence","title":"Scheduler cadence","message":"Scheduler is not fully proven alive in this process.","next_action":"Enable GEO_EXTERNAL_EVIDENCE_AUTORUN and confirm the cloud process has an alive scheduler thread.","acceptance":"Long-term evidence refreshes run on configured cadence without manual operation.","evidence":{"autorun_enabled":false,"thread_alive":false,"last_status":"","interval_seconds":21600},"latest_run_id":47},{"id":"external_evidence_workspace:ai_search:external_evidence_source_execution_packet:source_ledger_coverage","source":"external_evidence_source_execution_packet","source_id":"ai_search","status":"warning","priority":"P1","category":"formal_collection","code":"source_ledger_coverage","title":"Source ledger coverage","message":"Latest formal row has no source_ledger coverage entry.","next_action":"Rerun with the current collector so source_ledger records requested/covered/missing states.","acceptance":"Latest run raw_payload.source_ledger includes this source_id.","evidence":{"run_id":47,"ledger_present":false,"ledger_entry":{}},"latest_run_id":47},{"id":"external_evidence_workspace:ai_search:external_evidence_source_execution_packet:stability_signal","source":"external_evidence_source_execution_packet","source_id":"ai_search","status":"warning","priority":"P1","category":"stability","code":"stability_signal","title":"Long-term stability signal","message":"Success rate 26.7% is below target 70%.","next_action":"Review latest signal, tune aliases or targets, then keep collecting until the success rate reaches target.","acceptance":"Recent formal collection and probe signals meet configured stability thresholds.","evidence":{"signal_count":15,"success_rate":26.7,"consecutive_blocker_count":0,"latest_status":"not_mentioned"},"latest_run_id":47},{"id":"external_evidence_workspace:amap:external_evidence_source_execution_packet:connectivity_probe","source":"external_evidence_source_execution_packet","source_id":"amap","status":"warning","priority":"P1","category":"stability","code":"connectivity_probe","title":"Connectivity probe evidence","message":"No latest connectivity probe row for this source.","next_action":"Run /geo/evidence/probe-store before the next formal retry if the source is weak or blocked.","acceptance":"A recent connectivity probe confirms source access without writing formal evidence rows.","evidence":{"probe_run_id":null,"probe_status":"","status":"","completed_at":""},"latest_run_id":12},{"id":"external_evidence_workspace:amap:external_evidence_source_execution_packet:latest_formal_collection","source":"external_evidence_source_execution_packet","source_id":"amap","status":"warning","priority":"P1","category":"formal_collection","code":"latest_formal_collection","title":"Latest formal collection","message":"Latest formal collection needs review: found_strong.","next_action":"Run collect-due or repair source errors before relying on this source.","acceptance":"Latest GeoPlatformEvidence row is positive or has an auditable weak/not-found explanation.","evidence":{"run_id":12,"row_id":78,"status":"found_strong","checked_at":"2026-06-08T11:34:00","age_hours":113,"error_message":null},"latest_run_id":12},{"id":"external_evidence_workspace:amap:external_evidence_source_execution_packet:scheduler_cadence","source":"external_evidence_source_execution_packet","source_id":"amap","status":"warning","priority":"P1","category":"scheduler","code":"scheduler_cadence","title":"Scheduler cadence","message":"Scheduler is not fully proven alive in this process.","next_action":"Enable GEO_EXTERNAL_EVIDENCE_AUTORUN and confirm the cloud process has an alive scheduler thread.","acceptance":"Long-term evidence refreshes run on configured cadence without manual operation.","evidence":{"autorun_enabled":false,"thread_alive":false,"last_status":"","interval_seconds":21600},"latest_run_id":12},{"id":"external_evidence_workspace:amap:external_evidence_source_execution_packet:source_ledger_coverage","source":"external_evidence_source_execution_packet","source_id":"amap","status":"warning","priority":"P1","category":"formal_collection","code":"source_ledger_coverage","title":"Source ledger coverage","message":"Latest formal row has no source_ledger coverage entry.","next_action":"Rerun with the current collector so source_ledger records requested/covered/missing states.","acceptance":"Latest run raw_payload.source_ledger includes this source_id.","evidence":{"run_id":12,"ledger_present":false,"ledger_entry":{}},"latest_run_id":12},{"id":"external_evidence_workspace:amap:external_evidence_source_execution_packet:stability_signal","source":"external_evidence_source_execution_packet","source_id":"amap","status":"warning","priority":"P1","category":"stability","code":"stability_signal","title":"Long-term stability signal","message":"Success rate 0% is below target 70%.","next_action":"Review latest signal, tune aliases or targets, then keep collecting until the success rate reaches target.","acceptance":"Recent formal collection and probe signals meet configured stability thresholds.","evidence":{"signal_count":2,"success_rate":0.0,"consecutive_blocker_count":0,"latest_status":"found_strong"},"latest_run_id":12},{"id":"external_evidence_workspace:baidu_maps:external_evidence_source_execution_packet:connectivity_probe","source":"external_evidence_source_execution_packet","source_id":"baidu_maps","status":"warning","priority":"P1","category":"stability","code":"connectivity_probe","title":"Connectivity probe evidence","message":"No latest connectivity probe row for this source.","next_action":"Run /geo/evidence/probe-store before the next formal retry if the source is weak or blocked.","acceptance":"A recent connectivity probe confirms source access without writing formal evidence rows.","evidence":{"probe_run_id":null,"probe_status":"","status":"","completed_at":""},"latest_run_id":null},{"id":"external_evidence_workspace:baidu_maps:external_evidence_source_execution_packet:scheduler_cadence","source":"external_evidence_source_execution_packet","source_id":"baidu_maps","status":"warning","priority":"P1","category":"scheduler","code":"scheduler_cadence","title":"Scheduler cadence","message":"Scheduler is not fully proven alive in this process.","next_action":"Enable GEO_EXTERNAL_EVIDENCE_AUTORUN and confirm the cloud process has an alive scheduler thread.","acceptance":"Long-term evidence refreshes run on configured cadence without manual operation.","evidence":{"autorun_enabled":false,"thread_alive":false,"last_status":"","interval_seconds":21600},"latest_run_id":null},{"id":"external_evidence_workspace:baidu_maps:external_evidence_source_execution_packet:stability_signal","source":"external_evidence_source_execution_packet","source_id":"baidu_maps","status":"warning","priority":"P1","category":"stability","code":"stability_signal","title":"Long-term stability signal","message":"No collection or connectivity probe signal exists in the lookback window.","next_action":"Run connectivity probe and collect-due on this source for at least two successful signals.","acceptance":"Recent formal collection and probe signals meet configured stability thresholds.","evidence":{"signal_count":0,"success_rate":null,"consecutive_blocker_count":0,"latest_status":""},"latest_run_id":null},{"id":"external_evidence_workspace:baidu_maps:external_evidence_source_runbook:collect_due_source","source":"external_evidence_source_runbook","source_id":"baidu_maps","status":"warning","priority":"P1","category":"collection_due","code":"collect_due_source","title":"百度地图官方 API source runbook","message":"Configured but no collection row exists yet; run now to create the first auditable baseline.","next_action":"已具备配置，但还没有该来源的采集记录；建议立即运行外部证据采集。","acceptance":"collect-due creates a fresh GeoPlatformEvidence row for the source; source state returns to scheduled/stable or explains a compliant not-found result; raw evidence, reliability score, checked_at, and error payload are retained","evidence":{"plan_state":"due","stability_status":"warning","next_run_at":"2026-06-13T05:02:57.249172+00:00","protected_until":null},"latest_run_id":null},{"id":"external_evidence_workspace:dianping_monitor:external_evidence_source_execution_packet:connectivity_probe","source":"external_evidence_source_execution_packet","source_id":"dianping_monitor","status":"warning","priority":"P1","category":"stability","code":"connectivity_probe","title":"Connectivity probe evidence","message":"No latest connectivity probe row for this source.","next_action":"Run /geo/evidence/probe-store before the next formal retry if the source is weak or blocked.","acceptance":"A recent connectivity probe confirms source access without writing formal evidence rows.","evidence":{"probe_run_id":null,"probe_status":"","status":"","completed_at":""},"latest_run_id":null},{"id":"external_evidence_workspace:dianping_monitor:external_evidence_source_execution_packet:scheduler_cadence","source":"external_evidence_source_execution_packet","source_id":"dianping_monitor","status":"warning","priority":"P1","category":"scheduler","code":"scheduler_cadence","title":"Scheduler cadence","message":"Scheduler is not fully proven alive in this process.","next_action":"Enable GEO_EXTERNAL_EVIDENCE_AUTORUN and confirm the cloud process has an alive scheduler thread.","acceptance":"Long-term evidence refreshes run on configured cadence without manual operation.","evidence":{"autorun_enabled":false,"thread_alive":false,"last_status":"","interval_seconds":21600},"latest_run_id":null},{"id":"external_evidence_workspace:dianping_search:external_evidence_source_execution_packet:connectivity_probe","source":"external_evidence_source_execution_packet","source_id":"dianping_search","status":"warning","priority":"P1","category":"stability","code":"connectivity_probe","title":"Connectivity probe evidence","message":"No latest connectivity probe row for this source.","next_action":"Run /geo/evidence/probe-store before the next formal retry if the source is weak or blocked.","acceptance":"A recent connectivity probe confirms source access without writing formal evidence rows.","evidence":{"probe_run_id":null,"probe_status":"","status":"","completed_at":""},"latest_run_id":77},{"id":"external_evidence_workspace:dianping_search:external_evidence_source_execution_packet:scheduler_cadence","source":"external_evidence_source_execution_packet","source_id":"dianping_search","status":"warning","priority":"P1","category":"scheduler","code":"scheduler_cadence","title":"Scheduler cadence","message":"Scheduler is not fully proven alive in this process.","next_action":"Enable GEO_EXTERNAL_EVIDENCE_AUTORUN and confirm the cloud process has an alive scheduler thread.","acceptance":"Long-term evidence refreshes run on configured cadence without manual operation.","evidence":{"autorun_enabled":false,"thread_alive":false,"last_status":"","interval_seconds":21600},"latest_run_id":77},{"id":"external_evidence_workspace:dianping_search:external_evidence_source_execution_packet:source_ledger_coverage","source":"external_evidence_source_execution_packet","source_id":"dianping_search","status":"warning","priority":"P1","category":"formal_collection","code":"source_ledger_coverage","title":"Source ledger coverage","message":"Latest formal row has no source_ledger coverage entry.","next_action":"Rerun with the current collector so source_ledger records requested/covered/missing states.","acceptance":"Latest run raw_payload.source_ledger includes this source_id.","evidence":{"run_id":77,"ledger_present":false,"ledger_entry":{}},"latest_run_id":77},{"id":"external_evidence_workspace:douyin_search:external_evidence_source_execution_packet:connectivity_probe","source":"external_evidence_source_execution_packet","source_id":"douyin_search","status":"warning","priority":"P1","category":"stability","code":"connectivity_probe","title":"Connectivity probe evidence","message":"No latest connectivity probe row for this source.","next_action":"Run /geo/evidence/probe-store before the next formal retry if the source is weak or blocked.","acceptance":"A recent connectivity probe confirms source access without writing formal evidence rows.","evidence":{"probe_run_id":null,"probe_status":"","status":"","completed_at":""},"latest_run_id":77},{"id":"external_evidence_workspace:douyin_search:external_evidence_source_execution_packet:scheduler_cadence","source":"external_evidence_source_execution_packet","source_id":"douyin_search","status":"warning","priority":"P1","category":"scheduler","code":"scheduler_cadence","title":"Scheduler cadence","message":"Scheduler is not fully proven alive in this process.","next_action":"Enable GEO_EXTERNAL_EVIDENCE_AUTORUN and confirm the cloud process has an alive scheduler thread.","acceptance":"Long-term evidence refreshes run on configured cadence without manual operation.","evidence":{"autorun_enabled":false,"thread_alive":false,"last_status":"","interval_seconds":21600},"latest_run_id":77},{"id":"external_evidence_workspace:douyin_search:external_evidence_source_execution_packet:source_ledger_coverage","source":"external_evidence_source_execution_packet","source_id":"douyin_search","status":"warning","priority":"P1","category":"formal_collection","code":"source_ledger_coverage","title":"Source ledger coverage","message":"Latest formal row has no source_ledger coverage entry.","next_action":"Rerun with the current collector so source_ledger records requested/covered/missing states.","acceptance":"Latest run raw_payload.source_ledger includes this source_id.","evidence":{"run_id":77,"ledger_present":false,"ledger_entry":{}},"latest_run_id":77},{"id":"external_evidence_workspace:meituan_search:external_evidence_source_execution_packet:connectivity_probe","source":"external_evidence_source_execution_packet","source_id":"meituan_search","status":"warning","priority":"P1","category":"stability","code":"connectivity_probe","title":"Connectivity probe evidence","message":"No latest connectivity probe row for this source.","next_action":"Run /geo/evidence/probe-store before the next formal retry if the source is weak or blocked.","acceptance":"A recent connectivity probe confirms source access without writing formal evidence rows.","evidence":{"probe_run_id":null,"probe_status":"","status":"","completed_at":""},"latest_run_id":77},{"id":"external_evidence_workspace:meituan_search:external_evidence_source_execution_packet:scheduler_cadence","source":"external_evidence_source_execution_packet","source_id":"meituan_search","status":"warning","priority":"P1","category":"scheduler","code":"scheduler_cadence","title":"Scheduler cadence","message":"Scheduler is not fully proven alive in this process.","next_action":"Enable GEO_EXTERNAL_EVIDENCE_AUTORUN and confirm the cloud process has an alive scheduler thread.","acceptance":"Long-term evidence refreshes run on configured cadence without manual operation.","evidence":{"autorun_enabled":false,"thread_alive":false,"last_status":"","interval_seconds":21600},"latest_run_id":77},{"id":"external_evidence_workspace:meituan_search:external_evidence_source_execution_packet:source_ledger_coverage","source":"external_evidence_source_execution_packet","source_id":"meituan_search","status":"warning","priority":"P1","category":"formal_collection","code":"source_ledger_coverage","title":"Source ledger coverage","message":"Latest formal row has no source_ledger coverage entry.","next_action":"Rerun with the current collector so source_ledger records requested/covered/missing states.","acceptance":"Latest run raw_payload.source_ledger includes this source_id.","evidence":{"run_id":77,"ledger_present":false,"ledger_entry":{}},"latest_run_id":77},{"id":"external_evidence_workspace:tencent_maps:external_evidence_source_execution_packet:connectivity_probe","source":"external_evidence_source_execution_packet","source_id":"tencent_maps","status":"warning","priority":"P1","category":"stability","code":"connectivity_probe","title":"Connectivity probe evidence","message":"No latest connectivity probe row for this source.","next_action":"Run /geo/evidence/probe-store before the next formal retry if the source is weak or blocked.","acceptance":"A recent connectivity probe confirms source access without writing formal evidence rows.","evidence":{"probe_run_id":null,"probe_status":"","status":"","completed_at":""},"latest_run_id":null},{"id":"external_evidence_workspace:tencent_maps:external_evidence_source_execution_packet:scheduler_cadence","source":"external_evidence_source_execution_packet","source_id":"tencent_maps","status":"warning","priority":"P1","category":"scheduler","code":"scheduler_cadence","title":"Scheduler cadence","message":"Scheduler is not fully proven alive in this process.","next_action":"Enable GEO_EXTERNAL_EVIDENCE_AUTORUN and confirm the cloud process has an alive scheduler thread.","acceptance":"Long-term evidence refreshes run on configured cadence without manual operation.","evidence":{"autorun_enabled":false,"thread_alive":false,"last_status":"","interval_seconds":21600},"latest_run_id":null},{"id":"external_evidence_workspace:tencent_maps:external_evidence_source_execution_packet:stability_signal","source":"external_evidence_source_execution_packet","source_id":"tencent_maps","status":"warning","priority":"P1","category":"stability","code":"stability_signal","title":"Long-term stability signal","message":"No collection or connectivity probe signal exists in the lookback window.","next_action":"Run connectivity probe and collect-due on this source for at least two successful signals.","acceptance":"Recent formal collection and probe signals meet configured stability thresholds.","evidence":{"signal_count":0,"success_rate":null,"consecutive_blocker_count":0,"latest_status":""},"latest_run_id":null},{"id":"external_evidence_workspace:tencent_maps:external_evidence_source_runbook:collect_due_source","source":"external_evidence_source_runbook","source_id":"tencent_maps","status":"warning","priority":"P1","category":"collection_due","code":"collect_due_source","title":"腾讯地图官方 API source runbook","message":"Configured but no collection row exists yet; run now to create the first auditable baseline.","next_action":"已具备配置，但还没有该来源的采集记录；建议立即运行外部证据采集。","acceptance":"collect-due creates a fresh GeoPlatformEvidence row for the source; source state returns to scheduled/stable or explains a compliant not-found result; raw evidence, reliability score, checked_at, and error payload are retained","evidence":{"plan_state":"due","stability_status":"warning","next_run_at":"2026-06-13T05:02:57.249860+00:00","protected_until":null},"latest_run_id":null},{"id":"external_evidence_workspace:xiaohongshu_search:external_evidence_source_execution_packet:connectivity_probe","source":"external_evidence_source_execution_packet","source_id":"xiaohongshu_search","status":"warning","priority":"P1","category":"stability","code":"connectivity_probe","title":"Connectivity probe evidence","message":"No latest connectivity probe row for this source.","next_action":"Run /geo/evidence/probe-store before the next formal retry if the source is weak or blocked.","acceptance":"A recent connectivity probe confirms source access without writing formal evidence rows.","evidence":{"probe_run_id":null,"probe_status":"","status":"","completed_at":""},"latest_run_id":77},{"id":"external_evidence_workspace:xiaohongshu_search:external_evidence_source_execution_packet:scheduler_cadence","source":"external_evidence_source_execution_packet","source_id":"xiaohongshu_search","status":"warning","priority":"P1","category":"scheduler","code":"scheduler_cadence","title":"Scheduler cadence","message":"Scheduler is not fully proven alive in this process.","next_action":"Enable GEO_EXTERNAL_EVIDENCE_AUTORUN and confirm the cloud process has an alive scheduler thread.","acceptance":"Long-term evidence refreshes run on configured cadence without manual operation.","evidence":{"autorun_enabled":false,"thread_alive":false,"last_status":"","interval_seconds":21600},"latest_run_id":77},{"id":"external_evidence_workspace:xiaohongshu_search:external_evidence_source_execution_packet:source_ledger_coverage","source":"external_evidence_source_execution_packet","source_id":"xiaohongshu_search","status":"warning","priority":"P1","category":"formal_collection","code":"source_ledger_coverage","title":"Source ledger coverage","message":"Latest formal row has no source_ledger coverage entry.","next_action":"Rerun with the current collector so source_ledger records requested/covered/missing states.","acceptance":"Latest run raw_payload.source_ledger includes this source_id.","evidence":{"run_id":77,"ledger_present":false,"ledger_entry":{}},"latest_run_id":77},{"id":"external_evidence_workspace:amap:external_evidence_source_runbook:prove_stability","source":"external_evidence_source_runbook","source_id":"amap","status":"warning","priority":"P2","category":"source_watch","code":"prove_stability","title":"高德地图官方 API source runbook","message":"Success rate 0% is below target 70%.","next_action":"Review latest signal, tune aliases or targets, then keep collecting until the success rate reaches target.","acceptance":"source reaches the minimum recent signal count; success rate meets or exceeds the configured stability target; raw evidence, reliability score, checked_at, and error payload are retained","evidence":{"plan_state":"scheduled","stability_status":"warning","next_run_at":"2026-06-15T11:34:00+00:00","protected_until":null},"latest_run_id":12}],"operator_steps":["Open blocker sources first, then run connectivity probe before formal collection retry.","Use collect-due only for due sources that are not stability-protected or cooling down.","After every formal run, inspect the collection completion packet and keep raw evidence for attribution baselines."],"source_contract":{"page_endpoint":"/geo/evidence","api_endpoint":"/geo/api/evidence/external-collection-workspace-packet?store_id={store_id}&limit={limit}","source_runbook_endpoint":"/geo/api/evidence/external-source-runbook?store_id={store_id}","source_execution_packet_endpoint":"/geo/api/evidence/external-source-execution-packet?store_id={store_id}&source_id={source_id}","collection_completion_packet_endpoint":"/geo/api/evidence/external-collection-completion-packet?run_id={run_id}","collect_due_endpoint":"/geo/evidence/collect-due","probe_endpoint":"/geo/evidence/probe-store","scheduler_function":"run_due_external_evidence_once","source_streams":["external_evidence_source_runbook","external_evidence_source_execution_packet","external_evidence_collection_completion_packet","external_evidence_collection_plan","external_evidence_stability","external_evidence_connectivity_probe","external_evidence_scheduler"]},"source_summaries":{"runbook":{"source_count":9,"included_count":9,"blocked_count":5,"protected_count":0,"due_now_count":3,"cooldown_count":0,"watch_count":1,"stable_count":0,"configured_count":4,"unconfigured_count":5,"health_blocker_count":5,"health_warning_count":4,"plan_due_count":3,"plan_cooldown_count":0,"plan_blocked_count":5,"plan_protected_count":0,"stability_blocker_count":5,"stability_warning_count":4,"avg_success_rate":66.7,"high_priority_count":8,"avg_priority_score":86.7,"preflight_status":"blocker","scheduler_autorun_enabled":false,"scheduler_thread_alive":false,"scheduler_last_status":""},"source_execution_packet":{"source_count":9,"ok_count":0,"warning_count":2,"blocker_count":7,"repair_count":54,"configuration_gap_count":5,"collector_gap_count":5,"formal_collection_gap_count":17,"stability_gap_count":18,"compliance_gap_count":0,"scheduler_gap_count":9,"probe_gap_count":9},"collection_plan":{"due_count":3,"protected_count":0,"cooldown_count":0,"blocked_count":5,"scheduled_count":1,"next_due_at":"2026-06-12T08:38:21.448242+00:00"},"stability":{"status":"blocker","ok_count":0,"warning_count":4,"blocker_count":5,"avg_success_rate":66.7},"latest_connectivity_probe":{"run_id":null,"status":null,"ok_count":null,"warning_count":null,"blocker_count":null},"scheduler":{"autorun_enabled":false,"thread_alive":false,"last_status":"","interval_seconds":21600}}}}