Orchestration: Pre-Event Prep
Phase 10 Step 3 introduces the first orchestration workflow: pre-event prep proposals. This is a bounded, explainable workflow that watches your connected calendar and nudges you toward preparation when an event is approaching.
What it does
Every 30 minutes, HoneyDone scans your calendar for events starting in the next 24 hours. For each event, it checks whether any of your household's routines could apply. If at least one routine matches, HoneyDone creates a pre-event prep proposal on your Proposals page with a checklist of the routine's steps as task drafts.
How routines are matched
The matcher is deterministic — it never calls an AI model — so its decisions are always explainable:
- On-demand routines (those with
scheduleType = "on_demand") always match. - A routine matches if any of its domain tags (e.g.
dentist,yard,school) appears in the event title. - A routine matches if any ≥4-character word in its name appears in the event title.
If no routines match, no proposal is generated.
Explainability — every source is cited
Every pre-event prep proposal is backed by at least one source_links row. If the orchestration service cannot find any sources at write time, the entire proposal is rolled back — there is no such thing as an un-cited orchestration output.
The proposal detail page shows:
- Why this was suggested — one rationale line per contributing input (calendar event, each matched routine, each recent home signal).
- Sources used — provenance badges linking back to the calendar event, routine(s), and any home signals observed in the last 3 hours that contributed context.
What you can do with the proposal
The proposal appears in your /proposals page just like any other. You can:
- Review the rationale and sources.
- Accept or reject the proposal using the existing proposal actions.
- View the proposed task drafts as a checklist.
Accepted items flow through the normal proposal-acceptance path — orchestration does not invent new accept/reject plumbing.
Confidence scoring
Each proposal carries a confidence score starting at 0.5 and adding 0.1 per matched routine, capped at 0.95. This is surfaced in the workflow detail panel as a percentage.
Why this is safe
- Bounded — the workflow only creates proposals. It never modifies tasks, completes work, or silently changes your calendar.
- Explainable — every proposal has runtime-enforced provenance via
source_links. - Reuses existing infrastructure — no new tables, no parallel accept/reject path, no new UI surface.
- Deterministic — routine matching uses a documented text-match rule, not an LLM, so you can reason about why a proposal appeared.