{ "schema": "pi.swarm.progress_slo.closeout_gate_contract.v1", "decision_gate_schema": "pi.swarm.progress_slo.closeout_gate.v1", "purpose": "prompt_to_artifact_swarm_progress_slo_closeout_gate_not_source_of_truth", "allowed_statuses": [ "pass", "fail" ], "allowed_check_statuses": [ "pass", "fail" ], "allowed_decisions": [ "close_final_gate_and_parent_epic", "file_follow_up_beads_before_closing_epic" ], "required_top_level_keys": [ "schema", "generated_at", "status", "purpose", "parent_epic", "final_gate_bead", "required_checks", "child_artifact_map", "source_boundary_checks", "quality_gate_results", "checklist", "missing_checks", "remaining_follow_ups", "known_limitations", "claim_boundaries", "follow_up_required", "follow_up_beads", "decision", "epic_can_close_after_this_commit" ], "required_child_bead_ids": [ "bd-wzri8.1", "bd-wzri8.2", "bd-wzri8.3", "bd-wzri8.4", "bd-wzri8.5", "bd-wzri8.6", "bd-wzri8.7" ], "required_check_ids": [ "child_beads_closed", "contract_and_source_inventory", "deterministic_evaluator", "cli_surface", "doctor_runpack_projection", "no_mock_e2e", "stress_budgets", "operator_docs_privacy", "readme_freshness", "source_boundaries", "pushed_commits", "quality_gates" ], "required_source_boundary_ids": [ "beads_soft_lock", "agent_mail_degraded", "normalized_sources_only", "read_only_no_live_mutation", "doctor_runpack_advisory", "rch_required", "cargo_headroom", "staged_ubs_required", "beads_ledger_required", "no_release_claims", "advisory_closeout_only", "claim_integrity", "not_permission_to_skip_gates" ], "required_quality_gate_ids": [ "json_contracts", "cargo_fmt", "git_diff_check", "progress_slo_contract_rch", "progress_slo_cli_rch", "progress_slo_doctor_runpack_rch", "progress_slo_e2e_rch", "progress_slo_stress_rch", "progress_slo_closeout_gate_contract_rch", "cargo_check_all_targets_rch", "cargo_clippy_all_targets_rch", "staged_ubs", "beads_ledger_reconcile" ], "requirements": [ { "id": "child_artifact_mapping", "description": "Every progress-SLO implementation child bead maps to committed code paths, test paths, docs or evidence paths, validation commands, close reason, and commit hash." }, { "id": "prompt_to_artifact_coverage", "description": "The checklist covers the contract and source inventory, deterministic evaluator, read-only CLI, Doctor/runpack projection, no-mock E2E evidence, stress budgets, operator docs, README freshness, source boundaries, pushed refs, and quality gates." }, { "id": "safe_close_behavior", "description": "A passing gate may close the final gate and parent epic only after this commit lands and the branch is pushed. A failing gate must emit follow-up Beads instead of optimistic closeout." }, { "id": "rch_heavy_gates", "description": "All heavy Cargo validation evidence must prove RCH execution, including focused progress-SLO tests plus cargo check and clippy." }, { "id": "not_source_of_truth", "description": "The closeout gate is evidence over Beads, git, docs, tests, RCH, Doctor, runpacks, Agent Mail health, UBS, and source artifacts. It does not replace those sources of truth." }, { "id": "claim_boundaries", "description": "The closeout gate must not make release-facing performance, capacity, benchmark, or strict drop-in claims. Progress SLO evidence remains advisory operator evidence." } ] }