stefanoskarakasis/Product-Marketing-Skills

interview-summary

Turns raw customer interview transcripts into structured discovery outputs anchored in JTBD theory, with signal-level pattern detection and confidence scoring.

ソースを見る

使い方

  1. インストールコマンドをコピーし、自分の環境へ導入する前にソースを確認します。
  2. 必要なツール、認証情報、対応環境を原文で確認します。
  3. 入力と成果物を指定し、出力を資料と照合します。
npx skills add https://github.com/stefanoskarakasis/Product-Marketing-Skills --skill interview-summary

開始前の確認

  • 導入にはモデル契約、API枠、ファイルへのアクセス許可は含まれません。
  • スター数や導入数は活動の指標であり、独立した品質・安全性試験ではありません。
リポジトリの原文

見出し、例、コード、表、リンク、参照画像を含む原文を表示しています。

interview-summary — Customer Discovery Synthesis Engine

Transforms raw interview transcripts into structured intelligence. Not a transcription service. A synthesis engine that extracts Jobs, surfaces patterns, and flags contradictions with your positioning or ICP. Built on JTBD theory. Sharpened for B2B product and GTM contexts.


Trigger

  • When: Any customer or prospect interview needs synthesis into structured discovery output.

This includes: discovery calls, win/loss debriefs, churn interviews, competitive research interviews, onboarding feedback, feature validation calls, or any call where you need to extract Jobs, map solutions, and flag contradictions with your positioning or ICP.

  • Not for:
  • interview-summary is not a transcription tool — use Otter.ai or Fireflies for that.
  • interview-summary is not for analyzing your own positioning or messaging in isolation.

If you need to check whether your messaging lands with buyers, route to positioning-messaging or gaccs-brief.

  • interview-summary is not for building buyer personas from scratch without interviews.

No dedicated persona-building skill exists yet; this skill synthesizes existing transcript data only.

  • Example prompts:
  • "Summarize this customer discovery call and flag which Jobs matter most"
  • "I have a win/loss interview — help me extract what we lost and why"
  • "Process this transcript. Flag any positioning signal that contradicts our current narrative"
  • "Churn interview debrief — what Job did we fail to deliver on?"

Inputs

  • Args: Path to a transcript file (.txt, .md, .pdf), pasted plain text,

structured note dump, or Otter/Fireflies/Rev transcription output. Optional: interview context (interviewee role, company, interview purpose). Free format — transcript alone is sufficient; context makes synthesis sharper.

  • Defaults: If no context provided, skill asks three orientation questions.

If interviewee segment unknown, default to "Unclassified" in ICP match. If no interview type specified, default to "Discovery".

  • Context keys:
  • /foundation/brain.md — optional. Section 2 (ICP, including the confirmed beachhead segment) and Section 3 (Alternatives & Positioning), used only to validate the ICP match and to compare named alternatives. Never used to shape what the transcript says.
  • Brain contract: Reads Sections 2, 3. Writes: none. Never writes to: Sections 1 to 8. Customer words, objections and switching forces from a summary are stored by product-marketing-context (Add material) after you approve the Brain Diff.
  • /context/meta-patterns.md — optional; recurring patterns the user has logged from prior interviews

Connectors (Optional)

ConnectorWhat it adds
~~call recordingsTranscripts pulled instead of pasted
~~emailCustomer email threads
No connectors? Paste the material and I'll work from that. The output has the same shape. Pulled facts are drafts: each is tagged with category, tool and date, and nothing is written until you confirm.

Pre-flight

  • If /context/meta-patterns.md exists in the user's workspace, check for recurring patterns they've logged from prior interviews. If one applies, surface a guardrail prompt before Step 1. Skip silently if the file doesn't exist.
  • Load /foundation/brain.md if it exists. Extract: Section 2 (ICP, including the confirmed beachhead segment) and Section 3 (Alternatives & Positioning).

