Skip to main content

evolve-skill

Evolve an existing skill by refining its content in-place or creating an advanced variant. Covers assessing the current skill, gathering evolution requirements, choosing scope (refinement vs. variant), applying changes, updating version metadata, and synchronizing the registry and cross-references. Use when a skill's procedure steps are outdated, user feedback reveals gaps, a skill needs a complexity upgrade, an advanced variant is needed alongside the original, or related skills are added and cross-references are stale.

설치로 이동

소스 정보

저장소
pjt222/agent-almanac
최근 소스 활동
2026년 9월 15일 08:59
감지된 SKILL.md 언어
영어
스타
34
포크
4

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
evolve-skill
locale
caveman-ultra
source_locale
en
source_commit
82c77053
translator
Julius Brussee homage — caveman
translation_date
2026-04-24
description
Evolve an existing skill by refining its content in-place or creating an advanced variant. Covers assessing the current skill, gathering evolution requirements, choosing scope (refinement vs. variant), applying changes, updating version metadata, and synchronizing the registry and cross-references. Use when a skill's procedure steps are outdated, user feedback reveals gaps, a skill needs a complexity upgrade, an advanced variant is needed alongside the original, or related skills are added and cross-references are stale.
license
MIT
allowed-tools
Read Write Edit Bash Grep Glob
metadata
{"author":"Philipp Thoss","version":"1.2","domain":"general","complexity":"intermediate","language":"multi","tags":"meta, skill, agentskills, maintenance, evolution, versioning"}
# Evolve an Existing Skill Improve, extend, or create advanced variant of skill originally made w/ `create-skill`. Covers maintenance: assess gaps, apply improvements, bump versions, sync registry + cross-refs. ## Use When - Procedure outdated after tooling change - Feedback → missing pitfalls, unclear steps, weak validation - Needs grow basic → intermediate (intermediate → advanced) - Advanced variant needed alongside original (e.g., `create-r-package` + `create-r-package-advanced`) - Related skills added/removed → cross-refs stale ## In - **Required**: Path to existing SKILL.md - **Required**: Evolution trigger (feedback, tooling, complexity, new related, discovered pitfalls) - **Optional**: Target complexity if change (basic, intermediate, advanced) - **Optional**: Create variant instead refine (default: refine in-place) ## Do ### Step 1: Assess Current Read SKILL.md + eval each section vs checklist: | Section | Check | Common Issues | |---|---|---| | Frontmatter | Required fields, `description` <1024 | Missing `tags`, stale `version` | | When to Use | 3-5 concrete triggers | Vague/overlapping | | Inputs | Required vs optional separated | Missing defaults | | Procedure | Each step code + Expected + On failure | Missing On failure, pseudocode not real | | Validation | Binary pass/fail | Subjective ("clean") | | Common Pitfalls | 3-6 w/ cause + avoidance | Too generic ("be careful") | | Related Skills | 2-5 valid refs | Stale to renamed/removed | ```bash # Read the skill cat skills/<skill-name>/SKILL.md # Check frontmatter parses head -20 skills/<skill-name>/SKILL.md # Verify related skills still exist grep -oP '`[\w-]+`' skills/<skill-name>/SKILL.md | sort -u ``` → List specific gaps. If err: no SKILL.md or no frontmatter → skill N/A, use `create-skill` from scratch. ### Step 2: Gather Reqs Identify + categorize trigger: | Trigger | Example | Scope | |---|---|---| | User feedback | "Step 3 unclear" | Refinement | | Tooling change | New API, deprecated cmd | Refinement | | Discovered pitfall | Common failure undocumented | Refinement | | Complexity upgrade | Too shallow for real use | Refinement or variant | | New related | Adjacent skill added | Refinement (cross-refs) | | Advanced use case | Power users deeper | Variant | Document changes + target sections before edit. → Concrete list (e.g., "Add On failure Step 4", "Add Step 6 edge case X", "Update Related → `new-skill`"). If err: unclear → consult user. Vague goals → vague improvements. ### Step 3: Choose Scope Decision matrix: | Criteria | Refinement (in-place) | Variant (new skill) | |---|---|---| | Skill ID | Unchanged | `<skill>-advanced` | | File path | Same SKILL.md | New dir | | Version bump | Minor (major only if breaking) | Starts 1.0 | | Complexity | May increase | Higher than original | | Registry | No new entry | New entry | | Symlinks | No change | New symlinks | | Original | Modified directly | Left intact, gains cross-ref | **Refinement**: Improve quality, fix gaps, modest new. Keeps identity. **Variant**: Doubles length, diff audience, diff inputs. Original stays for simpler uses. → Clear decision + rationale. If err: unsure → default refinement. Extract variant later easier than merge back. ### Step 4: Apply Changes #### Refinements Edit existing SKILL.md directly: - Open for editing - Add/revise procedure steps - Strengthen Expected/On failure pairs - Add tables or examples - Update When to Use triggers - Revise Inputs if scope changed Editing rules: - Preserve all sections — add not remove - Step numbering sequential after insertions - Every new/modified step → Expected + On failure - New pitfalls at end of Common Pitfalls - New related at end of Related Skills #### Variants ```bash # Create the variant directory mkdir -p skills/<skill-name>-advanced/ # Copy the original as a starting point cp skills/<skill-name>/SKILL.md skills/<skill-name>-advanced/SKILL.md # Edit the variant: # - Change `name` to `<skill-name>-advanced` # - Update `description` to reflect the advanced scope # - Raise `complexity` (e.g., intermediate → advanced) # - Reset `version` to "1.0" # - Add/expand procedure steps for the advanced use case # - Reference the original in Related Skills as a prerequisite ``` → SKILL.md (refined/variant) passes Step 1 checklist. If err: edit breaks structure → `git diff` review, revert `git checkout -- <file>`. ### Step 4.5: Sync Translated Variants > **Required when translations exist.** Applies human authors + AI agents. No skip — stale `source_commit` → `npm run validate:translations` false staleness across locales. Check + update translations: ```bash # Check for existing translations ls i18n/*/skills/<skill-name>/SKILL.md 2>/dev/null ``` #### If translations exist 1. Current source commit: ```bash npm run validate:translations ``` 2. Update `source_commit` each translated: ```bash npm run check:fence-propagation -- --id <skill-name> node tools/provenance-field.mjs --field fence_basis_commit --set $(git rev-parse --short HEAD) <mirror paths> ``` 3. Flag → re-translation in commit msg: ```text evolve(<skill-name>): <description of changes> Translations flagged for re-sync: de, zh-CN, ja, es Changed sections: <list sections that changed> ``` 4. Regenerate status: ```bash npm run translation:status ``` #### If no translations exist No action. Proceed Step 5. #### Variants Defer translation new variants until stabilize (1-2 versions). Translating v1.0 variant that may change by v1.2 wastes effort. Add after refinement. → All translated `source_commit` updated. Commit msg notes locales + sections. `npm run translation:status` exits 0. If err: `sed` fails match field → translated file non-standard. Open manually, verify `source_commit` in YAML. Missing → re-scaffold `npm run translate:scaffold`. ### Step 5: Version + Metadata Bump `version`: | Change | Bump | Example | |---|---|---| | Typo/wording | Minor: 1.0 → 1.1 | Fixed unclear sentence | | New step/pitfall/table | Minor: 1.0 → 1.1 | Added Step 7 edge case | | Restructured, inputs changed | Major: 1.0 → 2.0 | Reorganized 5 → 8 steps | Also update: - `complexity` if scope expanded (basic → intermediate) - `tags` if coverage changed - `description` if scope materially diff → `version` reflects magnitude. New variants start `"1.0"`. If err: forget bump → no track. Always bump before commit. ### Step 6: Registry + Cross-Refs #### Refinements No registry changes (path unchanged). Update cross-refs only if Related Skills changed in other skills: ```bash # Check if any skill references the evolved skill grep -r "<skill-name>" skills/*/SKILL.md ``` #### Variants Add new skill to `skills/_registry.yml`: ```yaml - id: <skill-name>-advanced path: <skill-name>-advanced/SKILL.md complexity: advanced language: multi description: One-line description of the advanced variant ``` Then: 1. Increment `total_skills` top of registry 2. Add Related Skills in original → variant 3. Add Related Skills in variant → original 4. Symlinks for slash command discovery: ```bash # Project-level ln -s ../../skills/<skill-name>-advanced .claude/skills/<skill-name>-advanced # Global ln -s /mnt/d/dev/p/agent-almanac/skills/<skill-name>-advanced ~/.claude/skills/<skill-name>-advanced ``` → Registry `total_skills` = `find skills -name SKILL.md | wc -l`. Cross-refs bidirectional. If err: count wrong → `find skills -name SKILL.md | wc -l` get truth + correct. Broken symlinks → `readlink -f` debug. ### Step 7: Validate Full checklist: - [ ] SKILL.md exists expected path - [ ] YAML frontmatter parses - [ ] `version` bumped (refinement) or "1.0" (variant) - [ ] All sections: When to Use, Inputs, Procedure, Validation, Common Pitfalls, Related Skills - [ ] Every step has Expected + On failure - [ ] Related Skills ref valid existing - [ ] Registry entry (variants) correct path - [ ] `total_skills` matches actual disk - [ ] Symlinks resolve (variants) - [ ] `git diff` no accidental deletions - [ ] Refinements w/ translations: `source_commit` updated or flagged re-sync ```bash # Verify frontmatter head -20 skills/<skill-name>/SKILL.md # Count skills on disk vs registry find skills -name SKILL.md | wc -l grep total_skills skills/_registry.yml # Check symlinks (for variants) ls -la .claude/skills/<skill-name>-advanced readlink -f .claude/skills/<skill-name>-advanced/SKILL.md # Review all changes git diff ``` → All pass. Ready to commit. If err: address each. Most common: stale `total_skills` — always verify last. ## Check - [ ] SKILL.md exists + valid YAML - [ ] `version` reflects changes - [ ] Every step has Expected + On failure - [ ] Related Skills valid (no broken) - [ ] Registry `total_skills` matches disk - [ ] Variants: new entry in `_registry.yml` correct path - [ ] Variants: symlinks at `.claude/skills/` + `~/.claude/skills/` - [ ] `git diff` no accidental removal - [ ] Refinements w/ translations: `source_commit` updated or flagged ## Traps - **Forget version bump**: No track. Always `version` before commit. - **Accidental deletion**: Restructure → drop On failure or table row. Review `git diff` before commit. - **Stale cross-refs**: Variant → both original + variant reference each other. One-directional → incomplete graph. - **Registry count drift**: Variant → increment `total_skills`. Forget → validation failures elsewhere. - **Stale translations post-evolution**: 1,288 translations → every skill evolution → up to 4 locale files stale. Check `ls i18n/*/skills/<skill-name>/SKILL.md` + update `source_commit` or flag re-translation. Skip → `npm run validate:translations` stale warnings. - **Scope creep in refinement**: Refinement doubling length → probably variant. >3 new steps → reconsider Step 3 decision. - **`git mv` on NTFS (WSL)**: `/mnt/` paths, `git mv` for dirs → broken permissions (`d?????????`). Use `mkdir -p` + copy + `git rm` old. See [env guide](../../guides/setting-up-your-environment.md) troubleshooting. ## → - `create-skill` — foundation new skills; evolve-skill assumes this followed - `commit-changes` — commit evolved skill w/ descriptive msg - `configure-git-repository` — version-controlled changes - `security-audit-codebase` — review for accidentally included secrets
GitHub에서 보기