meeting-processor
Skill400 starsChanged 4 months agoMITView on GitHub
This skill should be used when processing meeting transcripts to auto-detect meeting type (leadgen, partnership, coaching, internal) and extract type-specific structured analysis. Triggers on "process meeting", "analyze meeting", "meeting summary", or after syncing new Fathom/Granola transcripts.
- Reads credentials
- Installs packages
We split this skill into the rules it gives an agent
13 rules. About 0 are common, 7 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 12
After syncing Fathom or Granola transcripts (/fathom --today, /granola export)
- Distinctive: line 13
When asked to process, analyze, or summarize a meeting transcript
- Very specific: line 14
When a new meeting transcript appears in the vault root matching YYYYMMDD-*.md
- Distinctive: line 38
Run the processor, which auto-detects meeting type and asks clarifying questions:
- Distinctive: line 50
Use AskUserQuestion to collect answers for each question
- Distinctive: line 55
When the script exits with code 2, parse the output for questions JSON.
- Distinctive: line 60
After collecting answers, create two temp files:
- Very specific: line 107
After the meeting analysis is complete (Step 1), automatically link any matching meeting-prep notes to the session note.
- Very specific: line 116
If no participants field, extract names from the transcript header or attendee list
- Distinctive: line 129
Update both files: when a match is found:
- Very specific: line 136
If a ## See also section exists, add - [[YYYYMMDD-prep-participant-slug]] to it
- Distinctive: line 142
Never create duplicate links — check if the link already exists before adding
- Very specific: line 149
If the meeting-prep config.yaml is available, read prep_notes.prefix (default: prep) and prep_notes.type_tag (default: meeting-prep)
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Meeting Processor
Intelligent meeting transcript processor that auto-detects meeting type and applies type-specific extraction with optional interactive clarification.
When to Use
- After syncing Fathom or Granola transcripts (
/fathom --today,/granola export) - When asked to process, analyze, or summarize a meeting transcript
- When a new meeting transcript appears in the vault root matching
YYYYMMDD-*.md - For coaching sessions, delegate to
coaching-session-summarizerskill instead
Prerequisites
pip install openai pyyamlRequires CEREBRAS_API_KEY environment variable (uses Cerebras API with llama-3.3-70b).
Supported Meeting Types
| Type | Description | Key Extractions |
| leadgen | Sales/business development calls | Commitments, pain points, budget, timeline, decision makers, deal stage, sentiment |
| partnership | Collaboration/partnership exploration | Opportunity overview, value proposition, strategic alignment, technical needs, fit assessment |
| coaching | Coaching/mentoring sessions | Insights, decisions, action items, themes, emotional arc, techniques, session quality |
| internal | Internal team meetings | Coming soon |
Usage
Interactive Mode (default)
Run the processor, which auto-detects meeting type and asks clarifying questions:
python3 ~/.claude/skills/meeting-processor/scripts/process.py <transcript-file> --mode interactiveInteractive flow:
- Script analyzes transcript and detects meeting type
- Extracts structured data via LLM
- Identifies missing/ambiguous fields
- Returns questions as JSON (exit code 2 signals interaction needed)
- Parse the JSON between
__INTERACTIVE_QUESTIONS__markers - Use AskUserQuestion to collect answers for each question
- Save answers to a temp JSON file and re-run with
process_with_answers.py
Handling interactive questions:
When the script exits with code 2, parse the output for questions JSON. Each question has:
question: The question textheader: Short label (used as answer key)options: Array of{label, description}for AskUserQuestion
After collecting answers, create two temp files:
questions.json— the original questions context (includespartial_data,meeting_type,transcript_file)answers.json— map of{header_lowercase: selected_label}
Then run:
python3 ~/.claude/skills/meeting-processor/scripts/process_with_answers.py questions.json answers.jsonBatch Mode
Extract only high-confidence information without user interaction:
python3 ~/.claude/skills/meeting-processor/scripts/process.py <transcript-file> --mode batchForce Meeting Type
Skip auto-detection:
python3 ~/.claude/skills/meeting-processor/scripts/process.py <transcript-file> --type leadgen
python3 ~/.claude/skills/meeting-processor/scripts/process.py <transcript-file> --type partnershipOutput
Analysis is appended to the transcript file as a ## Meeting Analysis section. Frontmatter is updated with meeting_type, processed_date, and processing_mode.
Leadgen Output Structure
- Commitments & Actions — with deadlines and owners
- Follow-up — next meeting date if scheduled
- Client Context — pain points, budget, timeline, decision makers
- Deal Assessment — stage (cold/warm/hot), probability (1-5), blocker, sentiment
Partnership Output Structure
- Opportunity — description and value proposition for both sides
- Commitments & Actions — with deadlines and owners
- Follow-up — next meeting date if scheduled
- Partnership Context — strategic alignment, technical needs, resources, challenges
- Opportunity Assessment — fit (strong/medium/weak), readiness, success factors, sentiment
Step 2: Auto-Link Prep Notes
After the meeting analysis is complete (Step 1), automatically link any matching meeting-prep notes to the session note. This replaces the need to manually run /meeting-prep link.
How It Works
- Derive the meetings directory from the processed session note's parent directory (do not hardcode paths).
- Extract session metadata from the processed note:
datefrom frontmatter (YYYYMMDD format)participantsfrom frontmatter (list of names)- If no
participantsfield, extract names from the transcript header or attendee list
- Search for matching prep notes:
Wherefind <MEETINGS_DIR> -name "YYYYMMDD-prep-*" -type f 2>/dev/nullYYYYMMDDis the session date. - Validate the match: For each candidate prep note, read its frontmatter and confirm:
- The
datefield matches the session date - The
participantfield matches one of the session's participants (fuzzy: check both full name and first name, case-insensitive) - The
session_notefield is empty ("") — skip already-linked prep notes
- The
Update both files when a match is found:
In the prep note:
- Set
session_note: "[[session-note-filename]]"(without.mdextension) - Set
status: done
In the session note:
- If a
## See alsosection exists, add- [[YYYYMMDD-prep-participant-slug]]to it - Otherwise, append a new section at the end:
## Prep Note - [[YYYYMMDD-prep-participant-slug]] - Never create duplicate links — check if the link already exists before adding
- Set
- Report in the processing output which prep notes were linked, skipped, or not found.
Rules
- Derive
MEETINGS_DIRfrom the session note path, not from hardcoded values - If the meeting-prep
config.yamlis available, readprep_notes.prefix(default:prep) andprep_notes.type_tag(default:meeting-prep) - This step is non-blocking: if it fails or finds no prep notes, processing still succeeds
Other versions2 projects use a version of this.
Word for word · 1
- JAVICHILEON/claude---Skills★ 0100% same
Edited · 1
- KISHOR403/claude-skills★ 0100% same
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository109 other files it gives its agents.
- automation-advisor/CLAUDE.mdCLAUDE.md
- agency-docs-updaterSkill
- agency-meetup-publishSkill
- agency-socialsSkill
- agent-cliSkill
- agent-roundtableSkill
- app-releaseSkill
- automation-advisorSkill
- balancedSkill
- brand-agencySkill
- browser-mateSkill
- browsing-historySkill
- chrome-historySkill
- cms-migration-checklistSkill
- coaching-session-summarizerSkill
- codexSkill
- cognitive-toolkitSkill
- context-builderSkill
- cull-release-checkSkill
- cull-release-prepareSkill
- cull-release-publishSkill
- cull-release-recoverSkill
- cull-releaseSkill
- cull-release-verifySkill
- cullSkill
- daydreamSkill
- decision-toolkitSkill
- deep-researchSkill
- design-tokensSkill
- doctorgSkill
- ecosystemSkill
- elevenlabs-ttsSkill
- elimination-researchSkill
- fathomSkill
- feature-factorySkill
- firecrawl-apiSkill
- firecrawl-researchSkill
- font-featuresSkill
- github-gistSkill
- gmailSkill
- google-image-searchSkill
- gpt-image-2Skill
- granolaSkill
- gwsSkill
- health-dataSkill
- i18n-studioSkill
- init-tauri-appSkill
- init-xcode-appSkill
- insight-extractorSkill
- jtbdSkill
- lab-retroSkill
- learning-vaultSkill
- linearSkill
- llm-cliSkill
- local-modelsSkill
- meeting-prepSkill
- metaSkill
- name-auditionSkill
- nano-bananaSkill
- nielsen-heuristicsSkill
- The first 60 shown.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

