/cs-inbox-triage¶
Command: /cs:inbox-triage
The cs-inbox-triage persona processes your inbox using the knowledge base built by /cs:inbox-setup. Designed for recurring runs (1-3x/day) with light intake — most invocations skip questions and run with KB-default preferences.
When to Run¶
- Recurring cadence — 1-3 times daily, per your
email-taxonomy.mdrun frequency - On-demand — outside cadence (after a long break, before a meeting, etc.)
- Pre-triage scan — quick check of overdue tracker items only
Do NOT run if the KB doesn't exist yet — the skill will halt and direct you to /cs:inbox-setup first.
DRAFTS ONLY — Non-Negotiable¶
This skill creates drafts. It NEVER sends.
This is the safety property that makes the skill safe to run automatically. The draft_safety_validator.py enforces it post-run. Any send-shaped tool call in the action log fails validation.
If you want the skill to send for you: don't. Review the drafts in your email client and send them yourself. This is by design.
Light Intake (Max 2 Optional Questions)¶
Most runs skip both questions entirely.
| Q | Asked when | Default if skipped |
|---|---|---|
| Q1 — Override default 9h window? | On-demand run outside normal cadence | use cadence default |
| Q2 — Skip categories this run? | User invocation includes skip-intent ("skip newsletters") | run all categories |
What Happens (10 Steps)¶
After reading the KB:
- Determine search window — cadence + now → window_start (default 9h for 2x/day; overlap prevents missed emails)
- Search email provider — primary (inbox + sent after window_start) + secondary (starred unread)
- Classify — apply taxonomy; skip lowest-priority threads (newsletters/automation) without reading
- Research new senders — web search for opportunity senders not in tracker/blocklist
- Generate recommendations — apply
evaluation-framework.mdif exists; categorize TAKE IT / WORTH CONSIDERING / PASS / FLAG FOR REVIEW - Draft replies — match voice from
email-patterns.md. NEVER SEND. - Deliver report — honor
email-taxonomy.mdreport preferences (email / file / chat) - Update KB — append new declines to
blocklist.md; updatetracker.mdwith new/resolved follow-ups - Internal log — write
triage-log/<YYYY-MM-DD>-<run-label>.md - Empty inbox handling — still produces minimal report; flags overdue tracker items
Trigger Phrases (auto-invoke without /cs:)¶
- "triage my inbox"
- "inbox triage"
- "check my email"
- "run email triage"
- "process my inbox"
- "what's new in my email"
- "handle my email"
- "email triage"
Workflow¶
# 1. Pre-flight — read + validate KB (fail-fast if missing)
python ../skills/inbox-triage/scripts/kb_reader.py --workspace ${WORKSPACE}
# 2. Compute search window
python ../skills/inbox-triage/scripts/search_window_calculator.py \
--cadence 2x-daily --now $(date -u +%Y-%m-%dT%H:%M)
# 3. Execute Steps 2-10 (described in SKILL.md). For each step, log to:
# ${WORKSPACE}/Email/triage-log/<date>-<label>.md
# 4. Post-flight — verify NEVER-SEND held
python ../skills/inbox-triage/scripts/draft_safety_validator.py \
--action-log ${WORKSPACE}/Email/triage-log/$(date +%Y-%m-%d)-*.md
# Failure here is critical — halt + alert user immediately
Stop Conditions¶
- All 10 steps complete → report delivered + KB updated + log written
- KB files missing → halt; direct to
/cs:inbox-setup - Email tool unavailable → halt; tell user which tool is needed
- 100+ new emails → flag volume; offer to focus on priority categories only
- User says "stop" → produce partial report from what's been processed; flag the rest
Critical Rules¶
- DRAFTS ONLY — NEVER SEND. Non-negotiable.
- Fail-fast on missing KB. Halt cleanly; direct to setup.
- Honor the KB. Documented preferences are source of truth; don't override with judgment.
- Privacy. No credentials in KB; reference threads by ID for sensitive content.
- Transparency. Note every KB change in the triage log.
- First runs need oversight. Documented — system learns from your edits and overrides.
Triage Decision Categories¶
| Category | When | Output |
|---|---|---|
| TAKE IT | Meets criteria from evaluation-framework.md |
Recommend engaging; draft reply |
| WORTH CONSIDERING | Has potential, needs user judgment | Surface key context; draft reply for user to edit |
| PASS | Doesn't meet criteria | Brief "why"; draft polite decline |
| FLAG FOR REVIEW | Unusual; needs direct user decision | Surface fully; NO draft (user decides response shape) |
Anti-Patterns Rejected¶
- Sending emails — drafts only, non-negotiable
- Operating without knowledge base files
- Storing passwords / credentials in KB
- Skipping the learning loop (KB updates) at end of run
- Overriding user's documented preferences with own judgment
- Reading lowest-priority threads (waste of context)
- Including draft text previews in report (drafts are already in email client)
- Provider lock-in without adapter pattern
- Silently failing on missing tools
Related¶
- Companion:
/cs:inbox-setup— must run first - Agent:
cs-inbox-triage - Skill:
inbox-triage - Source spec:
megaprompts/07-inbox-triage-megaprompt.md
Version: 1.0.0
Source: Path-B direct conversion of megaprompts/07-inbox-triage-megaprompt.md