evolve-distill
Use when turning a repeated, successful multi-step workflow from past sessions into a reusable overlay skill — distilling a proven procedure into a…
Skill by uhstray-io
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/uhstray-io-evolve-distill
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: productivity
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/evolve-distill
What's inside
- Skill name
evolve-distill- Description
- Use when turning a repeated, successful multi-step workflow from past sessions into a reusable overlay skill — distilling a proven procedure into a class-level skill proposal ("distill a skill from this", "turn this workflow into a skill", "make a skill from how I keep doing X", "extract a skill from my history"). Creates an eval-gated, human-approved proposal — never writes a skill directly. For auditing existing skills use evolve-skills; for session corrections use evolve-review.
- License
- MIT
- Instructions
- 125 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- files: referenced but missing: scripts/skill-bench.ts
Files (1)
- SKILL.md
SKILL.md (first lines)
# evolve-distill — a proven workflow becomes a skill, safely
This is evolve's answer to autoskill-style skill creation
(`docs/evolve-plan.md`): distill a *successful multi-step workflow*
into a reusable skill — but behind every evolve gate. The difference that
matters: autoskill runs an LLM subprocess and **auto-writes** the skill to
disk. Here **you are the extractor** (the agent-is-deriver pattern), and the
output is a *proposal*, not a skill — it lands only after an eval and a human
say so. That prevents the sprawl and poisoning that ungated auto-creation
invites.
Paths: `EVOLVE=${CLAUDE_PLUGIN_ROOT}/scripts/evolve`; resolve state with
`node $EVOLVE/honcho_client.ts status` (honors `XDG_DATA_HOME`).
## When NOT to distill
Most sessions produce nothing distillable, and that is the correct outcome.
A workflow earns a skill only when **all** hold — otherwise stop:
- **Reusable class, not a one-off.** A procedure for a *class* of tasks
("set up a new FastAPI service"), never a single task ("fix today's bug").
- **≥2 witnessing sessions** (the anti-overfit bar — autoskill's headline
failure is single-trajectory skills that bake in run-specific paths). The
exception is an explicit user ask ("make a skill from this"), which is its
own evidence.
- **Non-obvious.** It saved real work and isn't common knowledge or a
single command.
- **Not already covered** by a hub skill or an existing overlay (check
`overlay.ts report`; near-duplicate → propose a *patch* via evolve-review,
not a new skill).
## Procedure
**1. Find candidates.** Recurring signal points at what to read:
```bash
node $EVOLVE/overlay.ts distill-candidates
```
Task classes seen in ≥2 distinct sessions, with their session-ids. Thin by
design — it says *where to look*, not *what to create*. No candidates? Say
"nothing to distill" and stop (run `digest.ts --backfill` first if the
journal is empty).
**2. Read the evidence — you are the extractor.** For a candidate, open the
named sessions' transcripts (under the projects dir from `status`) and confirm
the *same* multi-step workflow actually recurred and succeeded. Two sessions
that merely touched the same skill are not a workflow — read them and judge.
Verify success from artifacts (git log, test output) where the transcript is
ambiguous; never trust a self-report of "it worked."
**3. Distill class-level, strip the session.** Draft the SKILL.md body as
*When to use / Core principles / Workflow* with concrete tool commands.
Ruthlessly remove anything specific to one run — fixed paths, values, repo
names, calibrations. Whatever only one trajectory needed goes to a
`references/` note, not the body. A session-specific name is an automatic
reject; name for the class (`setup-fastapi-service-local`, never
`fix-x-today-local`).
**4. Write the eval — no eval, no registration.** A skill with no way to
prove it works never enters the catalog (the catalog is trusted recall). Draft
a bench scenario that asserts on **artifacts**: `{"id": ..., "prompt": ...,
"assert": "<shell that exits 0 iff the skill worked>", "judge": "<optional
rubric>"}`. This is the gate — `overlay.ts propose` refuses an
`overlay-create` without it.
**5. Stage the proposal (never write the skill).** Pipe the proposal to
`propose` — it validates the eval and the ≥2-session bar, then stages to
`pending/`:
```bash
echo '{"kind":"overlay-create","name":"<class>-local",
"description":"Use when …","body":"## When to use…\n## Workflow\n1. …",
"summary":"distilled <class> workflow","signal":"recurred in N sessions",
"sessions":["<id1>","<id2>"],
"eval":{"id":"smoke","prompt":"/<class>-local …","assert":"…"}}' \
| node $EVOLVE/overlay.ts propose
```
**6. Record the mining (symmetric mining, Law 9).** Bank what *worked*, not
only failures: `honcho_client.ts observe --type technique --target agent
--content "[technique] project=… — <the reusable method>"` so the next
distill pass sees the reinforcing signal.
**7. Hand off.** The proposal sits in `pending/`; `/evolve-review` presents it
for approval, and approval replays it via `overlay.ts apply-pending` →
**GR4 skill-write scan** → overlay scaffolded at confidence **0.0** with its
`bench.json` bundled. It earns trust only through `overlay.ts record` outcomes;
never present a fresh distilled skill as proven.
## Hard rules
- **The house standard applies to generated skills too.** Read
`skills/writing-skills/references/skill-authoring.md` before proposing one.
A pipeline whose output is exempt from the standard reintroduces every
problem the standard exists to prevent, only faster. In particular: the
description carries trigger conditions and never a workflow summary (D2), and
the proposal is not complete without a negative-activation scenario proving
the skill stays silent on its nearest neighbour (E2).
**Known gap — the tooling cannot carry that scenario yet.** `overlay.ts
propose` requires every scenario to bring an `eval.assert`, and an
`expect_no_activation` scenario has none by design: it is decided by a trigger
probe, not an assert. An accepted proposal also writes a single eval object
where `scripts/skill-bench.ts` expects a spec with `skill` and `scenarios`.
Until both schemas change together — its own change, not a patch here — author
the negative scenario into `tests/bench/<name>.json` by hand, and never read
"propose accepted it" as evidence that E2 was met.
- **De-identification reuse test (R1)**: after stripping case-specific
entities, ask whether this user would need the same policy again — if what
remains is generic advice, distill nothing. Empty is the default success.
- **Never invent steps.** Only workflow steps the sessions actually
demonstrate; single-trajectory details go to `references/`, not the body.
- **Propose, never write.** This skill stages proposals only. Applying is
`/evolve-review`'s human-gated step; scaffolding runs the poisoning scan.
- **≥2 sessions or an explicit ask.** One impressive session is the overfit
trap, not evidence.
- **No eval, no registration.** Enforced mechanically at `propose`.
- **Class-level names; hub skills are read-only.** A distilled skill is alwaysFrom uhstray-io/huhhb, MIT.
More from uhstray-io/huhhb
- 0.579score
buhhdy-model-calibration-refresh
uhstray-io
Use when buhhdy's provider/model/auth facts need re-verifying — the operator says "run calibration refresh", the monthly refresh is due, a dispatch just…
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
discovering-context
uhstray-io
Use when a goal is big, vague, or dependency-heavy and you need to map every piece of context required before planning — "map the context", "what context do I…
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
evolve-map
uhstray-io
Use when understanding the whole skill ecosystem and how skills relate — inventorying every skill across tiers (repo / user / plugin), drawing relationships…
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
evolve-skills
uhstray-io
Use when reviewing the skill library as a whole and driving the skill lifecycle — auditing every hub skill and overlay against usage telemetry, bench history…
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
core-workflows
uhstray-io
Use when starting new planning/research on a project or picking up development against an existing plan — buhhdy's two standard, repeatable sequences…
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
evolve-review
uhstray-io
Use when running evolve's learning pass over recent sessions — triaging captured observations into overlay patches, new overlays, repo-memory entries, or…
SkillBFreshness: B★ 5Claude Code +9 - 0.576score
investigate
uhstray-io
Delegate read-only investigation, debugging, audit, search, or code-understanding tasks to sub-agents; synthesize only from their structured reports.
SkillBFreshness: B★ 5Claude Code +9 - 0.576score
cross-review
uhstray-io
Verify an implementer's diff with an INDEPENDENT, different-vendor sub-agent (diff plus contract only), LOCALLY and BEFORE the PR is opened; turn blocking…
SkillBFreshness: B★ 5Claude Code +9 - 0.576score
fanout
uhstray-io
Run independent subtasks in parallel — one git worktree and one implementation sub-agent per task, each cross-reviewed LOCALLY before it opens its own PR.
SkillBFreshness: B★ 5Claude Code +9 - 0.576score
routing-guide
uhstray-io
Reference skill for buhhdy's provider routing logic — the decision tree, model tier table, per-provider strengths, skill-to-provider affinity, and…
SkillBFreshness: B★ 5Claude Code +9 - 0.556score
brainstorming
uhstray-io
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior.
SkillBFreshness: B★ 5Claude Code +9
Signals
- Stars
- 5
- Forks
- 0
- Open issues
- 1
- Last commit (this folder)
- Aug 10, 2026 (2 months ago)
- Last release
- Aug 11, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/uhstray-io/huhhb
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from uhstray-io
- 0.579score
buhhdy-model-calibration-refresh
uhstray-io
Use when buhhdy's provider/model/auth facts need re-verifying — the operator says "run calibration refresh", the monthly refresh is due, a dispatch just…
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
discovering-context
uhstray-io
Use when a goal is big, vague, or dependency-heavy and you need to map every piece of context required before planning — "map the context", "what context do I…
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
evolve-map
uhstray-io
Use when understanding the whole skill ecosystem and how skills relate — inventorying every skill across tiers (repo / user / plugin), drawing relationships…
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
evolve-skills
uhstray-io
Use when reviewing the skill library as a whole and driving the skill lifecycle — auditing every hub skill and overlay against usage telemetry, bench history…
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
core-workflows
uhstray-io
Use when starting new planning/research on a project or picking up development against an existing plan — buhhdy's two standard, repeatable sequences…
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
evolve-review
uhstray-io
Use when running evolve's learning pass over recent sessions — triaging captured observations into overlay patches, new overlays, repo-memory entries, or…
SkillBFreshness: B★ 5Claude Code +9
Cite this page
evolve-distill skill. Agent Mart. https://agentmart.dev/skills/uhstray-io-evolve-distill (last updated 2026-10-24)