{
  "schema": "source_registry_admin_product_requirements_v01",
  "issue": 325,
  "document_path": "docs/product-architecture/source_registry_admin_product_requirements_v01.md",
  "baseline_commit": "f9e2e72a7a22b341fa2dbb5b1f964a967fdab7fb",
  "status": "product_requirements_and_architecture_definition_only",
  "owner_decision": {
    "source_registry_admin_only_for_already_approved_sources": false,
    "source_approval_captured_inside_admin_workflow": true,
    "supersedes_issue_269_as_product_requirements_anchor": true,
    "issue_269_remains_closed": true,
    "issue_271_remains_open_and_separate": true
  },
  "product_scope": [
    "add_register_new_source",
    "record_approval",
    "validate_source_metadata_and_boundaries",
    "assign_source_authority_lane",
    "assign_retrieval_extraction_profile",
    "enable_source_in_preview",
    "disable_source_in_preview",
    "promote_eligible_source_to_production",
    "disable_source_in_production",
    "retire_source",
    "emergency_disable_source",
    "rollback_to_last_known_good_registry",
    "generate_receipts",
    "document_source_use",
    "preserve_source_history_and_audit_trail"
  ],
  "lifecycle_states": [
    "proposed",
    "approved",
    "registered",
    "preview_enabled",
    "production_eligible",
    "production_enabled",
    "disabled",
    "retired"
  ],
  "source_record_fields": [
    "source_id",
    "source_name",
    "source_version",
    "publication_date",
    "source_type",
    "authority_lane",
    "canonical_url",
    "document_location",
    "allowed_origin",
    "allowed_path_prefix",
    "retrieval_profile_id",
    "extraction_profile_id",
    "environment_eligibility",
    "approval_status",
    "approved_by",
    "approved_at",
    "approval_rationale",
    "source_owner",
    "steward",
    "citation_label",
    "citation_url",
    "last_validated_at",
    "validation_status",
    "active_environments",
    "disable_reason",
    "retired_at",
    "receipt_refs"
  ],
  "administrative_actions": [
    "add_source",
    "approve_source",
    "register_source",
    "validate_source",
    "enable_preview",
    "disable_preview",
    "mark_production_eligible",
    "promote_to_production",
    "disable_production",
    "emergency_disable",
    "rollback_registry",
    "retire_source",
    "list_sources",
    "list_active_sources",
    "show_source_detail",
    "generate_receipt",
    "run_source_smoke"
  ],
  "documentation_and_citation_behavior": [
    "source ID",
    "source name",
    "authority lane",
    "whether each claim is package-grounded or current/public enrichment-grounded",
    "citation reference",
    "retrieval/extraction profile used",
    "timestamp or version marker where available",
    "refusal behavior when retrieved text is insufficient"
  ],
  "guardrails": [
    "no arbitrary web search",
    "no user-provided URL retrieval outside governed source-add workflow",
    "no broad crawling",
    "no wildcard origins",
    "no candidate-only source activation",
    "no browser-side source fetch",
    "no browser-side provider/current-source calls",
    "no package-authority promotion",
    "no undocumented source usage",
    "no source deletion that erases audit history",
    "no Production activation without explicit environment eligibility and validation",
    "no source activation without receipt generation",
    "no source use without citation/use documentation"
  ],
  "boundary_confirmations": {
    "issue_269_reopened": false,
    "issue_269_closed": false,
    "issue_271_closed": false,
    "issue_271_started": false,
    "source_registry_admin_child_implementation_issues_created": false,
    "extraction_profile_implementation_tickets_created": false,
    "existing_issues_or_prs_relabeled": false,
    "source_registries_mutated": false,
    "sources_enabled_disabled_retired_or_promoted": false,
    "cloudflare_cli_or_api_used": false,
    "runtime_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,
    "codex_automerge_applied": false
  },
  "recommended_next_action": "After this product requirements artifact is merged and locally closed out, choose whether to start #271 extraction-profile implementation first or create the first Source Registry Admin design child ticket."
}
