RFC-007 — Skill distillation: download → wiki → Claude skill
- Status: Draft
- Authors: @yiidtw
- Created: 2026-07-12
- Related: SPEC.md “Pipeline” section, RFC-004 (reference self wiki), amem-clipper#3 (Paste Board)
TL;DR
amem Clipper’s positioning is a three-step pipeline: download the resource the user is reading/watching (web page, video) → compile it into an Obsidian vault (personal wiki, knowledge graph) → distill recurring procedural knowledge into Claude skills.
Steps 1–2 ship today. This RFC defines step 3: when a cluster of wiki nodes qualifies for distillation, how the compile works, and the guardrails that keep the skill list from drowning in junk.
Corrected 2026-08-11 (competitor scan). The original claim here — “every clipper competitor stops at storage; nobody closes the loop into agent capability” — is now half wrong, and the surviving half is narrower:
- Closing the loop to agent access is a red ocean. LLM Wiki ships a
bundled MCP server plus a published
llm_wiki_skillinstallable withnpx skills add; SiYuan, Karakeep, and basic-memory all serve MCP too. Claiming nobody reaches agent capability is false. - Compiling captured knowledge into new skills is still unclaimed. Every
one of those, verified by reading their source, consumes hand-written
SKILL.mdfiles — none generates one from what the user captured.
So the moat is not “step 3”; it is the automatic generation half of step 3. Write it that way externally, because the wider claim does not survive contact with LLM Wiki.
Three-tier semantics
| Tier | Kind of knowledge | Agent usage |
|---|---|---|
| wiki node | declarative — “what is X” | storage substrate |
| MCP recall | reference — search + cite with provenance | on-demand lookup |
| skill | procedural — “how to do X” | auto-triggered reflex |
Distillation is selective. Of ~100 captures, maybe 3 clusters represent a
repeatable workflow worth compiling; the other 97 stay reference material
served via amem_recall. Compiling everything would pollute skill discovery
and destroy trigger accuracy.
Qualification criteria (what makes a cluster skill-worthy)
A node cluster qualifies for distillation when ALL of:
- Procedural — the nodes describe steps/commands/decision rules, not just facts. Heuristic: imperative verbs, numbered steps, code blocks with commands (not just definitions).
- Recurring — signal that this workflow repeats:
- ≥3 captures in the same topic cluster, OR
- the same nodes surfaced in ≥3 distinct
amem_recallqueries, OR - the user explicitly says so.
- Self-contained — the distilled skill can execute from its own text + linked wiki nodes, without the original page being live.
v1 trigger is explicit only: amem compile-skill <cluster> (MCP tool +
CLI). Auto-suggestion (“these 4 nodes look like a workflow — distill?”) is a
later phase; auto-compilation without a human in the loop is a non-goal.
Compile output
~/.claude/skills/<slug>/SKILL.md # or project .claude/skills/ when scoped
- Frontmatter
name+descriptionfollow skill-creator conventions (description states WHEN to trigger, with 中英 keywords the user actually says). - Body: distilled procedure, NOT a paste of the source nodes.
- Provenance footer is mandatory: wikilinks back to the source
~/.amem/wiki/<node_id>.mdnodes + original URLs. A skill whose sources died should be auditable and re-verifiable (amem_factchecktie-in).
Guardrails
- Skill budget — warn when distilled skills exceed ~20; force review of the least-triggered before adding more.
- No secrets — compile refuses content matching credential patterns;
vault references (
vault get KEY) instead of literals. - Eval before install — run the
eval/skill-creatorgrader on the generated SKILL.md; below-threshold output lands as a draft in the wiki, not in~/.claude/skills/. - Idempotent recompile — re-running on the same cluster updates the existing skill (matched by provenance), never duplicates.
Video capture (step 1 scope note)
“Download” for video = transcript + key frames, not the media file: storage, copyright, and yt-dlp maintenance all argue against full downloads, and the agent consumes the text layer anyway. Full-media archival is a non-goal.
Acceptance
-
amem compile-skill <cluster>MCP tool + CLI verb - Qualification check (procedural + recurring + self-contained) with human-readable rejection reasons
- SKILL.md output with provenance footer, eval-gated install
- Idempotent recompile on provenance match
- E2E: 3 captures on one workflow → compile → new skill triggers in a fresh Claude Code session
Non-goals
- Auto-compiling every capture into a skill (junk-pollution failure mode)
- Full video/media archival
- Distilling from sources the user hasn’t captured (that’s the frontier model’s own knowledge, not amem’s)