Yesterday I removed the last write tool from every AI agent in my system. Not one agent can edit a file anymore. Not the CFO agent, not the chief of staff, not the business coach.

Every change they want to make now arrives as a card. I read it. I accept it, or I don't. Only then does anything touch my files.

It sounds like a step backwards. It's the best change I've made to the system this year.

The setup

I run my business and most of my life on a markdown vault: clients, tasks, decisions, a journal. On top of it sit nine AI agents, each with a lane. They read the vault, answer my questions, plan my week and propose next steps.

For months, some of them could write. A conversation with the right agent could add a task, update a client file or edit a note. Fast. Convenient. And a quiet source of drift.

Before

Agents with a pen

  • An edit happens in the middle of a conversation, and I find it days later
  • A wrong guess lands in a file that every other agent then reads as fact
  • Cleaning up means hunting through git history

After

Agents with a proposal

  • Every change is a card I can read before it exists
  • A wrong guess dies as a dismissed card, not as a bad fact
  • Accepting a card writes and commits exactly the files it names

What a card looks like

A card is small on purpose: one task, one note, one field on a client file. It says what it will write and why, and it links the files it is based on.

What a day with cards looks like
  • MeThe contract ends in December and there's no plan for next year. What do I do this week?
  • AgentTwo moves. First, ask for the renewal conversation before the end of the month. I've drafted it as a task card, due Friday, linked to the client file.
  • MeAccept the task. Skip the second one, I'm already on it.
  • AgentFiled. The second card is marked as declined, so I won't suggest it again this quarter.

Notice the last line. That one took me the longest to get right.

The "no" that wouldn't stick

Every morning my system writes me a brief: the one move that matters today. For a long time, dismissing a suggestion only hid it on screen. Reload the app and the decision was gone, because nothing in the vault recorded that I had said no.

0

consecutive days one dismissed suggestion came back in my morning brief

every check green the whole time

Fifty-four mornings. The same proposal, with no task behind it, and every automated check passing, because none of them measured whether my answers were remembered.

How a proposal travels

From an agent's idea to a file on disk
  1. 1Agent proposes a card
  2. 2Code checks it
  3. 3It waits in one queue
  4. 4I accept or decline
  5. 5Exactly those files change
  1. 1The agent proposesInside the conversation, as a structured card, not as prose. It can check the card against the same validator the app uses, so a broken link is fixed before I ever see it.
  2. 2Code checks it againThe app re-validates every card against the live vault. A card that points at a file that doesn't exist never reaches me.
  3. 3One queueTasks, notes, client fields, decisions: every proposal from every agent lands in the same inbox, on my laptop and on my phone.
  4. 4I decideAccept writes the change and commits only those files. Decline records why, so the same idea doesn't come back tomorrow.

What it cost

  • Speed: almost nothing. Accepting a card is one click.
  • Code: one writer for every kind of card, instead of a write path per agent. Less code, not more.
  • Trust: this is the gain. I read my vault as the truth again, because I know how every line got there.

An AI that can't write can still do almost all the work. It just can't do it behind your back.

What I'd tell any team adding agents to a product

If you're adding AI agents to an app, start here: let them read everything they need, and let them propose anything they like. Keep the pen.

Building with AI?Let's talk about your appBook a free intro call