{
  "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
  }
}
