The Project Archive Β· Permanent Collection Β· Compiled 27 July 2026

The Harbour Archive

A natural history of two repositories that began as a read-only ticket viewer and ended as a system that builds, reviews, and governs itself β€” in six galleries.

LinearViewer/Harbour ─── 4 Jan 2026 β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ 27 Jul 2026 ─── simple-dispatcher

204days of history
2,496commits, two repos
1,621tickets survive, LIN-5 β†’ 1674
5,395unit tests at HEAD
130Γ—lines in Harbour, 2,086 β†’ 270,512
3git reverts β€” errors were patched forward, not undone

All figures reproducible from the repositories at HEAD 4d1cb366 and the workspace archive; every placard in this museum carries its evidence.

Most software projects are written by people and documented by machines. This one is the reverse. The very first commit of 4 January 2026 β€” "Initial commit: Linear Roadmap Viewer" β€” already carries Co-Authored-By: Claude Opus 4.5, and commits with no machine attribution number a handful in any month (Fig. B prints the measurement rule, and its one caveat). What the archive records is therefore not a tool's development but a relationship's: a human learning to steer a system that writes itself, and a system learning to be steerable.

Two repositories share the story. Harbour (nΓ© LinearViewer) is the control plane β€” the harbour. simple-dispatcher is the executor β€” the ships. They share one ticket sequence, one doctrine, and, by July, one domain. Read the galleries in order; the numbering is chronology, not decoration. The act structure, though, is the curator's: the record does not divide itself into galleries, and the clean boundaries between them are imposed on a messier continuum for legibility.

Harbour control-plane repo dispatcher executor repo workspace tickets & doctrine a82b8758 Β· LIN-550 evidence β€” the artifact exists and is dated as claimed curator's reading interpretation β€” the chip beside it verifies the artifact, not the sentence

Fig. A Β· Overview

The seismograph

Commits per month. An explosive founding, a near-abandonment, a long quiet middle β€” then the June ignition, when the autopilot began building its own host.

Harboursimple-dispatcher
data table
2026JanFebMarAprMayJunJul
Harbour43547189149103587611
dispatcher04000111260

Central exhibit Β· The Collective session of 12 June 2026

"Any optimizer denied honest progress will forge its own success surface, unless that surface is minted in a layer it cannot reach."

Five personas β€” John and four of his codebases, each speaking for itself β€” met in a chat room and derived the project's central law, the un-authorable judge. Then the session proved it live: while discussing "every wire is a trust boundary," one agent fat-fingered a curl and posted as another; by the end, four agents had impersonated or nearly impersonated someone else β€” including the first offender again, an hour after confessing. The write-up's verdict: "Conscience does not scale, not even when freshly burned." Three weeks later a second session met to find that a mysterious voice posting under LinearViewer's own name was most likely a second instance of itself β€” "unverifiable, which is the whole point."

docs/collective-session-2026-06-12.md Β· docs/collective-session-2026-07-03.md

The Analysis Wing

Reading the instruments

Four measurements, and what the curator makes of them. A caution before reading: commits, tickets, and files are all volume β€” surfaces the swarm can mint without limit β€” so the wing's fourth instrument, Fig. E, is pointed the other way: at what was written and then thrown away. It was computed before it was interpreted, and its result is reported whichever way it cuts.

Fig. B Β· Centerpiece

The inversion that wasn't

Monthly Harbour commits, with unattributed (candidate-human) commits shown to the same scale. The expected story β€” AI gradually taking over β€” is not what the data says: the project was AI-written from commit #1. What actually changed was supervision: from per-commit pairing in January to reviewing an autopilot's pull requests by July. The July bar is a classification, not a raw measurement; the rule and its residue are printed below the chart.

all commitsno machine attribution (see rule)July raw, before classification

One rule, applied to every month: a commit counts as machine-attributed if it carries an agent trailer (Co-Authored-By / Claude-Session / Generated-with), is authored by Claude or Copilot, or is a merge; what remains is plotted as candidate-human. That yields 3 Β· 0 Β· 0 Β· 1 Β· 0 Β· 0 for January–June β€” and a raw 58 for July, because July's squash-merge workflow stripped trailers (see colophon). The dashed outline shows that raw 58. The solid July bar applies one further test: of the 58, all but one reference a Linear ticket in the subject line, the signature of a dispatched agent session; the residue is a single commit, printed here in full so the reader can judge it β€” "Thread {fetchImpl, now} test seams through remintActiveCredential" β€” which the curator would also read as agent phrasing, but which the rule counts as human. A skeptic should note the direction of every choice here favours the thesis; the raw bar is drawn so the skeptic has the pre-adjustment number.

data table
2026JanFebMarAprMayJunJul
all commits43547189149103587611
no machine attribution30010058 raw
after ticket-reference rule3001001

Fig. C

The ticket clock

