Building & Shipping

Parked Is a Decision, Not Neglect

Brett Ridenour Brett Ridenour · Published September 2026

Six days ago I had sixteen partner briefs in the vault. Every OTA that matters to a tour booking system — Viator, GetYourGuide, FishingBooker, Expedia, Klook, Airbnb Experiences, Google Things to Do, a handful of ad platforms and self-serve connectors — each with its own file, its own outreach draft, its own next step. The whole thing generated overnight by five parallel Claude agents.

Sixteen open doors sounds like a strong week. It is actually a way to guarantee I finish nothing.

So this weekend I narrowed the desk. The integrations agent I ship every morning at 8:05 CT now shows me three partners in the daily board: Viator, FishingBooker, GetYourGuide. Nine other partners still exist in the tracker. The desk cannot see them.

The rule I wrote into the skill

The Freebo integrations agent runs off a skill file it reads every time it wakes up. I edited it on Saturday to say this out loud:

Brett runs one integration push at a time. Everything else is parked, and parked is a decision, not neglect: do not resurrect it, do not rank it, do not mention it unless he asks or a partner writes to us unprompted.

Parked is a decision, not neglect.

— freebo-integrations-desk SKILL.md

Every partner in the tracker now has a status field. The daily cron reads the tracker, filters, and writes to #freebo-integrations. The filter is one line:

if entry.status == "parked":
    continue

That is the whole enforcement mechanism. There is no willpower involved. There is no “check on Klook this week” nagging me from a corner of the vault. The nine parked partners are structurally invisible to the desk that would otherwise put them in front of me every morning.

What is in play, what is parked, what is queued

Three tiers, and the agent knows the difference:

WavePartnersStatusSurfaces in daily board
Wave 1 Viator, FishingBooker, GetYourGuide active Yes — full needs-Brett list
Wave 2 Zapier, ChatGPT connector, Claude connector gated Yes — one status line only
Parked Expedia, Klook, Airbnb Experiences, Google Things to Do, Apple Pay, Slack, Meta Ads, Google Ads, ChatGPT Ads parked No

Wave 1 is the only OTA push in play. All three went out on Saturday. If someone replies, the reply-watch cron catches it inside two hours and posts to the channel. If nothing happens, the daily board shows me exactly what nudge is due and when.

Wave 2 is genuinely queued behind a technical dependency. Zapier, the ChatGPT App Connector and the Claude Connector are all easier to ship once Freebo has a public API and MCP server. Both are scheduled: the spike is due September 22, the connectors themselves November 3. So the agent names them once a day, one line each, no imperative. Left alone, a due-date-far-away item would vanish from every list I look at for two months. Naming it every morning without demanding action was the small compromise that made “wait” survivable.

Parked is the interesting part. Those nine partners are not dead. They are not failed. They are choices about attention. Klook is a great platform. Airbnb Experiences would be a real growth channel. Google Things to Do is where the biggest volume lives. All of that is true, and none of it matters this month.

The integrations tracker YAML showing active, blocked, parked, and gated wave-2 partners

Why narrowing beat parallelizing

The overnight-briefs post from last week made a real point that I did not fully take my own advice on: you can generate sixteen research documents in sixteen minutes. You cannot ship sixteen integrations in a month, or three months. The bottleneck is not research and not draft emails. It is my calendar, and a partner’s calendar, and how long it takes to certify against a sandbox API you have never touched before.

The rule that made this real was writing it into the agent, not into a Notion doc. I have a lot of great decisions in Notion. Most of them are cheerfully ignored the next time I open my laptop. A rule that lives in the SKILL file the daily cron reads is a rule that runs at 8:05 tomorrow, and the day after, whether or not I remember to enforce it.

The other rule I had to write

There was one wrinkle. Two of the wave-1 partner emails bounced last week — 550 no such user on partnerships@fishingbooker.com and two GetYourGuide integrator addresses that no longer exist. A tracker without a rule for bounces just retries them. So the skill got a second block:

A Mail Delivery Subsystem bounce for a partner address
means our outreach reached nobody. Treat it as a
wave-1-priority event:

1. Name the dead address in the partner's notes and
   clear contact_email, so no future draft retries it.
2. Set status: blocked and re-point next_action at a
   door that exists — the web form, the self-serve
   portal, or a warm intro.
3. Say it plainly in the channel:
   "<partner> outreach did not deliver."

The tracker now knows three known-dead addresses by heart and will never draft to them again. Bounces are outreach failures, not infrastructure alerts.

The takeaway I keep learning

Every distribution strategy conversation starts with “which channels?” and ends with “all of them, eventually.” The interesting question is not which partners a solo founder should list. It is which partners the system in front of the founder is allowed to surface today. Sixteen briefs in a vault is not distribution. Three certifications in a live account is.

The mechanism is boring. status: parked in a YAML block, an if statement in a cron. The insight the mechanism protects is not boring, and I keep having to relearn it: attention is the resource that decides everything else, and if you do not spend it deliberately, an agent that wants to be helpful will spend it for you.

Sixteen doors are still open. Three of them are the ones I am walking through this month. The other nine are behind a rule that says they do not exist until I say they do.