Final plan · awaiting approval

OiMy Daily Rhythm Runtime

A family companion architecture for morning briefs, evening closeouts, proactive nudges, Journey/Agenda coordination, and privacy-safe household intelligence.

OiMy Daily Rhythm Runtime — Final Family Companion Plan

Executive summary

OiMy should not add another “daily” skill. The right design is a Rhythm Runtime inside Hermes / Skill Engine: a deterministic day-level compiler, nudge queue, and brief/closeout generator that coordinates existing skills and archetypes.

Families do not want 80 skills shouting independently. They want the household to feel less chaotic tomorrow morning.

The Rhythm Runtime should:

This is how OiMy absorbs askjo’s best pattern — daily rhythm — without turning the product into a noisy pile of proactive pings.

The core design decision

Do not build “Daily Rhythm” as a standalone engine or skill.

Build:

Hermes / Skill Engine
└── Rhythm Runtime
    ├── DailyState compiler
    ├── Opportunity detector
    ├── Nudge queue
    ├── Brief / closeout composer
    ├── Skill dispatcher
    └── Outcome recorder

Daily Rhythm is a product capability, but technically it should be a scheduled workflow layer inside the existing architecture.

Roles: Journey vs Agenda vs Rhythm vs Skills

Journey

Long-term arc over days/weeks/months.

Examples:

Journey answers:

> What direction is this family/person trying to move over time?

Journey influences Daily Rhythm by setting priorities and tone.

Agenda

Session-level plan.

Examples:

Agenda answers:

> What are we trying to accomplish in this conversation right now?

Agenda is launched only when the user engages or a complex interactive flow starts.

Rhythm Runtime

Day-level cadence.

Examples:

Rhythm answers:

> What should this person/family know, do, or be gently nudged about today?

Skills

Domain execution.

Examples:

Skills answer:

> How do we solve this specific domain problem?

Archetypes

Execution pattern.

The missing core object: DailyState

The Rhythm Runtime should be built around a typed state object, not vague “agent thinking.”

type DailyState = {
  date: string;
  timezone: string;
  householdId: string;
  memberId?: string;
  visibleScope: "private" | "shared_family" | "care_team";

  events: EventFact[];
  deadlines: DeadlineFact[];
  tasks: TaskFact[];
  openLoops: OpenLoopFact[];
  routines: RoutineFact[];
  meals: MealFact[];
  schoolItems: SchoolFact[];
  elderCareItems: CareFact[];
  risks: RiskFact[];
  opportunities: OpportunityFact[];

  nudgeBudget: NudgeBudget;
  suppressedCategories: string[];
  provenance: Provenance[];
  generatedAt: string;
  sourceFreshness: SourceFreshness[];
};

This is the key to reliability, token efficiency, testability, and privacy.

Household and member boundaries come first

Family rhythm is unsafe without clear household/member boundaries.

OiMy needs:

Memory layers

Private member memory
  - private emotional state
  - personal goals
  - private relationships
  - private preferences

Shared family memory
  - family routines
  - shared calendar items
  - household preferences
  - family food rules
  - logistics and open loops

Shared preferences
  - source
  - confidence
  - consent scope
  - last updated

No private fact should appear in a family brief unless explicitly shared.

Individual rhythm vs family rhythm

Individual rhythm

Private to one member.

Examples:

Family rhythm

Shared household operating layer.

Examples:

Signal sources and integration strategy

Calendar

Highest value. Needed for daily rhythm, family rundown, event prep, school logistics, vacation planning, elder care.

Recommended order:

Skylight repo review: it logs into Skylight API and generates `.ics`. Useful as an idea, but it asks for email/password and is unofficial. Treat as optional connector, not core.

Email

Needed for jo-like value, but riskier.

Recommended order:

Use Gemini/Gmail native summaries only when accessible through the user’s account or a supported API. Do not rely on scraping Gmail UI for core product behavior.

Browser and school portals

Use camofox/OpenClaw browser automation only for authorized workflows.

