CommunityRedacción y edicióngithub.com

YIING99/conversation-distill

At the natural end of a meaningful conversation, show a one-line soft reminder asking the user if they want to distill — do NOT auto-start.

Compatible conClaude Code~Codex CLI~Cursor
npx add-skill YIING99/conversation-distill

name: conversation-distill description: "At the natural end of a meaningful conversation, show a one-line soft reminder asking the user if they want to distill — do NOT auto-start. Only ask when the conversation had distillation value (decisions, insights, lessons, open questions, action items). If user says yes, run the full 5-step classify→confirm→write flow. Trigger reminder when: (1) closing phrases detected ('thanks', 'done', 'that's all', '好的就这样') AND conversation had substantive content; (2) user explicitly says 'distill', 'wrap up', '收尾'. Never auto-start without asking first." version: 1.0.0 tags:

  • knowledge-management
  • productivity
  • notes
  • memory
  • workflow
  • pkm permissions: []

Conversation Distill

The biggest waste of a conversation isn't that nothing was saved — it's that valuable insights are buried in the process and never revisited.

This skill closes every meaningful conversation with one explicit action: classify → confirm → write.

When to Use

The core problem this solves: real-time capture ≠ session-level distillation.

Real-time capture handles individual highlights as they appear. This skill is the closing ritual — a full scan of the entire conversation to see what was produced, identify relationships, and catch what slipped through.

Trigger when:

  • User says a closing phrase: "that's all", "got it", "thanks", "done for now", "wrap up"
  • 3+ consecutive turns with no new topics (just confirmations or thanks)
  • User switches to an unrelated topic and the previous topic had substantive output not yet saved
  • User explicitly says: "distill", "save this session", "wrap up", "收尾", "沉淀"

Do NOT trigger for:

  • Quick single-turn queries (one question, one answer)
  • Casual conversation or emotional support
  • Pure coding/debugging/execution tasks with no knowledge output
  • When user is already actively writing notes this session
  • When user says "don't save" or "skip it"

Soft Ask Pattern (Ask First, Never Auto-Start)

When you detect a conversation-ending signal, ask one short question — do not launch the 5-step flow automatically.

When to Show the Reminder (Both Conditions Required)

Condition A — Ending signal (any one):

  • User says: "thanks", "done", "that's all", "good", "got it", "OK", "谢谢", "好的就这样", "搞定了", "没了"
  • 3+ consecutive turns with no new topics

Condition B — Conversation had distillation value (any one):

  • A decision or trade-off was made
  • Architecture, design, or strategy was discussed
  • A lesson, mistake, or best practice emerged
  • There are unrecorded TODOs or open questions

Both conditions required. Saying "thanks" after casual chat → no reminder. Substantive conversation still in progress → no reminder.

Pre-Scan Before Reminding

Before showing the reminder, do a quick scan of the conversation. Pick the single most representative item (a decision, a lesson, an open question) to use as the preview. Be specific — "the decision about X" beats "some content".

Reminder Phrasing (With Preview)

For Chinese conversations:

💾 这次对话有 {N} 条值得沉淀的内容(比如{最代表性的一条,10字内}...)。要收尾整理吗?(说「要」开始,「不用」跳过)

For English conversations:

💾 Found {N} things worth saving ({one-line preview, e.g. "the decision about X"}...). Quick distill? (say "yes" to start, "skip" to pass)