If missing, surface non-blocking notice: "No brain context. Synthesis will be transcript-isolated."

  • Accept transcript in any format: pasted text, uploaded file (.txt, .md, .pdf),

or structured notes. Read the full file before producing output.

  • Identify interview type (Discovery / Validation / Win-loss / Churn / Competitive / Other)

from context or ask in intake step.


Steps

Step 1: Orientation & Context Load

  • If no context provided, ask: "Who is this? (role, company, segment) | What was the purpose? | What are you trying to learn?"
  • Load /foundation/brain.md and extract ICP, Positioning, Beachhead Segment for validation.
  • Declare interview type and confidence upfront.

Step 2: Intake & Pre-Synthesis Audit

  • Read transcript in full.
  • Run silent pre-synthesis audit: Does it have ≥1 identifiable Job? Current solution? Satisfaction signals? Verbatim quotes?
  • If too sparse, surface: "Coverage too thin. What I can extract: [list]. Proceed with caveats or follow up?"
  • If adequate: proceed to synthesis.

Step 3: JTBD Synthesis & Pattern Matching

  • Extract Jobs (functional, emotional, social).
  • For each Job: Desired outcome, Importance, Satisfaction level, Verbatim signal.
  • If /context/meta-patterns.md exists, check whether any cross-skill pattern logged there applies.
  • Flag any new signal worth tracking: is this a new Job type or pattern the user hasn't seen before?

Step 4: Validation Against Context

  • ICP match: Does this interviewee match the ICP? Flag if not.
  • Anti-ICP discovery: Does this interview surface a signal that suggests this segment is a poor fit? (e.g., "Long procurement cycles are a blocker").
  • Positioning signal: Does what they said validate or contradict current positioning?
  • Beachhead alignment: Does this person represent the beachhead or an adjacent segment?
  • Objection discovery: Any new objection or anti-persona signal?

Step 5: Generate Structured Summary

  • Produce markdown summary with template structure.
  • All Metadata fields on separate lines; all Job fields on separate lines; separate Key Insights (analysis only) from Signal Quotes (verbatim only).
  • Include Action Items table with named owners and dates.
  • Include Flags section (contradictions with positioning or ICP) or explicitly mark "None detected".

Step 6: Surface Learnings

  • If a strategic signal surfaced (an ICP change, a positioning contradiction, a new pattern worth tracking),

name it explicitly and ask the user if and where they'd like it saved — their own notes, a brain-adjacent doc, or /context/meta-patterns.md if they maintain one. This skill does not write to any file on its own.

  • If an anti-ICP signal was discovered, flag it and ask if the user wants to update

/foundation/brain.md Section 2 themselves — offer to draft the wording, but don't write it. Step 7: Learning Close

  • Ask: "What surprised you most? Wish I'd flagged anything else?"
  • Ask: "Does this change your view of the most important Job?"
  • Ask: "Does this change how you want to describe the problem?"
  • Append one entry to /context/skill-sessions.md, in the format defined in product-marketing-context/.claude-plugin/skill-sessions-format.md (Type A — execution session), folding the answers to the three questions above into pattern:
