<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
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.
Per the family contract, this skill never blocks on interrogation. Default flow:
If invoked with
, skip the inference summary. Format hints (
,
,
,
) control output presentation without changing the underlying process.
-
Load sources
Read all provided recap filenames or note files. Parse frontmatter to extract meeting metadata. Note per-source input quality (recap frontmatter's
if available; otherwise assess from content).
Metadata source tracking (v1.1.0): for each recap, also note the
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
, state whether the filter includes inferred values and how null values are handled.
-
Apply filters
If time range, topic, or stakeholder filter provided, narrow the source set before proceeding. Record the filter applied in frontmatter
.
-
Present go-mode inference summary
Meeting count after filter, time range detected from source metadata, per-source input quality levels, scope filter description.
-
Build the plain-text timeline
Chronological order by
. 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).
-
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).
-
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.
-
Consolidate decisions
Cross-meeting, sorted chronologically. Table format: Date | Decision | Context | Meeting | Confidence.
-
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.
-
Identify open items and stalled threads
Topics surfacing 2+ times without resolution. When they last appeared.
-
Draft narrative summary
2-3 paragraphs: what happened, what changed, where we are, what is at stake. The "story" of the meeting set.
-
Prioritize follow-up suggestions
- High: unblocking now; suggested owner or forum
- Medium: important but not blocking
- Low: monitor
Each with rationale.
-
Apply format hint (if provided)
One process generates the full synthesis data. The hint controls section ordering and truncation for the specific use case:
- : lead with narrative + contradictions + prioritized follow-ups; shorter timeline
- : lead with narrative + stakeholder tracking; full timeline
- : lead with themes + stalled threads + meeting-quality aggregate
- : TL;DR + top 3 items only
-
Render TEMPLATE.md and validate
- list is non-empty
- ≤
- Every theme has a confidence marker
- Every contradiction has before/after source citations
- At least 1 prioritized follow-up