Havenware

The approval queue

The approval queue is where the fleet's proposals meet your judgment. Human-in-the-loop only works if the human keeps reviewing, and a queue that wastes your attention trains you to rubber-stamp it. So the queue enforces a contract on every proposal an agent files.

The proposal contract

Every proposal must carry:

One decidable question. A single sentence, phrased as a question you can answer. If an agent cannot phrase its item as a question, the item is a report, and the queue rejects it. Reports do not get to demand your attention.

Why it matters. What the agent will do with each possible answer. A proposal with no consumer for the answer is rejected: if nothing changes based on what you say, you should not have been asked.

An expiry. Every proposal carries an expiry date. Event-bound proposals expire at their event; the rest default to a bounded horizon. An expired proposal executes nothing. The queue cannot silently accumulate obligations.

An ask type. Each proposal declares the kind of attention it costs: binary (a yes/no tap), pick-one (choose among options), review (read a work product and judge it), or read (absorb longer context before deciding). The queue schedules by ask type, so you can clear the quick decisions in a spare minute and sit down for the deep ones when you choose to.

An honest time estimate. Minutes, declared up front. A binary is a minute or two; reviewing a piece of work is twenty or more. Estimates are part of the contract because respecting your time is what keeps you reviewing.

Where a choice exists, proposals offer concrete options, and a zero-cost option (leave it, snooze) is expected. Saying no must always be cheap.

An example proposal

A proposal is a small structured object. A typical one, as filed by the outreach role:

{
  "id": 147,
  "agent": "outreach",
  "status": "open",
  "question": "Send the revised follow-up to the four leads who went quiet in June?",
  "why": "Approved: the drafts go out in the next send window. Declined: the leads are marked dormant and the sequence stops.",
  "ask_type": "binary",
  "estimate_minutes": 2,
  "expires_at": "2026-08-01"
}

Lifecycle

A proposal moves through four states: open (waiting for your decision) → answered (you decided) → processing (the agent is executing your decision) → processed (done, recorded in the audit trail). Every transition is timestamped and attributed.

Attached work

When the subject is producible, the agent produces it first and attaches it. The proposal is "review this draft", never "should I start?". You judge finished work, not intentions.

Continue with Audit trail for what gets recorded once a proposal executes.