`yaml
     type: execution
     skill: interview-summary
     session_date: [YYYY-MM-DD]
     pattern: [one falsifiable statement drawn from the three questions above,
       or "none" if nothing notable surfaced]
     source: [surprised / wrong / missing / N/A]

Write this row directly — do not ask the user for permission. This is a separate, mechanical log entry, distinct from the interview summary itself.


Outputs

  • Chat output format: Structured markdown summary with Metadata, Background, Current Solution, What they like, Problems (JTBD blocks),

Key Insights, Action Items table, Flags, Signal Quotes, Pattern Signal. All output in markdown, copy-paste ready for Notion, GitHub, or email.

  • Files written: /context/skill-sessions.md — one appended row per session, per Step 7.
  • External side effects: None beyond the session log above. The interview summary itself is never written to a file unless the user asks and confirms where.

Verification

  • [ ] Guardrails checked if /context/meta-patterns.md exists
  • [ ] Every summary includes Metadata with Date, Participants, Interview Type, Confidence, ICP Match.
  • [ ] Every Job block has: Job name, Desired outcome, Importance + evidence, Satisfaction + evidence, Verbatim signal.
  • [ ] Key Insights contain only analysis — no verbatim quotes (those go in Signal Quotes section).
  • [ ] Signal Quotes are verbatim, not paraphrased. Include speaker name and context.
  • [ ] Action Items table has named owners (not placeholders) and real dates (YYYY-MM-DD format).
  • [ ] Flags section is populated with contradictions, or explicitly states "None detected".
  • [ ] Session logged to /context/skill-sessions.md (Step 7).
  • [ ] ICP match is assessed (not defaulted to "Yes") — reasoning included if "Partial" or "No".
  • [ ] Anti-ICP signals are flagged and surfaced to the user, not silently dropped.
  • [ ] Positioning signals are noted in Key Insights or Flags, not omitted.
  • [ ] If sparse transcript: confidence is 🔴 Low and warning prepended.

Do Not Use For

  • Transcription — use Otter.ai, Fireflies, or Rev. This skill synthesizes, not transcribes.
  • Building personas from scratch — no dedicated skill exists yet. This skill processes existing interviews.
  • Analyzing your own positioning in isolation — use positioning-messaging or gaccs-brief.

Route: positioning-messaging for positioning audit, gaccs-brief for campaign messaging.


Operating Rules

  1. Context-first synthesis — Load /foundation/brain.md before synthesis, if it exists.

If missing, surface non-blocking notice. Synthesis is transcript-isolated if context missing.

  1. Full transcript read — Never summarize from a partial read. Read the complete file before output.
  2. Confidence calibration — Score (🟢 High / 🟡 Medium / 🔴 Low) based on transcript quality and completeness.

For 🔴 summaries, prepend explicit warning. Confidence must match input quality, not optimism.

  1. Every Job gets all five fields — Job, Desired outcome, Importance + evidence, Satisfaction + evidence, Verbatim signal.

No blank fields. No block text. Each on its own line.

  1. Verbatim quotes are sacred — Signal Quotes are exact verbatim. Key Insights are pure analysis, no quotes.

Never paraphrase a quote as verbatim. Never bury a quote in an insight.

  1. ICP match is assessed, not defaulted — If interviewee matches ICP: state "Yes". If partial match: state "Partial" with reason.

If doesn't match: state "No" with reason. Never default to "Yes" for convenience.

  1. Anti-ICP discovery is actionable — If interview surfaces a signal like "long procurement cycles", flag it explicitly.

Offer to draft an update for the user to make themselves. Don't suppress it.

  1. Positioning signals are explicit — If interview validates positioning, state it. If contradicts, flag it.

If neutral, mark as such. Don't suppress contradictions.

  1. Interview type shapes the synthesis — Win/loss emphasizes what we lost and why.

Churn emphasizes Job delivery failure. Discovery emphasizes new Jobs. Validation emphasizes confirmation or contradiction. Weighting differs by type; synthesis logic adapts.


Quality Gate

CheckStandardPass =
Guardrails surfaced/context/meta-patterns.md checked if it existsYes
Frontmatter completename, version, description, metadata presentYes
All required sectionsTrigger, Inputs, Pre-flight, Steps, Outputs, Verification, Do Not Use For, Operating Rules, Quality GateYes
Steps named and imperativeSteps in imperative formYes
Outputs specify all sub-fieldsChat format, side effectsYes
Verification is concreteCheckable checksYes

Summary Output Template

`markdown
---
# Interview Summary
interview-summary v2.3.0
---
## 📋 Metadata
**Date:** [Date and time]
**Participants:** [Interviewer name + role] | [Interviewee name + role + company]
**Interview type:** [Discovery / Validation / Win-loss / Churn / Competitive / Other]
**Confidence:** [🟢 High / 🟡 Medium / 🔴 Low]
**ICP match:** [Yes / Partial / No — one-line reason if not Yes]
**Anti-ICP signals:** [List if any, else "None detected"]
---
## 🏢 Background
[Role, company, team size, and context about their situation.]
---
## 🛠️ Current solution
[What they use today — tool, process, or workaround.]
---
## ✅ What they like about their current solution
- **[Strength label]:** [What Job it satisfies and how.]
---
## 🔴 Problems with their current solution
**Job:** [The functional task they're trying to get done]
**Desired outcome:** [What success looks like for them]
**Importance:** [Critical / High / Medium / Low] — [one-line evidence]
**Satisfaction:** [Not satisfied / Partially / Satisfied] — [one-line evidence]
**Verbatim signal:** *"[Exact quote if available]"*
[Repeat block per Job. Separate each with a line break.]
---
## 💡 Key insights
- [Unexpected finding or analytical observation — no quotes here, pure interpretation.]
---
## 📋 Action items
| Date | Owner | Action |
|------|-------|--------|
| YYYY-MM-DD | [Name] | [Specific action] |
---
## ⚠️ Flags
- **[Flag label]:** [What it contradicts and why it matters.]
---
## 🗣️ Signal quotes
> *"[Quote]"* — [Speaker, context. What makes this one irreplaceable.]
---
## 📊 Pattern signal
**New signal for tracking:** [Yes / No]
**Anti-ICP signal detected:** [Yes / No — specific signal]

Related Skills

Cross-reference when findings trigger downstream work:

  • product-marketing-context → Always load first. Use to validate ICP, Positioning, Beachhead.
  • gaccs-brief → Messaging hypothesis surfaced → route here for campaign brief.
  • pre-mortem → Risk or failure mode surfaced by customer → route here.
  • pmm-okrs → Success metric gap surfaces → route here for KR signal.

Commands

CommandWhat it does
/summarize [transcript or file]Run the full synthesis flow on a transcript
/summarize-quick [transcript or file]Output only: skips intake questions, produces summary immediately
/closeRun the Learning Close for the current session
/helpShow available commands

タスクに関連する項目

同じリポジトリから

関連する Skills

すべての Skills
stefanoskarakasis
コミュニティ

brand-voice

Builds a persona-adaptive Voice & Tone guide (brand attributes, tone shifts by buyer type and channel, forbidden language), then deepens brain Section 4. Trigger with "how should we sound", "voice guide", "our copy feels off", "we sound like everyone else", "adapt tone for", or any request to define, apply, or audit how the brand communicates.

導入数
0
GitHub Stars
7
更新日
10月25日
stefanoskarakasis
コミュニティ

buyer-personas

Maps the enterprise buying committee (Economic Buyer, Champion, Technical Evaluator, End User, Procurement) before any messaging, then builds Dunford-structured, alternatives-anchored personas ready for positioning-messaging. Trigger with "map our buying committee", "who do we need to win over", "build our buyer personas", "who kills our deals", or any request to identify or profile the people involved in a B2B purchase.

導入数
0
GitHub Stars
7
更新日
10月25日
stefanoskarakasis
コミュニティ

customer-stories

Runs a B2B customer story from kickoff to customer approval: kickoff questions, internal brief, interview questions, a draft in one fixed structure, the customer review pack and an audit, with every stat and quote checked. Trigger on: "write a customer story", "kick off a case study", "customer interview questions", "prepare the customer review", "audit this customer story". Related: interview-summary, proof-points, writing-assistant.

導入数
0
GitHub Stars
7
更新日
10月25日
stefanoskarakasis
コミュニティ

experiment-ideas

Generates several concrete, cost-efficient growth ideas, each with a channel, core message and cost-efficiency rationale, grounded in your brain's ICP, alternatives and market context. Trigger with "give me marketing ideas", "brainstorm growth tactics", "what should we try", "cheap ways to promote this", or any request to generate raw campaign or channel ideas before committing to one to test.

導入数
0
GitHub Stars
7
更新日
10月25日