coaching-session-summarizer

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Coaching Session Summarizer

教练会话总结器

Overview

概述

Analyzes a coaching/therapy session transcript and appends a structured summary (key insights, decisions, action items, deep analysis, connected trails) to the note.
The agent (Claude Code) performs the analysis directly — reading the transcript and writing the summary in this session. There is no Anthropic API call and no billing; it runs entirely on the active subscription. A legacy API-based script is kept only as a headless fallback (see bottom).
分析教练/治疗会话记录,并在笔记末尾添加结构化总结(关键见解、决策、行动项、深度分析、关联线索)。
由Agent(Claude Code)直接执行分析——在当前会话中读取记录并撰写总结。无需调用Anthropic API,也不会产生费用;完全基于当前订阅运行。仅保留一个基于API的旧版脚本作为无界面备用方案(见底部)。

When to Use This Skill

使用场景

  • A new Fathom/Granola transcript was synced to the vault (coaching or therapy)
  • User asks to summarize/analyze a session (
    /summarize-session [file]
    or similar)
  • After
    calendar-sync
    or a Granola export, when a new
    *-coaching.md
    ,
    *-therapy.md
    , or
    *-session.md
    file appears — offer to summarize it
  • 新的Fathom/Granola记录已同步到知识库(教练或治疗类)
  • 用户请求总结/分析会话(
    /summarize-session [file]
    或类似指令)
  • calendar-sync
    或Granola导出后,当出现新的
    *-coaching.md
    *-therapy.md
    *-session.md
    文件时——主动提供总结服务

Workflow (agent-driven — default)

工作流程(Agent驱动——默认方式)

Do this in-session with native tools. No API key required.
使用原生工具在会话内完成操作,无需API密钥。

Step 1 — Gather context

步骤1 — 收集上下文

Run the deterministic helper to get the transcript text, previous sessions, and the trail list in one shot:
bash
python3 ~/.claude/skills/coaching-session-summarizer/scripts/gather_context.py \
  <transcript-file> --vault ~/Brains/brain
It prints:
  • Previous sessions with the same participant (paths) —
    Read
    these only in deep mode, for cross-session pattern detection
  • Available trails — pick 2–4 most relevant to link
  • Session content — the summary + transcript to analyze (any prior AI-Generated Summary is stripped so re-runs stay clean)
Pass
--participant <name-slug>
if the filename doesn't encode the person (e.g. Granola exports titled by topic):
--participant gleb-kalinin
.
运行确定性辅助工具,一次性获取记录文本、历史会话和线索列表:
bash
python3 ~/.claude/skills/coaching-session-summarizer/scripts/gather_context.py \
  <transcript-file> --vault ~/Brains/brain
该工具会输出:
  • 历史会话:同一参与者的过往会话路径——仅在深度模式下读取,用于跨会话模式检测
  • 可用线索:选择2-4个最相关的线索进行关联
  • 会话内容:待分析的总结+记录文本(会移除之前的AI生成总结,确保重新运行时分析内容干净)
如果文件名未包含参与者信息(例如Granola导出的文件按主题命名),请传入
--participant <name-slug>
参数,例如:
--participant gleb-kalinin

Step 2 — Analyze

步骤2 — 分析