Best pilot:

Guardrails:

iOS app as local bridge

Rork/iOS can provide:

The app should send sanitized summaries, not raw dumps, unless user opts in.

Opportunity scoring

Every possible proactive output should be scored.

priority = urgency × importance × confidence × relevance × actionability
           - annoyance_cost
           - duplicate_penalty
           - privacy_risk_penalty

Each nudge candidate must include:

This prevents vibes-based proactive messaging.

Briefs vs notifications

These must be separate.

Brief

Bundled digest.

Examples:

Good for:

Notification

Interruptive timely alert.

Examples:

Good for:

Most things should be briefed, not pushed.

Jo features mapped to OiMy workflows

Overnight processing

OiMy: overnight `DailyState` compile + open-loop consolidation.

Archetypes:

Morning brief

OiMy: individual and family morning brief.

Archetypes:

School email summarization

OiMy: School Inbox workflow.

Archetypes:

End-of-day closeout

OiMy: evening closeout.

Archetypes:

Work/call prep

OiMy: appointment/meeting prep.

Archetypes:

Keep-in-touch nudges

OiMy: Relationship Pulse.

Archetypes:

Private by default.

Open tabs to plan

OiMy: authorized browser research workflow.

Archetypes:

Later phase.

Forms / medical bills / tax prep

OiMy: summarize and prepare, not execute.

Archetypes:

Relationship nudges

This is worth adding, but carefully.

Rules:

Example:

> “It’s been a while since you mentioned calling your sister. Want me to remind you this weekend, or skip this?”

How existing skills fit

Food Intelligence

Specialist skill. Daily Rhythm decides if food is relevant today.

Meal Planning

Specialist planner. Daily Rhythm invokes only when dinner/lunch planning is actually useful.

Daily Reflection

Specialist coach/reflection. Daily Rhythm uses it sparingly in evening closeout.

Habits / Routine Manager

Specialist routine logic. Daily Rhythm decides timing and suppresses spam.

Vacation Planner

Specialist trip planner. Daily Rhythm pulls trip dates/tasks into briefs.

Event Radar / Calendar

Signal source and event specialist. Daily Rhythm prioritizes outputs.

Elder Care / Medications

Specialist high-sensitivity workflows. Daily Rhythm surfaces only to allowed caregivers.

Token and reliability strategy

Do not call every skill every morning.

Pipeline:

This keeps cost and latency low.

Reflection and learning

People/family learning

Handled by:

Examples:

System learning

Handled by:

Examples:

Rhythm learning

Rhythm Runtime records outcomes:

Reflection QA uses that to improve rules, tests, and profiles.

MVP scope

Build Rhythm Runtime v0, not all Jo features.

Required v0

- memory/open loops

- food profile

- manual reminders/tasks

- iOS EventKit if Rork can provide it

- forwarded school/calendar text

Do not include in v0

MVP top workflows

- concise household day plan

- one proactive item max

- private priorities, habits, emotional tone, personal open loops

- done/open/carry-forward/tomorrow prep

- user forwards text/image/email

- OiMy extracts dates/actions

- no dinner plan + busy evening + known preferences

- opt-in, private, cadence-based

Testing plan

Synthetic families

Metrics

Go/no-go gates

Implementation phases

Phase 0 — schema and boundaries

Phase 1 — v0 rhythm

Phase 2 — calendar bridge

Phase 3 — school/email ingestion

Phase 4 — household coordination

Phase 5 — advanced anticipation

Final recommendation

Build Daily Rhythm as Rhythm Runtime inside Hermes / Skill Engine.

Not a standalone skill.

Not a god-engine.

Not a chatty proactive bot.

It should be a typed, testable, low-cost, privacy-aware day compiler that coordinates skills and archetypes.

This gives OiMy the best of askjo’s daily rhythm while preserving OiMy’s deeper advantages: family intelligence, private member spaces, elder care, food intelligence, deep profile, and skill-based execution.