{
  "schema_version": "1.0.0",
  "status": "active_registry",
  "checked_at": "2026-10-02T16:03:30Z",
  "registry_purpose": "Describe independent Trump-related archives as a federated research network without pretending that unlike record units are interchangeable or additive.",
  "invariants": [
    "An upstream archive is a discovery and corroboration source, not an automatic authority for The Record.",
    "Every measurement preserves the upstream label, unit, scope, observation time, and primary project page that displayed it.",
    "Counts from different comparability groups are never summed into a grand total.",
    "An external item does not become a verified The Record entry without source-level review under The Record's editorial standard.",
    "A directory card or crosslink is discovery infrastructure, not a completed import. Every external item that advances beyond research_lead must receive facts, significance, goalpost/response, maybe_therefore, evidence/confidence, provenance, consequences, and revision layers.",
    "Origin archive plus origin record ID and deterministic dedupe_key are unique gates. Same-event archive records are merged as attributed origins; later stages of the same action share an event_family_key and remain explicitly crosslinked instead of being collapsed.",
    "External IDs and URLs remain attached after deduplication so readers can audit provenance and return to the upstream record.",
    "No full-text republication occurs until the upstream license or explicit permission permits it. Metadata, short descriptions, citations, and links are the default federation boundary.",
    "A failed or stale upstream check never erases the last known measurement; it changes the check state and preserves the previous observation."
  ],
  "measurement_contract": {
    "required_fields": [
      "metric_id",
      "as_reported_label",
      "value",
      "unit",
      "scope",
      "comparability_group",
      "observed_at",
      "source_url"
    ],
    "comparability_groups": {
      "raw_public_expression": "Posts, speeches, transcripts, interviews, or official documents. These are source artifacts, not policy events.",
      "general_policy_action": "Confirmed executive, regulatory, agency, personnel, or court-linked policy actions across multiple domains.",
      "domain_policy_action": "Policy actions within a named subject domain; this registry currently includes immigration.",
      "structured_executive_conduct": "Curated executive-conduct entries, evidence documents, contradictions, sequences, and consequence relationships.",
      "archive_feature_metric": "A feature-specific upstream count such as primary documents, contradictions, or sequences; not an event total."
    },
    "value_rule": "Use null only when the upstream project does not expose a verified numeric value on a checked primary page. Never infer a count from API limits, page numbers, search snippets, or record IDs.",
    "display_rule": "Render the unit and scope beside every number. Do not present a cross-archive sum."
  },
  "proposed_crosswalk_contract": {
    "crosswalk_id_format": "XW-{FEDERATED_RECORD_ID}-{ARCHIVE_ID}-{EXTERNAL_ID}",
    "required_fields": [
      "federated_record_id",
      "the_record_entry_id",
      "archive_id",
      "external_id",
      "external_url",
      "external_record_unit",
      "record_status",
      "dedupe_key",
      "event_family_key",
      "lifecycle_stage",
      "maybe_therefore_state",
      "relationship",
      "match_basis",
      "review_state",
      "checked_at"
    ],
    "field_rules": {
      "the_record_entry_id": "Null until a new canonical entry is accepted, or the existing canonical ID when the federation record is crosswalk-only.",
      "external_record_unit": "Preserve the upstream archive's unit verbatim; never convert it into an additive The Record count.",
      "dedupe_key": "Deterministic federated-record-v1 fingerprint for one event at one lifecycle stage.",
      "event_family_key": "Stable fingerprint shared by proposal, implementation, litigation, reversal, and outcome stages of the same action.",
      "maybe_therefore_state": "May be pending only for research_lead; must be complete for every later status."
    },
    "relationship_values": [
      "same_event",
      "source_artifact_for",
      "predecessor_policy",
      "subsequent_action",
      "legal_development",
      "contradicts",
      "consequence_of",
      "context_for",
      "possible_match"
    ],
    "match_basis_values": [
      "formal_identifier",
      "canonical_source_url",
      "docket_or_case_number",
      "person_date_quote_hash",
      "normalized_title_date",
      "editorial_review"
    ],
    "review_state_values": [
      "machine_candidate",
      "human_confirmed",
      "rejected",
      "superseded"
    ]
  },
  "archives": [
    {
      "archive_id": "trump_archive",
      "name": "Trump Archive",
      "homepage_url": "https://trump-archive.com/",
      "browse_url": "https://trump-archive.com/archive",
      "about_url": "https://trump-archive.com/about",
      "analytics_url": "https://trump-archive.com/analytics",
      "source_class": "independent_public_archive",
      "self_description": "A public, searchable and open-source archive of Donald Trump's public statements, speeches, interviews, press conferences, social posts, executive documents, and White House material.",
      "scope": {
        "subject": "Donald Trump public expression and official documents",
        "geography": "United States",
        "stated_primary_period": {
          "start": "2025-01-20",
          "end": "present"
        },
        "observed_historical_outliers": {
          "earliest_month_in_monthly_index": "1976-06",
          "note": "The project describes its complete daily coverage as beginning in 2025, while the monthly index also contains a small number of older transcripts. Do not treat the older span as complete coverage."
        },
        "record_unit": "one public statement, social post, speech/transcript, executive order, or White House document",
        "explicit_exclusions": []
      },
      "measurements": [
        {
          "metric_id": "trump_archive.total_items",
          "as_reported_label": "total items",
          "value": 14477,
          "unit": "public_statement_or_document_item",
          "scope": "all items displayed in the archive monthly index",
          "comparability_group": "raw_public_expression",
          "observed_at": "2026-10-02T22:02:20Z",
          "source_url": "https://trump-archive.com/archive",
          "upstream_display_date": null
        },
        {
          "metric_id": "trump_archive.truth_social_posts",
          "as_reported_label": "Truth Social posts",
          "value": 11969,
          "unit": "truth_social_post",
          "scope": "Truth Social posts within the archive index",
          "comparability_group": "raw_public_expression",
          "observed_at": "2026-10-02T22:02:20Z",
          "source_url": "https://trump-archive.com/archive",
          "upstream_display_date": null
        },
        {
          "metric_id": "trump_archive.speeches_transcripts",
          "as_reported_label": "speeches & transcripts",
          "value": 1862,
          "unit": "speech_or_transcript",
          "scope": "speeches and transcripts within the archive index",
          "comparability_group": "raw_public_expression",
          "observed_at": "2026-10-02T22:02:20Z",
          "source_url": "https://trump-archive.com/archive",
          "upstream_display_date": null
        }
      ],
      "provenance": {
        "source_model": "Primary-source collection. The project says transcripts come from Roll Call Factba.se and the official White House site, while Truth Social posts are archived daily.",
        "editorial_model": "The project describes the archive as no-spin and non-editorial; topic labels in analytics are assigned by Claude analysis and may be multi-label.",
        "review_model": "No per-item human-review state was identified on the checked public pages.",
        "upstream_update_cadence": "P1D",
        "cadence_basis_url": "https://trump-archive.com/about",
        "upstream_license_or_permission": "The site calls itself open-source, but no specific content or data license was verified on the checked pages.",
        "attribution_required": true
      },
      "features": {
        "full_text_search": true,
        "date_browse": true,
        "topic_analytics": true,
        "raw_statements": true,
        "primary_source_links": true,
        "policy_lifecycle_status": false,
        "evidence_tiers": false,
        "confidence_states": false,
        "contradiction_links": false,
        "consequence_links": false,
        "revision_history": null,
        "documented_public_api": false,
        "documented_export": null,
        "rss_or_feed": null
      },
      "federation": {
        "initial_mode": "metadata_links_and_discovery_only",
        "recommended_check_interval": "P1D",
        "connector_strategy": "Read the archive index or a future documented feed once per day; preserve each upstream item ID or canonical URL and retrieved hash.",
        "candidate_uses": [
          "Attach the exact Trump statement or post to a verified The Record event as a source artifact.",
          "Detect statements missing from The Record's separate Truth Social layer.",
          "Offer transcript and statement search without counting each utterance as an accountability event."
        ],
        "dedup_keys": [
          "upstream item ID when exposed",
          "canonical URL",
          "normalized speaker plus timestamp plus text hash"
        ],
        "auto_publish_to_the_record": false,
        "content_import_permission_state": "license_review_required"
      },
      "last_check": {
        "checked_at": "2026-10-02T22:02:20Z",
        "state": "success",
        "verification_pages": [
          "https://trump-archive.com/archive"
        ],
        "note": "Primary archive index directly displayed 14,477 total items, 11,969 Truth Social posts and 1,862 speeches and transcripts. Units remain separate and no upstream item was promoted by this measurement."
      }
    },
    {
      "archive_id": "undotrump",
      "name": "UndoTrump.com",
      "homepage_url": "https://www.undotrump.com/",
      "browse_url": "https://www.undotrump.com/",
      "about_url": "https://www.undotrump.com/about.php",
      "source_class": "independent_civic_policy_tracker",
      "self_description": "A searchable tracker of confirmed executive orders, memoranda, enacted regulations, agency policy changes, personnel actions, and court rulings across both Trump presidencies.",
      "scope": {
        "subject": "Trump administration policy actions across ten subject areas",
        "geography": "United States",
        "stated_primary_period": {
          "start": "2017-01-20",
          "end": "present",
          "excluded_gap": "2021-01-21 through 2025-01-19 except later actions affecting tracked policies"
        },
        "record_unit": "one confirmed policy action",
        "explicit_exclusions": [
          "speculation",
          "proposals not yet acted upon",
          "opinion pieces",
          "ceremonial proclamations"
        ]
      },
      "measurements": [
        {
          "metric_id": "undotrump.actions_tracked",
          "as_reported_label": "Actions Tracked",
          "value": 1264,
          "unit": "confirmed_policy_action",
          "scope": "Trump first and second presidential terms",
          "comparability_group": "general_policy_action",
          "observed_at": "2026-10-02T16:03:30Z",
          "source_url": "https://www.undotrump.com/",
          "upstream_display_date": "2026-10-01"
        },
        {
          "metric_id": "undotrump.term_1_actions",
          "as_reported_label": "Term I filter",
          "value": 731,
          "unit": "confirmed_policy_action",
          "scope": "Trump first term",
          "comparability_group": "general_policy_action",
          "observed_at": "2026-08-26T04:07:43Z",
          "source_url": "https://www.undotrump.com/?term=1",
          "upstream_display_date": "2026-08-23"
        },
        {
          "metric_id": "undotrump.term_2_actions",
          "as_reported_label": "Term II filter",
          "value": 533,
          "unit": "confirmed_policy_action",
          "scope": "Trump second term",
          "comparability_group": "general_policy_action",
          "observed_at": "2026-08-26T04:07:43Z",
          "source_url": "https://www.undotrump.com/?term=2",
          "upstream_display_date": "2026-08-24"
        }
      ],
      "status_breakdown": [
        {
          "status": "active",
          "value": 995,
          "unit": "confirmed_policy_action",
          "source_url": "https://www.undotrump.com/?status=active"
        },
        {
          "status": "in_courts",
          "value": 44,
          "unit": "confirmed_policy_action",
          "source_url": "https://www.undotrump.com/"
        },
        {
          "status": "restored_or_undone",
          "value": 42,
          "unit": "confirmed_policy_action",
          "source_url": "https://www.undotrump.com/?status=reversed"
        },
        {
          "status": "partially_undone",
          "value": 28,
          "unit": "confirmed_policy_action",
          "source_url": "https://www.undotrump.com/?status=partial"
        },
        {
          "status": "pending",
          "value": 31,
          "unit": "confirmed_policy_action",
          "source_url": "https://www.undotrump.com/?status=pending"
        },
        {
          "status": "expired",
          "value": 124,
          "unit": "confirmed_policy_action",
          "source_url": "https://www.undotrump.com/?status=expired"
        }
      ],
      "category_breakdown": [
        {
          "category": "environment",
          "value": 97
        },
        {
          "category": "healthcare",
          "value": 107
        },
        {
          "category": "immigration",
          "value": 148
        },
        {
          "category": "civil_rights",
          "value": 76
        },
        {
          "category": "economy",
          "value": 272
        },
        {
          "category": "education",
          "value": 49
        },
        {
          "category": "foreign_policy",
          "value": 287
        },
        {
          "category": "democracy",
          "value": 186
        },
        {
          "category": "science",
          "value": 36
        },
        {
          "category": "housing",
          "value": 6
        }
      ],
      "breakdown_note": "The six observed status filters and the ten displayed category counts each reconcile independently to 1,264. Status and category are separate dimensions and must not be added together.",
      "provenance": {
        "source_model": "Historical executive orders are described as drawn from the Federal Register; ongoing monitoring covers thirteen news sources and the Federal Register, with a primary source linked on each record.",
        "editorial_model": "Claude scores and categorizes candidates, then a human editor reviews and approves publication.",
        "review_model": "Human approval is claimed at the project level; no per-item review-state field was identified on the checked browse page.",
        "upstream_update_cadence": "PT30M",
        "cadence_basis_url": "https://www.undotrump.com/about.php",
        "upstream_license_or_permission": "The project expressly welcomes citation and linking; it directs bulk-access and data-partnership requests to webteam@undotrump.com. No blanket bulk-republication license was verified.",
        "attribution_required": true
      },
      "features": {
        "full_text_search": true,
        "date_browse": true,
        "topic_filters": true,
        "term_filters": true,
        "policy_lifecycle_status": true,
        "court_status": true,
        "restoration_status": true,
        "primary_source_links": true,
        "evidence_tiers": false,
        "confidence_states": false,
        "consequence_links": null,
        "revision_history": null,
        "documented_public_api": false,
        "documented_export": null,
        "rss_or_feed": null
      },
      "federation": {
        "initial_mode": "metadata_links_and_discovery_only",
        "recommended_check_interval": "PT6H",
        "connector_strategy": "Check the browse and status-filter pages during the existing six-hour run, but do not mirror full descriptions until permission or a documented data feed is obtained.",
        "candidate_uses": [
          "Seed missing-policy and missing-accomplishment review queues.",
          "Cross-check policy lifecycle, court, partial-reversal, expiration, and restoration states.",
          "Attach the official action source after independently validating that it supports The Record's claim."
        ],
        "dedup_keys": [
          "executive order number",
          "Federal Register document number",
          "presidential memorandum title and date",
          "canonical official-source URL",
          "normalized action title and effective date"
        ],
        "auto_publish_to_the_record": false,
        "content_import_permission_state": "bulk_permission_or_feed_required"
      },
      "last_check": {
        "checked_at": "2026-10-02T22:02:20Z",
        "state": "success",
        "verification_pages": [
          "https://www.undotrump.com/"
        ],
        "note": "Primary project page displayed 1,264 actions, with 995 active, 44 in courts and 42 restored as separate status measures; no unlike units were combined."
      }
    },
    {
      "archive_id": "immigration_policy_tracking_project",
      "name": "Immigration Policy Tracking Project",
      "short_name": "IPTP",
      "homepage_url": "https://immpolicytracking.org/",
      "browse_url": "https://immpolicytracking.org/policies/",
      "about_url": "https://immpolicytracking.org/about/",
      "source_class": "expert_domain_policy_tracker",
      "self_description": "A searchable compilation of Trump 1.0 and 2.0 immigration policies with underlying documents and continuing implementation, litigation, predecessor-policy, and status updates.",
      "scope": {
        "subject": "United States immigration policy",
        "geography": "United States",
        "stated_primary_period": {
          "start": "2017-01-20",
          "end": "present",
          "excluded_gap": "2021-01-21 through 2025-01-19 except predecessor and subsequent actions affecting tracked policies"
        },
        "record_unit": "one immigration policy action",
        "included_action_types": [
          "adjudication",
          "agency directive",
          "change in practice",
          "data and report",
          "forms and information collection",
          "presidential order",
          "program termination",
          "rule",
          "legislation"
        ]
      },
      "measurements": [
        {
          "metric_id": "iptp.trump_actions_home",
          "as_reported_label": "Trump Actions (2017-2021)",
          "value": 1781,
          "unit": "immigration_policy_action",
          "scope": "The homepage labels this as 2017-2021 even though the project now covers both Trump 1.0 and 2.0; preserve that upstream label until the publisher clarifies the denominator.",
          "comparability_group": "domain_policy_action",
          "observed_at": "2026-08-26T22:00:00Z",
          "source_url": "https://immpolicytracking.org/",
          "upstream_display_date": "2025-09-22",
          "quality_flag": "upstream_scope_label_needs_clarification"
        },
        {
          "metric_id": "iptp.policy_actions_browse",
          "as_reported_label": "Policy Actions",
          "value": 1799,
          "unit": "immigration_policy_action",
          "scope": "all policies shown on the policies browse page",
          "comparability_group": "domain_policy_action",
          "observed_at": "2026-10-02T16:03:30Z",
          "source_url": "https://immpolicytracking.org/policies/",
          "upstream_display_date": "2026-10-01",
          "note": "The primary policies page displayed 1,799 actions, including 649 fully in effect, 56 partially in effect and 291 not in effect. This domain-policy measurement remains separate from other archive units, and no upstream item was promoted without original-source review."
        }
      ],
      "trump_1_current_status_breakdown": [
        {
          "status": "fully_in_effect",
          "value": 649,
          "unit": "immigration_policy",
          "source_url": "https://immpolicytracking.org/"
        },
        {
          "status": "partially_in_effect",
          "value": 56,
          "unit": "immigration_policy",
          "source_url": "https://immpolicytracking.org/"
        },
        {
          "status": "not_in_effect",
          "value": 291,
          "unit": "immigration_policy",
          "source_url": "https://immpolicytracking.org/"
        }
      ],
      "trump_1_subsequent_action_metrics": [
        {
          "as_reported_label": "Acted on by the Biden Administration",
          "value": 383,
          "unit": "immigration_policy",
          "source_url": "https://immpolicytracking.org/"
        },
        {
          "as_reported_label": "Acted on by Courts",
          "value": 190,
          "unit": "immigration_policy",
          "source_url": "https://immpolicytracking.org/"
        },
        {
          "as_reported_label": "Allowed to Expire",
          "value": 21,
          "unit": "immigration_policy",
          "source_url": "https://immpolicytracking.org/"
        }
      ],
      "breakdown_note": "The three current-status values sum to 997, not 1,781. The upstream page does not state that the status denominator is identical to the action count, so the registry keeps them as a separately scoped measurement instead of treating the difference as missing data.",
      "provenance": {
        "source_model": "Each entry is described as containing underlying source documents, predecessor policies, relevant litigation, and later actions.",
        "editorial_model": "Professor Lucas Guttentag, Stanford and Yale law students, and immigration-law experts maintain the project.",
        "review_model": "Expert-maintained; no per-item public review-state label was identified on the checked pages.",
        "upstream_update_cadence": null,
        "cadence_basis_url": "https://immpolicytracking.org/about/",
        "cadence_note": "The project says entries are continually updated and that it is not a real-time reporting service. The homepage's displayed last-updated date appears stale relative to 2026 analyses and should be preserved as an upstream metadata issue, not silently corrected.",
        "upstream_license_or_permission": "The project requests citation as Guttentag, Immigration Policy Tracking Project. The checked pages display copyright and no bulk-republication license.",
        "attribution_required": true
      },
      "features": {
        "full_text_search": true,
        "date_browse": true,
        "subject_filters": true,
        "agency_filters": true,
        "action_type_filters": true,
        "term_filters": true,
        "policy_lifecycle_status": true,
        "litigation_links": true,
        "predecessor_policy_links": true,
        "subsequent_action_timeline": true,
        "underlying_source_documents": true,
        "evidence_tiers": false,
        "confidence_states": false,
        "revision_history": null,
        "documented_public_api": false,
        "documented_export": null,
        "rss_or_feed": null
      },
      "federation": {
        "initial_mode": "metadata_links_and_discovery_only",
        "recommended_check_interval": "P1D",
        "connector_strategy": "Check the home and policies pages daily for count and recently changed-policy signals. Seek permission or a documented feed before bulk retrieval.",
        "candidate_uses": [
          "Make IPTP the specialist discovery index for immigration-policy completeness audits.",
          "Crosswalk predecessor, implementation, litigation, court, rescission, replacement, and expiration events into one The Record lifecycle chain.",
          "Use IPTP's underlying documents as leads, then inspect and cite the original documents directly whenever possible."
        ],
        "dedup_keys": [
          "IPTP entry ID",
          "executive order or presidential directive number",
          "Federal Register document number",
          "court docket and filing identifier",
          "canonical agency-document URL"
        ],
        "auto_publish_to_the_record": false,
        "content_import_permission_state": "permission_or_documented_feed_required"
      },
      "last_check": {
        "checked_at": "2026-10-02T22:02:20Z",
        "state": "success",
        "verification_pages": [
          "https://immpolicytracking.org/policies/"
        ],
        "note": "Primary policies page displayed 1,799 actions, including 649 fully in effect, 56 partially in effect and 291 not in effect; no upstream item was promoted."
      }
    },
    {
      "archive_id": "record47",
      "name": "Record47 Executive Conduct Archive",
      "homepage_url": "https://record47.org/",
      "browse_url": "https://record47.org/",
      "api_base_url": "https://api.record47.org",
      "source_class": "independent_structured_executive_conduct_archive",
      "self_description": "A source-first archive of executive actions, statements, promises, reversals, contradictions, and consequences built from primary sources and verified reporting.",
      "scope": {
        "subject": "U.S. executive-branch conduct, currently focused on Donald Trump",
        "geography": "United States",
        "stated_primary_period": {
          "start": "2015-06",
          "end": "present"
        },
        "reported_archive_span": "61 years documented",
        "record_unit": "one curated executive-conduct entry, with separately counted source documents, social posts, contradiction records, and sequences",
        "inclusion_tests": [
          "executive-branch origin",
          "institutional significance",
          "source verification"
        ],
        "explicit_exclusions": [
          "generic political news",
          "commentary",
          "campaign statements without downstream institutional consequence",
          "repetitive procedural filler",
          "weakly sourced or speculative records"
        ]
      },
      "measurements": [
        {
          "metric_id": "record47.approved_entries",
          "as_reported_label": "Entries",
          "value": 6300,
          "unit": "executive_conduct_entry",
          "scope": "approved archive entries",
          "comparability_group": "structured_executive_conduct",
          "observed_at": "2026-10-01T22:14:00Z",
          "source_url": "https://api.record47.org/entries?limit=1",
          "note": "Verified against the original public project API; units remain separate and no external record is promoted by this measurement."
        },
        {
          "metric_id": "record47.contradictions",
          "as_reported_label": "contradictions",
          "value": 332,
          "unit": "contradiction_record",
          "scope": "documented conflicts and course changes",
          "comparability_group": "archive_feature_metric",
          "observed_at": "2026-10-01T22:14:00Z",
          "source_url": "https://api.record47.org/counts",
          "note": "Verified against the original public project API; units remain separate and no external record is promoted by this measurement."
        },
        {
          "metric_id": "record47.primary_sources",
          "as_reported_label": "Primary Sources",
          "value": 3641,
          "unit": "distinct_primary_source_document",
          "scope": "distinct primary-source documents in the archive",
          "comparability_group": "archive_feature_metric",
          "observed_at": "2026-10-01T22:14:00Z",
          "source_url": "https://api.record47.org/counts",
          "note": "Verified against the original public project API; units remain separate and no external record is promoted by this measurement."
        },
        {
          "metric_id": "record47.sequences",
          "as_reported_label": "sequences",
          "value": 38,
          "unit": "documented_sequence",
          "scope": "linked multi-event sequences",
          "comparability_group": "archive_feature_metric",
          "observed_at": "2026-10-01T22:14:00Z",
          "source_url": "https://api.record47.org/counts",
          "note": "Verified against the original public project API; units remain separate and no external record is promoted by this measurement."
        },
        {
          "metric_id": "record47.social_posts",
          "as_reported_label": "social posts",
          "value": 6560,
          "unit": "truth_social_or_twitter_post",
          "scope": "Truth Social and Twitter posts available for statement-to-record comparison",
          "comparability_group": "raw_public_expression",
          "observed_at": "2026-10-01T22:14:00Z",
          "source_url": "https://api.record47.org/counts",
          "note": "Verified against the original public project API; units remain separate and no external record is promoted by this measurement."
        }
      ],
      "provenance": {
        "source_model": "Tiered primary sources and high-confidence reporting, with original documents retained and provenance attached to records.",
        "editorial_model": "One human editor applies a fixed, controlled taxonomy and publication standard. Ingested but not yet reviewed material is labeled unreviewed; reviewed records say so.",
        "review_model": "Per-record human-review state, evidence tier, confidence state, official response, and allegation or court-finding labels are described in the methodology.",
        "upstream_update_cadence": null,
        "cadence_note": "No fixed public update interval was verified on the checked primary page.",
        "methodology_standard": "Record47 Archive Standard Version 1.0",
        "methodology_updated": "2026-07",
        "upstream_license_or_permission": "The public archive and API may be read, searched, and cited. The terms prohibit attributing a relabeled disposition or verdict to Record47. No blanket content-republication license was verified.",
        "attribution_required": true
      },
      "features": {
        "full_text_search": true,
        "fielded_search": true,
        "regex_search": true,
        "claim_verification_endpoint": true,
        "date_browse": true,
        "controlled_taxonomy": true,
        "evidence_tiers": true,
        "confidence_states": true,
        "human_review_states": true,
        "primary_source_preservation": true,
        "official_response_field": true,
        "allegation_and_court_finding_labels": true,
        "contradiction_links": true,
        "elapsed_time_between_positions": true,
        "sequence_links": true,
        "consequence_links": true,
        "promise_tracking": true,
        "revision_history": true,
        "related_record_links": true,
        "entities": true,
        "documented_public_api": true,
        "documented_export": "JSON API",
        "rss_or_feed": true
      },
      "public_api": {
        "base_url": "https://api.record47.org",
        "authentication": "none",
        "access": "public_read_only_json",
        "rate_limit": "CDN-level rate limiting; numeric threshold not stated",
        "verified_endpoints": [
          {
            "method": "GET",
            "path": "/entries",
            "purpose": "approved entries with pagination and tag or pattern filters"
          },
          {
            "method": "GET",
            "path": "/entries/:id",
            "purpose": "one entry with sources, tags, contradictions, and entities"
          },
          {
            "method": "GET",
            "path": "/entries/:id/history",
            "purpose": "correction and edit history"
          },
          {
            "method": "GET",
            "path": "/entries/:id/related",
            "purpose": "records related by entity, tag, parent, or child lineage"
          },
          {
            "method": "GET",
            "path": "/search",
            "purpose": "full-text, fielded, and regex search"
          },
          {
            "method": "POST",
            "path": "/verify",
            "purpose": "rank archive matches for submitted text"
          },
          {
            "method": "GET",
            "path": "/entities",
            "purpose": "entities with entry and contradiction counts"
          },
          {
            "method": "GET",
            "path": "/entities/:name",
            "purpose": "entity record with entries, contradictions, co-occurrences, and tags"
          },
          {
            "method": "GET",
            "path": "/feed",
            "purpose": "RSS 2.0 feed with optional tag or pattern filters"
          }
        ]
      },
      "federation": {
        "initial_mode": "api_metadata_links_and_discovery",
        "recommended_check_interval": "PT6H",
        "connector_strategy": "Use the documented API with conditional requests, pagination, rate-limit backoff, and a checkpoint cursor. Store only the fields necessary for discovery and crosswalks until reuse terms are reviewed.",
        "candidate_uses": [
          "Adopt evidence-tier, confidence-state, human-review, official-response, and allegation/court-finding patterns in The Record's own schema.",
          "Crosswalk contradictions, promises, sequences, and consequences to existing The Record entries.",
          "Use entry history and related-record endpoints to detect corrections and lifecycle developments.",
          "Offer a federated search result that links to Record47 without representing its disposition as The Record's verdict."
        ],
        "dedup_keys": [
          "Record47 entry ID",
          "formal government identifier",
          "canonical source URL",
          "docket or filing identifier",
          "person plus date plus normalized quote hash",
          "normalized event title and date"
        ],
        "auto_publish_to_the_record": false,
        "content_import_permission_state": "metadata_and_citation_allowed_full_content_license_review_required"
      },
      "last_check": {
        "checked_at": "2026-10-02T22:02:20Z",
        "state": "source_inconsistency",
        "verification_pages": [
          "https://record47.org/",
          "https://api.record47.org/counts",
          "https://api.record47.org/entries?limit=1"
        ],
        "note": "Primary rendered page displayed 332 contradictions, 3,539 primary sources, 38 sequences and 6,348 social posts. The public API count and entries endpoints could not be retrieved during this check, so earlier API measurements remain preserved and the source inconsistency stays open."
      }
    }
  ],
  "proposed_federation_pipeline": {
    "principle": "One research home requires more than a directory: a registry and preserved upstream links feed deduplicated federated records, and every record that advances past research_lead receives The Record's complete sourced and interpretive structure before it can appear as reviewed or published.",
    "stages": [
      {
        "order": 1,
        "name": "registry_health_check",
        "output": "data/archive_registry.json",
        "action": "During each six-hour run, check only archives whose recommended interval is due. Record HTTP state, checked_at, last_successful_fetch_at, last_changed_at, upstream displayed date, ETag or Last-Modified when available, and parser version."
      },
      {
        "order": 2,
        "name": "metadata_staging",
        "output": "data/external_archive_snapshots/{archive_id}.json",
        "action": "Retrieve permitted metadata into an append-only staging layer. Preserve upstream ID, canonical URL, record unit, title, dates, lifecycle state, source URLs, retrieval time, and a payload hash."
      },
      {
        "order": 3,
        "name": "candidate_crosswalk",
        "output": "data/external_crosswalk_candidates.json",
        "action": "Match formal identifiers first, canonical source URLs second, and title/date or quote fingerprints last. Never merge merely because two titles sound similar."
      },
      {
        "order": 4,
        "name": "source_identity_and_duplicate_review",
        "output": "data/federated_records.json",
        "action": "Create research_lead records with preserved archive IDs and units. Inspect original sources, calculate deterministic dedupe_key and event_family_key values, merge same-event origins as aliases, and crosslink distinct lifecycle stages. Duplicate origin or event keys block every reviewed or published status."
      },
      {
        "order": 5,
        "name": "interpretive_normalization",
        "output": "data/federated_records.json",
        "action": "Before any record advances beyond research_lead, require atomic sourced facts plus significance, goalpost/response, maybe_therefore, evidence tier and confidence, provenance and copyright boundary, consequences, duplicate clearance, and append-only revisions. External archive prose is not a fact source and is not bulk-copied."
      },
      {
        "order": 6,
        "name": "public_archive_network",
        "output": "archive-network/index.html",
        "action": "Publish archive cards, unit-specific counts, scope and cadence notes, check health, and confirmed crosslinks. Federated records appear only at their validated status; reviewed and published records render the complete interpretive structure. Show no grand total."
      },
      {
        "order": 7,
        "name": "quality_receipt",
        "output": "release/archive-network-receipt.json",
        "action": "Record changed counts, new and merged origins, dedupe decisions, lifecycle crosslinks, interpretive gate results, rejected candidates, upstream failures, schema or parser changes, and licensing decisions."
      }
    ],
    "failure_behavior": [
      "Use the last successful snapshot and mark it stale.",
      "Do not turn parser failure into a zero count.",
      "Do not delete a crosswalk merely because an upstream URL is temporarily unavailable.",
      "Do not advance a duplicate, an unlinked lifecycle update, or a record missing maybe_therefore beyond research_lead.",
      "Alert when a count falls unexpectedly, a scope label changes, or an upstream site contradicts its own displayed totals.",
      "Require a parser-fixture test before deploying any upstream adapter change."
    ]
  },
  "recommended_feature_adoption": [
    {
      "priority": 1,
      "feature": "canonical_statement_artifact_links",
      "inspiration": "Trump Archive",
      "recommendation": "Keep raw posts, speeches, and documents in a separate artifact layer, then link them to verified events rather than counting each utterance as an event."
    },
    {
      "priority": 2,
      "feature": "policy_lifecycle_and_restoration_states",
      "inspiration": "UndoTrump",
      "recommendation": "Add proposed, implemented, in litigation, partially blocked, reversed, expired, restored, and outcome-measured states with dated transitions."
    },
    {
      "priority": 3,
      "feature": "predecessor_subsequent_action_and_litigation_chains",
      "inspiration": "Immigration Policy Tracking Project",
      "recommendation": "Connect a policy to the rule or directive it replaced, later implementation, litigation, court actions, rescission, replacement, and continuing effect."
    },
    {
      "priority": 4,
      "feature": "evidence_confidence_review_and_revision_controls",
      "inspiration": "Record47",
      "recommendation": "Add normalized evidence tiers, confidence and dispute states, human-review state, source preservation, official responses, contradiction arcs, consequence chains, and revision history."
    },
    {
      "priority": 5,
      "feature": "complete_federated_interpretive_record",
      "inspiration": "The Record",
      "recommendation": "Treat external archives as discovery and provenance inputs. Every record that advances beyond research lead must be rewritten from inspected sources into facts, significance, goalpost/response, maybe_therefore, evidence/confidence, provenance, consequences, and revisions, with no copied bulk prose."
    },
    {
      "priority": 6,
      "feature": "federated_search",
      "inspiration": "All four archives",
      "recommendation": "Search The Record first and show separately labeled external results by unit. A public-statement result, policy action, immigration policy, and executive-conduct entry must retain different badges and never collapse into an undifferentiated count."
    }
  ]
}
