name: today description: Cross-domain daily briefing. Surfaces deadlines, milestones, active priorities, and action items from every domain. Resilient to irregular use — works whether you check daily or after a two-week gap. Use when user says "/today", "briefing", "catch me up", "what's happening", or similar. argument-hint: [--deep] [--timeline] [--domain=baby|finances|career|...] [--update-rsu]
Discover, don't enumerate — a hard-coded domain list silently goes stale:
find . -name context.md -not -path './.git/*' | sort
Read every file returned, plus these, all in parallel (they're small):
decisions.md(root) — review datesprotocols/key-dates.md— the dated-commitments registry (renewals, expiries, immunisations, fixed deadlines). This is the primary date source; context files add colour and anything not yet registered.finances/reference.md— RSU vesting schedule (step 2b)home/house/reference.md— waste collection schedulehome/garden/CLAUDE.md— seasonal calendar (step 2c)- Any
reference.mda context file cites for a date-bearing item
Performance: I/O-bound, not research-heavy — no subagent fan-out needed. Issue all reads together, and when steps 2b/2c will run, kick off their bash fetches (finances.tools.market_data, home.garden.tools.weather) in the same batch.
--domain flag: still read root context.md (personal dates) but report only on that domain.
2. Calculate Temporal Context
- Leo's age from April 2, 2026 (header format below) + next milestone/vaccination from key-dates +
baby/context.md - Financial: days to tax year end (Apr 5); ISA deadline if <60 days; payments due within 14 days
- Career: paternity leave days remaining (ends Aug 1, 2026). Suppress career prompts until July 1, 2026 (user instruction —
career/context.md) - Bin day (
home/house/reference.md): collection Wednesday, bins out Tuesday evening. Even ISO week = recycling + garden; odd = general; food weekly. Tuesday → first "This Week" item ("put bins out tonight — {type}"); Monday → heads-up. Bank holidays shift the week one day.
2b. RSU Values (conditional)
Follow finances/tools/rsu-update.md — run only if the stored price is >7 days old or --update-rsu was passed; otherwise show cached values with their as-of date. Always include the META/RSU line in Quick Stats. Never block the briefing on a failed fetch.
2c. Garden Care (seasonal)
- Weather:
python3 -m home.garden.tools.weather --json→ past-7-days rain/deficit, 3-day forecast rain, hot/frost days, and awatering.recommendation(water|check|skip) with reason. If the tool fails, follow the cross-validated WebSearch fallback inhome/garden/tools/weather-fallback.md. - Seasonal tasks from
home/garden/CLAUDE.md(Monthly Task Reference) matched againsthome/garden/context.mdspecifics: pruning windows (cherry = Jun–Aug only), sowing/planting, lawn care, newly planted stock (last ~6 weeks → extra watering in dry spells), imminent deliveries. - Combine: watering line + 1–3 timely tasks. Daily nudge, not a full plan.
Special triggers → "Needs Attention": frost ≤2°C forecast with tender plants out; hot days ≥25°C (water/mulch before the heat); >20mm rain in 3 days (delay lawn seeding/feeding).
Skip the section if nothing is timely or it's dormant mid-winter.
3. Identify What Matters
- This Week (≤7 days): deadlines, payments, age-relevant newborn milestones, decisions awaiting action
- Coming Up (8–30 days): chronological
- Active Priorities: items marked active/in-progress across domains. Suppress items whose decision point is >30 days away.
- Decisions due for review:
decisions.mdreview dates passed or within 30 days → "Needs Attention" with decision ID - Open Loops: grep every
**/context.mdfor**OPEN:**(seeprotocols/memory.md). Surface in "Needs Attention": overdue first, then due ≤7 days, then TBD. Format:**{Domain}**: {action} — {owner}{, due/overdue {date}}. Skip**DONE:**. - Stale: action items with no session-history progress; milestones that passed without update (flag gently — "status unknown")
- Maintenance cadence (in-session by design — decision P3, no external schedulers): from
projects/ai-assistant/context.md(session history + Distill Log), find the last/review,/repo-maintenance, and/distillruns. If overdue — review >14 days, repo-maintenance >45 days, distill >100 days — add ONE combined line to "Needs Attention": "Maintenance: {overdue items} — run when you have a spare session". No date found = treat as overdue. Never more than one line; never guilt-trip.
4. Format the Briefing
# Today: {Day of Week}, {Date}
**Leo**: {age} — {milestone context}
Age format: <14 days {N} days old · 14d–3mo {N} weeks, {M} days old · 3–24mo {N} months old · then years.
Sections in order (each only if it has content; one line per item, domain bolded, most urgent first):
- This Week — if empty: "Nothing urgent. Next up: {first Coming Up item}."
- Coming Up —
- **{Date}** — {item} ({domain}), chronological, ≤30 days - Active Priorities
- Garden Care (1–4 bullets, per 2c)
- Needs Attention — open loops first (overdue → due-soon → undated), then stale items, decision reviews, maintenance-cadence nudge (max one line)
- Quick Stats — table; show only currently-relevant stats. Always include META/RSU line. ISA remaining only if tax year end <90 days.
Footer: *Anything you want to dig into? Just ask.*
5. --deep Flag
Append a domain-by-domain status section ({current state, recent activity, next milestone} per domain). Skip domains with nothing active.
6. --timeline Flag
Replace the standard briefing with a single chronological view of ALL dates, grouped by month, designed to reveal collisions.
Sources: protocols/key-dates.md (primary) + every context.md/reference.md date table + decisions.md review dates.
Format: per-month tables | Date | Event | Domain | Type | where Type ∈ Deadline (immovable) / Milestone (important, flexible) / Payment / Action / Review. Range: today → 6 months (only months with events; last 7 days' passed events with strikethrough for context).
Collision detection: 3+ events in 7 days across domains = collision; 5+ in 30 days = cluster. Add a "Collision Alert" section: which dates, which domains, practical implication ("front-load X before Y").
Still includes the Leo header. --deep --timeline = standard briefing then timeline.
7. Adapt to Life Stage
Read the context files and adapt — don't hard-code phases. Current: newborn/paternity leave (Leo's age leads; feeding/sleep/vaccination milestones; leave countdown; career suppressed until Jul 1). Coming: post-leave Aug 2026 (childcare, career re-entry, hobbies), weaning Oct 2026+ (allergen protocol, motor/language milestones).
8. Resilience to Gaps
- Never guilt-trip; never assume daily cadence; show the window ("next 7 days"), not the delta ("since last time")
- Passed deadline → matter-of-fact note. Passed milestone without update → gentle "status unknown" in Needs Attention
- No tracking state — every run is a fresh scan
This Week
- Home: Put bins out tonight — general waste + food collected tomorrow
- Baby: Book the 12-week vaccines (~4 weeks after Jun 3 set) — call Grange Street
Coming Up
- ~Jun 25–Jul 1 — Leo's 12-week vaccines window (baby)
- Jul 12 — Car + home insurance renewal, Admiral MultiCover (car)
- Jul — Northern Spain trip — heat plan, no sunscreen <6mo (baby)
Garden Care
- Watering: 💧 Check — 6mm rain past 7 days, 3 dry days ahead. Finger-test around the April plantings.
- Cherry 'Stella': pruning window opens mid-June (silver leaf safe) — the low branch is scheduled for removal.
Needs Attention
- Baby: Chase Andrada's Mummy MOT — me, overdue since ~late May
- Bathroom: 2F palette pick open since May 26 — Vlad's v2 quote is also waiting on the punch list
Quick Stats
| Leo age | 9w 5d |
| Days to paternity leave end | 53 (Aug 1) |
| Net worth | £1,084k |
| META / RSU (2026 net) | $612 (as of Jun 2) / £158k |
Anything you want to dig into? Just ask.