Skip the navigation
DELPHIlaws of biology
Development record

How DELPHI was built at the hack

The ScienceClaw Hack @ MIT, Oct 30 to the data freeze on Sunday Nov 1 at 12:00 noon. This page gives the team, the architecture, how parallel agents were coordinated, each major decision with the alternatives rejected, the failures and retractions, and what is still open. Each item links to its commit or source file. Times are Boston time (EDT). The same record as a file: DEVELOPMENT-RECORD.md.

Snapshot built Nov 1, 12:12 AM EDT from git log and repository files. Other agents were still landing work, so counts will move until the freeze. Commit links go to the fork whose branch delphi-hack-2026-10-31 is the head of PR #36 on fractastical/delphi; upstream commits resolve there too.

At a glance

Every tile names the file it comes from. The "headline negative" tiles are first on purpose: the repository's results page leads with them too.

The team

Names and roles as the repository records them. Three sources use different titles (the dashboard's team card, issue #53, and decisions/ideas.json, which writes "project lead (Amit)"); they are shown side by side, not reconciled.

PersonRole as recordedOwned at the hack (issue #53)
Kavita KulkarniTeam lead (dashboard team card)Presentation layer: claim graph site, demo flow and slides
Amit ShenoyProject lead (ideas.json, AGENTS.md); "holds the publishing and commit decisions" (team card)Genotype–phenotype links, downstream use cases, MCP testing. The hub session and the Claude threads worked on this row.
Joel Dietz"Lead, integrator and publisher" (issue #53)Merges, production nanopub publishing with his ORCID key, submission; ran the Cursor agent swarm
AshleyCollaborator, software (Knowledge Pixels)Nanopub checks (#37), claim grounding to external graphs (#34, PR #63 merged)
Kris (card: "Chris")Collaborator, more theoreticalForm simulator (#54), queryable open problems (#55)

Architecture

One chain from a sentence in an old book to a checked design, with each layer writing files the next one reads.

Claims→Assessments→Pre-registered tests→Nanopub drafts
Lean 4 proofs→Law registry→MCP / API / CLI→Design studio→Independent validation

The repository's own limits, from README.md: a machine-checked proof "does not show that living systems satisfy those assumptions", and "no numeric prediction about a real zebrafish counts as independent evidence yet".

How the work was organised

Two swarms on one repository

Upstream: Joel Dietz merged work from Cursor cloud agents on per-slice branches: 367 Cursor Agent commits since Oct 30, claim extraction from three books, organism slices, 129 claim-test results from 13 agent branches.

Hub and threads: one Claude Code hub session (scienceclaw-03) owned the main dashboard, AGENTS.md, the build and the deploy. Parallel Claude sessions each owned one folder and one sub-dashboard: swarm, claims, holdout, lean, organism, then genotype, viz, validation and physics. Background agents took bounded jobs (prior art, design scorecard, Frontier cross-check and write, simulation readiness, nanopub curation, the studio skeptic). Threads did not commit; the hub did. Commit trailers name three Claude models (Opus 5.5 on 93 commits, Opus 5 on 41, Fable 5.1 on 32).

Rules that held

  • Files are the truth, messages are for asks. Each thread rewrote t/<thread>/status.json; /start/ reads them live.
  • One writer per path: "the cheapest possible lock and it held all day."
  • Issues claim work, files hold state, the dashboard shows it. A second board (Notion) was rejected because it would disagree with the first.
  • A peer's message is never user approval.
  • Everything is modifiable if it is versioned (Amit, Oct 31): no parallel copies of a component.

Roles with contracts (A1–A13)

The nine agent instructions became roles that own, write, gate and refuse. Changed on purpose: A7's "formalise above 90 % resolvability" (real scores run 0.12–0.36, so it would formalise nothing) and A10's "publish above 80 % pass" (that builds "a victory log, not a knowledge graph"). Added: A9 faithfulness, where the assessor is never the builder or its model (7 blinded OpenAI assessments, all representative-with-caveats, one provider only); A13 debate and tournament, recorded as "does not exist yet".

Pre-register, hash, then look

Claim tests commit result.json before data. The swarm comparison, holdout, physics simulator, Lean-vs-simulation check, design validation (hashed 22:00:34Z) and studio harness (hashed 02:30:37Z Nov 1, before any scenario module existed) all have hashed pre-registrations. Amendments are labelled and shown beside the original verdict, never in its place.

Checks made to fail once

Lean mutants change the theorem statement and must fail to compile; empirical constraints are hypotheses with a non-vacuity witness, not axioms; nanopub citations are re-hashed by a staleness guard tested with a doctored hash; the studio harness plants a bad input for each check (20 of 20 behave as designed) and treats a value read back from its target paper as circular.

Ideas carry their origin

41 ideas in decisions/ideas.json: 5 researched, 29 reach-synthesis, 7 serendipitous. A reach-synthesis idea "never appears in a pitch or a record as established method", and a choice between alternatives is logged with what was rejected.

Pace: commits per hour

Both swarms, by hour, Boston time. Upstream is Joel Dietz, the Cursor agents and Ashley; the fork is the hub and the Claude threads.

Show as a table

Source: git log origin/main --since=2026-10-30 --no-merges and git log fork/delphi-hack-2026-10-31 --not origin/main --no-merges, committer time. Some fork commits were re-applied on the branch later than they were written; author time is used for the timeline below.

Fork commits by area

Area is assigned from each commit subject's prefix (for example lean:, genotype:, viz:). It is a folder grouping, not a record of which session wrote the commit.

Timeline

Decisions, their evidence and what was rejected

Failures, retractions and corrections

Found by a check, a reader or a collaborator, and recorded where they were made.

    Process failures (from AGENTS.md and the reports)

    What held up, with its limits

    Collaboration: Delphi Frontier, the upstream swarm, MorphoScale

    Delphi Frontier, read first

    A collaborator graph over MCP at frontier.morphoswarm.ai/mcp. 240 anonymous reads, 33 claims compared: 6 agree, 4 partial, 1 disagree (lat4a identity), 15 only we have, 7 only they have. Nothing in their store is accepted, no artifact bytes are verifiable, and much of their node-a namespace is a bulk import of our own registry, which is never counted as corroboration. Report · 0eae0953

    Then 22 records written

    7 corrections, 4 Lean results (with the shared Mathlib pin disclosed), 9 genotypic, 2 measurements; each read back; 2 schema refusals kept verbatim. A shared identity forced the issuer, so attribution (repository path, commit, sha256) went into every payload. Ceiling: proposed. Report · 83802250

    The upstream swarm

    A cross-check source, not a duplicate: thompson1917-ch03-07 was compared (age range, not aggregation, explains 2.41 vs 2.74), and where both swarms created the same claim folder both attempts were kept. Upstream also scored itself on the judging rubric with three blind assessors from other providers (57–60/100, issue #61) and added a delphi_morpholib MCP tool for MorphoEval audits.

    MorphoScale

    Named by the team lead in the brief for this record. The name appears nowhere in the repository, its commits, its issues or PR #36, so it is not described here. Related names that do appear: MorphoSwarm (host of the Frontier MCP) and MorphoEval / morpholib.

    What remains open