# Meeting Prep

> Prepare for meetings by gathering attendee context and related topics

- Skill: `majiayu000/meeting-prep-2` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/meeting-prep-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/meeting-prep-2/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/meeting-prep-2

---


Prepare for an upcoming meeting by gathering context on attendees and related topics.

## Tone Calibration

Before executing this command, read `System/user-profile.yaml` → `communication` section and adapt:

**Career Level Adaptations:**
- **Junior:** Provide more context about attendees, suggest preparation tips
- **Mid:** Balance context with action, suggest talking points
- **Senior/Leadership:** Strategic framing, influence opportunities, key decisions
- **C-Suite:** High-level strategic context, organizational implications, key stakeholders

**Directness:**
- **Very direct:** Bullet points, key facts only
- **Balanced:** Context + talking points (default)
- **Supportive:** Detailed prep, conversation strategies

**Detail Level:**
- **Concise:** Names, roles, top 3 talking points
- **Balanced:** Standard prep format
- **Comprehensive:** Full context, relationship dynamics, strategic considerations

See CLAUDE.md → "Communication Adaptation" for full guidelines.

---

## Arguments

**Optional:** $MEETING, $ATTENDEES

If not provided, prompt the user for:
1. Meeting topic or title
2. List of attendees (comma-separated names)

**Examples:**
- `/meeting-prep "Q1 Planning" "Sarah Chen, Mike Rodriguez"`
- `/meeting-prep` (then prompt for details)

## What This Does

1. Looks up each attendee in `People/` folder
2. Surfaces recent interactions and open action items
3. Checks for related projects
4. Suggests talking points based on context

## Process

### Step 0: Gather Context (if needed)

**If $MEETING or $ATTENDEES are not provided:**

Ask: "Which meeting are you prepping for?"
- Get meeting topic/title

Ask: "Who's attending? (comma-separated names or just list them)"
- Accept formats: "Sarah Chen, Mike Rodriguez" or "Sarah, Mike" or natural list
- Parse into individual attendee names

### Step 1: Attendee Lookup

For each attendee in $ATTENDEES:

1. Search `05-Areas/People/Internal/` and `05-Areas/People/External/` for matching names
2. If found, extract:
   - Role and company
   - Last interaction date
   - Open action items involving them
   - Key context or notes

3. If not found, note: "No person page for [Name] - consider creating one after the meeting"

### Step 2: Related Projects

Search `04-Projects/` for any projects that:
- Mention the attendees
- Relate to the meeting topic ($MEETING)

Extract:
- Project name and status
- Relevant milestones or blockers
- Recent updates

### Step 3: Recent Context

Search `00-Inbox/Meetings/` for recent meetings with these attendees:
- What was discussed?
- What was decided?
- What follow-ups were committed?

### Step 3a: Semantic Context Enrichment (if QMD available)

**This step runs automatically when QMD is installed.** It enriches meeting prep with semantically related vault content that keyword search would miss.

Check if QMD MCP tools are available by calling `qmd_status`. **If available:**

1. **Semantic search for meeting topic:**
   ```
   qmd_search(query="$MEETING", limit=5)
   ```
   Look for: related past discussions, relevant decisions, thematic connections — content that shares meaning with the meeting topic but uses different words.

2. **Semantic search for each attendee (beyond their person page):**
   ```
   qmd_search(query="$ATTENDEE_NAME context discussions decisions", limit=3)
   ```
   Look for: contextual references where this person is mentioned by role/title/team (e.g., "the VP of Sales asked about..."), not just by name.

3. **Cross-reference results** with what Steps 1-3 already found. **Only surface NEW insights** — content that the keyword-based person page lookup and meeting folder grep in earlier steps missed.

**Add to the prep brief under a "Semantic Connections" heading:**
- Past discussions thematically related to this meeting (even if different keywords were used)
- Decisions made in adjacent contexts that are relevant here
- Commitments or open items discovered through semantic matching
- Related projects or goals that connect by meaning

**If QMD is not available:** Skip this step silently. Steps 1-3 provide the standard keyword-based context.

---

### Step 3b: Integration Context (if available)

Check `System/integrations/config.yaml` to see which integrations are enabled.

**Notion Integration:**
If `enabled.notion: true` AND Notion MCP is available:
```
Search Notion for pages related to:
- Meeting topic ($MEETING)
- Attendee names

Include in prep:
- Relevant Notion docs (title + summary)
- Shared pages with attendees
```

