Back to Skills

foundation-meeting-synthesize

product-on-purpose
Updated 2 days ago
4 views
238
33
238
View on GitHub
Metaai

About

This skill analyzes multiple meeting transcripts over time to reveal evolving patterns, decisions, and contradictions not visible in single meetings. It outputs a synthesized timeline, stakeholder positions, consolidated decisions, and flagged inconsistencies. Use it to track project evolution and identify stalled threads or conflicting points across a series of discussions.

Quick Install

Claude Code

Recommended
Primary
npx skills add product-on-purpose/pm-skills -a claude-code
Plugin CommandAlternative
/plugin add https://github.com/product-on-purpose/pm-skills
Git CloneAlternative
git clone https://github.com/product-on-purpose/pm-skills.git ~/.claude/skills/foundation-meeting-synthesize

Copy and paste this command in Claude Code to install this skill

Documentation

<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->

Meeting Synthesize

Meeting synthesis is the archaeology skill for multi-meeting initiatives. It consumes a set of meeting recaps (and optionally raw notes) over a period, and surfaces patterns that no single meeting reveals: how decisions evolved, how stakeholder positions shifted, where threads are stalling, where contradictions have emerged.

Distinct from /discover-interview-synthesis: that skill works on user-research conversations with research-specific frameworks (jobs-to-be-done, buying insights). This skill works on internal org meetings with org-specific patterns (stakeholder alignment, decision evolution, project history).

This skill belongs to the Meeting Skills Family. It conforms to the Meeting Skills Family Contract.

When to Use

  • Board prep or exec-brief preparation across a meeting sequence
  • Onboarding a new team member into the history of an initiative
  • Project retrospective input (the story of how we got here)
  • Investigating why a multi-meeting initiative has stalled
  • Quarterly review of a topic that has crossed many meetings
  • Surfacing contradictions that no single-meeting reviewer caught

When NOT to Use

  • Single-meeting summary. Use /meeting-recap instead.
  • Communicating outcomes outward. Use /stakeholder-update.
  • User research conversation synthesis. Use /discover-interview-synthesis.

Zero-friction execution

Per the family contract, this skill never blocks on interrogation. Default flow:

  1. Load all provided source files (recaps preferred, raw notes accepted with lower input-quality flag)
  2. Apply any filters (time range, topic, stakeholder)
  3. Run inference on themes, stakeholder evolution, contradictions
  4. Present a brief inference summary (meeting count after filter, time range detected, per-source input quality, scope filter applied)
  5. Accept go or corrections
  6. Produce the synthesis

If invoked with --go, skip the inference summary. Format hints (board-prep, onboarding, retro-input, exec-brief) control output presentation without changing the underlying process.

Instructions

