| name | sb-aha |
| description | Show the live Outcome Factory board — the few highest-leverage moves to act on now, ranked from live Outlook + calendar. Use when the user asks "what should I focus on", "what matters today", "morning brief", "aha", "what's on my plate", "anything I'm missing", "give me my board", or types `/aha`. Reads live mail/calendar (last 7 days) via the M365 app-only connector; the runtime is deterministic Python, so the output is the same as running `sb aha` in a terminal. |
| when_to_use | Trigger on morning-brief / what-matters / what-to-do-next intent. Do NOT trigger for a specific outcome ("draft a reply to X", "curate the top one") — that's the outcome-curator agent's job. After showing the board, if the user wants the next step on a card, hand off to the outcome-curator. |
| allowed-tools | Bash(.venv/bin/sb aha *), Bash(.venv/bin/sb outcome list *) |
SB — Live Outcome Board
Run the live, ranked outcome board for the operator:
.venv/bin/sb aha --top ${TOP:-3}
sb aha already does the right thing on its own — leads with live Outlook + calendar (last 7 days), suppresses the stale-vault dump, classifies machine traffic out, ranks human asks by recency + flags + reply-thread signal, and prints each card with evidence + next step.
How to use the output
- Just relay what
sb aha prints. Don't re-rank, re-summarise, or add commentary.
- If the user names a specific card after seeing the board ("curate #1", "draft a reply to the CEO thread", "give me the top one"), hand off to the outcome-curator sub-agent with the matching outcome id — don't try to do that work here.
- If the board is empty or says "Live comms unavailable", surface that verbatim and suggest
sb outcome list --status proposed to inspect what's in the ledger.
When not to use
- A specific outcome / "what should I send for X" → use outcome-curator.
- Vault search ("what do I know about Y") → use sb-ask.
- Anything outside the operator's live work surface — this skill is operator-board only.