Files
awoooi/docs/operations/awoooi-priority-work-order-readback.snapshot.json
Your Name a46c38c989
Some checks failed
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Failing after 17s
CD Pipeline / build-and-deploy (push) Has been skipped
CD Pipeline / post-deploy-checks (push) Has been skipped
fix(api): expose reboot slo safe next step
2026-06-29 20:26:45 +08:00

645 lines
33 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"completed_in_priority_order": [
{
"evidence": {
"full_stack_blocked": 0,
"full_stack_pass": 91,
"full_stack_warn": 2,
"host_188_hygiene_blocked": false,
"hosts_checked": [
"192.168.0.110",
"192.168.0.120",
"192.168.0.121",
"192.168.0.188"
],
"post_start_blocked": 0,
"post_start_pass": 43,
"post_start_warn": 5,
"runtime_action_authorized": false,
"service_green": true,
"wazuh_manager_registry_accepted": 6
},
"status": "core_green_with_warnings",
"title": "建立主機 runtime inventory 權威資料",
"warnings_kept_visible": [
"110 systemd failed units remain",
"188 momo daily sales stale but source preflight has no hard blocker"
],
"workplan_id": "P0-001"
},
{
"evidence": {
"latest_cd_run_id": "3868",
"latest_cd_run_status": "Success",
"non110_runner_ready": true,
"production_deploy_status": "closure_verified",
"production_governance_fields_present": true,
"production_image_tag_matches_main": true,
"runner_pressure_guard_ok": true
},
"status": "production_deploy_closure_verified",
"title": "補 dev / prod CI/CD baseline",
"workplan_id": "P0-004"
},
{
"evidence": {
"blocked_source_ids": [],
"missing_required_source_count": 0,
"present_required_source_count": 11,
"required_source_count": 11,
"source_readiness_percent": 100
},
"safe_next_step": "open_template_copy_apply_gate_after_source_readiness_green",
"status": "ready_for_template_copy_apply_gate",
"title": "P0-004 CI/CD baseline source readiness",
"workplan_id": "P0-004-source-readiness"
},
{
"evidence": {
"github_status": "stopped_retired_do_not_use",
"manifest_present": true,
"manifest_schema_present": true,
"manifest_schema_version": "product_awoooi_manifest_v1",
"missing_contract_ref_count": 0,
"missing_required_section_count": 0,
"present_contract_ref_count": 3,
"present_required_section_count": 5,
"product_id": "awoooi",
"required_contract_ref_count": 3,
"required_section_count": 5,
"source_control_authority": "gitea",
"source_readiness_percent": 100
},
"safe_next_step": "adopt_product_manifest_schema_for_remaining_products_without_repo_creation_or_secret_read",
"status": "ready_for_product_manifest_adoption",
"title": "建立 product.awoooi.yaml 產品 manifest 標準",
"workplan_id": "P0-002"
}
],
"current_head": {
"gitea_main_sha": "094f50ddbd2020446d3f5a7ca49377694dde6091",
"latest_fetched_gitea_main_subject": "chore(cd): deploy 1fb4bfc [skip ci]",
"latest_source_readiness_cd_run_id": null,
"latest_source_readiness_cd_run_status": "not_visible_in_public_queue_at_2026-06-29T19:20:13+08:00",
"latest_source_readiness_commit_sha": "1fb4bfc09d1e2a192527fb53fdf4694ab2380b6d",
"latest_successful_deploy_marker": "094f50ddb chore(cd): deploy 1fb4bfc [skip ci]",
"latest_successful_deployed_source_sha": "1fb4bfc09d1e2a192527fb53fdf4694ab2380b6d",
"latest_verified_worktree_base_sha": "094f50ddb",
"no_matching_runner_visible": false,
"source_readiness_ci_fix_required": false
},
"generated_at": "2026-06-29T20:21:35+08:00",
"in_progress_or_blocked_in_priority_order": [
{
"evidence": {
"active_blockers": [
"host_boot_observation_older_than_target_window",
"post_start_blocked_not_zero",
"product_data_green_not_1",
"service_green_not_1",
"stockplatform_freshness_blocked",
"stockplatform_ingestion_blocked"
],
"all_host_reboot_detection_missing": false,
"backup_core_green": true,
"can_claim_all_services_recovered_within_target": false,
"host_188_service_green": true,
"host_boot_probe_missing_hosts": false,
"host_boot_probe_source_present": true,
"latest_live_slo_artifact": "/home/wooo/reboot-recovery/reboot-auto-recovery-slo-20260629-201605",
"live_slo_metric_present": true,
"live_slo_service_last_result": "success",
"live_slo_timer_active": true,
"live_slo_timer_enabled": true,
"local_disk_free_gib_after_cleanup": 145.514,
"max_observed_uptime_seconds": 537911,
"missing_hosts": [],
"observed_hosts": [
"110",
"120",
"121",
"188"
],
"post_start_blocked": 1,
"product_data_green": false,
"safe_next_step_from_scorecard": "inspect_stockplatform_ingestion_readback_and_wait_retry_windows_then_rerun_slo_verify_only_no_reboot",
"service_green": false,
"slo_exporter_source_present": true,
"slo_installer_source_present": true,
"slo_systemd_timer_source_present": true,
"source_controls_added": true,
"stale_hosts": [
"110",
"120",
"121",
"188"
],
"stock_blocked_sources": [
{
"latest_date": "2026-06-26",
"notes": "官方來源狀態:上櫃官方尚未發布,回傳日期 2026-06-29來源列數 0上市官方尚未發布回傳日期 尚無,來源列數 0",
"row_count": 0,
"source": "core.margin_short_daily",
"status": "missing"
},
{
"latest_date": "2026-06-26",
"notes": "最新日期 2026-06-26 早於最新交易日 2026-06-29",
"row_count": 2988,
"source": "ai.recommendations",
"status": "stale"
}
],
"stock_blockers": [
"core_margin_short_daily_missing",
"ai_recommendations_stale"
],
"stock_eod_classification": "after_first_eod_window_blocked",
"stock_eod_final_retry_window_end_local": "23:35",
"stock_eod_final_retry_window_passed": false,
"stock_eod_first_full_window_end_local": "19:15",
"stock_eod_next_action": "inspect_ingestion_logs_and_wait_retry_windows",
"stock_eod_window_pending": false,
"stock_freshness_status": "blocked",
"stock_ingestion_blockers": [
"core.margin_short_daily_incomplete"
],
"stock_latest_source_runs": [
{
"source_run_id": 3385,
"source_name": "official_margin_short_daily",
"target_date": "2026-06-29",
"status": "official_pending",
"started_at": "2026-06-29T12:05:16.716460Z",
"finished_at": "2026-06-29T12:05:16.716460Z"
},
{
"source_run_id": 3386,
"source_name": "official_margin_short_daily",
"target_date": "2026-06-29",
"status": "official_pending",
"started_at": "2026-06-29T12:05:16.716460Z",
"finished_at": "2026-06-29T12:05:16.716460Z"
},
{
"source_run_id": 3384,
"source_name": "official_margin_short_daily",
"target_date": "2026-06-29",
"status": "official_pending",
"started_at": "2026-06-29T11:05:17.201062Z",
"finished_at": "2026-06-29T11:05:17.201062Z"
},
{
"source_run_id": 3383,
"source_name": "official_margin_short_daily",
"target_date": "2026-06-29",
"status": "official_pending",
"started_at": "2026-06-29T11:05:17.201062Z",
"finished_at": "2026-06-29T11:05:17.201062Z"
},
{
"source_run_id": 3382,
"source_name": "intelligence_security_linker",
"target_date": null,
"status": "succeeded",
"started_at": "2026-06-29T11:00:11.518268Z",
"finished_at": "2026-06-29T11:00:11.518268Z"
},
{
"source_run_id": 3381,
"source_name": "intelligence_reports_import",
"target_date": null,
"status": "succeeded",
"started_at": "2026-06-29T11:00:10.289509Z",
"finished_at": "2026-06-29T11:00:10.289509Z"
},
{
"source_run_id": 3380,
"source_name": "year_to_date_stock_backfill",
"target_date": null,
"status": "planned",
"started_at": "2026-06-29T10:22:15.262488Z",
"finished_at": "2026-06-29T10:22:15.262488Z"
},
{
"source_run_id": 3378,
"source_name": "official_margin_short_daily",
"target_date": "2026-06-29",
"status": "official_pending",
"started_at": "2026-06-29T10:22:13.464934Z",
"finished_at": "2026-06-29T10:22:13.464934Z"
},
{
"source_run_id": 3379,
"source_name": "official_margin_short_daily",
"target_date": "2026-06-29",
"status": "official_pending",
"started_at": "2026-06-29T10:22:13.464934Z",
"finished_at": "2026-06-29T10:22:13.464934Z"
},
{
"source_run_id": 3345,
"source_name": "community_etfinfo_holdings_daily",
"target_date": "2026-06-26",
"status": "succeeded",
"started_at": "2026-06-29T10:21:56.651793Z",
"finished_at": "2026-06-29T10:21:56.651793Z"
}
],
"stock_latest_trading_date": "2026-06-29",
"stock_official_margin_short_source_runs": [
{
"source_run_id": 3385,
"source_name": "official_margin_short_daily",
"target_date": "2026-06-29",
"status": "official_pending",
"started_at": "2026-06-29T12:05:16.716460Z",
"finished_at": "2026-06-29T12:05:16.716460Z"
},
{
"source_run_id": 3386,
"source_name": "official_margin_short_daily",
"target_date": "2026-06-29",
"status": "official_pending",
"started_at": "2026-06-29T12:05:16.716460Z",
"finished_at": "2026-06-29T12:05:16.716460Z"
},
{
"source_run_id": 3384,
"source_name": "official_margin_short_daily",
"target_date": "2026-06-29",
"status": "official_pending",
"started_at": "2026-06-29T11:05:17.201062Z",
"finished_at": "2026-06-29T11:05:17.201062Z"
},
{
"source_run_id": 3383,
"source_name": "official_margin_short_daily",
"target_date": "2026-06-29",
"status": "official_pending",
"started_at": "2026-06-29T11:05:17.201062Z",
"finished_at": "2026-06-29T11:05:17.201062Z"
}
],
"stockplatform_api_healthz_green": true,
"stockplatform_controlled_recovery_gate_required": false,
"stockplatform_controlled_recovery_gate_status": "not_required_yet",
"stockplatform_freshness_endpoint_readback_present": true,
"stockplatform_healthz_green": true,
"stockplatform_ingestion_endpoint_readback_present": true,
"stockplatform_ingestion_status": "blocked",
"stockplatform_scorecard_readback_integrated": true,
"stockplatform_transient_502_before_success_seen": true,
"target_minutes": 10,
"unreachable_hosts": [],
"wazuh_dashboard_degraded": false,
"latest_verify_only_metric": {
"ready": 0,
"blocker_count": 4,
"max_host_uptime_seconds": 537911,
"last_run_timestamp": 1782735360
},
"stock_ingestion_status": "blocked",
"stockplatform_second_retry_checked_at": "2026-06-29T20:21:35+08:00"
},
"professional_fix": {
"action": "Keep the live boot-triggered SLO timer enabled. Do not reboot or restart services from this lane. Treat StockPlatform freshness/ingestion as the current service recovery blocker: use the committed P0-006 scorecard and /api/v1/agents/reboot-auto-recovery-slo-scorecard readback, wait scheduled retry windows, then rerun verify-only. If still blocked after 23:35, open the controlled data recovery gate with source diff, check-mode/dry-run, rollback, and post-freshness verifier; never write manual DB rows or fake freshness.",
"exit_criteria": [
"can_claim_all_services_recovered_within_target=true",
"observed_hosts=110,120,121,188",
"missing_hosts=[]",
"unreachable_hosts=[]",
"max_observed_uptime_seconds<=600 during a fresh all-host reboot window",
"POST_START_BLOCKED=0",
"SERVICE_GREEN=1",
"PRODUCT_DATA_GREEN=1",
"STOCK_FRESHNESS_STATUS=ok",
"stock_blockers=[]",
"BACKUP_CORE_GREEN=1",
"HOST_188_SERVICE_GREEN=1",
"live_slo_metric_present=true"
],
"owner": "reboot auto-recovery lane plus StockPlatform freshness readback"
},
"reason": "P0-006 scorecard and live retry readback now directly show the 20:05 StockPlatform retry still blocked: public/API health is green, but freshness remains blocked by core_margin_short_daily_missing and ai_recommendations_stale, and ingestion remains blocked by core.margin_short_daily_incomplete with official_margin_short_daily source runs 3385/3386 still official_pending. No reboot, restart, DB write, or fake freshness marker is allowed from this lane; wait the next retry windows and rerun verify-only.",
"safe_next_step": "wait_next_stockplatform_retry_window_then_rerun_slo_verify_only_no_reboot_no_db_write",
"status": "blocked_stockplatform_product_data_freshness_waiting_final_retry_window",
"title": "主機重啟自動偵測、自動觸發與 10 分鐘恢復 SLO",
"workplan_id": "P0-006"
},
{
"evidence": {
"backup_core_green": true,
"checklist_generator_present": true,
"checklist_latest_path": "/tmp/awoooi-dr-escrow-evidence-checklist-current.json",
"checklist_schema_version": "awoooi_dr_escrow_evidence_checklist_v1",
"credential_escrow_intake_api_route_live_checked": true,
"credential_marker_write_authorized_count": 0,
"dr_escrow_blocked": true,
"escrow_status_live_checked": true,
"focused_p0_005_tests_passed": 16,
"live_no_secret_status_path": "/tmp/awoooi-p0-005-escrow-status-live.txt",
"offsite_configured": true,
"offsite_fresh": true,
"placeholder_preflight_guard_present": true,
"product_data_green": false,
"production_missing_item_count": 5,
"production_owner_response_accepted_count": 0,
"production_readback_safe_next_step": "collect_redacted_non_secret_evidence_refs_then_rerun_preflight",
"production_runtime_gate_count": 0,
"production_safe_next_step": "collect_redacted_non_secret_evidence_refs_then_rerun_preflight",
"production_secret_value_collection_allowed": false,
"production_top_level_safe_next_step_readback": true,
"production_top_level_safe_next_step_was_null_before_source_fix": true,
"rclone_configured": true,
"rclone_gdrive_configured": true,
"rclone_gdrive_fresh": true,
"script_missing_count": 0,
"secret_value_collection_allowed": false,
"source_safe_next_step": "collect_redacted_non_secret_evidence_refs_then_rerun_preflight",
"source_top_level_safe_next_step_present": true,
"stock_blockers": [
"core_margin_short_daily_missing",
"ai_recommendations_stale"
],
"stock_eod_classification": "after_first_eod_window_blocked",
"stock_eod_next_action": "inspect_ingestion_logs_and_wait_retry_windows",
"stock_eod_window_pending": false,
"stock_freshness_status": "blocked",
"stock_ingestion_blockers": [
"core.margin_short_daily_incomplete"
],
"stock_latest_trading_date": "2026-06-29",
"stock_official_margin_short_source_runs": [
3385,
3386,
3384,
3383
],
"stockplatform_api_healthz_green": true,
"stockplatform_healthz_green": true,
"stockplatform_ingestion_status": "blocked",
"summary_escrow_missing_count": 5,
"stock_ingestion_status": "blocked"
},
"missing_items": [
"restic_repository_password",
"offsite_provider_credentials",
"break_glass_admin_credentials",
"dns_registrar_recovery",
"oauth_ai_provider_recovery"
],
"professional_fix": {
"action": "Use the single DR escrow checklist packet with the five required item ids, accept only redacted evidence refs, then run the existing preflight once.",
"do_not_repeat": [
"Do not reopen cold-start or CI/CD work because escrow refs are missing.",
"Do not create additional owner-package variants for the same five refs."
],
"exit_criteria": [
"effective_escrow_missing_count=0",
"owner_response_accepted_count=1",
"forbidden_true_field_count=0",
"secret_value_collection_allowed=false",
"post_reboot_readiness OVERALL_DECLARATION no longer includes DR_ESCROW_BLOCKED"
],
"owner": "DR evidence lane"
},
"reason": "Backup/offsite core remains green and the credential escrow readiness API correctly exposes safe_next_step. Current product data freshness is still blocked after the 20:05 StockPlatform retry because official margin-short runs 3385/3386 remain official_pending; the separate DR blocker remains the five non-secret escrow evidence refs.",
"safe_next_step": "after_p0_006_stockplatform_freshness_clears_collect_five_non_secret_credential_escrow_evidence_refs_and_rerun_single_preflight",
"status": "stock_freshness_blocked_and_waiting_non_secret_credential_escrow_evidence_refs",
"title": "產品資料與備份 contract",
"workplan_id": "P0-005"
},
{
"evidence": {
"accepted_inventory_payload_count": 0,
"active_blockers": [
"gitea_repo_inventory_status_not_ok",
"gitea_visibility_scope_public_only_or_unknown",
"gitea_authenticated_inventory_payload_not_accepted",
"gitea_owner_coverage_attestation_not_received"
],
"all_active_product_repos_have_gitea_owner_readiness_row": true,
"api_readback_schema_version": "gitea_private_inventory_p0_scorecard_readback_v1",
"authenticated_payload_validation_accepted_payload_count": 0,
"authenticated_payload_validation_blocker_count": 4,
"authenticated_payload_validation_snapshot": "docs/operations/awoooi-gitea-authenticated-inventory-payload-validation.snapshot.json",
"authenticated_payload_validation_status": "needs_supplement",
"authenticated_payload_validator_present": true,
"authenticated_payload_validator_source": "scripts/security/gitea-authenticated-inventory-payload-validator.py",
"delivery_workbench_active_blocker_count": 4,
"delivery_workbench_active_lane": "gitea_private_inventory",
"delivery_workbench_github_blocked_preflight_target_count": 0,
"delivery_workbench_review_readiness_percent": 60,
"expected_product_count": 11,
"gitea_inventory_status": "partial",
"gitea_public_repo_count": 4,
"gitea_public_repos": [
"wooo/awoooi",
"wooo/ewoooc",
"wooo/agent-bounty-protocol",
"wooo/2026FIFAWorldCup"
],
"gitea_readonly_token_present": false,
"gitea_visibility_scope": "public_only",
"github_lane_excluded_from_p0_blocker_count": true,
"github_primary_switch_authorized": false,
"missing_product_row_count": 0,
"owner_coverage_attestation_received_count": 0,
"present_product_row_count": 11,
"private_inventory_source": "gitea",
"refs_sync_allowed": false,
"repo_write_allowed": false,
"runtime_gate_count": 0,
"token_value_collection_allowed": false
},
"professional_fix": {
"action": "Use the Gitea-only P0 scorecard, accept only redacted authenticated/admin export inventory payloads, and keep GitHub as do_not_use historical context only.",
"exit_criteria": [
"private_inventory_source=gitea",
"github_lane_excluded_from_p0_blocker_count=true",
"gitea_repo_inventory.status=ok",
"gitea_repo_inventory.visibility_scope in authenticated/admin_export",
"all_active_product_repos_have_gitea_owner_readiness_row=true"
],
"owner": "Gitea inventory lane"
},
"reason": "P0-003 now has a Gitea-only scorecard, read-only API, Delivery Workbench active lane, live 110 public inventory refreshed to four repos, and a no-secret machine validator for redacted authenticated/admin export inventory payloads. GitHub is excluded from active P0 blocker math; current public-only inventory should validate as needs_supplement with accepted_payload_count=0, and private/internal coverage still requires an authenticated/admin redacted payload or owner attestation.",
"safe_next_step": "supply_authenticated_or_admin_export_redacted_inventory_payload_then_run_gitea_authenticated_inventory_payload_validator",
"status": "payload_validator_ready_waiting_authenticated_or_admin_export_inventory",
"title": "取得 Gitea private inventory 權限",
"workplan_id": "P0-003"
}
],
"next_execution_order": [
"P0-006: StockPlatform freshness/ingestion readback remains blocked after the 20:05 retry; wait the next retry windows, rerun verify-only with no reboot/restart/DB write, and open controlled data recovery gate only if still blocked after the final retry window.",
"P0-005: after P0-006 freshness clears, collect five non-secret credential escrow evidence refs and rerun one preflight; production API safe_next_step reads back correctly and backup/offsite core remains green.",
"P0-003: supply authenticated/admin redacted inventory payload or owner coverage attestation, then run the Gitea payload validator; public-only live inventory remains four repos and GitHub remains stopped/retired/do_not_use.",
"P1-OPENCLAW-LIVE-OPS-SPACE: build the Gather-like OpenClaw continuous animated live ops workspace only after the current P0 runtime truth blockers are no longer the active next action."
],
"noise_integrated_risk_register": [
{
"exit_criteria": "latest_main_deploy_readback_success=true",
"professional_handling": "Only the latest non-canceled run for the current main head is a deploy signal; older canceled runs become context, not blockers.",
"signal": "canceled_or_superseded_cd_runs",
"why_it_matters": "Canceled runs hide whether the latest main actually deployed and can make a completed source fix look failed."
},
{
"exit_criteria": "production_deploy_status=closure_verified and P0 endpoints unchanged",
"professional_handling": "Keep UI-only changes on controlled-runtime profile and verify production readback after the newest head; do not reopen host recovery.",
"signal": "ui_redaction_commits_during_p0_recovery",
"why_it_matters": "Concurrent UI-only commits can cancel P0 CI runs and consume attention while not changing cold-start or DR truth."
},
{
"exit_criteria": "all P0 test receipts come from clean main worktree",
"professional_handling": "Run P0 verification in clean Gitea main worktrees; never stage or revert user dirty files during P0 recovery.",
"signal": "dirty_local_awooop_worktree",
"why_it_matters": "Local uncommitted frontend copy can create false test failures and pollute P0 diagnosis."
},
{
"exit_criteria": "active_p0_next_actions contain no GitHub recovery work",
"professional_handling": "Keep GitHub stopped/do_not_use; remove it from active P0 next actions and route inventory work to Gitea.",
"signal": "legacy_github_lane",
"why_it_matters": "Retired GitHub blockers inflate P0 blocker count and distract from active Gitea/runtime work."
},
{
"exit_criteria": "cold_start_blocked=0 and warning items assigned outside reboot recovery",
"professional_handling": "Keep warnings visible with owner and due lane; close reboot recovery when BLOCKED=0 and service/data health are green.",
"signal": "warning_only_cold_start_findings",
"why_it_matters": "Warnings can reveal hygiene debt, but treating them as reboot blockers delays recovery closure."
},
{
"exit_criteria": "priority snapshot current_head matches latest successful deploy marker",
"professional_handling": "Live production readback wins; snapshots must be refreshed only when they change the next executable P0 action.",
"signal": "stale_or_incomplete_priority_snapshots",
"why_it_matters": "Old snapshots can contradict live production readback and send work back to already-fixed items."
},
{
"exit_criteria": "stockplatform health routes and system freshness/ingestion readback return 200 with freshness status ok",
"professional_handling": "Confirm healthz, api healthz, freshness, and ingestion together; classify runtime down only if repeated health/readback fails, otherwise keep the confirmed blocker on product data freshness.",
"signal": "stockplatform_transient_system_api_502",
"why_it_matters": "A transient 502 on freshness/ingestion can look like service down and can also hide the real data freshness blocker."
}
],
"operation_boundaries": {
"credential_marker_written": false,
"credential_secret_value_read": false,
"database_write_or_restore_performed": false,
"docker_restart_performed": false,
"firewall_change_performed": false,
"github_api_used": false,
"github_cli_used": false,
"host_write_performed": false,
"k3s_restart_or_node_drain_performed": false,
"nginx_restart_performed": false,
"runner_registration_performed": false,
"secret_or_runner_token_read": false,
"workflow_dispatch_performed": false
},
"post_p0_prioritized_work_items": [
{
"blocked_operations": [
"raw_session_read",
"sqlite_read",
"secret_or_token_display",
"GitHub_API_or_gh_usage",
"runtime_write_without_controlled_apply",
"P0_priority_preemption"
],
"evidence": {
"must_be_continuous_animation": true,
"must_show_openclaw_working": true,
"owner_requested_at_local": "2026-06-29",
"raw_session_or_sqlite_allowed": false,
"reference_pattern": "Gather-like virtual office / presence / walk-up collaboration",
"secret_or_token_display_allowed": false,
"static_gif_or_static_card_is_not_sufficient": true
},
"exit_criteria": [
"route_renders_nonblank_animated_scene_desktop=true",
"route_renders_nonblank_animated_scene_mobile=true",
"continuous_animation_loop_visible=true",
"openclaw_agent_state_count>0",
"runtime_event_to_avatar_state_mapping_present=true",
"trace_ledger_or_work_item_progress_source_connected=true",
"raw_session_or_sqlite_read_allowed=false",
"secret_or_token_display_allowed=false",
"browser_console_error_count=0",
"production_route_smoke_passed=true"
],
"priority": "P1",
"reason": "Owner requested an OpenClaw workroom similar to a virtual-office presence app, with a continuous animated scene showing AI Agents working. This is productized AI Agent visibility, not a replacement for current P0 runtime truth closure, so it is queued after P0-006, P0-005, and P0-003 blockers.",
"required_integrations_in_order": [
"Reuse agent-autonomous-runtime-control trace_ledger and work_item_progress as the first read-only event source.",
"Define a public-safe scene_state contract that maps runtime events to avatar state, room zone, task card, and animation state.",
"Add a read-only API loader for OpenClaw live ops scene state; no raw logs, raw sessions, SQLite, token values, or secret payloads.",
"Implement the animated 2D scene with deterministic fallback sample state and live readback state.",
"Add desktop/mobile browser smoke plus animation nonblank checks before production claim.",
"Promote to production only after P0 runtime truth blockers are not the active next action."
],
"safe_next_step": "after_current_p0_blockers_stop_being_the_active_next_action_define_openclaw_live_ops_scene_state_contract_and_route_skeleton",
"scope": {
"core_scene_model": [
"2D isometric operations room",
"OpenClaw / AI Agent avatars",
"workbench zones for MCP, RAG, KM, PlayBook, verifier, Telegram receipt, deploy/readback",
"presence and attention states",
"task queue and work item movement",
"continuous idle / walking / working / waiting / blocked / verified animations"
],
"experience_name": "OpenClaw Live Ops Space",
"primary_goal": "讓使用者用可視化空間看到 OpenClaw / AI Agent 正在處理任務、等待 verifier、交接、人機協作與回寫狀態。",
"surface_candidates": [
"/zh-TW/openclaw/live-ops-space",
"/zh-TW/awooop/work-items?view=live-ops"
]
},
"status": "queued_after_current_p0_runtime_truth_blockers",
"title": "OpenClaw Gather-like 持續動畫工作室",
"workplan_id": "P1-OPENCLAW-LIVE-OPS-SPACE"
}
],
"professional_execution_rules": [
"Treat noise as a risk input when it masks, delays, or misroutes a P0; otherwise keep it as context.",
"Do not split noise into a separate project; attach it to the P0 row it can affect.",
"Every P0 row must have one owner lane, one action, and measurable exit criteria.",
"Do not re-run cold-start, CD, or UI checks unless their result can change the next P0 action.",
"One blocker gets one checklist and one preflight; do not produce duplicate owner packets for the same missing evidence."
],
"schema_version": "awoooi_priority_work_order_readback_v1",
"source_refs": {
"credential_escrow_intake_readiness_api": "/api/v1/agents/credential-escrow-evidence-intake-readiness",
"credential_escrow_intake_readiness_service": "apps/api/src/services/credential_escrow_evidence_intake_readiness.py",
"credential_escrow_intake_readiness_tests": "apps/api/tests/test_credential_escrow_evidence_intake_readiness_api.py",
"credential_escrow_live_status": "/tmp/awoooi-p0-005-escrow-status-live.txt",
"credential_escrow_scorecard": "/tmp/awoooi-credential-escrow-intake-scorecard-20260629-1200-priority.json",
"delivery_closure_workbench": "https://awoooi.wooo.work/api/v1/agents/delivery-closure-workbench",
"dr_escrow_evidence_checklist_generator": "scripts/reboot-recovery/dr-escrow-evidence-checklist.py",
"dr_escrow_evidence_checklist_latest": "/tmp/awoooi-dr-escrow-evidence-checklist-current.json",
"full_stack_cold_start_check": "scripts/reboot-recovery/full-stack-cold-start-check.sh --monitor-read-only --no-color",
"gitea_authenticated_inventory_payload_validation_snapshot": "docs/operations/awoooi-gitea-authenticated-inventory-payload-validation.snapshot.json",
"gitea_authenticated_inventory_payload_validator": "scripts/security/gitea-authenticated-inventory-payload-validator.py",
"gitea_private_inventory_p0_scorecard": "docs/operations/awoooi-gitea-private-inventory-p0-scorecard.snapshot.json",
"gitea_repo_inventory_snapshot": "docs/security/gitea-repo-inventory.snapshot.json",
"global_scorecard": "~/.codex/product-runtime-governance-completion-scorecard.snapshot.json",
"owner_requested_openclaw_live_ops_space": "2026-06-29 owner request: Gather-like OpenClaw continuous animated live ops workspace",
"post_reboot_summary": "/home/wooo/reboot-recovery/reboot-auto-recovery-slo-20260629-201605/summary.txt",
"public_gitea_queue_readback": "ops/runner/read-public-gitea-actions-queue.py --json",
"reboot_auto_recovery_slo_metric": "/home/wooo/node_exporter_textfiles/reboot_auto_recovery_slo.prom",
"reboot_auto_recovery_slo_scorecard": "docs/operations/awoooi-reboot-auto-recovery-slo-scorecard.snapshot.json",
"reboot_auto_recovery_slo_scorecard_api": "/api/v1/agents/reboot-auto-recovery-slo-scorecard",
"stockplatform_freshness_readback": "https://stock.wooo.work/api/v1/system/freshness",
"stockplatform_ingestion_readback": "https://stock.wooo.work/api/v1/system/ingestion",
"workstation_dashboard": "~/.codex/codex-workstation-sync-dashboard.snapshot.json"
},
"status": "p0_ordered_readback_p0_006_stock_freshness_second_retry_still_blocked_p0_005_refs_waiting_p0_003_payload_validator_ready",
"stopped_or_do_not_use": [
{
"allowed_actions": 0,
"status": "removed_deleted_do_not_use",
"title": "GitHub 全產品備援鏡像",
"workplan_id": "P0-003A"
}
]
}