{ "schema": "pi.validation_broker.closeout_gate_contract.v1", "decision_gate_schema": "pi.validation_broker.closeout_gate.v1", "purpose": "prompt_to_artifact_validation_broker_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", "follow_up_required", "follow_up_beads", "decision", "epic_can_close_after_this_commit" ], "required_child_bead_ids": [ "bd-gusp4.1", "bd-gusp4.2", "bd-gusp4.3", "bd-gusp4.4", "bd-gusp4.5", "bd-gusp4.6", "bd-gusp4.7", "bd-gusp4.8", "bd-gusp4.9", "bd-gusp4.10" ], "required_check_ids": [ "child_beads_closed", "contract_and_source_inventory", "lease_store_schema", "source_normalization", "admission_policy", "cli_surface", "fault_corpus_stale_recovery", "doctor_runpack", "no_mock_e2e", "stress_budgets", "operator_docs_privacy", "readme_freshness", "source_boundaries", "pushed_commits", "quality_gates" ], "required_quality_gate_ids": [ "json_contracts", "cargo_fmt", "git_diff_check", "validation_broker_contract_rch", "validation_broker_store_rch", "validation_broker_cli_rch", "validation_broker_e2e_rch", "validation_broker_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 validation-broker 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, lease store, source adapters, admission policy, CLI, fault corpus, Doctor/runpack projection, no-mock E2E harness, stress budgets, operator docs, README freshness, source-boundary checks, pushed refs, and quality gates." }, { "id": "safe_close_behavior", "description": "A passing gate may close the final gate and parent epic. 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 validation-broker 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, and source artifacts. It does not replace those sources of truth." }, { "id": "claim_boundaries", "description": "The closeout gate must not make release-facing performance or strict drop-in claims unless the independent claim-integrity artifacts permit them." } ] }