Montreal, QC·lukesidney.me·Fresh 2 · DenoNo cookies · No forms
Plate01

Front page.What it is

Live

The agentic operating system

The system I use to run a one-person software business. Agents do much of the work, and a test decides what merges.

Private. Every other page in this portfolio was built with it and runs on it.

Riso illustration: one chair at a wide desk, an index-card cabinet, small robot arms on separate benches joined by one pipe to a single tank, and a traffic light on the wall.
Plate02

Set in type.The stack

What it runs on

Four layers: a memory, a build loop, the business apps, and the agents that run inside them.

Memory

  • Markdown vault1,641 pages, versioned in git
  • 35 skillsprocedures agents follow
  • 72 scripts + timersdigest, keyword harvest, knowledge sync

Build

  • Archon0.10runs coding agents in loops
  • Claude Codethe agent at the keyboard
  • Worktreesa second checkout per feature

Apps

  • Bun monorepo6 apps, 31 shared packages
  • Next.js16.2
  • React19.2
  • Payload3.82one CMS for every site

Runtime

  • AI SDK7.0
  • Eve0.398 sub-agents that draft
  • Trigger.dev4.5background jobs

Data + watch

  • Neon Postgresone database, a schema per service
  • Cloudflare R2files
  • Upstashqueues and limits
  • Langfuse5.4traces over OpenTelemetry
Plate03

On the press.How it works

5 steps, in order

How a feature goes from an idea to production without me typing the code.

  1. Write it down first

    Work starts as a vault page: a brief, then an architecture, then a feature list.

  2. Turn it into a spec

    An interview turns a feature into a PRP: a spec an agent can build from.

  3. Build in a worktree

    Archon runs coding agents in a second checkout of the repo, one round after another.

  4. Only the gate ends the loop

    validate.sh must exit 0. Up to eight rounds. No AI step can end the loop by saying it is done.

  5. Land it, then run it

    The work merges to main. At runtime, agents draft and I approve in an inbox.

Plate04

Pulled proof.The code

The gate no agent can argue with

~/.archon/workflows/prp-piv.yaml · lines 180–192real source
code=$? echo "$code" > "$ARTIFACTS_DIR/.validate-exit" echo "validate.sh exit_code=$code" echo "--- last 150 lines of validation.log ---" tail -n 150 "$log" if [ "$code" -eq 0 ]; then echo "<promise>GREEN</promise>" fi exit 0until: GREENuntil_bash: 'test "$(cat "$ARTIFACTS_DIR/.validate-exit" 2>/dev/null)" = "0"'max_iterations: 8fresh_context: true

The loop ends when a shell test reads exit code 0 from a file. The agent's opinion of its own work is not an input.

Plate05

The reel.The walkthrough

Watch it run

Software demo coming soonAbout 3 minutes, screen only: a feature from vault page to PRP to an Archon run going red then green, then landing.
Plate06

Corrections.What it fixes

The problems it solves

  • Nine apps, nine databases, nine logins.

    Six apps on one database and one sign-in.

  • Agents that say “done” when they are not.

    A shell test decides. No AI step can end the loop.

  • Knowledge lost in chat history.

    Versioned markdown every agent reads and writes.

  • Agents that publish on their own.

    Drafts only; I approve in an inbox.

  • AI bills with no ceiling.

    A fixed monthly budget for the runtime agents.

Plate07

Editor's letter.Why I built it

Why it exists

One person, one company, three lines of work. The system is not one of them; it is what operates all three.

It began with a gap in my own business: the one piece of software that turned work into invoiced revenue was pointed at the wrong industry. Now the specs are how the system builds itself.

Riso illustration: one person at the centre of three lines of work, run by one machine.
Plate08

Against the rack.Better than average

Against the usual tools

Against Devin and Cursor's cloud agents, and Zapier or n8n as glue. Their side was read from each vendor's own docs on 2026-09-27.

WhatThe market averageThis app
Who decides it is doneThe agent tests its own work, then opens a pull request.A test script outside the agent must exit 0.vendor's page
DataEach app keeps its own data; triggers copy it between them.One database, one schema per service.vendor's page
MemoryRule files and saved notes, scoped to one repo or organisation.One versioned vault of 1,641 pages across all the work.vendor's page
ApprovalApproval steps exist, but you add them per workflow.Drafts by default; a person approves in an inbox.vendor's page
Plate09

The imprint.How long it took

894 commits in 297 days

commits
894
days with a commit
71
days, first commit to today
297
2025-12-05commits per week · busiest: 1602026-09-27
  1. First commit, now the booking app
  2. The monorepo is born; the apps move in with their history
  3. Latest commit. The vault adds 971 commits over 55 days.

Measured: git log across the monorepo, my own commits only, 2026-09-27. 646 imported template commits are excluded.

Plate10

Colophon.Where it sits in the ledger