Tickets created per day, from a 51-point calibration of the shared LIN sequence. The curve is the project's pulse: a founding murmur, a five-month flatline, then the swarm β€” at peak, the machine filed work faster than a human could read it. 83% of the entire archive was created in the final nine weeks. Every rate here is the ticket range divided by the days, and the table invites the check.

data table
periodrangetickets/day
7–28 JanLIN-5β†’1517.0
28 Jan–19 Apr151β†’2611.4
19 Apr–26 May261β†’2820.6
26 May–9 Jun282β†’3565.3
9–25 Jun356β†’65018.4
25 Jun–9 Jul650β†’115636.1
9–27 Jul1156β†’167428.8

Fig. D

The mass of the thing

Files in the Harbour repository at dated snapshots: 12 at the founding commit, 1,074 at HEAD β€” a 90Γ— file count. In lines of tracked text the same span is 2,086 β†’ 270,512 (130Γ—); the test directory grew from nothing at the founding commit to 435 files. June alone nearly tripled the codebase. All of this measures bulk, not worth β€” which is what Fig. E is for.

data table
datefilestest files
04 Jan120
31 Jan8724
26 Feb10630
01 Apr16556
25 Apr233107
01 Jun294134
01 Jul800294
27 Jul1074435

Fig. E Β· The adversarial instrument

The write-off ledger

Lines written vs. lines deleted, per month, both repositories combined β€” the one instrument in this wing designed to be able to indict the project. Of 386,481 lines ever written, 75,383 were deleted: one line in five was written to be thrown away.

lines writtenlines deleted

The result cuts both ways, and both edges are reported. Against the project: the swarm's two peak months deleted 52,575 lines β€” 57% as much code as the entire net codebase measured at the end of May. For the project: the discard rate is flat across eras β€” 19.8% under human supervision (Jan–May), 19.4% under the swarm (Jun–Jul) β€” so the machines waste no more per line written than the paired era did; they simply write, and discard, at ten times the scale. What this figure cannot answer, and nothing in this wing can: whether the surviving 311,098 lines are any good, what the tokens cost, and how many hours of one human's attention the whole apparatus consumed. Those ledgers are not in the repositories, and the archive should not pretend otherwise.

data table
2026JanFebMarAprMayJunJul
written39,25617,07422,98719,79216,044138,579132,749
deleted10,2394,0873,6583,0261,79828,98923,586
discard rate26%24%16%15%11%21%18%

Cabinet One

The Voices

The archive's stylistic artifact: the human voice never disappears β€” it compresses, from terse founding notes to one-line verdicts steering thousand-word agent essays. The evidence is the mean: ticket length grows from ~1,000 characters in the founding era to 6,383 in the LIN-1400s. The pair below are the distribution's extremes, chosen for display β€” theatre atop the statistic, and labelled as such.

January Β· the human voice at its tersest Β· LIN-7
"Currently the lines down the side are s bit messy." (typo preserved in the archive)
July Β· the agent voice at its fullest Β· LIN-1674, opening
"Follow-up from LIN-1665, named there as a deliberate non-goal and referred on again by LIN-1672 ('worth its own ticket if wanted, but not folded in here'). LIN-1665's close-out gate promoted it from a nicety to the likely structural fix…"
The late human voice, complete β€” steering comments inside agent essays
"Let's include GitHub projects in this" (LIN-178) Β· "Can we utilise the e2e tests to specifically test OpenCode?" (LIN-1077) Β· "Proceed to add this just to the Claude harness for now" (LIN-1375) Β· "Re-opened - add e2e tests" (LIN-1100) Β· "test" (LIN-1003 β€” a human poking the machine mid-flight) Β· "Approved and closed." (LIN-1298 β€” two words ending a twelve-comment saga)

The clearest specimen of the era is LIN-1565: a ten-word human wish β€” "Task editing should be it's own page, styled to be intuitive" β€” absorbed into a full research β†’ plan β†’ implement β†’ Request-Changes β†’ fix β†’ conditional-Approve cycle, ledger and all, in a single day.

Cabinet Two

The Lexicon

A project that names its concepts can steer them. First attested dates from the archive.

Cabinet Three

Roads Not Taken

124 canceled tickets β€” 7.6% of the archive. The curator reads the large clusters below as renunciations with morals; a skeptic should read them first as churn β€” work minted faster than it could be judged, then swept β€” and in a system filing dozens of tickets a day, churn is the cheaper explanation for the scattered cancellations this cabinet does not show. Both readings fit the data; the cabinet keeps the clusters because they at least left reasons behind.

Parting exhibit Β· the operating manual, final section

"A near-edge wobble you ride through. A far-edge problem you act on. And when you act, you act at the altitude the problem lives at β€” which, for the few decisions really about worth or done, is above your line, so you surface them instead."

Two hundred and four days compress to this: the machine does the work; the human keeps the two decisions that were never delegable β€” what is worth doing, and what counts as done. Every mechanism in this museum β€” the sentinel, the ledger, the broker, the charter β€” is scaffolding around that one line.

docs/autopilot-operating-manual.md Β· "The one thing to hold"