coaching-session-summarizer
This skill should be used to summarize coaching or therapy session transcripts after a Fathom/Granola sync. The agent analyzes the transcript itself…
它会碰到什么
逐条看命中(2 条严重或高危)
- 高
scripts/summarize_session.py:19cred-envreadMODEL = os.environ.get("SUMMARIZER_MODEL", "claude-sonnet-4-6") - 高
scripts/summarize_session.py:241cred-envreadapi_key = os.environ.get('ANTHROPIC_API_KEY')
这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。
技能内容
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).
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-syncor a Granola export, when a new*-coaching.md,
-therapy.md, or -session.md file appears — offer to summarize it
Workflow (agent-driven — default)
Do this in-session with native tools. No API key required.
Step 1 — Gather context
Run the deterministic helper to get the transcript text, previous sessions, and
the trail list in one shot:
python3 ~/.claude/skills/coaching-session-summarizer/scripts/gather_context.py \
<transcript-file> --vault ~/Brains/brain
It prints:
- Previous sessions with the same participant (paths) —
Readthese 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.
Step 2 — Analyze
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
Step 3 — Append with Edit
Append the summary to the end of the transcript file using Edit (never
overwrite existing content). Match this exact structure:
## AI-Generated Summary
*Generated: YYYY-MM-DD*
### Key Insights
- ...
### Decisions Made
- ...
### Action Items
- [URGENT] ...
- ...
### Session Themes
- ...
## Deep Analysis
- **Pattern Detection**: ...
- **Progress Assessment**: ...
- **Energy/Motivation Markers**: ...
- **Potential Obstacles**: ...
## 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.
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.
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.
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.pystrips 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.)
Resources
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.py — legacy / 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.
想直接用这个技能?
本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。