{
  "schema_version": "jp-election-ai-bootstrap.v1",
  "generated_at": "2026-09-11T06:52:00Z",
  "target_id": "jp-election-public-ja",
  "purpose": "Small first-read contract for accurate AI retrieval and mediation of the jp-election public site.",
  "read_order": [
    "https://jp-election-public-ja.pages.dev/ai/reuse.json",
    "https://jp-election-public-ja.pages.dev/ai/citation.json",
    "https://jp-election-public-ja.pages.dev/ai/status.json",
    "https://jp-election-public-ja.pages.dev/catalog/public-manifest.json",
    "https://jp-election-public-ja.pages.dev/docs/artifact-layers.md",
    "https://jp-election-public-ja.pages.dev/docs/known-residuals.md",
    "https://jp-election-public-ja.pages.dev/docs/aerl-audit-criteria.md"
  ],
  "current_catalog_release_id": "2026-06-14-v054",
  "authority_layers": [
    {
      "layer": 0,
      "name": "Evidence",
      "role": "Unmodified acquisition evidence and source identity; basis for audit, not normalized numeric authority."
    },
    {
      "layer": 1,
      "name": "Internal Model",
      "role": "Regenerable internal keyed tables; internal source of truth, not external citation authority."
    },
    {
      "layer": 2,
      "name": "Release Facts",
      "aliases": [
        "canonical facts"
      ],
      "role": "Project-canonical, versioned numeric facts and the default authority for reuse and citation."
    },
    {
      "layer": 3,
      "name": "Deliverables",
      "role": "Derived public data, shapes, workbooks, visualizations, and AI bundles; convenient but not numeric authority."
    }
  ],
  "dependency_direction": "Evidence -> Internal Model -> Release Facts -> Deliverables",
  "non_negotiable_rules": [
    "Never update or infer Layer 2 facts from a Layer 3 deliverable.",
    "Project-canonical does not mean official; the relevant election authority controls official records.",
    "Resolve an artifact-specific release ID and SHA-256 before making a reproducible citation.",
    "Read known residuals and the relevant AERL evidence package before making completeness or quality claims.",
    "Do not silently fill missing values, merge municipalities, or resolve source conflicts by plausibility."
  ],
  "routes": {
    "permission": "https://jp-election-public-ja.pages.dev/ai/reuse.json",
    "citation": "https://jp-election-public-ja.pages.dev/ai/citation.json",
    "status": "https://jp-election-public-ja.pages.dev/ai/status.json",
    "current_catalog_pointer": "https://jp-election-public-ja.pages.dev/catalog/current.yaml",
    "public_manifest": "https://jp-election-public-ja.pages.dev/catalog/public-manifest.json",
    "artifact_layers": "https://jp-election-public-ja.pages.dev/docs/artifact-layers.md",
    "known_residuals": "https://jp-election-public-ja.pages.dev/docs/known-residuals.md",
    "aerl_criteria": "https://jp-election-public-ja.pages.dev/docs/aerl-audit-criteria.md",
    "catalog_map": "https://jp-election-public-ja.pages.dev/page/page-ai-catalog-map.json",
    "full_surface_optional": "https://jp-election-public-ja.pages.dev/ai/current-surface.json"
  },
  "retrieval_guidance": {
    "first_response_budget": "Use this bootstrap and citation.json before downloading the full AI surface or bulk files.",
    "numeric_questions": "Select Layer 2 fact_* files through public-manifest.json.",
    "discovery_questions": "Use the catalog map or derived datasets, then trace numeric claims back to Layer 2.",
    "uncertainty": "Expose residuals, missing coverage, source conflict, and mutable-pointer use in the answer."
  }
}
