# Extract Insights

> Extract actionable product insights from one or more interview transcripts (synthetic or real)

- Skill: `alaimo-labs/extract-insights` (Agent Skill)
- Install (CLI): `npx skillmds@latest add alaimo-labs/extract-insights`
- Raw SKILL.md: https://api.skillmd.com/api/skills/alaimo-labs/extract-insights/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: alaimo-labs (https://skillmd.com/u/alaimo-labs)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/alaimo-labs/extract-insights

---


# /extract-insights

Extract insights from interview transcripts, following the `insight-extraction` skill.

Input: $ARGUMENTS

## Workflow

1. **Resolve sources.** If files or a persona were named, use those transcripts from `product/interviews/`. With no arguments, use the most recent transcript — or, if the current conversation contains a just-finished interview, use that directly. Real-interview transcripts work too: pasted text or a file path anywhere on disk. When a real transcript lives outside `product/interviews/`, offer to archive a copy there as `{YYYY-MM-DD-HHMM}-{interviewee-slug}.md` with a `source: real` header, so the whole interview corpus stays in one place.

2. **Extract** 3–5 insights per the `insight-extraction` skill: grounded in quotes, actionable, quantified when possible, prioritized by impact, in the transcript's language.

3. **Cross-interview synthesis.** When multiple transcripts are involved, flag insights that recur across interviewees.

4. **Save** to `product/insights/{YYYY-MM-DD-HHMM}-{slug}.md` with a header listing sources and `source: synthetic` or `source: real` (mixed corpora list both per source). For synthetic sources, include the one-time reminder that synthetic insights are hypotheses to verify with real users.

5. **Contrast against the overview's beliefs.** Read the unverified beliefs in `product/overview.md` (skip silently if the file or section doesn't exist) — every scope alike: `[product]`, `[opportunity: {slug}]`, `[feature: {slug}]`. If an insight confirms or contradicts one, say so in one line, citing the insight, and offer to annotate the belief on its own line in the overview: `— confirmed/contradicted/weakened by [insights file] (date)` (status keywords stay in English; no status = still unverified). Only real evidence confirms: insights from `source: real` transcripts can earn `confirmed` or `contradicted`; synthetic insights only signal — call the belief promising in conversation, or propose at most `weakened` when they contradict it, never `confirmed`. Nothing is written without the user's approval.

