Skip to content

How this site was built

One person directing Claude Code: contracts first, then agents in parallel, then gates.

This is the thesis, applied to the site you're reading. I wrote the brief and made the decisions. A lead Claude Code session settled the contracts: a conventions file, a frozen content schema and a fact ledger. Agents built everything else, each in a directory it owned.

The lead reviewed and committed every agent's work, one commit per agent.

Components
68
Stories
256
Tests
104
Sourced facts
86
Images
86

Read from the repository when this page was built.

The phases

  1. Phase 0The lead: Claude Code, directed by me, in sequence

    Foundation

    Scaffold, then design tokens. An identity checkpoint, where I chose one of three candidate skins from screenshots. Then the frozen content schema, the fact ledger and the conventions file.

  2. Phase 1Four agents and the lead, in parallel

    Parts

    • Primitives and icons.
    • All of the copy.
    • The image pipeline.
    • Storybook foundations and the gates.
    • The lead: the hero's reactive bolt field.
  3. Phase 2Two agents and the lead, in parallel

    Assembly

    • Patterns.
    • Layout chrome.
    • The lead: the sitemap, a plain-text version of the site for models, and build-time counts.
  4. Phase 3One agent

    Pages

    Routes and whole-page stories.

  5. Phase 4Three review agents, then the lead

    Review

    One review each for voice and facts, for accessibility and responsive design, and for code. Then the fixes and the final gates, by the lead.

Fig. 1A plan and a set of contracts first. Then agents in parallel, on directories that don't overlap. Then gates.

The gates

  • Story coverage

    Every exported component has stories beside it. A missing story fails the check.

  • Accessibility

    axe runs on every story and every route.

  • Visual baselines

    Stories and pages are screenshotted and compared against a stored baseline.

  • The fact ledger

    Every number, date, title and employer in the copy must match a ledger entry with a source. A figure with no source fails the test.

  • Token contrast

    A test checks the contrast of the color tokens in both themes.

  • Typecheck and lint

    Strict TypeScript and Biome, clean before any agent reports done.

What stayed with me: the brief, the decisions (scope, which projects, the look, what could be said about Reddit), the choice of skin, and approval.

The design system is documented in a public Storybook. When the model improves, none of the above changes and the output gets better. That is the argument for building the harness.

  1. This site

    Personal · 2026

    A portfolio built by one person directing Claude Code agents, with the plan, the rules and the gates left on show.

    Proves: The harness, applied to itself