Skip to content

Add life-admin-tracker: voice renewals and expiry tracking with proactive nudges - #359

Open
hassan1731996 wants to merge 1 commit into
openhome-dev:devfrom
hassan1731996:feature/life-admin-tracker
Open

Add life-admin-tracker: voice renewals and expiry tracking with proactive nudges#359
hassan1731996 wants to merge 1 commit into
openhome-dev:devfrom
hassan1731996:feature/life-admin-tracker

Conversation

@hassan1731996

Copy link
Copy Markdown
Contributor

What This Does

A persistent voice assistant that tracks everything with an expiry date — passports, MOT, car insurance, subscriptions, warranties, boiler services — and automatically reminds you before they're due. Log once by voice, never forget a renewal again.

Why This Is Different from Alexa

Feature Alexa Life Admin Tracker
Remembers renewals across sessions No Yes — permanently
Proactive expiry alerts No Yes — automatic
Natural date input ("next March") No Yes — LLM extraction
Grouped urgency alerts No Yes
Subscription cost intelligence No Yes
Renewal chaining (auto-asks next date) No Yes
Multiple urgencies in one message No Yes

Key UX Decisions

  • ADD is 3 exchanges max — item name → date → confirmation. If item + date in trigger, single exchange.
  • CHECK is instant — no questions, groups by urgency tier, speaks most critical first.
  • RENEW chains — marks done, immediately asks for next date, resets nudge cycle.
  • COST gives monthly + annual subscription totals across all tracked subscriptions.

Background Daemon

Runs hourly. Nudge schedule per item:

  • 90 days out: first heads-up (fires once)
  • 30 days out: second alert (fires once)
  • ≤ 7 days: daily until renewed
  • Multiple urgencies batched into a single spoken message

SDK Patterns

  • Storage: create_key first with success check, fallback update_key
  • Exit detection: whole-word token set intersection (not substring match)
  • Daemon call(): background_daemon_mode set before CapabilityWorker
  • resume_normal_flow() in finally block and at top of watch_loop()
  • Outer while True loop with user_response() for multi-turn sessions
  • Stale trigger echo filter in outer loop

@hassan1731996
hassan1731996 requested review from a team as code owners August 2, 2026 13:38
@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

🔀 Branch Merge Check

PR direction: feature/life-admin-trackerdev

Passedfeature/life-admin-trackerdev is a valid merge direction

@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

✅ Community PR Path Check — Passed

All changed files are inside the community/ folder. Looks good!

@github-actions github-actions Bot added ci-cd CI/CD and automation community-ability Community-contributed ability official-ability Official ability maintained by OpenHome documentation Documentation improvements templates Starter templates labels Aug 2, 2026
…king with proactive daemon nudges

- Tracks passports, MOT, insurance, subscriptions, warranties by voice
- LLM extracts dates from natural speech (next March, in 3 years, etc.)
- ADD flow: 3 exchanges max; single-exchange if item+date in trigger
- CHECK groups items by urgency (urgent/soon/upcoming) spoken in priority order
- RENEW chains automatically: marks done, asks for next date, resets nudge cycle
- COST intent: subscription spend summary with monthly and annual totals
- Background daemon: hourly check, nudges at 90/30/7-day thresholds (each once), daily inside 7-day window
- Multiple urgencies batched into one spoken message
- Outer while loop with user_response() for multi-turn sessions
@hassan1731996
hassan1731996 force-pushed the feature/life-admin-tracker branch from e9c651e to a16b65a Compare August 2, 2026 13:49
@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

✅ Ability Validation Passed

📋 Validating: community/life-admin-tracker
  ✅ All checks passed!

@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

🔍 Lint Results

__init__.py — Empty as expected

Files linted: community/life-admin-tracker/background.py community/life-admin-tracker/main.py

✅ Flake8 — Passed

✅ All checks passed!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-cd CI/CD and automation community-ability Community-contributed ability documentation Documentation improvements official-ability Official ability maintained by OpenHome templates Starter templates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant