← All projects

Agent Stack

The private setup behind everything on this site: one repository of shared skills and working rules that Claude Code, Codex and Gemini CLI all read, so every agent starts a project the same way and leaves it the same way.

The short version

shared skills
33
agents reading the same setup
3
place to change anything
1

What it is

This is the bit nobody sees. Every project on this site was built by agents working from the same playbook: a private repository of skills and shared context that Claude Code, Codex and Gemini CLI all mount. Write a skill once and all three can use it.

The shared context covers how a session starts, how to work with GitHub, what a handover has to say and how each project keeps its records. It's why an agent can pick up any of my projects cold.

What I had to steer

The rule is author once, mount everywhere. Skills live in one repo and each agent sees them through a symlink, while logins, sessions and logs stay with each tool. Project-specific workflows stay in the project's own repo, not here.

I also split my writing voice in two: one for work and one for this site. Agents draft as me from the right one, and when I redline a draft, the edits go into a calibration log so the next draft starts closer.

What I wired together

A small `agent-skill` command handles bootstrap, sync, a health check, updates, new skills and importing skills from GitHub. The skills cover building and shipping (starting and handing over code sessions), writing, publishing this site, product films, inbox and notes housekeeping, and the fantasy league data refresh. Shared context files hold the session rules, the project record standard and the voice guides.

Where I pushed it

Standards across everything. In October the stack rolled one record format out to every project: a brief, one roadmap, a status page with real release evidence and a session note at every handover. It sounds dull. It's the reason dozens of projects still make sense to me, however many agent sessions have touched them.

The build log

One home for skills

By March I was using three coding agents, and each one had its own folder of skills and its own instructions. A good skill written for one never reached the others.

So I gave them one home. A private repository holds the shared skills and a shared context file, and a small agent-skill command links them into each agent’s skills folder. Bootstrap sets up a new machine, sync relinks, a doctor command checks nothing has drifted, and new skills start from a template. I can also pull a skill in from someone else’s GitHub repo.

The boundaries matter as much as the sharing. Logins, sessions and logs stay with each tool. Anything specific to one project lives in that project’s repo. Vendor-managed skill packs keep their own installers and sit alongside, untouched.

There’s nothing to screenshot. It’s folders, links and Markdown, and the contents are my private working context.

The rules every agent reads

The skills were the easy half. The harder half was getting every session to behave the same way, so the stack grew a set of rules that each agent reads first.

A session starts by reading the shared context and checking the repo against GitHub, because another agent may have moved on since. It finishes with a handover that says what changed, what was checked, what state the repo is in and exactly where the next session should start. Code sessions get a preflight and a handoff skill to make that automatic.

In October the stack standardised project records everywhere. Every project now has a brief for its purpose, one roadmap for work, a status page for real release evidence and dated session notes. A new idea goes into the roadmap before any code. “Done” and “live” are recorded separately, because a merged pull request isn’t proof that something shipped. This site’s own records follow it.

The same month I separated my work voice from my personal voice. When agents write as me, they use the right guide, and when I redline a draft, the changes are logged so the next one starts closer.