Read the session content and extract, in the analytical voice of a session analyst (objective, using the speaker's authentic language where it matters):
  • Key Insights — 3–5 main realizations / breakthroughs / observations
  • Decisions Made — concrete choices or commitments
  • Action Items — specific next steps; prefix time-sensitive ones with
    [URGENT]
    and scheduling items with
    [SCHEDULING]
  • Session Themes — 2–3 recurring topics or patterns
Deep mode (default for therapy and milestone sessions) — also
Read
the previous sessions and add:
  • Pattern Detection — themes recurring across sessions
  • Progress Assessment — movement on earlier commitments
  • Energy/Motivation Markers — shifts in energy, resistance, affect
  • Potential Obstacles — what might block progress
读取会话内容,以会话分析师的客观视角进行提取(必要时使用发言者的真实表述):
  • 关键见解:3-5个主要的领悟/突破/观察结果
  • 已做出的决策:具体的选择或承诺
  • 行动项:明确的下一步计划;对时间敏感的项前缀标注
    [URGENT]
    ,需安排时间的项前缀标注
    [SCHEDULING]
  • 会话主题:2-3个反复出现的话题或模式
深度模式(治疗会话和里程碑会话默认启用)——同时读取历史会话并添加:
  • 模式检测:跨会话反复出现的主题
  • 进度评估:对先前承诺的进展情况
  • 精力/动力指标:精力、抵触情绪、情感状态的变化
  • 潜在障碍:可能阻碍进展的因素

Step 3 — Append with Edit

步骤3 — 编辑追加

Append the summary to the end of the transcript file using
Edit
(never overwrite existing content). Match this exact structure:
markdown
undefined
使用
Edit
功能将总结追加到记录文件的末尾(切勿覆盖现有内容)。严格遵循以下结构:
markdown
undefined

AI-Generated Summary

AI-Generated Summary

Generated: YYYY-MM-DD
Generated: YYYY-MM-DD

Key Insights

Key Insights

  • ...
  • ...

Decisions Made

Decisions Made

  • ...
  • ...

Action Items

Action Items

  • [URGENT] ...
  • ...
  • [URGENT] ...
  • ...

Session Themes

Session Themes

  • ...
  • ...

Deep Analysis

Deep Analysis

  • Pattern Detection: ...
  • Progress Assessment: ...
  • Energy/Motivation Markers: ...
  • Potential Obstacles: ...
  • Pattern Detection: ...
  • Progress Assessment: ...
  • Energy/Motivation Markers: ...
  • Potential Obstacles: ...

Connected Trails

Connected Trails

  • [[Trails/Trail - <Name>|<Name>]]
  • [[Trails/Trail - <Name>|<Name>]]

Use the current date (`date +%Y-%m-%d`) in the Generated line. Omit the Deep
Analysis section in quick mode. Verify trail link names against the printed
trail list — case and exact wording matter for Obsidian links.
  • [[Trails/Trail - <Name>|<Name>]]
  • [[Trails/Trail - <Name>|<Name>]]

在Generated行中使用当前日期(`date +%Y-%m-%d`)。快速模式下省略Deep Analysis部分。请对照输出的线索列表验证关联线索的名称——Obsidian链接对大小写和精确表述有严格要求。

Modes

模式

  • quick — Key Insights, Decisions, Action Items, Themes. Skip Deep Analysis and previous-session reads.
  • deep (recommended for therapy / milestones) — everything, including reading previous sessions for pattern detection.
  • quick(快速模式):包含关键见解、决策、行动项、主题。跳过深度分析和历史会话读取。
  • deep(深度模式)(推荐用于治疗/里程碑会话):包含所有内容,包括读取历史会话进行模式检测。

Integration with Sync

同步集成

After
calendar-sync
or a Granola/Fathom export, check for new session files (
*-coaching.md
,
*-therapy.md
,
*-session.md
). If one appears, offer: "New session detected — summarize now?" Default to deep mode for therapy.
calendar-sync
或Granola/Fathom导出完成后,检查是否出现新的会话文件(
*-coaching.md
*-therapy.md
*-session.md
)。如果检测到新文件,主动询问:“检测到新会话记录——是否立即总结?”治疗会话默认启用深度模式。

Notes

注意事项

  • Preserves the original transcript intact; the summary is always appended.
  • Trail linking requires the
    Trails/
    directory in the vault root.
  • Cross-session comparison works best with consistent naming:
    YYYYMMDD-name-coaching.md
    /
    YYYYMMDD-name-therapy.md
    .
  • Re-running is safe:
    gather_context.py
    strips any prior AI-Generated Summary before printing, so the agent analyzes only the raw session. (Delete the old
    ## AI-Generated Summary
    block from the file before re-appending if you want to replace rather than stack summaries.)
  • 完整保留原始记录内容;总结始终追加在末尾。
  • 线索关联要求知识库根目录存在
    Trails/
    文件夹。
  • 跨会话对比在命名一致时效果最佳:
    YYYYMMDD-name-coaching.md
    /
    YYYYMMDD-name-therapy.md
  • 重新运行是安全的:
    gather_context.py
    在输出前会移除所有先前的AI生成总结,因此Agent仅分析原始会话内容。(如果希望替换而非堆叠总结,请在重新追加前删除文件中旧的
    ## AI-Generated Summary
    块。)

Resources

资源

scripts/

scripts/

  • gather_context.py(default path) deterministic context gatherer, no API. Prints transcript text + previous sessions + trail list for the agent to analyze in-session.
  • summarize_session.pylegacy / headless fallback. Calls the Anthropic API directly (model via
    SUMMARIZER_MODEL
    , default
    claude-sonnet-4-6
    ) and bills a funded
    ANTHROPIC_API_KEY
    . Use only when no interactive agent is available (e.g. cron). Exits with a clear message if the key has no credit.
  • gather_context.py(默认路径) 确定性上下文收集工具,无需API。输出记录文本+历史会话+线索列表,供Agent在会话内分析。
  • summarize_session.py旧版/无界面备用方案。直接调用Anthropic API(模型通过
    SUMMARIZER_MODEL
    指定,默认
    claude-sonnet-4-6
    ),并从已充值的
    ANTHROPIC_API_KEY
    扣费。仅在无交互式Agent可用时使用(例如定时任务cron)。如果密钥余额不足,会输出清晰提示信息。