Commit Graph

154 Commits

Author SHA1 Message Date
Tianyi Zhou 0afc45c29c fix: keep work-only skills and legacy self skills working after today's merges (#210)
- The English work_builder prompt (#205) words the Persona handoff as
  "outside the scope of responsibility", which the work-only filter did not
  match, so work_skill.md kept a pointer to a Persona section it lacks.
  Widen the English and Chinese patterns.
- #197 made self/yourself aliases of the new owner family, so generated
  skills whose stored meta says type "self" were renamed owner-<slug> on
  install. Stored skill metadata now maps owner back to relationship.
- owner_sources.py discover no longer crashes on a malformed MCP config
  (non-dict mcpServers, non-UTF-8 TOML/YAML).


Claude-Session: https://claude.ai/code/session_018qsZs2yPoPC21GnGkktmwp

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-13 05:42:45 +00:00
Tianyi Zhou c3075391cf Slim translated docs to English source plus full Chinese translation (#207)
* Slim translated docs to one English source plus a full Chinese translation

- Turn the DE/ES/JA/KO/PT/RU READMEs into short landing pages that link
  back to the English README.
- Bring README_ZH.md up to date with the Personal Agents and Citation
  sections it was missing.
- Delete the seven translated ROADMAPs, which no README linked to.
- Use "Person Profile" wording in ROADMAP.md and CONTRIBUTING.md.
- Add tests/test_translation_sync.py so a section, image or link added to
  README.md fails CI until README_ZH.md catches up.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JFzCaMi3X5RVxc35TCzbJ2

* Fix Korean landing page bold and italic markup that GitHub would not render

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JFzCaMi3X5RVxc35TCzbJ2

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-13 13:39:41 +08:00
Tianyi Zhou e9f95675dd Share one host table, ship one payload, split optional deps (#208)
* Share one host table, ship one payload, split optional deps

- tools/hosts.json is the single host path table, read by bin/distilly.mjs
  and tools/hosts.py (install_distilly, install_generated_skill,
  install_claude_generated_skill, skill_writer).
- package.json "files" is the single publish list; the npm CLI and the
  Python installer both derive the install payload from it, so the Python
  installer no longer copies docs/, tests/ or .github/ into skill dirs and
  now supports all eight hosts.
- requirements.txt keeps only requests; collector extras move to
  requirements-optional.txt.
- Ruff is pinned with an explicit rule set and blocks CI; fix its findings.
- tests/_paths.py replaces the sys.path boilerplate in 11 test files.
- Rename the cover image to docs/social-preview.png so redesigns stop
  adding versioned files.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014AQdagxHQtDiYDXHNMsRSK

* Keep reinstalling from an installed copy working

An installed copy has no package.json, so install_distilly.py copies it
whole (minus caches) instead of failing to read the publish list.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014AQdagxHQtDiYDXHNMsRSK

* Allow running CI manually

A stacked PR retargeted after its base merges gets no CI run until the
next push; workflow_dispatch lets a maintainer start one.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014AQdagxHQtDiYDXHNMsRSK

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-13 13:37:01 +08:00
Tianyi Zhou 2caf58e9fc Split SKILL.md into a short router with on-demand flows, tidy prompts/ (#209)
SKILL.md becomes a 41-line router; flows move to prompts/flows/ and load on demand. Colleague prompts move to prompts/colleague/, shared ones to prompts/shared/, references/ folds into prompts/celebrity/budget_unfriendly/, and the two celebrity research prompts merge into one. The entrypoint test checks structure instead of exact wording.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017tXoVWiktX2vSUJzrrdBLJ
2026-10-13 13:33:33 +08:00
Tianyi Zhou 6fb0ab9074 Remove unused docs and images, merge duplicate installers (#206)
Delete files nothing references: the old PRD, the skill-type abstraction
design notes, the duplicate docs/lang/README_EN.md, four old social preview
images and eight WeChat group QR codes.

Merge install_{openclaw,hermes,codex}_skill.py into install_distilly.py
--host, and drop install_{openclaw,codex}_generated_skill.py in favor of
install_generated_skill.py --host. Docs, skill_writer, the manifest
installer map and tests now point at the merged scripts.


Claude-Session: https://claude.ai/code/session_01QNauB8VvkxewzmhA2ZVT25

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-12 16:56:21 +08:00
Tianyi Zhou ab0413fb5e Make skill instructions English-only and stop shipping examples (#205)
SKILL.md now keeps only the English instructions and tells the agent to
reply in the user's language. Prompts and references are translated to
English. The example colleague profiles and the recorded e2e run are
removed and ignored.


Claude-Session: https://claude.ai/code/session_01GNKjfDkCx5ozJ4oL69tgBo

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-12 16:42:54 +08:00
Tianyi Zhou 113bb93382 feat: discover the owner's existing sources at profile setup (#204)
* feat: add owner profile for personal agent first-run setup

Adds an owner family (self/yourself/me alias to it) that interviews the
agent's own user and writes a short always-on summary between Distilly
markers into the host user file (Claude Code ~/.claude/CLAUDE.md,
OpenClaw workspace USER.md). The full profile stays at
~/.distilly/owner/profile.md. It is context about the user, not a
role-play Skill, so skill_writer refuses the owner family.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y32jGbUW3JKCyeeySUBm27

* feat: gather owner profile from host memory, files and connectors

The owner intake now starts by checking what the host already knows
(memory, existing user files, connected tools), then asks only for what
is missing, and can read connected calendar, mail, docs, code or user
exports read-only with the user's OK. Distilly never asks for keys or
OAuth on this path. Profiles record a source per fact, and the summary
limit is resolved per host.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y32jGbUW3JKCyeeySUBm27

* feat: discover the owner's existing sources at profile setup

At owner init the agent now inventories what it can already reach (its
own tools, connectors and memory, the platform it runs on, and what
tools/owner_sources.py finds on the machine: host user files, configured
MCP servers, related skills and personal exports), proposes a read-only
slice per source, and asks the owner which to use and what to add.

owner_sources.py reports names only, never config values. Includes a
recorded end-to-end run in Claude Code with mock connectors and the
harness to reproduce it.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y32jGbUW3JKCyeeySUBm27

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-12 16:32:03 +08:00
Tianyi Zhou 527c12a3d0 feat: gather owner profile from host memory, files and connectors (#201)
* feat: add owner profile for personal agent first-run setup

Adds an owner family (self/yourself/me alias to it) that interviews the
agent's own user and writes a short always-on summary between Distilly
markers into the host user file (Claude Code ~/.claude/CLAUDE.md,
OpenClaw workspace USER.md). The full profile stays at
~/.distilly/owner/profile.md. It is context about the user, not a
role-play Skill, so skill_writer refuses the owner family.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y32jGbUW3JKCyeeySUBm27

* feat: gather owner profile from host memory, files and connectors

The owner intake now starts by checking what the host already knows
(memory, existing user files, connected tools), then asks only for what
is missing, and can read connected calendar, mail, docs, code or user
exports read-only with the user's OK. Distilly never asks for keys or
OAuth on this path. Profiles record a source per fact, and the summary
limit is resolved per host.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y32jGbUW3JKCyeeySUBm27

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-12 16:30:44 +08:00
Tianyi Zhou 0c781a92e5 feat: add owner profile for personal agent first-run setup (#197)
Adds an owner family (self/yourself/me alias to it) that interviews the
agent's own user and writes a short always-on summary between Distilly
markers into the host user file (Claude Code ~/.claude/CLAUDE.md,
OpenClaw workspace USER.md). The full profile stays at
~/.distilly/owner/profile.md. It is context about the user, not a
role-play Skill, so skill_writer refuses the owner family.


Claude-Session: https://claude.ai/code/session_01Y32jGbUW3JKCyeeySUBm27

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-12 16:29:13 +08:00
Tianyi Zhou 006caac2af docs: add personal agent icons to README (#203)
* docs: add personal agent icons to README

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FfkuFuQRdzTzbYjvJvEWV3

* docs: move personal agents into their own README section

The host-list test reads every image inside the '3️⃣' section up to the
next rule, so the new icons belong in a separate section.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FfkuFuQRdzTzbYjvJvEWV3

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-12 16:28:02 +08:00
Tianyi Zhou c978219f48 Keep collector credentials out of the agent context (#202)
Lark/Feishu, DingTalk and Slack collectors now read secrets from
environment variables, then the OS keychain (optional keyring), then the
0600 config file. --setup and the new Feishu --login use hidden input and
refuse to run without a TTY, so an agent cannot pipe secrets through
them. --check reports where each credential comes from without printing
values, and Feishu --refresh renews the user token from the stored
refresh_token. --user-token / --exchange-code are removed, and SKILL.md
no longer asks users to paste App Secrets, tokens or OAuth codes.


Claude-Session: https://claude.ai/code/session_017ZQBLAJV6q9FP7domp6FKf

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-12 16:03:46 +08:00
Tianyi Zhou 5901f5b6d1 docs: README cover lists personal agents only, larger (#200)
Claude-Session: https://claude.ai/code/session_01FfkuFuQRdzTzbYjvJvEWV3

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-12 15:59:02 +08:00
Tianyi Zhou 7141cbea9f docs: README cover adds personal agents (#199)
Claude-Session: https://claude.ai/code/session_01FfkuFuQRdzTzbYjvJvEWV3

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-12 15:50:22 +08:00
Tianyi Zhou e4cf295f4c docs: replace README cover with tech-style v8 (#198)
Claude-Session: https://claude.ai/code/session_01FfkuFuQRdzTzbYjvJvEWV3

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-12 15:49:21 +08:00
zhoutianyi b830d3dcbd chore: remove OpenArena ownership claim file 2026-09-13 00:19:28 +08:00
zhoutianyi 868c293f56 docs: separate and enlarge source logos snapshot/default-dot-skill-20260911 2026-08-25 15:17:47 +08:00
zhoutianyi 8c267f91c8 docs: add logos to source tables 2026-08-25 15:10:56 +08:00
zhoutianyi 6f4a91471d ci: update package publishing actions 2026-08-25 12:58:09 +08:00
zhoutianyi 629563a951 build: publish Distilly as a GitHub package 2026-08-25 12:55:15 +08:00
zhoutianyi 04c72cc26c docs: remove project structure from readmes 2026-08-24 11:47:48 +08:00
zhoutianyi 70b99d0591 docs: simplify install and usage quick start 2026-08-24 11:45:54 +08:00
zhoutianyi 50a02fced4 docs: remove remaining logo disclaimers 2026-08-24 11:24:10 +08:00
zhoutianyi 3c88f84df0 docs: use renamed distilly repository URL 2026-08-24 11:23:10 +08:00
zhoutianyi 254077c328 docs: remove host logo disclaimer 2026-08-24 10:56:47 +08:00
zhoutianyi 0e7ccbaf18 feat: add OpenCode support and host logo grid 2026-08-24 02:38:44 +08:00
zhoutianyi da25b8aeac docs: publish Distilly v7 banner 2026-08-24 02:02:26 +08:00
zhoutianyi c7cb3d348d docs: keep localized surfaces monolingual 2026-08-24 01:40:33 +08:00
zhoutianyi 9cd722a0c2 merge: integrate accepted contributor pull requests 2026-08-24 01:27:37 +08:00
Tianyi Zhou 1517c9d73b Merge pull request #140 from kriptoburak/codex/xquik-public-posts
feat: add bounded public X research collector
2026-08-24 01:23:56 +08:00
zhoutianyi 1db4927a81 fix: harden Xquik candidate collection 2026-08-24 01:23:13 +08:00
Tianyi Zhou 4c6b7519ba Merge pull request #135 from LHMQ878/fix/work-only-persona-handoff
fix: keep work-only skills from referring to Persona
2026-08-24 01:19:38 +08:00
zhoutianyi 1cf1ad09f0 fix: make work-only handoff removal line-safe 2026-08-24 01:18:33 +08:00
zhoutianyi 94be6324ee docs: position Distilly around Person Profiles 2026-08-24 01:06:27 +08:00
zhoutianyi e1057f7f7a docs: simplify Skill host guidance 2026-08-24 00:31:59 +08:00
zhoutianyi ff5844f6da feat: finish Distilly host and research integration 2026-08-23 23:43:28 +08:00
zhoutianyi bd563fbd8c docs: rebrand public skill as Distilly 2026-08-23 21:57:59 +08:00
kriptoburak cfbc89a009 feat: add public X research collector 2026-08-21 13:19:21 +03:00
zhoutianyi 7a77c7cb67 docs: remove WeChat group announcement 2026-08-21 11:19:43 +08:00
zhoutianyi 5a799b83b5 docs: remove colleague skill PDF 2026-08-18 21:35:38 +08:00
zhoutianyi 213b102fa0 docs: remove institutional attribution 2026-08-18 21:35:10 +08:00
LHMQ878 63044e3393 fix: keep work-only skills from referring to Persona
Work-only artifacts claimed they had no Persona, but still told the model to answer out-of-scope questions via the Persona section. Combined skills keep the original handoff.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-17 13:56:48 +08:00
zhoutianyi 22d96a76e0 docs: update 20K milestone and DSH support 2026-08-13 23:00:22 +08:00
zhoutianyi 4b0ffec2e9 docs: link DSH badge to public plugin topic 2026-08-13 22:48:53 +08:00
zhoutianyi e23265f47e docs: add DSH support and social banner 2026-08-13 22:46:10 +08:00
zhoutianyi 4d1681be9b fix: restore star history charts 2026-08-11 14:50:34 +08:00
zhoutianyi 47039d08fc docs: sync multilingual technical report update 2026-06-01 16:02:56 +08:00
zhoutianyi 75f5556b99 docs: publish updated technical report 2026-06-01 15:59:07 +08:00
zhoutianyi 302dccc123 docs: clarify host and skill publishing notes 2026-06-01 12:25:43 +08:00
zhoutianyi 36fec6f803 docs: update repository citation to arXiv 2026-06-01 12:24:01 +08:00
zhoutianyi 3441849577 docs: cite arXiv technical report 2026-06-01 11:47:31 +08:00