← writing

One directory is the task manager my agents share

When you run agents across many projects, findings stop respecting project boundaries almost immediately. A session working on one tool discovers a bug in another. A review in one repo produces work for three. My first instinct was the obvious one, let the session go fix it over there. That instinct is how two agents end up editing the same tree, and after auditing a few collisions I banned it. A session’s only sanctioned write into another project is a queue entry.

The queue is embarrassingly low-tech, one directory per target, one markdown file per task, a status line in the front matter. pending, taken, done, dropped. No database, no board, no integration. Files stay put forever as history, and the receiving project’s next session gets offered its pending entries automatically when it starts, take, defer, or drop, and the answer is written into the entry so nothing ever asks twice.

What makes it work is not the format though, it’s three authoring rules that came from watching it fail.

Every entry carries an acceptance test. The body is written so the receiving session needs nothing else, the ask, the context links, and how to know it’s done. Entries that skipped this read like riddles a week later, and riddles get dropped.

Done requires evidence. One pasted line showing the acceptance test passing. An assertion without evidence is not done, it’s a hope with a status field. This rule came directly from catching claims of finished work that a thirty-second check would have disproven.

And absence claims name what was checked. An entry once justified itself with “no record says this value is deliberate” while the record said exactly that, one file over. I ruled on a false premise that day. Since then, “nothing documents X” is only writable alongside the list of places you looked.

There is also a small vocabulary for time and urgency, a snooze field that hides an entry until a date, hard-capped at a week because my setup changes too fast for longer parking, and a risk severity that ignores snoozing entirely and resurfaces every session until someone deals with it.

The part I like most, the same queue serves humans and machines. My nightly automation drains the same entries my interactive sessions do, skips the ones marked as needing me, and flips the same statuses with the same evidence rule. One protocol, no translation layer. For coordination between agents, I keep finding that a directory of honest text files beats anything cleverer I ‘ve tried.