Generate a pre-meeting prep brief in Claude Code. Researches participants, pulls vault context, builds agenda, surfaces sharp questions. Use when user says "prep for this meeting," "I have a call with," "meeting tomorrow with," or "prep brief for [name/company].
npx skills add https://github.com/BrianRWagner/ai-marketing-claude-code-skills --skill meeting-prep-cc
Generate a meeting prep brief from your Obsidian vault. Researches participants, surfaces vault history, builds a prioritized agenda, and generates sharp questions. No autonomy — you run it, you get your brief.
Open Claude Code in your vault directory and say:
Run the Meeting Prep skill. Meeting with [name] from [company]. Type: [sales/WRS/strategy/partnership/interview]. Time: [date/time].
Check that the user has provided:
If meeting type is missing, ask:
What type of meeting is this?
WRS client / Sales / Strategy / Partnership / Interview / Other
Run these steps in order. Capture all output before formatting the brief.
VAULT="${VAULT_PATH:-/root/obsidian-vault}"
NAME="[PARTICIPANT_NAME]"
COMPANY="[COMPANY_NAME]"
echo "=== VAULT CONTEXT ==="
grep -rl "$NAME\|$COMPANY" "$VAULT" \
--include="*.md" \
-not -path "*/.git/*" \
-not -path "*/.obsidian/*" \
| head -10 | while read f; do
echo "--- ${f##$VAULT/} ---"
grep -n "$NAME\|$COMPANY" "$f" | head -5
done
VAULT="${VAULT_PATH:-/root/obsidian-vault}"
find "$VAULT/bambf/meeting-prep" -name "*.md" 2>/dev/null \
| xargs grep -l "$NAME\|$COMPANY" 2>/dev/null \
| sort -r | head -3 | while read f; do
echo "--- Prior brief: ${f##$VAULT/} ---"
head -30 "$f"
done
VAULT="${VAULT_PATH:-/root/obsidian-vault}"
grep -rn "TODO\|action item\|follow up\|promised" "$VAULT" \
--include="*.md" \
-l 2>/dev/null \
| xargs grep -l "$NAME\|$COMPANY" 2>/dev/null \
| head -5 | while read f; do
echo "--- ${f##$VAULT/} ---"
grep -n "TODO\|action item\|follow up\|promised" "$f" | grep -i "$NAME\|$COMPANY" | head -5
done
Format the brief using this structure (see references/brief-template.md):
# Meeting Prep: [Name] | [Date] [Time]
Meeting type: [type]
Their role: [role at company]
Relationship stage: [new / existing / lapsed]
---
WHY THIS MEETING MATTERS
[1-2 sentences on stakes, objective, desired outcome]
3 PRIORITIES FOR THIS CALL
1. [Priority 1]
2. [Priority 2]
3. [Priority 3]
CONTEXT FROM VAULT
[Pulled notes, open items, prior commitments — or "No prior history found"]
QUESTIONS TO ASK
1. [Question referencing research]
2. [Question]
3. [Question]
4. [Question]
5. [Question]
WATCH FOR
[Known objections, sensitivities, open loops]
DESIRED OUTCOME
[What does success look like in one sentence?]
NEXT STEP TO PROPOSE
[Specific: "schedule X," "send Y," "agree on Z"]
Then: Save brief to bambf/meeting-prep/YYYY-MM-DD-[lastname]-prep.md
Then: Print 3-line summary:
WHO: [Name], [role] at [company]
WHY IT MATTERS: [1 sentence]
TOP QUESTION: [The single sharpest question to ask]
references/brief-template.md — full brief formatreferences/meeting-types.md — agenda by meeting typereferences/question-banks.md — question sets by contextAnalyzes meeting transcripts and recordings to uncover behavioral patterns, communication insights, and actionable feedback. Identifies when you avoid conflict, use filler words, dominate conversations, or miss opportunities to listen. Perfect for professionals seeking to improve their communication and leadership skills.
Toolkit for creating animated GIFs optimized for Slack, with validators for size constraints and composable animation primitives. This skill applies when users request animated GIFs or emoji animations for Slack from descriptions like "make me a GIF for Slack of X doing Y".
Analyzes your recent Claude Code chat history to identify coding patterns, development gaps, and areas for improvement, curates relevant learning resources from HackerNews, and automatically sends a personalized growth report to your Slack DMs.
Knowledge and utilities for creating animated GIFs optimized for Slack. Provides constraints, validation tools, and animation concepts. Use when users request animated GIFs for Slack like "make me a GIF of X doing Y for Slack.
A skill that creates new Claude skills and automatically shares them on Slack using Rube for seamless team collaboration and skill discovery.
Automate Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify, etc.) using agent-browser via Chrome DevTools Protocol. Use when the user needs to interact with an Electron app, automate a desktop app, connect to a running app, control a native app, or test an Electron application. Triggers include "automate Slack app", "control VS Code", "interact with Discord app", "test this Electron app", "connect to desktop app", or any task requiring automation of a native Electron application.
Prepare meeting materials with Notion context and Codex research; use when gathering context, drafting agendas/pre-reads, and tailoring materials to attendees.
Interactive daily standup/meeting update generator. Use when user says 'daily', 'standup', 'scrum update', 'status update', 'what did I do yesterday', 'prepare for meeting', 'morning update', or 'team sync'. Pulls activity from GitHub, Jira, and Claude Code session history. Conducts 4-question interview (yesterday, today, blockers, discussion topics) and generates formatted Markdown update.
Take brianrwagner/meeting-prep-cc from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.