From ff47dace11c621f525a6bab8b2f669faab9c42bb Mon Sep 17 00:00:00 2001 From: Tatsuya Shimomoto Date: Sat, 21 Feb 2026 12:10:39 +0900 Subject: [PATCH] feat(commands): add learn-eval command --- commands/learn-eval.md | 91 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 commands/learn-eval.md diff --git a/commands/learn-eval.md b/commands/learn-eval.md new file mode 100644 index 00000000..18d8853c --- /dev/null +++ b/commands/learn-eval.md @@ -0,0 +1,91 @@ +--- +description: Extract reusable patterns from the session, self-evaluate quality before saving, and determine the right save location (Global vs Project). +--- + +# /learn-eval - Extract, Evaluate, then Save + +Extends `/learn` with a quality gate and save-location decision before writing any skill file. + +## What to Extract + +Look for: + +1. **Error Resolution Patterns** — root cause + fix + reusability +2. **Debugging Techniques** — non-obvious steps, tool combinations +3. **Workarounds** — library quirks, API limitations, version-specific fixes +4. **Project-Specific Patterns** — conventions, architecture decisions, integration patterns + +## Process + +1. Review the session for extractable patterns +2. Identify the most valuable/reusable insight + +3. **Determine save location:** + - Ask: "Would this pattern be useful in a different project?" + - **Global** (`~/.claude/skills/learned/`): Generic patterns usable across 2+ projects (bash compatibility, LLM API behavior, debugging techniques, etc.) + - **Project** (`.claude/skills/learned/` in current project): Project-specific knowledge (quirks of a particular config file, project-specific architecture decisions, etc.) + - When in doubt, choose Global (moving Global → Project is easier than the reverse) + +4. Draft the skill file using this format: + +```markdown +--- +name: pattern-name +description: "Under 130 characters" +user-invocable: false +origin: auto-extracted +--- + +# [Descriptive Pattern Name] + +**Extracted:** [Date] +**Context:** [Brief description of when this applies] + +## Problem +[What problem this solves - be specific] + +## Solution +[The pattern/technique/workaround - with code examples] + +## When to Use +[Trigger conditions] +``` + +5. **Self-evaluate before saving** using this rubric: + + | Dimension | 1 | 3 | 5 | + |-----------|---|---|---| + | Specificity | Abstract principles only, no code examples | Representative code example present | Rich examples covering all usage patterns | + | Actionability | Unclear what to do | Main steps are understandable | Immediately actionable, edge cases covered | + | Scope Fit | Too broad or too narrow | Mostly appropriate, some boundary ambiguity | Name, trigger, and content perfectly aligned | + | Non-redundancy | Nearly identical to another skill | Some overlap but unique perspective exists | Completely unique value | + | Coverage | Covers only a fraction of the target task | Main cases covered, common variants missing | Main cases, edge cases, and pitfalls covered | + + - Score each dimension 1–5 + - If any dimension scores 1–2, improve the draft and re-score until all dimensions are ≥ 3 + - Show the user the scores table and the final draft + +6. Ask user to confirm: + - Show: proposed save path + scores table + final draft + - Wait for explicit confirmation before writing + +7. Save to the determined location + +## Output Format for Step 5 (scores table) + +| Dimension | Score | Rationale | +|-----------|-------|-----------| +| Specificity | N/5 | ... | +| Actionability | N/5 | ... | +| Scope Fit | N/5 | ... | +| Non-redundancy | N/5 | ... | +| Coverage | N/5 | ... | +| **Total** | **N/25** | | + +## Notes + +- Don't extract trivial fixes (typos, simple syntax errors) +- Don't extract one-time issues (specific API outages, etc.) +- Focus on patterns that will save time in future sessions +- Keep skills focused — one pattern per skill +- If Coverage score is low, add related variants before saving