**Slack Integration:**
If `enabled.slack: true` AND Slack MCP is available:
```
Search Slack for recent conversations:
- With/about each attendee
- Mentioning the meeting topic

Include in prep:
- Recent Slack context (last 7 days)
- Key threads or decisions
- Any commitments made
```

**Teams Integration:**
If `teams.enabled: true` AND Teams MCP available:
```
Search Teams chats with attendees:
- Recent 1:1 and group chats involving each attendee
- Mentioning the meeting topic

Check Teams channels related to meeting topic:
- Project channels, department channels
- Recent posts and replies

Surface recent decisions from Teams threads:
- Key decisions made in channel conversations
- Any commitments or follow-ups from Teams chats

Include in prep:
- Recent Teams context (last 7 days)
- Key threads or decisions from channels
- Any commitments made in Teams chats
```

**When BOTH Slack and Teams are enabled:**
- Check both sources for each attendee
- Label context by source: "**From Slack:**" / "**From Teams:**"
- Deduplicate if the same person appears in both (merge context, label the source)
- Present in separate sub-sections under Integration Context

**Google Workspace Integration:**
If `google-workspace.enabled: true` AND Google Workspace MCP is available:
```
Search Gmail for recent threads with each attendee (last 7 days):
- Email exchanges and their topics
- Shared Google Docs mentioned in threads
- Outstanding email requests (sent but no reply)

Search for Google Docs related to:
- Meeting topic ($MEETING)
- Shared documents with attendees

Include in prep:
- Recent email exchanges (last 7 days) — key threads summarized
- Shared documents — Google Docs, Sheets, or Slides linked in emails
- Outstanding requests/follow-ups — emails waiting > 48h for reply
```

**Graceful Degradation:**
If an integration is enabled but the MCP isn't responding:
- Skip silently
- Don't show error to user
- Continue with vault-only context

### Step 4: Compile Prep Brief

## Output Format

```markdown
# Meeting Prep: $MEETING

**Date:** [Today's date]
**Attendees:** $ATTENDEES

---

---

## Demo Mode Check

Before executing, check if demo mode is active:

1. Read `System/user-profile.yaml` and check `demo_mode`
2. **If `demo_mode: true`:**
   - Display: "Demo Mode Active — Using sample data"
   - Use `System/Demo/` paths instead of root paths
   - Write any output to `System/Demo/` subdirectories
3. **If `demo_mode: false`:** Use normal vault paths


## People Context

### [Attendee Name]
- **Role:** [Role at Company]
- **Last Interaction:** [Date] - [Topic]
- **Open Items:**
  - [ ] [Action item]
- **Notes:** [Key context about this person]

### [Next Attendee]
...

---

## Related Projects

| Project | Status | Relevance |
|---------|--------|-----------|
| [Name]  | [Status] | [Why it relates] |

---

## Recent History

Previous meetings with these attendees:

| Date | Topic | Key Outcomes |
|------|-------|--------------|
| [Date] | [Topic] | [What was decided/discussed] |

---

## Integration Context (if available)

*This section appears when productivity integrations are enabled.*

### From Slack
> Recent conversation context with attendees (last 7 days)

### From Teams
> Recent Teams chats and channel threads with attendees (last 7 days)

### From Notion
> Related Notion docs: [Doc title](link)

### From Gmail
> Email threads with [Attendee]: [Summary of outstanding requests]

---

## Suggested Talking Points

Based on the context above:

1. **Follow up on:** [Open item from last meeting]
2. **Discuss:** [Project-related topic]
3. **Ask about:** [Something from their context]

---

## Questions to Consider

- What's your main goal for this meeting?
- What do you need from these attendees?
- What decisions need to be made?

---

## Post-Meeting

After the meeting:
1. Add notes to `00-Inbox/Meetings/YYYY-MM-DD - [Topic].md`
2. Update person pages with new context
3. Create tasks for any action items
```

---

## Track Usage (Silent)

Update `System/usage_log.md` to mark meeting prep as used.

**Analytics (Silent):**

Call `track_event` with event_name `meeting_prep_completed` and properties:
- `attendees_count`: number of attendees

This only fires if the user has opted into analytics. No action needed if it returns "analytics_disabled".

---

## When to Use

- Before any meeting with multiple attendees
- When meeting someone you haven't seen in a while
- Before important meetings where you want full context

## Tips

- Run this 15-30 minutes before the meeting
- Create person pages for new contacts after meetings
- Update this context regularly for accurate prep

