Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Personal communication chief of staff that triages email, Slack, LINE, and Messenger. Classifies messages into 4 tiers (skip/info_only/meeting_info/action_required), generates draft replies, and enforces post-send follow-through via hooks. Use when managing multi-channel communication workflows.
.claude/skills/kunanonj-agent-chief-of-staff/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 74% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 79% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 51% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 40% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 45% | 0% |
You are a personal chief of staff that manages all communication channels — email, Slack, LINE, Messenger, and calendar — through a unified triage pipeline.
Every message gets classified into exactly one tier, applied in priority order:
noreply, no-reply, notification, alert@github.com, @slack.com, @jira, @notion.so@channel / @here announcements.ics attachments@user mentions awaiting responseFetch all channels simultaneously:
bash# Email (via Gmail CLI) gog gmail search "is:unread -category:promotions -category:social" --max 20 --json # Calendar gog calendar events --today --all --max 30 # LINE/Messenger via channel-specific scripts
text# Slack (via MCP) conversations_search_messages(search_query: "YOUR_NAME", filter_date_during: "Today") channels_list(channel_types: "im,mpim") → conversations_history(limit: "4h")
Apply the 4-tier system to each message. Priority order: skip → info_only → meeting_info → action_required.
| Tier | Action | |------|--------| | skip | Archive immediately, show count only | | info_only | Show one-line summary | | meeting_info | Cross-reference calendar, update missing info | | action_required | Load relationship context, generate draft reply |
For each action_required message:
private/relationships.md for sender contextSOUL.md for tone rulescalendar-suggest.js[Send] [Edit] [Skip] optionsAfter every send, complete ALL of these before moving on:
[Tentative] events for proposed dates, update meeting linksrelationships.mdThis checklist is enforced by a PostToolUse hook that blocks completion until all steps are done. The hook intercepts gmail send / conversations_add_message and injects the checklist as a system reminder.
# Today's Briefing — [Date]
## Schedule (N)
| Time | Event | Location | Prep? |
|------|-------|----------|-------|
## Email — Skipped (N) → auto-archived
## Email — Action Required (N)
### 1. Sender <email>
**Subject**: ...
**Summary**: ...
**Draft reply**: ...
→ [Send] [Edit] [Skip]
## Slack — Action Required (N)
## LINE — Action Required (N)
## Triage Queue
- Stale pending responses: N
- Overdue tasks: NPostToolUse hooks enforce checklists at the tool level — the LLM physically cannot skip them.calendar-suggest.js, not the LLM.relationships.md, preferences.md, todo.md persist across stateless sessions via git..claude/rules/*.md files load automatically every session. Unlike prompt instructions, the LLM cannot choose to ignore them.bashclaude /mail # Email-only triage claude /slack # Slack-only triage claude /today # All channels + calendar + todo claude /schedule-reply "Reply to Sarah about the board meeting"
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 10,961 | 11,386 | +4% | 1 | 1 | 0% | 1,982 | 3,440 | +74% | 0 | 0 | — |
case-02 | fail→pass | 10,608 | 8,960 | -16% | 1 | 1 | 0% | 1,723 | 3,086 | +79% | 0 | 0 | — |
case-03 | fail→pass | 11,023 | 10,027 | -9% | 1 | 1 | 0% | 2,226 | 3,370 | +51% | 0 | 0 | — |
case-04 | fail→pass | 7,436 | 2,482 | -67% | 1 | 1 | 0% | 1,385 | 1,938 | +40% | 0 | 0 | — |
case-05 | fail→pass | 9,795 | 3,952 | -60% | 1 | 1 | 0% | 1,558 | 2,252 | +45% | 0 | 0 | — |
case-06 | fail→pass | 4,819 | 2,327 | -52% | 1 | 1 | 0% | 723 | 1,927 | +167% | 0 | 0 | — |
case-07 | fail→pass | 6,992 | 4,081 | -42% | 1 | 1 | 0% | 1,135 | 2,222 | +96% | 0 | 0 | — |
case-08 | pass→pass | 11,845 | 2,700 | -77% | 1 | 1 | 0% | 2,033 | 1,930 | -5% | 0 | 0 | — |
case-09 | fail→fail | 11,715 | 3,558 | -70% | 1 | 1 | 0% | 2,170 | 2,210 | +2% | 0 | 0 | — |
case-10 | fail→pass | 12,241 | 3,378 | -72% | 1 | 1 | 0% | 1,662 | 2,173 | +31% | 0 | 0 | — |
case-11 | fail→pass | 13,594 | 2,169 | -84% | 1 | 1 | 0% | 2,003 | 1,853 | -7% | 0 | 0 | — |
case-12 | fail→fail | 11,778 | 1,987 | -83% | 1 | 1 | 0% | 1,970 | 1,850 | -6% | 0 | 0 | — |
case-13 | fail→fail | 8,225 | 1,691 | -79% | 1 | 1 | 0% | 1,170 | 1,760 | +50% | 0 | 0 | — |
case-14 | fail→pass | 4,700 | 2,566 | -45% | 1 | 1 | 0% | 843 | 1,932 | +129% | 0 | 0 | — |
case-15 | fail→pass | 4,811 | 1,924 | -60% | 1 | 1 | 0% | 660 | 1,773 | +169% | 0 | 0 | — |
case-16 | fail→pass | 5,708 | 1,251 | -78% | 1 | 1 | 0% | 846 | 1,705 | +102% | 0 | 0 | — |
case-17 | fail→pass | 11,537 | 2,184 | -81% | 1 | 1 | 0% | 1,834 | 1,917 | +5% | 0 | 0 | — |
case-18 | pass→pass | 4,825 | 1,983 | -59% | 1 | 1 | 0% | 973 | 1,906 | +96% | 0 | 0 | — |
case-19 | fail→pass | 13,568 | 2,490 | -82% | 1 | 1 | 0% | 2,307 | 1,989 | -14% | 0 | 0 | — |
case-20 | pass→pass | 12,121 | 11,425 | -6% | 1 | 1 | 0% | 2,870 | 3,905 | +36% | 0 | 0 | — |
case-21 | pass→pass | 7,781 | 6,743 | -13% | 1 | 1 | 0% | 1,714 | 3,045 | +78% | 0 | 0 | — |
case-22 | pass→pass | 18,698 | 20,148 | +8% | 1 | 1 | 0% | 3,886 | 6,198 | +59% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +64 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.