harvest
Capture an unusually good workflow into a durable, reviewed artifact — a skill, rule, profile, AGENTS.md diff, or team learning — with measured evidence and an explicit contract. Runs a witnessed-behavior census (multi-witness vs single-witness), fills a harvest contract, validates with blind trap prompts, and emits a PASS / FAIL / INCONCLUSIVE verdict before promotion; seeds /autoresearch when the artifact is a skill. Use when a stronger or temporary model, a one-off session, or a teammate's transcript produced behavior worth preserving before it's lost. Triggers "harvest this workflow", "capture what the model did", "turn this session into a skill", "preserve this behavior", "model handoff", "before we lose access to this model".
适合你,如果经常用AI完成复杂任务,想把好结果固定下来
npx oh-my-skill add darkroomengineering/cc-settings/harvestcurl -fsSL https://oh-my-skill.com/install.sh | bash -s -- darkroomengineering/cc-settings/harvestnpx oh-my-skill verify darkroomengineering/cc-settings/harvest怎么用
商店整理自技能原文 · 版本 fa04efc · 表述以原文为准装上后,Claude会把一个特别好的工作流记录下来,变成可复用的技能、规则或知识文件。它先检查行为是否被多次观测,再用陷阱测试验证,最后给出通过/不通过/不确定的结论。只保存可重复的步骤,不保存模型的智能本身。
当你在会话中做出高质量的成果,希望把这个工作方法保存下来时触发。你可以说“把工作流保存为技能”或“捕获模型的行为”来启动。
技能原文 SKILL.md
harvest
Extract the repeatable procedure behind an unusually good result and land it as a reviewed cc-settings artifact — with the evidence measured, not asserted. The output is a concrete file (skill, rule, profile section, AGENTS.md diff, or team-knowledge note) plus a filled [harvest contract](./CONTRACT.md) whose verdict (PASS / FAIL / INCONCLUSIVE) decides whether it may be promoted, and to what scope.
This is a ratchet: it only tightens shared standards on behavior it can show repeated or survived a trap. Behavior it cannot measure is marked INCONCLUSIVE and held back, not written up as fact.
Phase 1 — Witnessed behavior census
Before deciding what to harvest, inventory what was actually seen. For each candidate behavior, record — from evidence, not memory:
- Witness count: how many independent sessions / transcripts / runs showed it, and therefore multi-witness (≥2) or single-witness (1).
- What repeated: the steps that were identical every time — the deterministic core.
- What varied: what differed across witnesses. Decide per difference: noise to drop, or part of the signal to preserve.
- Evidence inspected: the transcripts, PRs, diffs, or outputs you actually read.
- Not proven: what you are inferring rather than observing. Name the gaps.
Evidence comes two ways — use whichever the user has:
- Interview — 3–5 questions, one at a time: trigger? ordered steps? where the default would have gone wrong? how you knew the output was good? what it refused?
- Transcript / diff analysis — the user points at a session, PR, or outputs. Read them, reconstruct the same answers yourself, then confirm with the user.
An unknown witness count is null, never an optimistic guess. Single-witness is a valid census result — it just caps how far the artifact can travel (Phase 5).
Phase 2 — Filter to the harvestable
The bar is a repeatable procedure, not raw intelligence. Test each candidate:
- What did the session do differently from the default path? ("ran the failing test before reading any source", not "it was smarter").
- Would the same steps help a weaker model or a fresh session? If the value was depth of reasoning alone, stop and say so — that can't be harvested, and prose about it is context bloat, not capability.
- Is it already covered? Check the "All Skills" table in
MANUAL.mdand~/.claude/rules/first. If an existing artifact covers 80% of it, the deliverable is a diff to that artifact, not a new one.
Phase 3 — Fill the harvest contract
Distill the census into the [harvest contract](./CONTRACT.md) — copy its template and fill every field: trigger, observed evidence, procedure, known failure modes, quality bar, trap prompts, required tools, verification result, promotion decision.
If you can't fill a row with something concrete, it is null / INCONCLUSIVE — that is data, not a blank to paper over. A missing failure mode usually means the behavior wasn't actually different from the default; go back to Phase 1.
Phase 4 — Route to the smallest artifact, then write it
| The behavior is… | Artifact | How | |---|---|---| | A multi-step workflow a user would invoke | Skill | bun run new-skill + docs/skill-authoring.md | | An always-on constraint tied to file types | Rule | New/edited file in rules/ with paths: frontmatter | | A workflow bundle for one project type | Profile | Section in the matching profiles/*.md | | A universal standard every tool should follow | AGENTS.md | Targeted diff to the relevant section | | A single gotcha, decision, or convention | Team learning | Hand off to /share-learning |
Bias toward the smallest artifact that carries the procedure — folding into an existing skill beats adding a new one (see the skill cap in CLAUDE-FULL.md). Author it in the target's own conventions, carrying the contract's fields into the file: procedure as steps, failure modes as a DON'T / red-flags section, quality bar as explicit checks.
For skills, complete registration: ACTIVE_SKILLS in src/lib/managed-skills.ts, MANUAL.md section + "All Skills" row, then bun run lint:skills.
Phase 5 — Verify: traps, then verdict
Write 2–3 trap prompts — realistic requests where an agent without the artifact takes the documented bad path. For each:
- Run it against a fresh subagent with the artifact loaded. The subagent must not see the trap's expected answer or this checklist (blind-run rule — same as
/autoresearch). - Judge the transcript against the contract's quality bar: did it avoid the specific failure mode?
Then set the verification result per the contract's rubric:
- PASS — multi-witness, or single-witness with all traps passing.
- FAIL — a trap reproduced the bad path with the artifact loaded. Do not promote; revise and re-run, or stop.
- INCONCLUSIVE — evidence missing, single-witness with no passing trap, or any required field still
null. Personal draft only; never a shared standard.
The promotion scope gate ([CONTRACT.md](./CONTRACT.md)) binds the verdict to how far the artifact travels: single-witness never reaches AGENTS.md, rules/, profiles/, or team-knowledge on its own.
Phase 6 — Seed autoresearch (skills only)
When the routed artifact is a skill, hand its evidence forward: write or update skills/<name>/RESEARCH.md so /autoresearch can later optimize it.
## Test Inputs← the trap prompts (one### Test N:per trap).## Checklist← the quality-bar checks (observable, binary — 3–7 items).## Settings← defaults (samples: 3,min_improvement: 0.05,max_rounds: 50).
Preserve the blind-run rule: the seed carries only the raw prompt and the binary criteria — never the expected answer, the scoring rationale, or this conversation's context. Leaking any of those teaches to the test.
Validate the shape before finishing: bun run lint:research skills/<name>/RESEARCH.md (required sections present, ≥2 test inputs, 3–7 checklist items, numeric settings).
Deopt / fallback
- Evidence missing → mark INCONCLUSIVE. Do not promote; do not invent a PASS.
- Trap prompts fail → FAIL. Fix the artifact and re-run, or stop.
- Unknown numbers →
null/ INCONCLUSIVE, never aspirational. - Unknown territory — behavior you can't reconstruct, a judgment you can't verify from evidence on disk — → fall back to
/verify,/oracle, human approval, or normal reasoning rather than forcing a verdict.
Approval gate
Stop. Present the artifact and the filled contract (with its verdict). Wait for approval before:
- Editing
AGENTS.md,rules/, orprofiles/(shared standards — every teammate inherits these; require multi-witness and PASS) - Posting to the team-knowledge repo via
/share-learning - Committing anything
Personal-scope drafts (a new unregistered skill file, a RESEARCH.md seed) may be written freely; the gate is on anything shared.
Pairs with
/autoresearch— the optimization loop on a harvested skill; Phase 6 hands it a ready RESEARCH.md seeded from the traps and quality bar/share-learning— the routing target for single-note learnings/verifyor/oracle— the fallback when a behavior is real but can't be measured into a verdict
What this skill does NOT do
- Clone model reasoning. It captures procedures — steps, checks, gates. If the magic was the model itself, the honest output is "not harvestable".
- Call model APIs to sample or distill behavior. Evidence comes from the user, transcripts, and artifacts already on disk.
- Assert what it didn't witness. Unknown counts are
null; unproven behavior is INCONCLUSIVE. Every promotion carries a verdict, or it isn't done.