Install
openclaw skills install @yiing99/conversation-distillAt 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, judgments, 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.
openclaw skills install @yiing99/conversation-distillThe 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.
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:
Do NOT trigger for:
When you detect a conversation-ending signal, ask one short question — do not launch the 5-step flow automatically.
Condition A — Ending signal (any one):
Condition B — Conversation had distillation value (any one):
Both conditions required. Saying "thanks" after casual chat → no reminder. Substantive conversation still in progress → no reminder.
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".
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)| User reply | Claude 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 |
Scan the entire conversation. Classify everything with distillation value into these 7 categories. Skip any category with no content — don't force it.
| Category | Tag / Marker | Notes |
|---|---|---|
| 💡 Insights / Conclusions | #insight | New understanding, "aha" moments, validated hypotheses |
| 🧭 Judgments | [Judgment] prefix + #judgment | Falsifiable claims that can later be proven right or wrong — see Judgment Card below |
| 🎯 Decisions | [Decision] prefix | Choices made with reasoning, not just outcomes |
| 📊 Facts / Data | ✅ stable, 🕒 + date if time-sensitive | External facts worth keeping |
| 🪞 Observations about yourself | #self | Patterns, preferences, habits noticed during conversation |
| ✅ Action items / TODOs | #todo | Concrete next steps with owner and (optionally) deadline |
| ❓ Open questions | #open-question | Things worth answering later, not yet resolved |
Judgment vs Insight: an insight explains what you learned (backward-looking). A judgment is a falsifiable claim — about what something is, what causes what, or what will happen — that future events can prove right or wrong. If it can't be wrong, it's not a judgment. Vague opinions ("X is important") don't qualify.
Body format:
Claim: {one falsifiable sentence}
Chain: what it is → what causes it → expected consequence → why
Evidence: L{1-5} + source (L1 observed behavior > L2 config/state > L3 official docs > L4 third-party data > L5 descriptions/marketing)
Status: unverified | Review by: YYYY-MM
Lifecycle:
unverified with a review date (default: +3 months)verified or refuted — keep the original claim text intactLook for connections between entries. Default to granular over aggregated:
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.
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
🧭 Judgments (1)
3. [Judgment] [title] — claim + evidence level, review by [YYYY-MM] #judgment
🎯 Decisions (1)
4. [Decision] [title] — the key choice + reason
✅ Action items (2)
5. [title] #todo
6. [title] #todo — due: [date if mentioned]
❓ Open questions (1)
7. [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.
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:
add_knowledge for insights/judgments/decisions/facts, save_memory for self-observations, consistent tagging as above; for judgments that refute or refine an existing entry, also call add_knowledge_link (refutes / evolved_from)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]
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.
Falsifiable or it's not a judgment Judgments must be checkable against future reality. Refuted judgments are kept and referenced, never deleted — the refutation chain is the asset.
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.
| Real-time capture | Conversation Distill | |
|---|---|---|
| When | During the conversation, on highlights | At natural conversation end |
| Scope | Single entry | Entire session |
| Relationship mapping | No | Yes |
| Miss-detection | No | Yes — catches what slipped through |
| Confirmation style | Quick single-entry | Full 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.
add_knowledge, save_memory, recall_memory, get_soul integrate directly with Step 4. Install: npx clawhub@latest install knowmine[Decision] prefix?🕒 + date?#todo, not put in a new folder?The best distillation process is one that fits how you think and work. After a few sessions, ask yourself:
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.