agentsclimarketplace

Meeting prep

Skill mshadmanrahman/pm-operating-system/_context/skills/meeting-prep

An opinionated workflow system that restructures how product managers work with Claude Code. 16 PM skills, 9 agents, 10 coding rules, 13 slash commands, 6 automation hooks, product brain system, and session lifecycle with memory/handoffs.

Install
npx -y skills add mshadmanrahman/pm-operating-system --skill meeting-prep

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Pre-meeting context gathering across all connected systems. Pulls recent interactions, open items, and suggested talking points for any person or topic. Triggers on: "meeting prep", "prep for my meeting", "meeting with X", "prep for 1:1", "before my meeting", "get ready for sync", "/meeting-prep".

SKILL.md

5.2 KB, as published. Nobody here has run it

Meeting Prep Skill

Gathers cross-channel context before any meeting so you walk in fully prepared. Works for person-based prep (1:1s) and topic-based prep (product syncs, reviews).

When to Activate

  • User says "meeting prep", "prep for my meeting with X", "1:1 prep"
  • User provides a person name or meeting topic to prepare for
  • User says "what should I discuss with X?"
  • Before any recurring sync where context would help

Input

The user provides ONE of:

  • Person name: "Daniel Carlbom", "Nina", "Marco"
  • Topic/meeting name: "ESP review", "Big Room Planning", "Product Sync"
  • Calendar event: A specific meeting from today's calendar

If no input, check today's Google Calendar for the next upcoming meeting and prep for that.

Execution

Step 0: Resolve Target

If the user gave a person name, that's the search target. If the user gave a topic, use it as the search query across all sources. If no input, get next meeting from Google Calendar:

Google Calendar MCP → list today's events → pick next upcoming → extract attendees + title

Step 1: Parallel Data Gathering (Fan-Out)

Launch parallel searches across all connected sources. Use the Agent tool with subagent_type="Explore" or direct MCP calls depending on complexity.

For person-based prep:

SourceQueryWhat to Extract
Obsidian vaultSearch notes mentioning person nameLast 3 meeting notes, decisions, action items
Granola MCPquery_granola_meetings with person nameLast meeting transcript, key points
Jira MCPsearchJiraIssuesUsingJql: assignee = "{person}" OR reporter = "{person}" AND updated >= -14dTheir active issues, recent updates
Slack MCPslack_search_public_and_private for recent DMs/threads with personRecent conversations, open threads
GitHub MCPsearch_pull_requests by authorTheir recent PRs (if engineering)
Confluence MCPsearchConfluenceUsingCql: contributor = "{person}" AND lastModified > now("-14d")Pages they've been editing

For topic-based prep:

SourceQueryWhat to Extract
Obsidian vaultSearch notes mentioning topicMeeting history, decisions, context
Jira MCPsearchJiraIssuesUsingJql: text ~ "{topic}" AND updated >= -30dRelated tickets, current status
Slack MCPslack_search_public_and_private for topicRecent discussions, decisions
Confluence MCPsearchConfluenceUsingCql: text ~ "{topic}" AND lastModified > now("-30d")Specs, RFCs, documentation
Gmail MCPgmail_search_messages for topicEmail threads about topic

Step 2: Synthesize Prep Doc

Merge all results into a structured prep document.

Output Format

Output directly in the conversation (do NOT create a file unless asked):

# Meeting Prep: {Person or Topic}
**For:** {Meeting name if known} | **When:** {Time if known}

## Last 3 Interactions
1. **{Date}** ({source}): {1-2 sentence summary}
2. **{Date}** ({source}): {1-2 sentence summary}
3. **{Date}** ({source}): {1-2 sentence summary}

## They're Waiting On You
- {Action item you owe them, with source}
- {Action item you owe them, with source}
(If none found: "Nothing outstanding found.")

## You're Waiting On Them
- {Action item they owe you, with source}
- {Action item they owe you, with source}
(If none found: "Nothing outstanding found.")

## Their Current Focus
- {What they're working on based on Jira/GitHub/Slack}
- {Recent PRs or tickets}

## Open Threads
- {Unresolved Slack threads or email chains}
- {Blocked Jira issues}

## Suggested Talking Points
1. {Based on open items and recent activity}
2. {Based on unresolved threads}
3. {Based on upcoming deadlines or decisions}

Rules

  • Recency bias: Prefer last 14 days for people, last 30 days for topics
  • No speculation: Only include items found in actual sources. If a source returns nothing, skip that section
  • Cite sources: Always note where information came from (Jira, Slack, Obsidian, etc.)
  • Keep it scannable: This should be readable in 2 minutes before a meeting
  • Respect privacy: Don't include private Slack DMs unless the user is a participant

Fallback

If MCP tools are unavailable or return errors:

  1. Search Obsidian vault directly (always available)
  2. Note which sources were unreachable
  3. Still produce the prep doc with whatever was found

Examples

User: "meeting prep Daniel Carlbom"
→ Searches all sources for Daniel, produces person-based prep

User: "prep for ESP review"
→ Searches all sources for ESP/Explore Similar Programs, produces topic-based prep

User: "prep for my next meeting"
→ Checks Google Calendar, finds next meeting, preps based on attendees + title

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.