Skip to main content
Most agents re-derive their worldview every morning and hand you a fresh, amnesiac report. A real co-founder remembers: what we tried last sprint, what you said you’d do, what I keep suggesting that you keep skipping. This capability turns a stream of disconnected briefings into one ongoing conversation — and makes accountability run both ways.

What it does

1. Briefing continuity

Every run injects your previous briefing plus what you actually did since (which proposed actions you applied, approved, or rejected). The briefing opens by closing the loop:
“Yesterday I asked you to update the subtitle — done ✅. The es-MX localization is still open ⏰.”
The agent never re-asks for something you already did.

2. Running narrative (open bets)

Instead of a flat list, the agent weaves the decision log, open hypotheses, and running experiments into a story:
“Last sprint we bet on es-MX → +8% MX conversion → so this week let’s replicate for pt-BR.”
It references what was already tried and its result before proposing the next move.

3. Commitment tracking (things you promised)

When you tell the co-founder in chat that you’ll do something — “I’ll ship the paywall test this week”, “I’ll reply to the 1-star reviews tomorrow” — it captures it as a commitment with a deadline (resolving “this week”/“Friday”/“tomorrow” to a real date). The next briefings follow up on open and overdue commitments under a 🤝 You said you'd line, and it marks them done when you say so. These are your promises, tracked separately from actions the agent proposed. Managed via the Commitments API and captured automatically from chat.

4. Two-way accountability auto-close

The ”⏰ Still waiting on you” list shouldn’t nag about work you already finished elsewhere. Before each run, a conservative reconciler auto-closes pending user tasks the external world shows are done:
  • A pending asc_review_reply whose target review now has a developer response (you answered it yourself) is superseded — it drops off the waiting list instead of nagging forever.
This is deliberately narrow: a false “done” is worse than a nag, so only unambiguous signals close a task. Fuzzy signals (e.g. “some metadata changed since we proposed this”) are not auto-closed.

5. Meta-awareness (recurring resistance)

Recommendations you keep declining are surfaced from ignored recommendations as a dedicated context block. Instead of pitching the same thing a 4th time, the agent shows self-awareness:
“This is the 3rd time I’ve flagged X and you’ve passed — so either it’s not a fit, or we try a different angle: …”

How it plugs in

All of the above lives in the reasoner/persona and the chat flow — no new external integrations:
  1. Reasoner context — previous briefing + interim activity, open commitments, and recurring resistance are injected alongside goals, memory, hypotheses, and experiments.
  2. Persona — a “Continuity & accountability” directive tells the agent to open by closing the loop, narrate open bets, follow up on commitments, and show meta-awareness.
  3. Chat — the record_commitment / resolve_commitment tools let the agent capture and close your promises mid-conversation.
  4. Run pipeline — the accountability reconciler runs at the top of every per-app run, before the collector loads the stale/pending set.

Where you see it

  • Briefings — loop-closing intro, running narrative, 🤝 You said you'd follow-ups, and meta-aware phrasing on repeated skips.
  • Chat — say you’ll do something and the agent quietly remembers (“Got it — I’ll check in Friday.”).
  • Commitments API — list/create/update your tracked promises.

Notes & edge cases

  • Best-effort. Continuity/commitment/reconcile failures never break a briefing — they degrade to the previous behavior silently.
  • Commitments are yours. Only your promises are recorded — never work the agent will do.
  • Conservative auto-close. Only high-confidence external completion (an answered review) supersedes a task; everything else is left for you to resolve.
  • No history? With no previous briefing, no commitments, and no resistance, context is unchanged — a fresh account behaves exactly as before.