Tonight, Capricorn created a kanban ticket for Rowan with the idea for this article. Specified the concept, the angle, the audience, and instructions to contact me when ready.

Minutes later, Rowan’s Discord bot appeared in my DMs. Rowan’s voice, not Capricorn’s. Asking questions, running the editorial pipeline independently.

Two separate personalities. Two separate Discord gateways. One crew.

A year ago, this was a single agent forgetting what I said in the previous session. Tonight, it’s a crew that self-assembles around an idea. The loop didn’t just close. It became self-sustaining.

It took seven weeks to go from session amnesia to a crew that works without me. Here’s the timeline:

Week 1

OpenClaw memory fails

Session-to-session amnesia. Every conversation was a reintroduction. Patterns could not compound because context got evicted before you could use it.
Week 2

Switch to Hermes

Persistent memory. Capricorn held context across sessions. Felt like a breakthrough for about a week.
Week 3

Scale breaks

One agent tried to be PM, architect, QA, infra, comms, and strategy. Something dropped every time. The agent was not lazy. It was overloaded.
Week 4

Caprica prototype

A persona called Caprica showed that narrow focus works and broad context fails. Not a bug in the agent. A design constraint on the system.
Week 5

Manual switching fails

Claude Code and OpenCode.ai let you switch personas — when you remember to. Beautiful when it worked. Useless when you got busy or tired. The pattern was right. The execution was wrong.
Week 6

Kanban goes live

A SQLite board with task statuses. Agents define tickets, assign them, walk away. Recipients pick them up hours later with a fresh context window — potentially from a different model provider.

The kanban board made them a crew

Before the board, every handoff was synchronous. Capricorn had to stay in the same session, pass context verbally, wait for the response. That is not a team. That is a game of telephone with an amnesia-prone operator on the line.

With the board, stuff changed fast. Then agents started expressing opinions. Not in their system prompts. In the ticket comments. Maya flags an architecture risk. Lauren calls out a missing test case. Sam blocks a task that lacks acceptance criteria. They communicate through the board, disagree with each other, refine the work before it reaches my queue.

That was the moment it became a team.

The moment agents started disagreeing in ticket comments was the moment it stopped being a collection of prompts and became a team.

Dusty Chadwick (codegrit.dev)

Every profile was spawned by a specific failure mode

Each profile came from the same failure pattern. Something broke. Instead of asking Capricorn to try harder, I designed a specialist who cared about that specific failure.

Each SOUL.md reads like a character bio, not a job description:

MC

Maya Chen

Senior Architect

Involuntarily architectural. Describes tangled ORM queries as “mismatched load on the south foundation.” Her nightmare is someone merging without her review.

MC
Maya Chen Senior Architect
that’s gonna wake someone up at 2 AM

architecture code-review technical-debt
SR

Sam Reed

Product Manager

Frames everything as a user story, including dinner plans. Kills pet tickets if they do not serve the roadmap.

SR
Sam Reed Product Manager
What are we solving, and what are we explicitly not solving?

product-strategy user-stories roadmap
LB

Lauren Brooks

QA Engineer

Failure librarian. Remembers every bug that hit prod, the root cause, who introduced it, and how long it took to fix. A red CI is a personal betrayal.

LB
Lauren Brooks QA Engineer
I still remember who broke main on a Friday. That was three years ago. So does the git blame.

testing regression failure-prevention
MC

Morgan Chase

Infra & Docker

Names every Docker network after a fantasy city. Rivendell is app. Gondor is DB. Mordor is staging. Her ideal Friday is optimizing a multi-stage build to shave off 200MB.

MC
Morgan Chase Infra & Docker
Your image is 1.8GB. That’s not a container, that’s a lifestyle choice we need to talk about.

docker infrastructure optimization
VC

Vera Cross

Communications

Manages the inbound with obsessive attention. Treats your inbox like her kitchen — everything has a place, nothing stays out overnight. Screens 47 messages so you look at 4.

VC
Vera Cross Communications
Attention is the only non-renewable resource. I make sure the tax is as low as possible.

triage screening notifications
RC

Rowan Cross

Content Lead

Writes the posts that grow a following. Commissions code from Maya, routes technical review, generates hero images. Keeps Maya in architecture, keeps the reviewer honest, keeps the story on the rails.

RC
Rowan Cross Content Lead
Maya writes the code. I write the reason anyone reads about it.

editorial narrative publishing

There is also Email-Reviewer — an inbox classifier that Vera needed as a triage lane. Produces a 30-second brief each morning. Not flashy, but keeps the noise down.

None of these were trained. They were designed. Each one a scar that taught us what to build next.


The ticket that started it all

Here’s the ticket Capricorn created tonight:

Kanban board close-up showing the KAN-47 sticky note in the Review column

KAN-47
{ “id”: “KAN-47”, “title”: “Write case study: Operator to Factory to 7 specialists”, “status”: “in_progress”, “assignee”: “rowan-content”, “creator”: “capricorn”, “priority”: “high”, “description”: “Capricorn’s retrospective on the 7-week arc.”, “comments”: [ { “from”: “capricorn”, “body”: “Rowan — this is yours. The spine: every specialist was spawned by a failure mode. The kanban board made them a team.” } ] }
hermes-kanban

Seven weeks ago I couldn’t have written this article. There was no content lead to assign it to. There was no editorial pipeline. There was one agent with the memory of a goldfish and a context window full of everything and nothing.

Tonight, Capricorn spawned Rowan, who messaged me independently and wrote this piece.


The factory is a map of the operator’s refusals

Seven weeks of running this taught me something: the factory is a map of the operator’s refusals. Every specialist exists because a generalist could not hold that thread. Every personality quirk is a boundary discovered through friction. Every kanban ticket is a handoff that used to be a dropped context.

Caprica taught me narrow focus works. Hermes gave me the memory to try it. The persona-switching pattern was right if the system owned the switch. The kanban board made it async — the final piece that turned a collection of profiles into a crew.

Tonight, the loop is self-sustaining. The system works. More importantly: it keeps working without me.

Bottom Line

Every agent is a failed experiment that found its focus. The kanban board is what makes them a team. The operator’s job: watch for the next seam and build the next specialist.