meeting-processor
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.
How do I install this agent skill?
npx skills add https://github.com/glebis/claude-skills --skill meeting-processorIs this agent skill safe to install?
- Gen Agent Trust Hubpass
The skill is functional and uses a legitimate AI service (Cerebras), but it possesses an indirect prompt injection surface by processing untrusted transcripts and using them to drive file system operations.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
What does this agent skill do?
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 pyyaml
Requires 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 interactive
Interactive 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.json
Batch Mode
Extract only high-confidence information without user interaction:
python3 ~/.claude/skills/meeting-processor/scripts/process.py <transcript-file> --mode batch
Force 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 partnership
Output
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:
find <MEETINGS_DIR> -name "YYYYMMDD-prep-*" -type f 2>/dev/nullWhere
YYYYMMDDis 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
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/glebis/claude-skills/meeting-processor">View meeting-processor on skillZs</a>