Good vs bad:

  • 💾 Found 3 things worth saving (e.g. the trade-off decision about auth strategy...). Quick distill?
  • 💾 This conversation has content worth saving. Want a quick distill? (too generic — doesn't signal understanding)

Response Handling

User replyClaude action
"要" / "好" / "收尾" / "distill" / "yes" / "go"Launch full 5-step flow immediately
"不用" / "跳过" / "skip" / "no" / "pass"Reply "好的,跳过。" / "Sure, skipping." — then stop, do not remind again this session
User continues with new topic (no direct reply)Do not treat as permanent skip — allow one more reminder at the next conversation-ending signal

Five-Step Flow

Step 1: Full Scan — 6-Category Classification

Scan the entire conversation. Classify everything with distillation value into these 6 categories. Skip any category with no content — don't force it.

CategoryTag / MarkerNotes
💡 Insights / Conclusions#insightNew understanding, "aha" moments, validated hypotheses
🎯 Decisions[Decision] prefixChoices made with reasoning, not just outcomes
📊 Facts / Data stable, 🕒 + date if time-sensitiveExternal facts worth keeping
🪞 Observations about yourself#selfPatterns, preferences, habits noticed during conversation
Action items / TODOs#todoConcrete next steps with owner and (optionally) deadline
Open questions#open-questionThings worth answering later, not yet resolved

Step 2: Relationship Mapping

Look for connections between entries. Default to granular over aggregated:

  • Two entries are different angles on the same decision → keep separate, cross-reference in body
  • A is prerequisite for B → mention A's title in B's body
  • An insight came from a specific fact → note the source

Do not default to merging everything into one long summary note. Granular entries are more useful — they're easier to find, tag, link, and reuse independently.

Step 3: User Confirmation (Mandatory)

Present the classified list to the user in this format:

This conversation produced N items worth saving:

💡 Insights (2)
  1. [title] — one sentence summary
  2. [title] — one sentence summary

🎯 Decisions (1)
  3. [Decision] [title] — the key choice + reason

✅ Action items (2)
  4. [title] #todo
  5. [title] #todo — due: [date if mentioned]

❓ Open questions (1)
  6. [title] #open-question

Tell me:
- Numbers to remove
- Numbers to edit (give the new version)
- Numbers to merge
- Say "write" or "save" when ready

Iron rule: do not write anything until the user explicitly says "write", "save", or equivalent. "Looks good" is not enough — ask once more to confirm.

Step 4: Batch Write

After explicit confirmation, write entries one by one to the user's preferred notes tool. Report back a confirmation (ID, title, or link) for each successful write. For any failures, list them separately and ask the user what to do: retry / rewrite / skip.

Which tool to write to:

  • If the user has KnowMine MCP configured → use add_knowledge for insights/decisions/facts, save_memory for self-observations, consistent tagging as above
  • If the user has another notes MCP (Notion, Obsidian, etc.) → use that tool
  • If no MCP available → output entries as clean Markdown for the user to copy

Step 5: Surface Leftovers

Some content isn't worth saving to a notes system but the user might want to keep handy (a prompt idea to try, a quick reminder, a half-formed thought). Don't force these into any tool. Output as a plain Markdown block:

## Leftovers (not saved — for your reference)

- [rough idea or reminder]
- [something to try next time]

Key Principles

Granular over hub Default to separate entries. One insight per entry, one decision per entry. Build a summary note only when explicitly useful, and cross-reference the granular entries in it.

Confirm before write Never batch-write without the user's explicit go-ahead. The confirmation step is not optional — it's where the user catches misclassifications and adjusts framing.

Tags over folders for action items Don't create a dedicated "TODO folder". Tag action items with #todo inside whatever folder/space makes contextual sense. The tag is searchable; the folder is just noise.

Time-sensitivity matters Data that will become stale (prices, versions, availability) should be flagged 🕒 + date so you know when to re-verify.

Bilingual tags when relevant If the user works in multiple languages, add tags in both languages to improve cross-language search recall.


This Skill vs Real-Time Capture

Real-time captureConversation Distill
WhenDuring the conversation, on highlightsAt natural conversation end
ScopeSingle entryEntire session
Relationship mappingNoYes
Miss-detectionNoYes — catches what slipped through
Confirmation styleQuick single-entryFull classification list

Both run in parallel. Real-time capture handles obvious highlights. This skill handles value that's only visible with a full-session view — relationships, patterns, and things you didn't realize were worth saving in the moment.


Works Best With

  • KnowMine — remote MCP server with semantic search; add_knowledge, save_memory, recall_memory, get_soul integrate directly with Step 4. Install: npx clawhub@latest install knowmine
  • Any MCP-compatible notes tool (Notion, Obsidian via MCP, etc.)
  • Works without any MCP too — outputs clean Markdown for manual paste

Anti-Patterns

  • ❌ Writing before user confirms
  • ❌ Creating a "TODO folder" — use tags
  • ❌ Merging everything into one summary note
  • ❌ Triggering on single-turn Q&A
  • ❌ Re-triggering after user said "skip it"
  • ❌ Forcing low-value leftovers into the notes tool

Self-Check Before Presenting the List

  • Any category with no real content? (remove it — don't pad)
  • Every decision has [Decision] prefix?
  • Time-sensitive data marked 🕒 + date?
  • Action items tagged #todo, not put in a new folder?
  • Any "fake summary" entries that should be split granularly?

Evolving This Skill

The best distillation process is one that fits how you think and work. After a few sessions, ask yourself:

  • Which step felt unnecessary or awkward?
  • Which type of content keeps needing special handling?
  • Is the 6-category split right for you, or should some be merged / split?

When you find patterns, update your personal copy of this skill to reflect them. Your tools should adapt to you, not the other way around.

Skills relacionados