{ "schema_version": "p0_cicd_baseline_source_readiness_v1", "generated_at": "2026-06-29T12:06:00+08:00", "status": "ready_for_template_copy_apply_gate", "priority": "P0-004", "scope": "dev_prod_cicd_baseline", "readback": { "workplan_id": "P0-004", "workplan_title": "補 dev / prod CI/CD baseline", "scorecard_completion_percent": 60, "baseline_matrix_present": true, "dev_missing_count": 10, "prod_cicd_gap_count": 10, "github_mirror_status": "removed_deleted_do_not_use", "safe_next_step": "open_template_copy_apply_gate_after_source_readiness_green" }, "required_sources": [ { "id": "blocked_products_owner_response_preflight_snapshot", "kind": "committed_snapshot", "path": "docs/operations/codex-gitea-blocked-products-owner-response-intake-preflight.snapshot.json", "required": true }, { "id": "blocked_products_owner_response_acceptance_snapshot", "kind": "committed_snapshot", "path": "docs/operations/codex-gitea-blocked-products-owner-response-acceptance.snapshot.json", "required": true }, { "id": "blocked_products_owner_response_templates_snapshot", "kind": "committed_snapshot", "path": "docs/operations/codex-gitea-blocked-products-owner-response-templates.snapshot.json", "required": true }, { "id": "warning_step_owner_package_service", "kind": "api_service_source", "path": "apps/api/src/services/awoooi_gitea_onboarding_warning_step_owner_package.py", "required": true }, { "id": "warning_step_owner_response_preflight_service", "kind": "api_service_source", "path": "apps/api/src/services/awoooi_gitea_onboarding_warning_step_owner_response_preflight.py", "required": true }, { "id": "warning_step_template_copy_execution_plan_service", "kind": "api_service_source", "path": "apps/api/src/services/awoooi_gitea_onboarding_warning_step_template_copy_execution_plan.py", "required": true }, { "id": "warning_step_template_copy_apply_gate_service", "kind": "api_service_source", "path": "apps/api/src/services/awoooi_gitea_onboarding_warning_step_template_copy_apply_gate.py", "required": true }, { "id": "warning_step_dashboard_service", "kind": "api_service_source", "path": "apps/api/src/services/awoooi_gitea_onboarding_warning_step_dashboard.py", "required": true }, { "id": "product_onboarding_guard_service", "kind": "api_service_source", "path": "apps/api/src/services/awoooi_product_onboarding_guard.py", "required": true }, { "id": "onboarding_reminder_contract_service", "kind": "api_service_source", "path": "apps/api/src/services/awoooi_onboarding_reminder_contract.py", "required": true }, { "id": "new_product_onboarding_page_model_service", "kind": "api_service_source", "path": "apps/api/src/services/awoooi_new_product_onboarding_page_model.py", "required": true } ], "blockers": [ "template_copy_apply_gate_required_before_workflow_enablement" ], "next_actions": [ "run_focused_tests_for_recreated_sources", "open_template_copy_apply_gate_before_any_workflow_copy", "keep_workflow_modification_allowed_false_until_apply_gate" ], "rollups": { "required_source_count": 11, "present_required_source_count": 11, "missing_required_source_count": 0, "source_readiness_percent": 100, "blocked_source_ids": [], "hard_blocker_count": 1, "next_action_count": 3 }, "operation_boundaries": { "read_only_api_allowed": true, "workflow_modification_allowed": false, "workflow_trigger_allowed": false, "repo_creation_allowed": false, "refs_sync_allowed": false, "github_api_allowed": false, "host_or_k8s_write_allowed": false, "secret_read_allowed": false, "raw_session_or_sqlite_read_allowed": false } }