When asked to create a meeting synthesis, follow these steps:

  1. Load sources Read all provided recap filenames or note files. Parse frontmatter to extract meeting metadata. Note per-source input quality (recap frontmatter's input_quality if available; otherwise assess from content).

    Metadata source tracking (v1.1.0): for each recap, also note the meeting_type_source field (explicit | inferred | null). When synthesizing across mixed sources, the synthesis must document the mix explicitly in the Scope section: "meeting_type values: N explicit, M inferred, K null." This prevents non-reproducible results when filtering by meeting_type across a mix of confidence levels. If filtering by meeting_type, state whether the filter includes inferred values and how null values are handled.

  2. Apply filters If time range, topic, or stakeholder filter provided, narrow the source set before proceeding. Record the filter applied in frontmatter scope_filter.

  3. Present go-mode inference summary Meeting count after filter, time range detected from source metadata, per-source input quality levels, scope filter description.

  4. Build the plain-text timeline Chronological order by meeting_date. Each entry shows date, meeting name, key decision or shift, and confidence or contradiction flag if applicable. Render as markdown (no binary images. must render everywhere).

  5. Extract themes Cluster recurring topics across sources. For each theme, record description, sources where it appeared, and confidence marker tied to frequency ("appears in 5/5 meetings" → high; "appears in 2/5 meetings" → medium; "mentioned in 1 meeting" → low).

  6. Track stakeholder positions For each named stakeholder across sources, record initial position → current position, alignment state (aligned / divergent / shifting), and key statements with dates. Flag confidence on each position based on whether it was direct-quoted or paraphrased.

  7. Consolidate decisions Cross-meeting, sorted chronologically. Table format: Date | Decision | Context | Meeting | Confidence.

  8. Separate decision evolution from unresolved contradictions (v1.1.0) Two distinct outputs, not one combined "contradictions" section:

    • Decision evolution (resolved): earlier decision → later decision on the same topic, where the later one supersedes. This is historical context, not a red flag. No emphasis.
    • Unresolved contradictions: decisions or positions currently in conflict that need reconciliation. Use visual emphasis. For each:
      • Earlier reference (meeting + date + decision)
      • Later reference (meeting + date + decision that conflicts)
      • Status: unresolved / needs reconciliation

    The distinction matters because v1.0.0 conflated them, creating false-positive "contradictions" in exec contexts where the "contradiction" was actually intentional scope evolution.

  9. Identify open items and stalled threads Topics surfacing 2+ times without resolution. When they last appeared.

  10. Draft narrative summary 2-3 paragraphs: what happened, what changed, where we are, what is at stake. The "story" of the meeting set.

  11. Prioritize follow-up suggestions

    • High: unblocking now; suggested owner or forum
    • Medium: important but not blocking
    • Low: monitor Each with rationale.
  12. Apply format hint (if provided) One process generates the full synthesis data. The hint controls section ordering and truncation for the specific use case:

    • board-prep: lead with narrative + contradictions + prioritized follow-ups; shorter timeline
    • onboarding: lead with narrative + stakeholder tracking; full timeline
    • retro-input: lead with themes + stalled threads + meeting-quality aggregate
    • exec-brief: TL;DR + top 3 items only
  13. Render TEMPLATE.md and validate

    • source_meetings list is non-empty
    • time_range.starttime_range.end
    • Every theme has a confidence marker
    • Every contradiction has before/after source citations
    • At least 1 prioritized follow-up

Quality checklist

  • Source meetings listed with filename + date + per-source input quality
  • Time range populated and sensible
  • Scope filter described (or "none applied")
  • Timeline is plain-text markdown (no binary images)
  • Themes include confidence markers tied to frequency
  • Stakeholder position tracking shows evolution (initial → current), not just snapshot
  • Consolidated decision list is chronological with source citations
  • Contradictions are flagged in their own first-class section (not buried)
  • Narrative summary is 2-3 paragraphs, not bullets
  • Follow-ups are prioritized (High / Medium / Low) with rationale
  • Frontmatter omits single-meeting fields (meeting_title, meeting_date, etc.)
  • Sources and References weights input quality across sources

See also

GitHub Repository

product-on-purpose/pm-skills
Path: skills/foundation-meeting-synthesize
0
agent-skillsai-skillsclaude-codeclaude-desktopdesign-sprintfoundation-sprint

Related Skills

content-collections

Meta

This skill provides a production-tested setup for Content Collections, a TypeScript-first tool that transforms Markdown/MDX files into type-safe data collections with Zod validation. Use it when building blogs, documentation sites, or content-heavy Vite + React applications to ensure type safety and automatic content validation. It covers everything from Vite plugin configuration and MDX compilation to deployment optimization and schema validation.

View skill

polymarket

Meta

This skill enables developers to build applications with the Polymarket prediction markets platform, including API integration for trading and market data. It also provides real-time data streaming via WebSocket to monitor live trades and market activity. Use it for implementing trading strategies or creating tools that process live market updates.

View skill

creating-opencode-plugins

Meta

This skill helps developers create OpenCode plugins that hook into 25+ event types like commands, files, and LSP operations. It provides the plugin structure, event API specifications, and implementation patterns for JavaScript/TypeScript modules. Use it when you need to intercept, monitor, or extend the OpenCode AI assistant's lifecycle with custom event-driven logic.

View skill

sglang

Meta

SGLang is a high-performance LLM serving framework that specializes in fast, structured generation for JSON, regex, and agentic workflows using its RadixAttention prefix caching. It delivers significantly faster inference, especially for tasks with repeated prefixes, making it ideal for complex, structured outputs and multi-turn conversations. Choose SGLang over alternatives like vLLM when you need constrained decoding or are building applications with extensive prefix sharing.

View skill