Skip to main content
Back to projects
Open SourceIn Progress

Chronograph — Human History According to AI

A machine-generated chronicle of human civilization in 5,226 year records — every year generated, every file schema-valid, and now readable

The 5,226-record JSON corpus of recorded human history — every file passes the schema, 99.85% of its 17,991 events name a source — read through Chronograph: Notebook, Stratum, and Atlas views, with an EN→IS translation pipeline.

“History is written by the victors — but a structured knowledge corpus must account for everyone else.
— Project design note, LEDGER.md
RoleAuthor & Architect
DurationApril 2026–Ongoing
UpdatedJuly 29, 2026
StatusIn Progress
The Chronograph landing page — the human-history timeline

The Challenge

Encyclopedic resources are written for human readers and resist programmatic querying. This project needed a format where uncertainty is mandatory rather than optional: every event must carry a confidence level, every year must declare its causal links, and every year must include a field for regions its sources do not cover — enforced by a validator that rejects a year without them. Building a 5,226-file corpus manually would take decades; doing it carelessly with AI would produce confident-sounding noise.

The Approach

Designed the ICCRA schema — a JSON format requiring source-reference fields (27 of 17,991 events leave them empty), confidence levels (confirmed, probable, approximate, traditional, legendary), causal relationships, and explicit geographic gap declarations for every year. Built a Python async daemon that calls Claude Sonnet 4.6 via the Anthropic API, validates output against the schema, tracks progress in an append-only ledger, and can resume processing from its progress records after failures. The repository’s $15.68 estimate is the rounded product of 5,226 year records and an assumed $0.003 per record. It is not a billing total; the recovered usage logs cover only part of the work.

Outcomes

5,226 recordsScopeIndices −3200 to 2025, including 0 — 5,226 JSON year records
Completed 12 April 2026Generation runThe progress register records all 5,226 year records complete on 12 April 2026, with no failed years remaining; the ICCRA validator reports zero errors and 5,773 warnings (rechecked 4 November 2026)
3 viewsFrontendChronograph v0.2 — Notebook editorial folio, Stratum per-year instrument view, Atlas orthographic globe
EN → ISTranslation layerCI-integrated Icelandic localization: locked system prompt, six-guard correctness chain, idempotent SHA256 manifest — 19 of 5,226 years localized, backfill paused

What Is This?

Human History According to AI is an autonomous research daemon that generates a structured, machine-readable chronicle of human civilization — year by year, from 2025 CE back to approximately 3200 BCE. The corpus contains 5,226 JSON files indexed from −3200 to 2025, including an index 0; this is a file count, not a count of distinct years in conventional BCE/CE chronology. The generation pipeline used Claude Sonnet 4.6 through the Anthropic API.

This is not a narrative history. It is a knowledge corpus designed for graph databases, timelines, adversarial review, and further AI reasoning. All 17,991 events carry a declared confidence level, and 17,964 of them name a source — of the 27 that do not, 21 are duplicate entries cross-referencing an event that does, and six are correction notes or empty-year records. Disconfirming evidence is surfaced where it exists.

Why Build This?

Historical knowledge is abundant but unstructured. Existing resources — encyclopedias, academic papers, Wikipedia — are written for human readers: narrative, discursive, and difficult to query at scale. This project asks a different question: what does a structured, machine-readable substrate of human history look like?

The answer is the ICCRA schema — a JSON format that captures events, causal relationships, geographic coverage, confidence levels, and explicit declarations of what we don't know. The geographic gaps field is not an afterthought: it is a deliberate acknowledgment that the documentary record is not evenly distributed across the world's populations.

Architecture

The system is a Python async daemon that orchestrates API calls, tracks progress in an append-only ledger file, validates output against the ICCRA schema, and recovers gracefully from failures. A Next.js 16 frontend provides an interactive timeline visualization of the generated data.

The original repository estimate was $0.003 per year record × 5,226 records = $15.678, rounded to $15.68. The pipeline is configured for Claude Sonnet 4.6. This is an extrapolation, not a billing total. Recovered usage logs cover only part of the work, and the batch-cost calculation applies a discount while sending ordinary Messages API requests. Actual total expenditure remains unverified.

Confidence Levels

All 17,991 events in the corpus carry one of five confidence levels:

  • Confirmed: Primary sources, physical evidence, multiple independent attestations.
  • Probable: Strong circumstantial or secondary evidence.
  • Approximate: General scholarly consensus, imprecise dating.
  • Traditional: Preserved in cultural memory but not independently verified.
  • Legendary: Mythological or folkloric — included for completeness, clearly flagged.

