From hebb vault
Sweep the user's email inbox for team and value-stream updates, durable information, and actions, then file the worthwhile ones into the vault. Triggers on "/ingest-inbox", "check my inbox and file", "sweep my inbox", "ingest my emails", "anything useful in my inbox", "catch up the vault from email", or any request to pull recent mail into the vault. Runs inside an interactive session (the email MCP needs interactive auth). Don't trigger for sending or drafting email, for a single named email the user has already pasted (use vault-ingest), or for calendar-only questions.
How this skill is triggered — by the user, by Claude, or both
Slash command
/hebb:ingest-inboxThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Pulls recent email, triages noise from signal, and files the signal into the vault. This skill is the *acquisition and triage* layer. It defers all filing conventions to the vault-ingest skill and all tone, people, and folder rules to the vault `CLAUDE.md`. Do not duplicate that logic here; apply it.
Pulls recent email, triages noise from signal, and files the signal into the vault. This skill is the acquisition and triage layer. It defers all filing conventions to the vault-ingest skill and all tone, people, and folder rules to the vault CLAUDE.md. Do not duplicate that logic here; apply it.
The goal is three things, in descending order of how safe they are to capture automatically:
Email comes from the connected mail MCP (e.g. Microsoft Graph: outlook_email_search, read_resource). Connector MCPs are typically interactively authenticated, so this skill works inside a live session, not on a headless cron binary. That auth gap is usually the single thing standing between this skill and full automation.
Run mode is staged. Each stage is a deliberate decision by the user, not a drift:
State the current stage in the report so the user always knows which mode ran. Do not advance a stage without the user explicitly asking.
Confirm today's date from session context and state it in the report before stamping files. Same discipline as vault-ingest step 0.
Anchor the window on the last sweep, not a fixed lookback. If the vault keeps an ingest log, read the most recent inbox-sweep row, which records the cutoff timestamp of that sweep (the receivedDateTime of the newest email it considered), and start from there. If there is no prior sweep or no log, default to the last 7 days. If the user names a window, use that instead. Pull newest-first from the Inbox folder.
Add a small overlap (start an hour or two before the recorded cutoff) so nothing arriving in the same minute as the last cutoff is missed. The per-email dedup in the next step makes overlap safe.
Most of an inbox is noise. Drop these without reading bodies:
Keep as signal anything that is substantive content from a person or team:
When unsure, lean towards reading it. A two-line skim of the body resolves most calls.
For each signal email, read the full body. Large bodies may exceed the inline limit and get saved to a file; slice that file by character range rather than retrying. Strip quoted history, signatures, and distribution lists per vault-ingest's email rules.
For each, decide what it yields:
CLAUDE.md).Resolve names and references against existing vault notes before writing. Name resolution is where this skill earns its keep and also where it can fail silently, so surface every uncertain identity in the plan rather than guessing into a dossier.
Before writing anything, present a compact plan:
In Stage 1, write nothing until the user approves. They can edit the plan. Honour the current stage's gate exactly.
Apply vault-ingest conventions for everything: destinations, splitting entities, recurring-stream folders, wiki-links, frontmatter, tags, language, tone. Apply the sensitive-content rules: anything touching compensation, HR, health, or personal life gets the vault's private-visibility framing, or is skipped and reported rather than blended into work notes. Never propagate sensitive specifics into work-facing notes.
Actions discipline. Capture actions in the canonical note. Do not write them to a central action register without asking once. If the user has said "leave actions for now" in the session, treat it as standing and do not re-ask.
End with mcp__hebb__reindex_vault (or the vault's reindex path), once after all writes including the log row.
If the vault keeps an ingest log, append one row per sweep (newest at top), matching the log's schema. Record the cutoff timestamp so the next sweep can window from it: "cutoff: ". Also cover what was filed, propagated, and skipped as already-filed or noise, the run stage, and any flagged identities or sensitive items.
Close with: the date filed under, the run stage, what was filed where as clickable links, durable facts written, actions captured and whether any need promoting, what was skipped as noise (count), and any flagged identities or sensitive content awaiting a decision. Keep it tight.
This skill is designed to be safe to run every day. Two mechanisms prevent duplicates:
Specific cases to handle:
When in doubt between creating a new note and appending, append. Fragmentation is the failure mode to avoid.
npx claudepluginhub cizer/hebb --plugin hebbCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.