Evidence intake →

Multi-source intake

A pilot-sized haul from connector output to a populated Decision Event Registry: six sources, three pagination styles, the append-only raw store, per-source extraction, and identifier reconciliation across sources.

6Sources
16Raw payloads
32Decisions
17Reconciled
13/13Invariants heldProvenance, reconciliation, quarantine, no leak, no scores, named gaps.

The dress rehearsal proved the pipeline survives thirty lineages of authored records. It said nothing about thirty lineages of ingested ones, because it starts downstream of retrieval. This page is that missing seam: payloads shaped like the documented API envelopes go through the real connector specs, the real pagination, and the real raw store — and then through the step nothing else here performs, turning a retrieved payload into a registered decision with reconciled identifiers.

Run at build time from @gii/intake · digest ae792dfcf7235420db7516fa… — the same haul always registers the same state.

Every payload here is fabricated, and no network call is made. The envelopes mirror the documented APIs so that the only thing missing on the day credentials arrive is the network. Intake computes no scores — it establishes what a decision is, never what it did.

The haul#

Six sources across three pagination styles and four credential classes. Every page is checksummed and persisted before it is parsed, so nothing enters the registry that is not already held as evidence.

SourceWalkPagesItemsRegisteredReconciledQuarantined
congress-gov
Library of Congress
offset · registration-key26600
federal-register
Office of the Federal Register (NARA) / GPO
page · none4131300
regulations-gov
U.S. General Services Administration
page · api-key415492
courtlistener
Free Law Project (nonprofit)
cursor · token24400
govinfo
U.S. Government Publishing Office
cursor · registration-key28080
usaspending
U.S. Department of the Treasury (Bureau of the Fiscal Service)
page · none25500
registered entities

Decisions by origin

Each registered decision has exactly one decision-origin code, so this ring partitions the registry. Intergovernmental implementation records are award-level, not decisions in their own right.

  • Executive agency928%
  • Congress619%
  • Intergovernmental implementation516%
  • President413%
  • Independent regulator413%
  • Other (2)413%

32 decisions in total · The registries

Every extracted record49
first sighting 32second sighting, reconciled 17

A decision retrieved from two sources reconciles to one entity. The second sighting adds identifiers; it does not add a duplicate.

Where two sources meet#

17 cross-source joins fired, on 3 identifier systems. A Regulations.gov document quoting its Federal Register document number is not a similar record — it is the same one, and the crosswalk is what makes that conclusion checkable rather than assumed.

identifier reconciliation

Cross-source joins by identifier system

Bars, not a ring: one decision can join on more than one system, so these count joins rather than partitioning them.

federal-register-doc9
public-law6
court-citation2

17 joins in total · How the crosswalk works

What the haul found#

Three findings the fixtures could not have been written to produce, because they are properties of the sources rather than of the fixtures.

FindingWhat it means for the pilot
Identity reconciles; lineage does not arrive at all. Not one of the six envelopes carries a structured reference to a different decision.Every lineage edge will come from analyst work or full-text parsing, not from the APIs. Budget for it.
Awards cannot be linked to the decisions that created them. The USAspending award envelope carries no authorizing-statute reference.Linking spending to the decision that caused it needs the appropriation-account layer, not the award search API.
3 lineages cannot be retrieved at all. The Federal Reserve has no documented-API source in the inventory.Monetary-policy lineages enter by another route or not at all. The haul names them rather than quietly running on 27.

Controls that fired#

The fixtures include deliberately bad items, because a control that has never fired is a claim rather than a control. 2 items were quarantined with a stated reason and 1 identity conflict was held for review — never merged, never dropped.

SourceReason
regulations-govdocument SYN-HQ-2018-04-9998 carries no title
regulations-govidentifier conflict: resolves to 2 entities (GII-DEC-00bf28d8e646, GII-DEC-a1eff7cbf281) — held for review, never merged

Intake invariants#

What must hold of a haul, whatever it retrieved. Each reports what was observed, whether or not it held.

InvariantObservedHeld
raw-persisted-before-parse49 normalized records over 16 raw payloads.held
every-decision-has-provenance32 decisions, each carrying 1.9 identifiers on average.held
issued-identifiers-are-declared9 systems across 62 preserved identifiers.held
cross-source-identity-reconciles17 second sightings across 3 identifier systems produced 0 duplicates.held
relations-never-reconcileno relation reference appeared in any envelope; 6 context identifiers were recorded on their records and kept out of the crosswalk.held
conflicts-surface-for-review1 conflict(s) surfaced and quarantined.held
quarantine-not-silence2 quarantined of 51 items.held
content-addressing-dedupes16 distinct payloads from 16 retrieved pages.held
no-credential-leak4 injected credentials, 0 found in 21,817 surfaced characters.held
intake-produces-no-scores0 score records, 0 outcome definitions, 0 analyses — intake writes none of them.held
coverage-gaps-are-named27/30 corpus lineages arrived as evidence; 3 named as unreachable (federal-reserve).held
re-running-the-haul-is-safereplayed 6 sources: 0 new payloads, 0 new entities.held
every-extractor-exercisedcongress-gov 6 · federal-register 13 · regulations-gov 13 · courtlistener 4 · govinfo 8 · usaspending 5held

Run it#

npm run gii -- intake            # the summary above, in a terminal
npm run gii -- intake --json     # the full report

GET /api/v1/intake
npm run gii -- export intake-report.json
What this does not claim. The envelopes are modelled on the documented APIs, not captured from them. A real haul will meet fields these fixtures do not have and rate limits no fixture can simulate. What it proves is that the path holds at pilot scale — that thirty lineages can arrive from six sources, reconcile into one registry without duplicating, and surface their failures as counts rather than silence.