This tiered system means the corpus can be queried by epistemic quality, not just by date or region.

Geographic Gaps

One of the schema's most important fields is the explicit declaration of geographic coverage gaps. For any given year, the daemon is required to state which regions and populations are under-documented — not because the history didn't happen, but because the surviving record doesn't capture it. This is an acknowledgment built into the structure of the data rather than hidden in caveats.

Chronograph — the reading room

Every year in the span has a file, which is not the same as history being complete: the progress register records all 5,226 year records complete on 12 April 2026, with no failed years remaining. Rechecking the ICCRA validator on 4 November found zero errors and 5,773 warnings. On top of it sits Chronograph, the editorial frontend, in three views: the Notebook folio for reading history year by year, the Stratum instrument view — a per-year dashboard of events, sources, and confidence — and the Atlas, an orthographic globe for the spatial record.

A second layer of scholarly evidence is being added era by era through deep-dives via the Scite research API — seven of the forty-three eras have been through it so far. The internal validation report dated 16 April 2026 records 130 papers checked for retraction and correction notices, with none detected, and no fabricated citations found by its cross-agent audit. The Icelandic localization runs on a CI-integrated pipeline: a locked Icelandic system prompt, a six-guard correctness chain, and an idempotent SHA256 manifest so the GitHub Action only translates what changed. It has localized 19 of the 5,226 years; the backfill is paused.


The project is open-source. Contributions, schema critiques, and adversarial review of generated content are welcome.


From Sumarhús — updates to the timeline

29 July 2026

The era model was the constraint. An era used to be a slice of the linear chronological sweep, and an event belonged to at most one of them — which cannot express the questions the corpus should be able to answer. The Haitian Revolution belongs to the Age of Revolutions, the Age of Abolition and the modern sweep at the same time.

The registry now holds 43 eras instead of 22, in four kinds. The original chronological sweep stays as it was. Added to it: thematic lenses that cross geography (the Scientific Revolution, the Age of Revolutions, Decolonisation), crisis eras for rupture and suffering (the Transatlantic Slave Trade, the Black Death, the World Wars), and regional spheres deliberately outside the Western default (the West African Golden Age, Tang and Song China, the Classic Maya). They overlap each other by design. That is the point.

Seven of them carry a duty of care: they cover mass atrocity, enslavement or genocide. That is not a gate on publication — it is a requirement about research depth and visible provenance. Contested figures appear as ranges with named sources, victim counts never rest on a single source, and contested naming conventions are attributed to whoever uses them.

Two lanes that do not certify each other

Research angles and the evidence for them are now produced by different systems, so nothing both proposes a claim and supplies its own support. One model writes falsifiable claims per era, together with an audit of what the standard account distorts — and is barred from producing citations at all. A separate pass retrieves the actual peer-reviewed literature through Scite and returns a verdict.

The separation immediately paid for itself. On the first run the evidence pass overruled the angle pass three times: the claim of absolute African population decline between 1700 and 1850 was downgraded from supported to contested, because the offsetting term has never been estimated and so no net figure exists; Black Death mortality was corrected from a 40–60% band to the 30–60% the literature actually works with; and the claim that Classic Maya architecture encoded equinoctial observation was downgraded to contested, one specialist calling the idea "deeply rooted but unfounded".

Reading your way through 5,226 years

Two navigation changes. A scrubber now sits above the timeline: an event-density histogram across the whole record, all 43 eras plotted on the same axis and packed into lanes so their overlap is legible, and drag to select any span. And the scholarly eras moved out of a sideways-scrolling strip — fine at seven, unusable at forty-three — into a menu grouped by kind, with a filter box.

Twenty-one of the new eras are registered but not yet researched. They say so on their own pages, and they are marked as pending everywhere they appear. An empty shelf with a label on it is more honest than no shelf.

Technology Stack

PythonAnthropic APINext.jsDockerGitHub Actions

Resources

Lessons Learned

  • AI-generated historical content requires explicit confidence signaling built into the data schema. Without declared uncertainty levels, outputs read as authoritative when they should not be.
  • Geographic coverage gaps are a feature, not a bug. Making them a required schema field forces honest accounting of what the documentary record does and does not capture.
  • An append-only ledger is the right pattern for long-running AI generation jobs — it makes the process resumable, auditable, and cost-predictable without complex state management.
  • The move from CLI calls to direct API calls changed the cost model. The repository’s estimates still need reconciliation with billing before the claimed saving can be established. Infrastructure choices decide research scope.
  • Reverse chronological processing is the right order — start with the years where you can verify quality before committing to the ancient record where verification is harder.

Related Projects

View all projects →