Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Auto-prepare for upcoming meetings: attendee info, recent email threads, talking points, and agenda. Runs 30 min before each meeting or on demand.
.claude/skills/sonichi-meeting-prep/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-09 | ✗→✓ | ▲ Improved | -54% | 0% |
| case-10 | ✗→✓ | ▲ Improved | -39% | 0% |
| case-11 | ✗→✓ | ▲ Improved | -26% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 4% | 0% |
| case-15 | ✗→✓ | ▲ Improved | -28% | 0% |
Prepare a briefing for an upcoming meeting — attendee info, recent context, and talking points.
Usage: /meeting-prep [meeting name or time]
ARGUMENTS: $ARGUMENTS
bash$CLAUDE_CONFIG_DIR/skills/google-calendar/scripts/google-calendar.py events list \ --time-min NOW --time-max NOW_PLUS_60MIN
a. Contacts — search by email: bash python3 $CLAUDE_CONFIG_DIR/skills/macos-tools/scripts/contacts.py search "email@example.com"
b. Recent emails — search Gmail for recent threads with this person: bash gws gmail users messages list --params 'q=from:email@example.com OR to:email@example.com newer_than:14d' Read the top 2-3 threads to extract context.
c. Web presence — if the person is external or unfamiliar, do a quick web search for their name + company to understand their role.
Meeting: [title]
Time: [start] - [end]
Location: [link or room]
Attendees:
- [Name] ([role/company]) — [1-line context from recent emails]
- ...
Recent context:
- [Key thread 1 summary]
- [Key thread 2 summary]
Suggested talking points:
- [Based on recent threads and meeting title]
- ...
Action items to follow up on:
- [Any commitments from prior meetings/emails]results/meeting-prep-{timestamp}.txt so the voice agent can speak it. Also write to notes/meeting-prep-{date}-{title-slug}.md for reference.The proactive loop should check for meetings starting in the next 30-45 minutes. If one is found and no prep exists yet, run this skill automatically. Add this check to the proactive loop:
Check calendar for meetings in next 30-45 min.
If found and no notes/meeting-prep-{date}-{slug}.md exists, run /meeting-prep.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 9,743 | 8,900 | -9% | 1 | 1 | 0% | 1,329 | 1,087 | -18% | 0 | 0 | — |
case-02 | fail→fail | 4,892 | 6,387 | +31% | 1 | 1 | 0% | 712 | 989 | +39% | 0 | 0 | — |
case-03 | fail→fail | 21,315 | 4,696 | -78% | 1 | 1 | 0% | 3,566 | 869 | -76% | 0 | 0 | — |
case-04 | fail→fail | 5,547 | 5,468 | -1% | 1 | 1 | 0% | 867 | 915 | +6% | 0 | 0 | — |
case-22 | pass→fail | 5,566 | 6,002 | +8% | 1 | 1 | 0% | 880 | 863 | -2% | 0 | 0 | — |
case-05 | fail→fail | 9,991 | 10,424 | +4% | 1 | 1 | 0% | 1,380 | 2,282 | +65% | 0 | 0 | — |
case-06 | fail→fail | 10,768 | 1,360 | -87% | 1 | 1 | 0% | 1,661 | 803 | -52% | 0 | 0 | — |
case-07 | fail→fail | 6,648 | 5,360 | -19% | 1 | 1 | 0% | 995 | 884 | -11% | 0 | 0 | — |
case-08 | fail→fail | 14,844 | 2,085 | -86% | 1 | 1 | 0% | 2,213 | 985 | -55% | 0 | 0 | — |
case-09 | fail→pass | 11,894 | 1,671 | -86% | 1 | 1 | 0% | 1,865 | 854 | -54% | 0 | 0 | — |
case-10 | fail→pass | 14,272 | 3,820 | -73% | 1 | 1 | 0% | 1,965 | 1,194 | -39% | 0 | 0 | — |
case-11 | fail→pass | 14,206 | 5,865 | -59% | 1 | 1 | 0% | 1,898 | 1,413 | -26% | 0 | 0 | — |
case-12 | fail→pass | 6,401 | 2,762 | -57% | 1 | 1 | 0% | 936 | 978 | +4% | 0 | 0 | — |
case-13 | pass→pass | 12,909 | 2,299 | -82% | 1 | 1 | 0% | 1,639 | 935 | -43% | 0 | 0 | — |
case-14 | pass→fail | 5,908 | 1,891 | -68% | 1 | 1 | 0% | 826 | 944 | +14% | 0 | 0 | — |
case-15 | fail→pass | 15,528 | 7,236 | -53% | 1 | 1 | 0% | 2,274 | 1,648 | -28% | 0 | 0 | — |
case-16 | fail→pass | 5,993 | 1,982 | -67% | 1 | 1 | 0% | 829 | 918 | +11% | 0 | 0 | — |
case-17 | fail→fail | 9,650 | 1,606 | -83% | 1 | 1 | 0% | 1,475 | 857 | -42% | 0 | 0 | — |
case-18 | fail→pass | 8,755 | 2,686 | -69% | 1 | 1 | 0% | 1,232 | 1,073 | -13% | 0 | 0 | — |
case-19 | fail→pass | 16,616 | 2,845 | -83% | 1 | 1 | 0% | 2,605 | 1,035 | -60% | 0 | 0 | — |
case-20 | fail→fail | 4,750 | 6,318 | +33% | 1 | 1 | 0% | 713 | 1,527 | +114% | 0 | 0 | — |
case-21 | fail→fail | 3,485 | 6,264 | +80% | 1 | 1 | 0% | 508 | 1,008 | +98% | 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, and 15 counted toward the lift figure. The other 7 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +27 percentage points is the difference between those two pass rates over the 15 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
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.