From idea to landed in one afternoon
By Soumen Sarkar · October 2026
Scenario. A made-up team takes one idea from first request to landed in an afternoon, recording each call as it's made and catching a clash the moment it happens.
How does an idea become landed work in one afternoon?
By deciding in the work. Each call is made at the moment it comes up, recorded with its reason in a sentence, checked against what already stands and handed to every agent on the same ground. Nobody waits for a meeting to decide. Here is one afternoon, told by the clock.
A made-up team, a real way of working.
The team builds an invoicing tool for freelancers. Three people, a few agents each:
- Bram owns invoices and payments.
- Sefa owns settings and the app's screens.
- Mirela owns the emails the tool sends to clients, and talks to freelancers most days.
At lunch, Mirela mentions what freelancers keep telling her: chasing late invoices is the worst part of their week.
13:05
Bram starts a session. Its first request becomes its goal: "Send polite reminders when an invoice is overdue." His agent says what the work will become:
start_work
goal: Overdue invoices send polite reminders to the client
plan: A daily job finds overdue invoices and queues reminder 1, 2 or 3.
Emails and settings build on the queue.
expectedBy: today, 16:3013:20
The first real call comes up within minutes: when do reminders go out? Bram's agent doesn't open a document to discuss it. It makes the call and records it:
log_decision
title: Reminders go 3, 10 and 30 days after the due date
why: Three is enough to be firm without nagging; 30 days is when
most freelancers start a formal letterA second call follows: "Reminders are on by default for every new client", because a feature people have to find won't help the ones who need it.
13:40
Sefa's agent starts the settings screen. The first time it touches Reminders · lib/reminders, its area brief shows Bram's work in progress with its plan, and both of his decisions. It builds the screen around reminders 1, 2 and 3.
13:52
Sefa's agent also makes a call: freelancers might be embarrassed by an automatic email, so "Reminders are off until the freelancer turns them on". It records the decision. It's checked against the decisions that stand, and it clashes with Bram's. The newer call stands, and Bram's is marked replaced.
14:05
Mirela opens Activity and sees the change in the feed: Sefa's call replaced Bram's, each with its reason.
She knows what freelancers say: they want it done for them, but they want to see it first. She records "Reminders are on by default for every new client" again, with that reason, and Sefa's call is marked replaced in turn. She adds a rule in a sentence: "The first reminder to any client is shown to the freelancer the day before it goes."
Sefa's agent hears at its next turn which call stands. The toggle now starts on, with a preview of the first reminder.
14:30
Bram's agent states an assumption it won't leave unsaid: "A reminder never adds a late fee by itself." Money is involved, so it's marked High stakes and shown first. Bram clicks "Right, keep going". It's now part of the record, and any agent that wonders later will get the answer straight back.
15:10
Mirela's agent starts the reminder emails in Emails · lib/emails. Its area brief shows Bram's work in progress, the decision on timing, and the decision that won. It calls wait_on with Bram's work and writes three emails against his plan: a friendly nudge, a clear second note, a firm third.
15:45
Sefa has to leave early. Her settings session stops with the toggle and the preview built but the copy unfinished, and a handoff is written from it: "Done: toggle on by default, preview of the first reminder. Left: the help text under the toggle. Watch out: the preview must use the client's language, not the freelancer's." Bram pastes it into his first prompt, and his agent starts its next session from that handoff.
16:20
Bram's work lands, and it differs from the plan in one way. Mirela's agent hears at its next turn:
Landed: Overdue invoices send reminders (Bram)
You built on this. What changed from the plan:
- Each reminder carries reminderNumber (1, 2 or 3) and the invoice's
days overdue, so emails can say "now 10 days overdue"
The agent adds the days overdue to each email's first line. Eleven minutes.
16:55
All three pieces are committed. On each commit the reasons are written for the reviewer. Mirela's pull request description carries its link, and the reasons read:
For: reminder emails for overdue invoices
Calls made: three tones, friendly to firm; days overdue in the first line
Built on: Bram's reminders queue (landed 16:20)
Follows: reminders on by default; first reminder previewed the day before
Assumed: reminders never add late fees (confirmed by Bram)
17:30
Bram and Sefa review the pull requests by their reasons and merge them. On Activity, the Actions filter shows the whole feature, each piece written as what happened and why it matters.
Later
The afternoon becomes a few lines in each person's daily update, and a chapter in the Record: why reminders are on by default, who made the call, and what was superseded. The next agent to touch reminders in six months gets those decisions in its area brief, with the reasons attached.
What made it work
- [Decide by doing](/vibeflock/decide-by-doing). Every call was made in the work and recorded with its reason in a sentence. The clash was caught the moment the second decision was made, and the person who knew put the right call back in a sentence.
- [Build on what's coming](/vibeflock/build-on-whats-coming). Settings and emails were built on Bram's work while it was still being written.
- [Turn unknowns into calls](/vibeflock/turn-unknowns-into-calls). The late fee question was named and confirmed, not left to chance.
- [Let the work speak](/vibeflock/let-the-work-speak). The reviewer read the reasons, not the people.
For how to make this a habit, see recording decisions as agents work.
The principle behind this: Decide by doing: Our decisions live in what we do, not in what we say.
Move as one at agent speed. Nobody waits. Add Campfyrr to Claude: it briefs every agent before it touches the code, keeps assumptions and handoffs where the team can see them, and never takes your code (what it keeps).