Agent skill · Code Review & Quality

meeting-prep

Prepare briefings for today's meetings \u2014 attendee research, email\ \ history, past meeting notes, LinkedIn, and company context. Use when running the\ \ daily meeting prep cron, or when user asks to prepare for meetings, review who\ \ they're meeting with, or get context on upcoming calls."

jeremylongshoregithub.com/jeremylongshoreGitHub ↗
claude-codecan modify filesMIT
Install
npx skills add jeremylongshore/claude-code-plugins-plus-skills --skill meeting-prep --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 1
SKILL.md size: 20 KB
Bundled scripts: none
Version: 1.8.0
Declared author: Martin Gontovnikas <martin@hypergrowthpartners.com>
Allowed tools: ReadBash(gog:*)Bash(mcporter:*)Bash(python3:*)Bash(openclaw:*)Bash(curl:*)GlobGrepWriteWebSearch
Requires: Designed for Claude Code
Path: skills/.curated/meeting-prep/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 2,596
Language: Python
Read our review of the source →

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

Review
written from the skill's own SKILL.md · Aug 5, 2026

What it does

Prepare detailed meeting briefs for all today’s calendar events with attendee research, email history, Granola/LinkedIn/company context, and delivery channels via WhatsApp and Slack. It also creates cron jobs for pre- and post-meeting reminders, saves full briefs to a state file, deduplicates processing per meeting, and updates a processed-meetings log.

How it works

  • Reads user configuration from ../config/user.json to obtain user identity, emails, timezone, Slack, and workspace paths.
  • Logs key steps using a mandatory logging routine via python3 {user.workspace}/scripts/skill_log.py meeting-prep <level> "<message>" ['<details>'] before and after external calls.
  • Scopes to today’s meetings from primary and work calendars, filtering for events with attendees and excluding personal/solo events.
  • For each meeting, prints an event basics block with RSVP status per attendee and flags if any external attendee hasn’t accepted.
  • Performs email context gathering for each attendee across two Gmail accounts (search strategies include address, full name, parts of name, and intro signals), with 90-day window and historical fallback if needed.
  • Executes Granola searches by attendee, cross-checking with recent meetings to surface decisions, actions, and context; requires exact name matching and preserves citation links.
  • Conducts LinkedIn research for attendees and company research for organizations.
  • Formats and sends per-meeting briefs in a structured, multi-section message through WhatsApp and Slack (one message per meeting, chronological order, never collapsed).
  • Saves full, detailed briefs to a dated Markdown file in state/meeting-prep-YYYY-MM-DD.md and triggers pre-meeting cron jobs (pre-meeting reminders) using openclaw cron add, then validates with openclaw cron list.
  • Creates post-meeting cron jobs to run after meetings, referencing the action-items-todoist skill, and validates cron counts similarly.
  • Logs each created cron with timestamped logs and finally logs a summary of cron counts.
  • Maintains a deduplication mechanism by appending meeting titles to {user.workspace}/state/processed-meetings-YYYY-MM-DD.json and skipping already-processed meetings.
  • Includes sanity checks to ensure calendar is source of truth and message/cron counts match expected numbers, with error alerts if counts mismatch.

When to use it

  • Use when running the daily meeting prep cron or when a user asks to prepare for meetings, review attendees, or obtain context on upcoming calls.

What it can touch

  • Reads from: ../config/user.json, ../config/DEBUG_LOGGING.md, emails via Gmail, Granola, LinkedIn, company news sources.
  • Writes: /state/meeting-prep-YYYY-MM-DD.md, /state/processed-meetings-YYYY-MM-DD.json, and creates crons via openclaw cron add.
  • Runs: gog calendar, mcporter Granola queries, email search commands, LinkedIn/Company research commands, and Slack/WhatsApp delivery steps.

Caveats

  • Requires the agent to have access to configured Gmail accounts, Granola authentication, and Slack/WhatsApp delivery capabilities.
  • If Granola authentication fails, it will attempt a reset once and may continue without Granola data.
  • If cron creation count checks fail, it will log an error and emit a WhatsApp alert about missing crons.
  • All content is delivered as per the exact formatting and structure described; no automatic content summarization beyond the defined sections.
From the SKILL.md

# Daily Meeting Prep ## Config — read before starting Read `../config/user.json` (resolves to `~/executive-assistant-skills/config/user.json`). Extract and use throughout: - `name`, `full_name` — user's name - `primary_email`, `work_email` — Gmail accounts to check - `whatsapp` — WhatsApp number for delivery - `timezone` — IANA timezone (e.g. America/Argentina/Buenos_Aires) - `slack_username` — Sl

More from claude-code-plugins-plus-skills
All skills →
About this skill
What does the meeting-prep skill do?

Prepare briefings for today's meetings \u2014 attendee research, email\ \ history, past meeting notes, LinkedIn, and company context. Use when running the\ \ daily meeting prep cron, or when user asks to prepare for meetings, review who\ \ they're meeting with, or get context on upcoming calls."

How do I install it?

Run `npx skills add jeremylongshore/claude-code-plugins-plus-skills --skill meeting-prep --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From jeremylongshore/claude-code-plugins-plus-skills, a repository with 2,596 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going