Weekday Reflection Nudge (a timely once-a-weekday "could an agent do this?" inbox card)
A gentle once-per-weekday inbox card that nudges you to step back and ask whether an Omniscio agent or automation could take some of this off your plate. It never lands while you are away, and the wording rotates daily without ever sounding accusatory. Showing it costs nothing.
What it is
A gentle, once-per-weekday inbox card that nudges you to step back and reflect on what you've been doing — and whether an Omniscio AI agent or automation could take some of it off your plate. It's built to feel timely: it never lands while you're away, and it only shows up on Monday–Friday.
The card's wording rotates in tone day to day — some days curious ("What would you most love to automate?"), some days gentle ("What have you been heads-down on today? There may be an agent for part of it."), some days straightforward — but never accusatory. Showing the card costs nothing (no AI call — the copy comes from a fixed rotating pool).
In-development, off by default. It's hidden until you reveal it via Settings → Lab (the
reflection-nudge toggle) or launch with AMC_SHOW_REFLECTION_NUDGE=1. When it later ships, it becomes
on-by-default with a one-click off switch.
Where to find it
Turning it off
One switch. While in development it's the Settings → Lab reflection-nudge toggle (off by default).
When off, the scanner raises nothing.
How it behaves
When it fires
A lightweight background scanner ticks every ~5 minutes and drops exactly one card per weekday when ALL of these are true:
- The feature is enabled (the Lab toggle or the env var).
- It's a weekday, in your computer's local time zone.
- It's at or after the day's target time — a random-but-deterministic time in an early-biased window (~9am–3pm), so it's unpredictable yet stable within the day (every tick agrees on the same time).
- You're genuinely active right now — you've sent at least one real message (to any session) in the last ~15 minutes. This is what makes it timely, and it also proves you can actually start the chat, so the card never dead-ends.
- It hasn't already fired today.
Because it keys on your own messages (never your agents' activity), it can't land while only your agents are busy and you're away.
The card
It's a normal Omniscio inbox card (the same card chrome every agent alert uses — themed, works on the phone). Its actions:
- "Let's talk about it" (the primary button) — opens a foreground Claude chat, pre-seeded to interview you about what you just did, brainstorm where an agent or automation could help, and — when a concrete idea emerges — hand you off to the automation builder or Foundry to actually build it. The chat opens in your neutral Claude home project.
- Start session — the universal button every inbox card carries (unchanged).
- Snooze — the standard inbox snooze picker; it comes back later.
- Dismiss (archive) — clears it. A dismissed card does not come back the same day; a fresh one is eligible the next weekday.
For agents
For agents — how it's built
- Pure scheduling logic — src/shared/reflection-nudge.ts:
the stable dedup key (
REFLECTION_NUDGE_DEDUP_KEY) +isReflectionNudgeDedupKey, the rotating-copy index selector, the deterministic-per-date target time, andshouldFireReflectionNudge(weekday + target + once-per-day). React-free, side-effect-free, imported by both main and renderer. - The scanner —
src/main/services/reflection-nudge/reflection-nudge-service.ts:
a
createRegisteredService5-min tick (modeled on the AI-coaching check-in scanner), gated throughisUnreleasedFeatureVisible('reflection-nudge', …), raising the card viaraiseAgentAlert. Registered in registry.ts and torn down in shutdown.ts. - The activity signal —
countSessionsWithUserMessageSincein queries-sessions/reads.ts counts sessions whoselast_user_message_at(bumped only by real human messages, never auto-responses) is inside the trailing window. - The card action — the
isReflectionNudgeDedupKeycarve-out in use-alert-actions.ts + AlertInboxViewer.tsx; its seeded prompt is the fixed constantREFLECTION_CHAT_PROMPT(never user input), launched vialaunchSessionwith thereflection-nudgesource. - The off switch —
reflectionNudgeEnabled(default false) in ai-features-settings.ts, registered in unreleased-features.ts. - Behavior is locked by reflection-nudge-contract.md.
Related
No sibling library page is referenced from this one, so a reader who wants more should open INDEX.md, the library index, and browse the areas from there.
Last verified 2026-09-23