From 2a3245df1dcad23cca733cf2d8ecccf331382102 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 13 Oct 2026 05:47:04 +0000 Subject: [PATCH] Rewrite the README as a short project front page and move detail into docs The README now answers what Distilly is, why personal agents need it, how to install and use it, how it works (with a Mermaid diagram), which agents it supports, and where the docs are. Everything it no longer shows moved into docs/how-it-works.md, docs/data-sources.md, docs/hosts.md, docs/examples.md and docs/news.md. README_ZH.md is retranslated to match. The README tests now find sections by heading name instead of emoji, and the translation sync test compares section counts because headings are translated. Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01BCNTLRpPjuxPaVo3prVatk --- README.md | 369 ++++++---------------------- docs/data-sources.md | 17 ++ docs/examples.md | 57 +++++ docs/hosts.md | 38 +++ docs/how-it-works.md | 81 ++++++ docs/lang/README_ZH.md | 366 ++++++--------------------- docs/news.md | 23 ++ tests/test_skill_entrypoint_docs.py | 15 +- tests/test_translation_sync.py | 6 +- 9 files changed, 376 insertions(+), 596 deletions(-) create mode 100644 docs/data-sources.md create mode 100644 docs/examples.md create mode 100644 docs/hosts.md create mode 100644 docs/how-it-works.md create mode 100644 docs/news.md diff --git a/README.md b/README.md index c4a6f246..c213dcf9 100644 --- a/README.md +++ b/README.md @@ -2,116 +2,87 @@ Distilly — Distill how they think into Person Profiles for Agents -
+# Distilly -# 🧬 Distilly - -**Formerly: Colleague Skill / colleague-skill.** - -### Distill a person's experience, judgment, voice, and ways of working into a reusable Person Profile for AI agents and compatible bots. - -**Messages · documents · interviews · public sources → Distilly → Person Profile → Agent / Bot** +**Turn what someone has written and said into a Person Profile your agent can use.** [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![Python 3.9+](https://img.shields.io/badge/Python-3.9%2B-blue.svg)](https://python.org) [![AgentSkills](https://img.shields.io/badge/AgentSkills-Standard-green)](https://agentskills.io) -[![Stars](https://img.shields.io/github/stars/titanwings/colleague-skill?style=social)](https://github.com/titanwings/distilly/stargazers) - -[![Discord](https://img.shields.io/badge/Discord-Join%20Community-5865F2?logo=discord&logoColor=white)](https://discord.gg/NVX66RxWZv) - -
- - - -
- -🧑‍💼  Your colleague quit, your mentor graduated, your teammate transferred — taking their whole playbook and context with them?
-💞  Your family, old friends, partner drifting apart — and you want to hold on to the way it felt to be with them?
-🌟  Your favorite author, idol, thinker you'll never meet — but you want to know what they'd say about your question? - -
- -### ✨ One project, many kinds of people. - -
- -Distilly is the person-modeling layer for agents. It turns the materials you provide into a portable, source-grounded Person Profile built from observable experience, decision patterns, expression, and ways of working; it does not claim to clone the person behind them. - -Colleagues · partners · family · old friends · idols · public figures · fictional characters — even yourself - -**Source material + your description → a source-grounded Person Profile → your Agent or compatible Bot** - -> A Person Profile is the reusable output. The current release packages each profile as an Agent Skill so supported hosts can install and invoke it. The canonical creator Skill is named `distilly`; install it in a `distilly` directory. The former name above remains for search continuity and project history. +[![arXiv](https://img.shields.io/badge/arXiv-2605.31264-b31b1b.svg)](https://arxiv.org/abs/2605.31264) +[![Discord](https://img.shields.io/badge/Discord-Join-5865F2?logo=discord&logoColor=white)](https://discord.gg/NVX66RxWZv) -
- -[🆕 What Distilly does](#-what-distilly-does-today) · [📦 Data Sources](#-supported-data-sources) · [⚡ Install](#-install) · [🚀 Usage](#-usage) · [✨ Demo](#-demo) · [📝 Citation](#-citation) · [💬 Discord](https://discord.gg/NVX66RxWZv) - -[**Chinese**](docs/lang/README_ZH.md) · [**Spanish**](docs/lang/README_ES.md) · [**German**](docs/lang/README_DE.md) · [**Japanese**](docs/lang/README_JA.md) · [**Russian**](docs/lang/README_RU.md) · [**Portuguese**](docs/lang/README_PT.md) · [**Korean**](docs/lang/README_KO.md) - - - ---- - -
- -### 🎉 2026.08.13 Milestone — **the project has passed 20K ⭐!** - -Massive thanks to everyone who starred — we'll keep shipping, keep distilling. +English · [Chinese](docs/lang/README_ZH.md) · [Spanish](docs/lang/README_ES.md) · [German](docs/lang/README_DE.md) · [Japanese](docs/lang/README_JA.md) · [Russian](docs/lang/README_RU.md) · [Portuguese](docs/lang/README_PT.md) · [Korean](docs/lang/README_KO.md)
-> 🧬 **2026.08.24 Update** — The creator is now named **Distilly** end to end and documents native local Skill discovery for Claude Code, Hermes, OpenClaw, Codex, DeepSeek Harness, Pi, Grok Build, and OpenCode. Grok Bot is listed separately as a saved-Skill workflow preview. +Distilly reads chats, documents, interviews and public sources, and distills a person's experience, judgment, voice and ways of working into a source-grounded **Person Profile**. Each profile ships as a standard Agent Skill, so any supported agent can install and use it. Distilly models what the material shows; it does not claim to clone the person. -> 📝 **2026.06.01 Update** — **[The COLLEAGUE.SKILL technical report](https://arxiv.org/pdf/2605.31264) is now available**. The most rewarding part was not simply publishing a paper, but seeing the community grow the gallery to 215 skills contributed by 165 people, with more than 100,000 stars across the skill cards. The paper's Acknowledgements explicitly recognize every community contributor. +> Formerly **Colleague Skill** (`colleague-skill`). Upgrading from an old install? See [migration](INSTALL_EN.md#existing-install-migration). -> 🗺️ **2026.04.13** — **The Distilly Roadmap is live!** What began as Colleague Skill is growing beyond colleagues: distill people into Skills that Agents can reuse. 👉 **[Full Roadmap](ROADMAP.md)** · **[💬 Discord](https://discord.gg/NVX66RxWZv)** +## Why Distilly -> 🌐 **2026.04.07** — Community gallery is live! Any skill / meta-skill can drive traffic directly to your own GitHub repo. No middleman. 👉 **[titanwings.github.io/colleague-skill-site](https://titanwings.github.io/colleague-skill-site/)** +Personal agents now keep their own memory and connected accounts, but on day one they know nothing about you or the people you work with. Distilly gives them that context as plain files you own: -
+- **Know the owner.** A five-minute interview builds your own profile and links a short summary into the file your agent reads every session. +- **Keep how people work.** Capture a colleague's standards and judgment before they move on, or the way someone close to you talks. +- **Ask people you can't reach.** Build a research-backed profile of a public figure from their own words. +- **Portable and local.** Profiles are Markdown on your machine, built only from the material you provide, and the same profile installs into any supported host. -Created by [@titanwings](https://github.com/titanwings) +## Quick start -
+### 🤖 Let your agent install it ---- +Open any supported agent and send: -## 🆕 What Distilly does today +> Install Distilly from `https://github.com/titanwings/distilly`, then verify that this host can discover it. -### 1️⃣ From Colleague Skill to Distilly +### 👤 Install it yourself -The project is no longer limited to the colleague scenario. Its `distilly` creator builds source-grounded Person Profiles for three person families with one workflow, then packages each profile as an Agent Skill. +```bash +git clone https://github.com/titanwings/distilly +``` -### 2️⃣ Three character families +`` is your host's Skills directory plus `distilly`, for example `~/.claude/skills/distilly` for Claude Code. From any clone you can also run `python3 tools/install_distilly.py --host `. Every host path is in the **[Install Guide](INSTALL_EN.md)**. + +### Use it + +| Say to your agent | You get | +|---|---| +| *"Use Distilly to set up my profile."* | Your owner profile at `~/.distilly/owner/profile.md`, summarized into `~/.claude/CLAUDE.md` (Claude Code) or `USER.md` (OpenClaw) | +| *"Use Distilly to create a Person Profile for ``."* | A Skill named `{character}-{slug}` for a `colleague`, `relationship` or `celebrity` | +| *"I have new files for ``"* or *"They wouldn't say that"* | The profile updated in place, with every version kept for rollback | + +## How it works + +```mermaid +flowchart LR + sources["Your material
chats · docs · email
interviews · public posts"] + subgraph agent["Your agent"] + distilly["Distilly Skill
collect → analyze → write"] + end + person["Person Profiles
local Markdown, versioned"] + owner["Owner profile
~/.distilly/owner"] + host["Any supported host
uses the profile"] + + sources --> distilly + distilly --> person + distilly --> owner + person -- "installed as a Skill" --> host + owner -- "summary linked into
CLAUDE.md or USER.md" --> host + host -. "new files, corrections" .-> distilly +``` - - - - - - - - - - - - - - - - - - - - -
🧑‍💼 colleague💞 relationship🌟 celebrity
Coworkers · mentors · teammates · up/downstream partnersExes · partners · parents · friends · close familyPublic figures · creators · public voices · fictional characters
Builds a Work Skill + Persona from material-derived technical standards, workflows, expression, and workplace behavior. Supports Lark / DingTalk / Slack collection.Organizes material-derived expression patterns, emotional triggers, conflict patterns, and repair patterns into a reusable Persona Skill.Ships with a six-dimension research toolchain (subtitles → transcript cleanup → research merge → quality check) for organizing observable decisions, expression, and mental models.
+1. **Collect.** Import what you have: Lark, DingTalk, Slack, WeChat exports, email, PDFs, screenshots, Markdown, or public sources. Credentials are entered in your own terminal and never pass through the chat. +2. **Analyze.** Each family has its own lens: work standards and decisions for colleagues, expression and conflict patterns for relationships, a six-dimension research dossier for public figures. +3. **Write.** Distilly writes a reviewable Person Profile and packages it as an Agent Skill. +4. **Evolve.** New material merges into the right sections without overwriting earlier conclusions, and corrections take effect immediately. -Each family has its own source-collection strategy, analysis dimensions, and Person Profile structure. +More in **[How it works](docs/how-it-works.md)**, **[Data sources](docs/data-sources.md)** and **[Examples](docs/examples.md)**. -### 3️⃣ More Agent hosts +## Supported agents -The old version only ran in Claude Code. Distilly now supports native local Skill discovery across eight agent hosts. +Distilly is discovered natively as a local Skill by eight agent hosts: @@ -128,201 +99,23 @@ The old version only ran in Claude Code. Distilly now supports native local Skil
-**Grok Bot preview:** Grok Bot supports saved/private Skills, but its official docs do not describe direct local `SKILL.md` imports. Distilly's workflow can be migrated manually into a saved Skill; direct repo installation is not yet verified. - -Each generated Person Profile is packaged as an Agent Skill and can be installed into any supported host. - ---- - -## 🤖 Personal Agents - -Distilly also targets the personal agents people now live with. Each one keeps its own memory and connected accounts, so a Person Profile is meant to carry over into them instead of starting from zero. - - - - - - - - - -
Grok Bot
Grok Bot
saved Skill · preview
Meta Muse
Meta Muse
profile handoff · planned
OpenAI Dots
OpenAI Dots
profile handoff · planned
OpenClaw
native Skill
Hermes Agent
native Skill
- ---- - -## 📦 Supported Data Sources - -| Logo | Source | Messages | Docs / Wiki | Notes | -|:----:|--------|:--------:|:-----------:|-------| -| Lark | Lark (auto) | ✅ API | ✅ | Just enter a name, fully automatic | -| DingTalk | DingTalk (auto) | ⚠️ Browser | ✅ | DingTalk API doesn't support message history | -| Slack | Slack (auto) | ✅ API | — | Requires admin to install Bot; free plan limited to 90 days | -| X | Public X posts | ✅ API | — | Optional, bounded celebrity research candidates through metered third-party service Xquik | -| WeChat | WeChat chat history | ✅ SQLite | — | Export first with WeChatMsg or PyWxDump | -| 📄 | PDF / Images / Screenshots | — | ✅ | Manual upload | -| Lark | Lark JSON export | ✅ | ✅ | Manual upload | -| ✉️ | Email `.eml` / `.mbox` | ✅ | — | Manual upload | -| 📝 | Markdown / direct paste | ✅ | ✅ | Manual input | - ---- - -## ⚡ Install - -### 🤖 For Agents - -Open any supported local Agent host and send: +Grok Bot can run Distilly as a manually saved Skill (preview). Meta Muse and OpenAI Dots are planned. Status for each host is in **[Hosts](docs/hosts.md)**. -> Install Distilly from `https://github.com/titanwings/distilly`, then verify that this host can discover it. - -The Agent installs Distilly as a Skill named `distilly` in the correct host directory. - -### 👤 For Humans - -Clone Distilly into the Skills directory used by your host: - -```bash -git clone https://github.com/titanwings/distilly -``` +## Documentation -Host paths, migration, Windows, generated-profile installation, and credential setup are in the **[Install Guide](INSTALL_EN.md)**. +| | | +|---|---| +| [Install Guide](INSTALL_EN.md) | Host paths, generated-profile install, collector setup, celebrity research tools | +| [How it works](docs/how-it-works.md) | Person families, profile structure, evolution, choosing good source material | +| [Data sources](docs/data-sources.md) | Every supported source and what it can collect | +| [Hosts](docs/hosts.md) | Native hosts and personal-agent support status | +| [Examples](docs/examples.md) | Sample conversations, plus the [community gallery](https://titanwings.github.io/colleague-skill-site/) | +| [Roadmap](ROADMAP.md) · [News](docs/news.md) | What's next and what has shipped | +| [Contributing](CONTRIBUTING.md) | How to report bugs and send changes | ---- +## Citation -## 🚀 Usage - -**New personal agent?** Say *"Use Distilly to set up my profile."* Distilly interviews you for about five minutes, shows you the profile, then adds a short summary to the file your agent reads every session (`~/.claude/CLAUDE.md` for Claude Code, `USER.md` for OpenClaw). The full profile stays local at `~/.distilly/owner/profile.md`. - -To profile someone else: - -In your Agent, say: - -> Use Distilly to create a Person Profile for ``. - -Then: - -1. Choose `colleague`, `relationship`, or `celebrity`. -2. Add a description or source material. Every field is optional. -3. Review the result and let Distilly generate the profile. - -The result is packaged as an Agent Skill named `{character}-{slug}`. For the optional celebrity research pipeline and advanced tools, see the **[Install Guide](INSTALL_EN.md)**. - ---- - -## ✨ Demo - -One from each family. - -
- -### 🌟 celebrity — distilling Andrej Karpathy - -> Six-dimension research: works · interviews · decisions · expression DNA · external evaluations · timeline
-> Case adapted from community work [alchaincyf/karpathy-skill](https://github.com/alchaincyf/karpathy-skill) - -``` -User ❯ Everyone's talking about Agents now — what do you think the 2026 AI Agent looks like? - -celebrity.skill ❯ Everyone's doing demos, nobody's doing eval. - The Agent bottleneck was never model intelligence — it's scaffolding: - a strict evaluation harness, fine-grained error replay, - controllable tool-calling budgets, clean failure-mode analysis. - Most products are still stuck at "wrap an API + a few tools + a system prompt." - That's a demo, not an agent. - In 2026 I'm not betting on the strongest model — I'm betting on the best - scaffolding and the strictest eval. -``` - -
- -### 🧑‍💼 colleague — distilling a ByteDance L2-1 backend - -> Input: `ByteDance L2-1 backend engineer, INTJ, blame-shifter, ByteDance-style` - -``` -User ❯ Can you review this API design? - -colleague.skill ❯ Hold on — what's the impact? You haven't explained the context. - (after reading) N+1 query, fix it. Use the standard - {code, message, data} response format. That's the spec, - don't ask why. - -User ❯ This bug was introduced by you, right? - -colleague.skill ❯ Does the timeline match? That feature touched multiple places, - there were other changes too. -``` - -
- -### 💞 relationship — distilling someone you have a crush on - -> Upload half a year of chat logs + "sensitive, quiet but stubborn, will actually reply seriously when it matters" - -``` -User ❯ Did you think about me today? - -relationship.skill ❯ ...I did, a little bit. Why are you asking? -``` - -
- -📚 More real-world cases in the **[community gallery](https://titanwings.github.io/colleague-skill-site/)** — 100+ skills and counting - -
- ---- - -## 🔧 Features - -### 🧱 Generated Skill Structure - -Distilly's current creator uses **Persona** as the universal base, with family-specific modules layered on top: - -| Family | Persona Content | Additional Modules | -|--------|-----------------|-------------------| -| 🧑‍💼 **colleague** | 6-layer personality: hard rules → identity → expression → decisions → interpersonal → Correction | ➕ **Work Skill**: scope, workflow, output preferences, experience knowledge base | -| 💞 **relationship** | Expression DNA · emotional triggers · conflict pattern · repair pattern | — | -| 🌟 **celebrity** | Mental models · decision heuristics · expression DNA · external-evaluation contrast | ➕ Six-dimension research dossier (works / interviews / decisions / timeline...) | - -> **Execution**: Receive task → Persona selects material-derived preferences and tone → Additional modules fill in execution detail → Produce a source-grounded response - -### 🧬 Evolution - -- 📥 **Append files** → auto-analyze delta → merge into relevant sections, never overwrite existing conclusions -- 💬 **Conversation correction** → say "they wouldn't do that, they'd be xxx" → writes to the Correction layer, takes effect immediately -- 🕰️ **Version control** → auto-archive on every update, rollback to any previous version -- 🔬 **Celebrity research pipeline** → subtitles → transcript cleanup → six-dimension research → quality check - ---- - -## ⚠️ Notes - -**Source material quality = Person Profile quality** — and quality sources differ across families: - -| Family | Source priority (high → low) | -|--------|------------------------------| -| 🧑‍💼 **colleague** | Their **own long-form writing** (design docs / review comments) **›** **decision-making replies** **›** casual group chat | -| 💞 **relationship** | Complete chat history **›** letters / social posts / diaries **›** third-party descriptions | -| 🌟 **celebrity** | First-person books / blogs / long interviews **›** decision records (launches, commits, Q&A) **›** verified first-person short-form posts **›** third-party commentary | - -- **colleague** Lark-compatible auto-collection: requires adding the App bot to relevant group chats -- **relationship**: longer time spans are better; material covering both conflict and repair is ideal -- **celebrity**: avoid feeding only second-hand interpretations -- This is still a demo version — please file issues if you find bugs! - ---- - -## 📄 Technical Report - -> **[COLLEAGUE.SKILL: Automated AI Skill Generation via Expert Knowledge Distillation](https://arxiv.org/pdf/2605.31264)** ([arXiv](https://arxiv.org/abs/2605.31264) · [arXiv PDF](https://arxiv.org/pdf/2605.31264)) -> -> This is the paper for **COLLEAGUE.SKILL / colleague-skill**, Distilly's predecessor. It covers the Work Skill + Persona two-layer architecture, multi-source data collection, and Skill generation mechanics — the theoretical foundation for today's `colleague` family. Separate papers on the relationship / celebrity family extensions are planned. - ---- - -## 📝 Citation - -If you use **Distilly** or **COLLEAGUE.SKILL** in your research or applications, please cite the technical report: +Distilly grew out of COLLEAGUE.SKILL. If you use it in research, please cite the [technical report](https://arxiv.org/abs/2605.31264): ```bibtex @misc{zhou2026colleagueskill, @@ -336,24 +129,8 @@ If you use **Distilly** or **COLLEAGUE.SKILL** in your research or applications, } ``` -You can also use the machine-readable citation metadata in [CITATION.cff](CITATION.cff). +Machine-readable metadata is in [CITATION.cff](CITATION.cff). ---- +## License -## ⭐ Star History - - - - - - Star History Chart - - - ---- - -
- -**MIT License** © [titanwings](https://github.com/titanwings) - -
+[MIT](LICENSE) © [titanwings](https://github.com/titanwings). Join us on [Discord](https://discord.gg/NVX66RxWZv). diff --git a/docs/data-sources.md b/docs/data-sources.md new file mode 100644 index 00000000..16c5de2d --- /dev/null +++ b/docs/data-sources.md @@ -0,0 +1,17 @@ +# Data sources + +[Back to README](../README.md) + +Distilly can collect from these sources. Collector setup and credentials are in the [Install Guide](../INSTALL_EN.md#collector-setup). + +| Logo | Source | Messages | Docs / Wiki | Notes | +|:----:|--------|:--------:|:-----------:|-------| +| Lark | Lark (auto) | ✅ API | ✅ | Just enter a name, fully automatic | +| DingTalk | DingTalk (auto) | ⚠️ Browser | ✅ | DingTalk API doesn't support message history | +| Slack | Slack (auto) | ✅ API | — | Requires admin to install Bot; free plan limited to 90 days | +| X | Public X posts | ✅ API | — | Optional, bounded celebrity research candidates through metered third-party service Xquik | +| WeChat | WeChat chat history | ✅ SQLite | — | Export first with WeChatMsg or PyWxDump | +| 📄 | PDF / Images / Screenshots | — | ✅ | Manual upload | +| Lark | Lark JSON export | ✅ | ✅ | Manual upload | +| ✉️ | Email `.eml` / `.mbox` | ✅ | — | Manual upload | +| 📝 | Markdown / direct paste | ✅ | ✅ | Manual input | diff --git a/docs/examples.md b/docs/examples.md new file mode 100644 index 00000000..7d59271e --- /dev/null +++ b/docs/examples.md @@ -0,0 +1,57 @@ +# Examples + +[Back to README](../README.md) + +One example from each person family. + +## 🌟 celebrity — distilling Andrej Karpathy + +> Six-dimension research: works · interviews · decisions · expression DNA · external evaluations · timeline
+> Case adapted from community work [alchaincyf/karpathy-skill](https://github.com/alchaincyf/karpathy-skill) + +``` +User ❯ Everyone's talking about Agents now — what do you think the 2026 AI Agent looks like? + +celebrity.skill ❯ Everyone's doing demos, nobody's doing eval. + The Agent bottleneck was never model intelligence — it's scaffolding: + a strict evaluation harness, fine-grained error replay, + controllable tool-calling budgets, clean failure-mode analysis. + Most products are still stuck at "wrap an API + a few tools + a system prompt." + That's a demo, not an agent. + In 2026 I'm not betting on the strongest model — I'm betting on the best + scaffolding and the strictest eval. +``` + +## 🧑‍💼 colleague — distilling a ByteDance L2-1 backend + +> Input: `ByteDance L2-1 backend engineer, INTJ, blame-shifter, ByteDance-style` + +``` +User ❯ Can you review this API design? + +colleague.skill ❯ Hold on — what's the impact? You haven't explained the context. + (after reading) N+1 query, fix it. Use the standard + {code, message, data} response format. That's the spec, + don't ask why. + +User ❯ This bug was introduced by you, right? + +colleague.skill ❯ Does the timeline match? That feature touched multiple places, + there were other changes too. +``` + +## 💞 relationship — distilling someone you have a crush on + +> Upload half a year of chat logs + "sensitive, quiet but stubborn, will actually reply seriously when it matters" + +``` +User ❯ Did you think about me today? + +relationship.skill ❯ ...I did, a little bit. Why are you asking? +``` + +
+ +📚 More real-world cases in the **[community gallery](https://titanwings.github.io/colleague-skill-site/)** — 100+ skills and counting + +
diff --git a/docs/hosts.md b/docs/hosts.md new file mode 100644 index 00000000..22fd1534 --- /dev/null +++ b/docs/hosts.md @@ -0,0 +1,38 @@ +# Hosts + +[Back to README](../README.md) + +## Native Skill hosts + +Distilly is discovered natively as a local Skill by eight agent hosts. Install paths for each are in the [Install Guide](../INSTALL_EN.md). + + + + + + + + + + + + + + +
Claude CodeHermes AgentOpenClawCodex
DeepSeek HarnessPi coding agentGrok BuildOpenCode
+ +**Grok Bot preview:** Grok Bot supports saved/private Skills, but its official docs do not describe direct local `SKILL.md` imports. Distilly's workflow can be migrated manually into a saved Skill; direct repo installation is not yet verified. + +## Personal agents + +Distilly also targets the personal agents people now live with. Each one keeps its own memory and connected accounts, so a Person Profile is meant to carry over into them instead of starting from zero. + + + + + + + + + +
Grok Bot
Grok Bot
saved Skill · preview
Meta Muse
Meta Muse
profile handoff · planned
OpenAI Dots
OpenAI Dots
profile handoff · planned
OpenClaw
native Skill
Hermes Agent
native Skill
diff --git a/docs/how-it-works.md b/docs/how-it-works.md new file mode 100644 index 00000000..cdbdd1ea --- /dev/null +++ b/docs/how-it-works.md @@ -0,0 +1,81 @@ +# How it works + +[Back to README](../README.md) + +Distilly turns source material you provide into a source-grounded Person Profile built from observable experience, decision patterns, expression, and ways of working. It does not claim to clone the person behind the material. Each profile is packaged as an Agent Skill so supported hosts can install and invoke it. + +## Creating a profile + +In your agent, say *"Use Distilly to create a Person Profile for ``."* Then: + +1. Choose `colleague`, `relationship`, or `celebrity`. +2. Add a description or source material. Every field is optional. +3. Review the result and let Distilly generate the profile. + +The result is packaged as an Agent Skill named `{character}-{slug}`. To profile yourself instead, say *"Use Distilly to set up my profile."*: Distilly interviews you for about five minutes, shows you the profile, then adds a short summary to the file your agent reads every session. + +## Person families + +The `distilly` creator builds profiles for three person families with one workflow: + + + + + + + + + + + + + + + + + + + + + +
🧑‍💼 colleague💞 relationship🌟 celebrity
Coworkers · mentors · teammates · up/downstream partnersExes · partners · parents · friends · close familyPublic figures · creators · public voices · fictional characters
Builds a Work Skill + Persona from material-derived technical standards, workflows, expression, and workplace behavior. Supports Lark / DingTalk / Slack collection.Organizes material-derived expression patterns, emotional triggers, conflict patterns, and repair patterns into a reusable Persona Skill.Ships with a six-dimension research toolchain (subtitles → transcript cleanup → research merge → quality check) for organizing observable decisions, expression, and mental models.
+ +## Generated profile structure + +Distilly's current creator uses **Persona** as the universal base, with family-specific modules layered on top: + +| Family | Persona Content | Additional Modules | +|--------|-----------------|-------------------| +| 🧑‍💼 **colleague** | 6-layer personality: hard rules → identity → expression → decisions → interpersonal → Correction | ➕ **Work Skill**: scope, workflow, output preferences, experience knowledge base | +| 💞 **relationship** | Expression DNA · emotional triggers · conflict pattern · repair pattern | — | +| 🌟 **celebrity** | Mental models · decision heuristics · expression DNA · external-evaluation contrast | ➕ Six-dimension research dossier (works / interviews / decisions / timeline...) | + +> **Execution**: Receive task → Persona selects material-derived preferences and tone → Additional modules fill in execution detail → Produce a source-grounded response + +## Evolution + +- 📥 **Append files** → auto-analyze delta → merge into relevant sections, never overwrite existing conclusions +- 💬 **Conversation correction** → say "they wouldn't do that, they'd be xxx" → writes to the Correction layer, takes effect immediately +- 🕰️ **Version control** → auto-archive on every update, rollback to any previous version +- 🔬 **Celebrity research pipeline** → subtitles → transcript cleanup → six-dimension research → quality check + +## Choosing good source material + +**Source material quality = Person Profile quality** — and quality sources differ across families: + +| Family | Source priority (high → low) | +|--------|------------------------------| +| 🧑‍💼 **colleague** | Their **own long-form writing** (design docs / review comments) **›** **decision-making replies** **›** casual group chat | +| 💞 **relationship** | Complete chat history **›** letters / social posts / diaries **›** third-party descriptions | +| 🌟 **celebrity** | First-person books / blogs / long interviews **›** decision records (launches, commits, Q&A) **›** verified first-person short-form posts **›** third-party commentary | + +- **colleague** Lark-compatible auto-collection: requires adding the App bot to relevant group chats +- **relationship**: longer time spans are better; material covering both conflict and repair is ideal +- **celebrity**: avoid feeding only second-hand interpretations +- This is still a demo version — please file issues if you find bugs! + +## Technical report + +**[COLLEAGUE.SKILL: Automated AI Skill Generation via Expert Knowledge Distillation](https://arxiv.org/pdf/2605.31264)** ([arXiv](https://arxiv.org/abs/2605.31264) · [arXiv PDF](https://arxiv.org/pdf/2605.31264)) + +This is the paper for **COLLEAGUE.SKILL / colleague-skill**, Distilly's predecessor. It covers the Work Skill + Persona two-layer architecture, multi-source data collection, and Skill generation mechanics — the theoretical foundation for today's `colleague` family. Separate papers on the relationship / celebrity family extensions are planned. diff --git a/docs/lang/README_ZH.md b/docs/lang/README_ZH.md index e26919e5..c5bd6a04 100644 --- a/docs/lang/README_ZH.md +++ b/docs/lang/README_ZH.md @@ -2,115 +2,87 @@ Distilly — Distill how they think into Person Profiles for Agents -
+# Distilly -# 🧬 Distilly +**把一个人写过、说过的东西,变成你的 Agent 能用的 Person Profile。** -**Formerly: Colleague Skill / colleague-skill(原同事 Skill)** - -### 把一个人的经验、判断、表达方式和工作方法,蒸馏成可复用的 Person Profile,交给 Agent 或兼容 Bot 使用。 - -**聊天 · 文档 · 访谈 · 公开资料 → Distilly → Person Profile → Agent / Bot** - -[![Discord](https://img.shields.io/badge/Discord-加入社区-5865F2?logo=discord&logoColor=white)](https://discord.gg/NVX66RxWZv) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](../../LICENSE) [![Python 3.9+](https://img.shields.io/badge/Python-3.9%2B-blue.svg)](https://python.org) [![AgentSkills](https://img.shields.io/badge/AgentSkills-Standard-green)](https://agentskills.io) -[![Stars](https://img.shields.io/github/stars/titanwings/colleague-skill?style=social)](https://github.com/titanwings/distilly/stargazers) - -
- - - -
- -🧑‍💼  你的同事跳槽、导师毕业、搭档转岗,带走了整套工作方法和上下文?
-💞  你的家人、老友、伴侣渐行渐远,你想留住和 TA 相处的方式?
-🌟  你喜欢的作家、偶像、思想家你够不着,但你想听他对你的问题怎么看? - -
- -### ✨ 同一套蒸馏流程,适用于不同的人。 - -
- -Distilly 是 Agent 工作流中的人物建模层。它把你提供的材料整理成可移植、基于材料的 Person Profile,提取其中可观察的经验、判断模式、表达习惯和工作方法;它不声称复制材料背后的真人。 - -同事 · 伴侣 · 家人 · 老友 · 偶像 · 名人 · 小说角色,甚至你自己 - -**原材料 + 你的描述 → 基于材料的 Person Profile → 你的 Agent 或兼容 Bot** - -> Person Profile 是可复用的核心产物;当前版本把每份 Profile 封装成 Agent Skill,供支持的宿主安装和调用。创建器 Skill 的正式名称仍是 `distilly`,安装目录也应使用 `distilly`。上方保留原名,用于搜索承接和历史识别。 - -
- -[🆕 Distilly 能做什么](#-distilly-现在能做什么) · [📦 数据来源](#-支持的数据来源) · [⚡ 安装](#-安装) · [🚀 使用](#-使用) · [✨ 效果示例](#-效果示例) · [📝 引用](#-引用) · [💬 Discord](https://discord.gg/NVX66RxWZv) - -[**English**](../../README.md) · [**Español**](README_ES.md) · [**Deutsch**](README_DE.md) · [**日本語**](README_JA.md) · [**Русский**](README_RU.md) · [**Português**](README_PT.md) · [**한국어**](README_KO.md) - - - ---- - -
- -### 🎉 2026.08.13 里程碑 — **项目已突破 20K ⭐!** +[![arXiv](https://img.shields.io/badge/arXiv-2605.31264-b31b1b.svg)](https://arxiv.org/abs/2605.31264) +[![Discord](https://img.shields.io/badge/Discord-加入社区-5865F2?logo=discord&logoColor=white)](https://discord.gg/NVX66RxWZv) -感谢每一位点星的朋友,我们会继续发版、继续蒸馏。 +[English](../../README.md) · 简体中文 · [Español](README_ES.md) · [Deutsch](README_DE.md) · [日本語](README_JA.md) · [Русский](README_RU.md) · [Português](README_PT.md) · [한국어](README_KO.md)
-> 🧬 **2026.08.24 更新** — 创建器已端到端统一为 **Distilly**,并按官方最新方式支持 Claude Code、Hermes、OpenClaw、Codex、DeepSeek Harness、Pi、Grok Build 和 OpenCode 的本地 Skill 发现。Grok Bot 单独标为 saved-Skill 预览流程。 +Distilly 读取聊天记录、文档、访谈和公开资料,把一个人的经验、判断、表达方式和工作方法蒸馏成基于材料的 **Person Profile**。每份 Profile 都封装成标准的 Agent Skill,任何支持的 Agent 都能安装和使用。Distilly 只整理材料里能看到的东西,不声称复制背后的真人。 -> 📝 **2026.06.01 更新** — **[COLLEAGUE.SKILL 技术报告](https://arxiv.org/pdf/2605.31264) 已上线**;这次最开心的不只是发了篇 paper,而是社区一起把 gallery 推到 215 个 skills、165 位贡献者和 100k+ skill-card 累计 stars,论文 Acknowledgements 也专门收录并感谢了所有社区贡献者。 +> 原名 **Colleague Skill**(`colleague-skill`,原同事 Skill)。从旧版本升级请看[迁移说明](../../INSTALL.md#existing-install-migration)。 -> 🗺️ **2026.04.13** — **Distilly 路线图正式发布!** 项目从原 Colleague Skill 走向更通用的目标:把人物蒸馏成可供 Agent 复用的 Skill。 👉 **[完整路线图](../../ROADMAP.md)** · **[💬 Discord](https://discord.gg/NVX66RxWZv)** +## 为什么用 Distilly -> 🌐 **2026.04.07** — 社区平台上线!任何 skill / meta-skill 可直接给自己的 GitHub repo 引流,没有中间商。 👉 **[titanwings.github.io/colleague-skill-site](https://titanwings.github.io/colleague-skill-site/)** +个人 Agent 现在都有自己的记忆和连接的账号,但第一天它对你、对你身边的人一无所知。Distilly 用你自己掌握的普通文件把这些背景交给它: -
+- **认识主人。** 五分钟的问答生成你自己的画像,并把简短摘要写进 Agent 每次会话都会读的文件。 +- **留住一个人的做事方式。** 在同事离开之前留下他的标准和判断,或者留住身边人说话的样子。 +- **问问够不着的人。** 用名人自己说过的话,做一份有研究支撑的画像。 +- **可移植,存在本地。** Profile 是你电脑上的 Markdown,只根据你提供的材料生成,同一份 Profile 能装进任何支持的宿主。 -Created by [@titanwings](https://github.com/titanwings) +## 快速上手 -
+### 🤖 让 Agent 帮你装 ---- +打开任意支持的 Agent,发送: -## 🆕 Distilly 现在能做什么? +> 从 `https://github.com/titanwings/distilly` 安装 Distilly,并确认当前宿主可以发现它。 -### 1️⃣ 从 Colleague Skill 到 Distilly +### 👤 自己装 -项目不再只围绕「同事」场景设计。`distilly` 创建器用同一套流程,为三类人物生成基于材料的 Person Profile,再将每份 Profile 封装成 Agent Skill。 +```bash +git clone https://github.com/titanwings/distilly +``` -### 2️⃣ 支持三大人物类型 +`` 是宿主的 Skills 目录加上 `distilly`,比如 Claude Code 是 `~/.claude/skills/distilly`。在任意 clone 里也可以运行 `python3 tools/install_distilly.py --host `。所有宿主的路径见 **[安装说明](../../INSTALL.md)**。 + +### 开始使用 + +| 对 Agent 说 | 得到 | +|---|---| +| *“用 Distilly 建立我的画像。”* | 你的主人画像,保存在 `~/.distilly/owner/profile.md`,摘要写进 `~/.claude/CLAUDE.md`(Claude Code)或 `USER.md`(OpenClaw) | +| *“用 Distilly 为 `<人物>` 创建一个 Person Profile。”* | 一个名为 `{character}-{slug}` 的 Skill,类型是 `colleague`、`relationship` 或 `celebrity` | +| *“我有 `<人物>` 的新文件”* 或 *“他不会这么说”* | Profile 原地更新,每个版本都留档,可以回滚 | + +## 工作原理 + +```mermaid +flowchart LR + sources["你的材料
聊天 · 文档 · 邮件
访谈 · 公开帖子"] + subgraph agent["你的 Agent"] + distilly["Distilly Skill
采集 → 分析 → 写入"] + end + person["Person Profile
本地 Markdown,带版本"] + owner["主人画像
~/.distilly/owner"] + host["任意支持的宿主
直接使用"] + + sources --> distilly + distilly --> person + distilly --> owner + person -- "装成 Skill" --> host + owner -- "摘要写进
CLAUDE.md 或 USER.md" --> host + host -. "新文件、纠正" .-> distilly +``` - - - - - - - - - - - - - - - - - - - - -
🧑‍💼 colleague💞 relationship🌟 celebrity
同事 · 导师 · 搭档 · 上下游协作者前任 · 伴侣 · 父母 · 朋友 · 家人名人 · 创作者 · 公众表达者 · 小说角色
从材料中整理技术规范、工作流程、表达习惯和职场行为,生成 Work Skill + Persona。支持飞书 / 钉钉 / Slack 采集。把材料中可观察的表达习惯、情绪触发点、冲突模式和修复模式整理成人物 Skill。内置 六维度研究工具链(字幕下载 → 文稿清洗 → 研究合并 → 质量检查),用于整理可观察的决策、表达与心智模型。
+1. **采集。** 导入你手上有的材料:飞书、钉钉、Slack、微信导出、邮件、PDF、截图、Markdown 或公开资料。凭证在你自己的终端里输入,不经过对话。 +2. **分析。** 每类人物有自己的视角:同事看工作标准和决策,亲密关系看表达和冲突模式,名人做六维度研究档案。 +3. **写入。** Distilly 生成一份可审阅的 Person Profile,并封装成 Agent Skill。 +4. **演化。** 新材料合并进对应部分,不覆盖已有结论;对话里的纠正立即生效。 -每类人物有独立的信息采集策略、分析维度和 Person Profile 结构。 +详见 **[How it works](../how-it-works.md)**、**[数据来源](../data-sources.md)** 和 **[示例](../examples.md)**(英文)。 -### 3️⃣ 支持更多 Agent 宿主 +## 支持的 Agent -旧版只能在 Claude Code 里用。Distilly 现在支持 8 个本地 Agent 宿主: +Distilly 可以被 8 个 Agent 宿主作为本地 Skill 原生发现: @@ -127,197 +99,23 @@ Created by [@titanwings](https://github.com/titanwings)
-**Grok Bot 预览:**Grok Bot 支持 saved/private Skills,但官方文档没有说明可直接导入本地 `SKILL.md`。可手工迁移 Distilly 流程为 saved Skill;直接安装仓库尚未验证。 - -蒸馏出的 Person Profile 会封装成 Agent Skill,并可安装到任意受支持的宿主。 - ---- - -## 🤖 个人 Agent - -Distilly 也面向大家日常在用的个人 Agent。它们各自保存记忆、连接账号,所以 Person Profile 应当能直接带进去,而不是每次从零开始。 - - - - - - - - - -
Grok Bot
Grok Bot
saved Skill · 预览
Meta Muse
Meta Muse
画像交接 · 规划中
OpenAI Dots
OpenAI Dots
画像交接 · 规划中
OpenClaw
原生 Skill
Hermes Agent
原生 Skill
- ---- - -## 📦 支持的数据来源 - -| 标识 | 来源 | 消息记录 | 文档 / Wiki | 备注 | -|:----:|------|:-------:|:-----------:|------| -| 飞书 | 飞书(自动采集) | ✅ API | ✅ | 输入姓名即可,全自动 | -| 钉钉 | 钉钉(自动采集) | ⚠️ 浏览器 | ✅ | 钉钉 API 不支持历史消息 | -| Slack | Slack(自动采集) | ✅ API | — | 需管理员安装 Bot;免费版限 90 天 | -| X | 公开 X 帖子 | ✅ API | — | 通过按返回数量计费的第三方 Xquik 可选采集名人研究候选 | -| 微信 | 微信聊天记录 | ✅ SQLite | — | 需先用 WeChatMsg / PyWxDump / 留痕等工具导出 | -| 📄 | PDF / 图片 / 截图 | — | ✅ | 手动上传 | -| 飞书 | 飞书 JSON 导出 | ✅ | ✅ | 手动上传 | -| ✉️ | 邮件 `.eml` / `.mbox` | ✅ | — | 手动上传 | -| 📝 | Markdown / 直接粘贴 | ✅ | ✅ | 手动输入 | - ---- - -## ⚡ 安装 - -### 🤖 For Agents - -在任意支持的本地 Agent 宿主中发送: - -> 从 `https://github.com/titanwings/distilly` 安装 Distilly,并确认当前宿主可以发现它。 - -Agent 会把 Distilly 作为名为 `distilly` 的 Skill 安装到正确的宿主目录。 - -### 👤 For Humans - -把 Distilly clone 到当前宿主使用的 Skills 目录: - -```bash -git clone https://github.com/titanwings/distilly -``` - -各宿主路径、旧版本迁移、Windows、生成 Profile 的安装方式和凭证配置,统一放在 **[详细安装说明](../../INSTALL.md)**。 - ---- - -## 🚀 使用 - -**刚装好个人 Agent?** 说 *“用 Distilly 建立我的画像”*。Distilly 会用大约五分钟问你几个问题,给你确认画像全文,然后把简短摘要写进 Agent 每次会话都会读的文件(Claude Code 是 `~/.claude/CLAUDE.md`,OpenClaw 是 `USER.md`)。完整画像只保存在本地 `~/.distilly/owner/profile.md`。 - -为别人建画像: - -在 Agent 中说: - -> 用 Distilly 为 `<人物>` 创建一个 Person Profile。 - -接下来只需: - -1. 选择 `colleague`、`relationship` 或 `celebrity`。 -2. 提供一段描述或相关材料;所有字段都可以跳过。 -3. 审核结果,让 Distilly 生成 Profile。 - -结果会封装成名为 `{character}-{slug}` 的 Agent Skill。可选的名人研究流程和高级工具见 **[详细安装说明](../../INSTALL.md)**。 - ---- - -## ✨ 效果示例 - -
- -### 🌟 celebrity — 蒸馏一个 Andrej Karpathy - -> 六维度 research:著作 · 访谈 · 决策 · 表达 DNA · 外部评价 · 时间线
-> 案例出自社区作品 [alchaincyf/karpathy-skill](https://github.com/alchaincyf/karpathy-skill) - -``` -用户 ❯ 现在人人都在说 Agent,你怎么看 2026 年的 AI Agent? - -celebrity.skill ❯ 大家都在做 demo,但没人做 eval。 - Agent 的瓶颈从来不是模型不够聪明,是 scaffolding 跟不上—— - 严格的 evaluation harness、细粒度的错误回放、 - 可控的 tool-calling budget、清楚的 failure mode 分析。 - 大部分产品还停留在"接个 API + 几个 tool + system prompt"的阶段, - 这叫 demo,不叫 agent。 - 2026 我赌的不是最强模型,是最好的 scaffolding + 最严的 eval。 -``` - -
- -### 🧑‍💼 colleague — 蒸馏一个字节 2-1 后端 - -> 输入:`字节 2-1 后端工程师,INTJ,甩锅高手,字节范` - -``` -用户 ❯ 帮我看一下这个接口设计 - -colleague.skill ❯ 等等,这个接口的 impact 是什么?背景没说清楚。 - (看完后)N+1 查询,改掉。返回结构用统一的 - {code, message, data},这是规范,不用问为什么。 - -用户 ❯ 这个 bug 是你引入的吧 - -colleague.skill ❯ 上线时间对上了吗?那个需求改了好几个地方, - 还有其他变更。 -``` - -
- -### 💞 relationship — 蒸馏一个暗恋对象 - -> 上传半年的聊天记录 + 「性格敏感、话少但嘴硬、会在关键时候认真回」 +Grok Bot 可以手动保存为 Skill 使用(预览)。Meta Muse 和 OpenAI Dots 在规划中。各宿主状态见 **[Hosts](../hosts.md)**。 -``` -用户 ❯ 你今天有没有想我 - -relationship.skill ❯ ……有啊,就一点点。你干嘛问这个。 -``` - -
- -📚 更多实战案例见 **[社区 Gallery](https://titanwings.github.io/colleague-skill-site/)**,已收录 100+ skill - -
- ---- - -## 🔧 功能特性 - -### 🧱 生成的 Skill 结构 - -Distilly 当前的创建器以 **Persona** 为通用底座,不同家族按场景挂载各自的模块: - -| 家族 | Persona 内容 | 附加模块 | -|------|-------------|---------| -| 🧑‍💼 **colleague** | 6 层性格结构:硬规则 → 身份 → 表达风格 → 决策模式 → 人际行为 → Correction | ➕ **Work Skill**:负责范围、工作流程、输出偏好、经验知识库 | -| 💞 **relationship** | 表达 DNA · 情绪触发点 · 冲突模式 · 修复模式 | — | -| 🌟 **celebrity** | 心智模型 · 决策启发式 · 表达 DNA · 外部评价对照 | ➕ 六维度 research 档案(著作 / 访谈 / 决策 / 时间线...) | - -> **运行逻辑**:接到任务 → Persona 选择材料中可见的偏好与语气 → 附加模块补齐执行细节 → 生成基于材料的回答 - -### 🧬 进化机制 - -- 📥 **追加文件** → 自动分析增量 → merge 进对应部分,不覆盖已有结论 -- 💬 **对话纠正** → 说「他不会这样,他应该是 xxx」→ 写入 Correction 层,立即生效 -- 🕰️ **版本管理** → 每次更新自动存档,支持回滚到任意历史版本 -- 🔬 **名人研究管线** → 字幕下载 → 文稿清洗 → 六维度研究 → 质量检查 +## 文档 ---- +| | | +|---|---| +| [安装说明](../../INSTALL.md) | 宿主路径、生成 Profile 的安装、采集器配置、名人研究工具 | +| [How it works](../how-it-works.md) | 人物类型、Profile 结构、演化机制、怎么选原材料 | +| [数据来源](../data-sources.md) | 支持的所有来源和各自能采集什么 | +| [Hosts](../hosts.md) | 原生宿主和个人 Agent 的支持状态 | +| [示例](../examples.md) | 示例对话,以及[社区 Gallery](https://titanwings.github.io/colleague-skill-site/) | +| [路线图](../../ROADMAP.md) · [动态](../news.md) | 接下来做什么,已经发布了什么 | +| [贡献指南](../../CONTRIBUTING.md) | 怎么报 bug、怎么提交改动 | -## ⚠️ 注意事项 +## 引用 -**原材料质量决定 Person Profile 质量**,不同家族的优质信源不一样: - -| 家族 | 信源优先级(高 → 低) | -|------|----------------------| -| 🧑‍💼 **colleague** | 他**主动写的**长文(设计文档 / 评审意见) **›** **决策类回复** **›** 日常群聊消息 | -| 💞 **relationship** | 完整的聊天记录 **›** 往来信件 / 朋友圈 / 日记 **›** 旁人描述 | -| 🌟 **celebrity** | 第一人称著作 / 博客 / 长访谈 **›** 决策记录(发布会、commit、采访)**›** 已核验的本人短帖 **›** 他人评价 | - -- **colleague** 飞书自动采集:需将 App bot 加入相关群聊 -- **relationship**:时间跨度越长越好,能覆盖冲突与和解更佳 -- **celebrity**:避免只喂二手解读 -- 目前还是 demo 版本,如果有 bug 请多多提 issue! - ---- - -## 📄 技术报告 - -> **[COLLEAGUE.SKILL: Automated AI Skill Generation via Expert Knowledge Distillation](https://arxiv.org/pdf/2605.31264)** ([arXiv](https://arxiv.org/abs/2605.31264) · [arXiv PDF](https://arxiv.org/pdf/2605.31264)) -> -> 这是 Distilly 前身 **COLLEAGUE.SKILL / colleague-skill(原同事 Skill)** 的技术论文,详细介绍了 Work Skill + Persona 的双层架构、多源数据采集与 Skill 生成机制,也是今天 `colleague` 家族的理论基础。relationship / celebrity 家族的架构扩展会另起论文。 - ---- - -## 📝 引用 - -如果你在研究或应用中使用了 **Distilly** 或 **COLLEAGUE.SKILL**,请引用技术报告: +Distilly 的前身是 COLLEAGUE.SKILL。如果你在研究中使用了它,请引用[技术报告](https://arxiv.org/abs/2605.31264): ```bibtex @misc{zhou2026colleagueskill, @@ -331,26 +129,8 @@ Distilly 当前的创建器以 **Persona** 为通用底座,不同家族按场 } ``` -也可以使用 [CITATION.cff](../../CITATION.cff) 中的机器可读引用信息。 +机器可读的引用信息见 [CITATION.cff](../../CITATION.cff)。 ---- +## 许可证 -## ⭐ Star History - - - - - - Star History Chart - - - ---- - -
- -**MIT License** © [titanwings](https://github.com/titanwings) - -Made with 🧬 for everyone who wants to distill a person into a reusable Person Profile. - -
+[MIT](../../LICENSE) © [titanwings](https://github.com/titanwings)。欢迎加入 [Discord](https://discord.gg/NVX66RxWZv)。 diff --git a/docs/news.md b/docs/news.md new file mode 100644 index 00000000..40ffdd63 --- /dev/null +++ b/docs/news.md @@ -0,0 +1,23 @@ +# News + +[Back to README](../README.md) + +> 🧬 **2026.08.24 Update** — The creator is now named **Distilly** end to end and documents native local Skill discovery for Claude Code, Hermes, OpenClaw, Codex, DeepSeek Harness, Pi, Grok Build, and OpenCode. Grok Bot is listed separately as a saved-Skill workflow preview. + +> 🎉 **2026.08.13 Milestone** — The project passed 20K ⭐. Massive thanks to everyone who starred — we'll keep shipping, keep distilling. + +> 📝 **2026.06.01 Update** — **[The COLLEAGUE.SKILL technical report](https://arxiv.org/pdf/2605.31264) is now available**. The most rewarding part was not simply publishing a paper, but seeing the community grow the gallery to 215 skills contributed by 165 people, with more than 100,000 stars across the skill cards. The paper's Acknowledgements explicitly recognize every community contributor. + +> 🗺️ **2026.04.13** — **The Distilly Roadmap is live!** What began as Colleague Skill is growing beyond colleagues: distill people into Skills that Agents can reuse. 👉 **[Full Roadmap](../ROADMAP.md)** · **[💬 Discord](https://discord.gg/NVX66RxWZv)** + +> 🌐 **2026.04.07** — Community gallery is live! Any skill / meta-skill can drive traffic directly to your own GitHub repo. No middleman. 👉 **[titanwings.github.io/colleague-skill-site](https://titanwings.github.io/colleague-skill-site/)** + +## Star history + + + + + + Star History Chart + + diff --git a/tests/test_skill_entrypoint_docs.py b/tests/test_skill_entrypoint_docs.py index b4dfd375..8ba85d74 100644 --- a/tests/test_skill_entrypoint_docs.py +++ b/tests/test_skill_entrypoint_docs.py @@ -46,6 +46,11 @@ BARE_TOOL_CALL = re.compile(r"(?:python3|bash) \"?tools/") ROUTER_MAX_LINES = 80 RESEARCH_FLOOR = re.compile(r"`([A-Z][\w -]+?) (?:>=|=) \d+`") +# Section headings each full README uses: (supported hosts, quick start, section after quick start). +README_HEADINGS = { + "README.md": ("## Supported agents", "## Quick start", "## How it works"), + "README_ZH.md": ("## 支持的 Agent", "## 快速上手", "## 工作原理"), +} def _instruction_files() -> dict[str, str]: @@ -56,8 +61,9 @@ def _instruction_files() -> dict[str, str]: class SkillEntrypointDocsTest(unittest.TestCase): def _assert_readme_support_contract(self, content: str, source: str) -> None: - self.assertIn("### 3️⃣", content, f"missing host section in {source}") - host_section = content.split("### 3️⃣", 1)[1].split("\n---", 1)[0] + hosts_heading = README_HEADINGS[source][0] + self.assertIn(hosts_heading, content, f"missing host section in {source}") + host_section = content.split(hosts_heading, 1)[1].split("\n## ", 1)[0] host_rows = re.findall(r']*alt="([^"]+)"', host_section) self.assertEqual(list(SUPPORTED_HOSTS), host_rows, f"wrong host list in {source}") @@ -82,8 +88,9 @@ def _assert_readme_support_contract(self, content: str, source: str) -> None: def _assert_readme_quick_start( self, content: str, source: str, install_link: str ) -> None: - self.assertIn("## ⚡", content, f"missing install section in {source}") - quick_start = content.split("## ⚡", 1)[1].split("\n## ✨", 1)[0] + _, start_heading, next_heading = README_HEADINGS[source] + self.assertIn(start_heading, content, f"missing install section in {source}") + quick_start = content.split(start_heading, 1)[1].split("\n" + next_heading, 1)[0] self.assertIn("### 🤖", quick_start, f"missing Agent path in {source}") self.assertIn("### 👤", quick_start, f"missing human path in {source}") self.assertIn( diff --git a/tests/test_translation_sync.py b/tests/test_translation_sync.py index 7614f7f6..3c3860f9 100644 --- a/tests/test_translation_sync.py +++ b/tests/test_translation_sync.py @@ -23,9 +23,9 @@ LOCALIZED_HOSTS = ("img.shields.io",) -def _sections(content: str) -> list: - """Return the leading emoji of each `##` heading, in order.""" - return SECTION.findall(content) +def _sections(content: str) -> int: + """Return how many `##` sections a README has; headings are translated, so only the count is compared.""" + return len(SECTION.findall(content)) def _images(content: str, prefix: str) -> set: