agentleFS
glebisglebis/claude-skills/meeting-processor/SKILL.md

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
  1. Very specific:

    After syncing Fathom or Granola transcripts (/fathom --today, /granola export)

    line 12
  2. Distinctive:

    When asked to process, analyze, or summarize a meeting transcript

    line 13
  3. Very specific:

    When a new meeting transcript appears in the vault root matching YYYYMMDD-*.md

    line 14
  4. Distinctive:

    Run the processor, which auto-detects meeting type and asks clarifying questions:

    line 38
  5. Distinctive:

    Use AskUserQuestion to collect answers for each question

    line 50
  6. Distinctive:

    When the script exits with code 2, parse the output for questions JSON.

    line 55
  7. Distinctive:

    After collecting answers, create two temp files:

    line 60
  8. Very specific:

    After the meeting analysis is complete (Step 1), automatically link any matching meeting-prep notes to the session note.

    line 107
  9. Very specific:

    If no participants field, extract names from the transcript header or attendee list

    line 116
  10. Distinctive:

    Update both files: when a match is found:

    line 129
  11. Very specific:

    If a ## See also section exists, add - [[YYYYMMDD-prep-participant-slug]] to it

    line 136
  12. Distinctive:

    Never create duplicate links — check if the link already exists before adding

    line 142
  13. Very specific:

    If the meeting-prep config.yaml is available, read prep_notes.prefix (default: prep) and prep_notes.type_tag (default: meeting-prep)

    line 149

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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-summarizer skill instead

Prerequisites

pip install openai pyyaml

Requires CEREBRAS_API_KEY environment variable (uses Cerebras API with llama-3.3-70b).

Supported Meeting Types

TypeDescriptionKey Extractions
leadgenSales/business development callsCommitments, pain points, budget, timeline, decision makers, deal stage, sentiment
partnershipCollaboration/partnership explorationOpportunity overview, value proposition, strategic alignment, technical needs, fit assessment
coachingCoaching/mentoring sessionsInsights, decisions, action items, themes, emotional arc, techniques, session quality
internalInternal team meetingsComing 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:

  1. Script analyzes transcript and detects meeting type
  2. Extracts structured data via LLM
  3. Identifies missing/ambiguous fields
  4. Returns questions as JSON (exit code 2 signals interaction needed)
  5. Parse the JSON between __INTERACTIVE_QUESTIONS__ markers
  6. Use AskUserQuestion to collect answers for each question
  7. 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 text
  • header: 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 (includes partial_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

  1. Derive the meetings directory from the processed session note's parent directory (do not hardcode paths).
  2. Extract session metadata from the processed note:
    • date from frontmatter (YYYYMMDD format)
    • participants from frontmatter (list of names)
    • If no participants field, extract names from the transcript header or attendee list
  3. Search for matching prep notes:
    find <MEETINGS_DIR> -name "YYYYMMDD-prep-*" -type f 2>/dev/null
    Where YYYYMMDD is the session date.
  4. Validate the match: For each candidate prep note, read its frontmatter and confirm:
    • The date field matches the session date
    • The participant field matches one of the session's participants (fuzzy: check both full name and first name, case-insensitive)
    • The session_note field is empty ("") — skip already-linked prep notes
  5. Update both files when a match is found:

    In the prep note:

    • Set session_note: "[[session-note-filename]]" (without .md extension)
    • Set status: done

    In the session note:

    • If a ## See also section 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
  6. Report in the processing output which prep notes were linked, skipped, or not found.

Rules

  • Derive MEETINGS_DIR from the session note path, not from hardcoded values
  • If the meeting-prep config.yaml is available, read prep_notes.prefix (default: prep) and prep_notes.type_tag (default: meeting-prep)
  • This step is non-blocking: if it fails or finds no prep notes, processing still succeeds

Download now (ZIP)

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.