{
  "schema": "source_registry_admin_schema_lifecycle_validation_v01",
  "issue": 331,
  "document_path": "docs/product-architecture/source_registry_admin_schema_lifecycle_validation_v01.md",
  "baseline_commit": "e0a3403c3747d57425c2e824203bea1e3c19d133",
  "status": "schema_and_lifecycle_validation_foundation_only",
  "relationships": {
    "product_requirements_issue": 325,
    "product_requirements_pr": 326,
    "command_contract_issue": 329,
    "command_contract_pr": 330,
    "extraction_profiles_issue": 271,
    "historical_source_registry_admin_parent_issue": 269
  },
  "lifecycle_states": [
    "proposed",
    "approved",
    "registered",
    "preview_enabled",
    "production_eligible",
    "production_enabled",
    "disabled",
    "retired"
  ],
  "required_source_record_fields": [
    "source_id",
    "source_name",
    "source_type",
    "authority_lane",
    "allowed_origin",
    "allowed_path_prefix",
    "retrieval_profile_id",
    "extraction_profile_id",
    "environment_eligibility",
    "approval_status",
    "approved_by",
    "approved_at",
    "approval_rationale",
    "citation_label",
    "citation_url",
    "validation_status",
    "active_environments",
    "disable_reason",
    "retired_at",
    "receipt_refs"
  ],
  "version_or_publication_marker": [
    "source_version",
    "publication_date"
  ],
  "location_marker": [
    "canonical_url",
    "document_location"
  ],
  "steward_marker": [
    "source_owner",
    "steward"
  ],
  "allowed_transitions": [
    "proposed->approved",
    "approved->registered",
    "registered->preview_enabled",
    "preview_enabled->production_eligible",
    "production_eligible->production_enabled",
    "preview_enabled->disabled",
    "production_enabled->disabled",
    "disabled->preview_enabled",
    "disabled->production_enabled",
    "active->retired"
  ],
  "forbidden_transitions": [
    "proposed->production_enabled",
    "approved->production_enabled",
    "registered->production_enabled",
    "retired->active",
    "disabled->active_without_validation_and_receipt",
    "any->deletion_that_erases_audit_history",
    "environment_mutation_without_last_known_good_registry_ref"
  ],
  "boundary_confirmations": {
    "source_registry_admin_commands_implemented": false,
    "command_parser_created": false,
    "source_registries_mutated": false,
    "preview_or_production_source_sets_mutated": false,
    "sources_enabled_disabled_retired_or_promoted": false,
    "cloudflare_cli_or_api_used": false,
    "provider_or_model_configuration_changed": false,
    "runtime_retrieval_behavior_changed": false,
    "package_authority_changed": false,
    "production_apply_started": false,
    "okf_implementation_started": false,
    "google_sdlc_implementation_started": false,
    "multi_agent_orchestration_started": false,
    "source_registry_admin_implementation_child_issues_created": false,
    "extraction_profile_implementation_tickets_created": false,
    "issue_271_closed": false,
    "issue_269_reopened": false,
    "issue_269_closed_by_this_ticket": false,
    "codex_automerge_applied": false
  },
  "post_closeout_next_action": "After this schema/lifecycle validation slice is merged and locally closed out, choose whether to add a dry-run Source Registry Admin command parser or continue extraction-profile work for the next source."
}
