| name | skill-maintenance |
| description | Systematic process for maintaining skill health through accuracy checks, completeness reviews, and terminology updates. Use when skill names become unclear, terminology needs updating, periodic audits are due, new skills need cross-reference validation, or skills are reported as confusing or outdated.
|
| triggers | ["update a skill","fix an outdated skill","rename a skill","skill maintenance","refactor skill terminology","skill is confusing or outdated"] |
Skill Maintenance
I. Philosophy: Maintenance Is Keeping What Works Working Well
A skills directory is a living knowledge base. As the project evolves, skill names may become unclear, terminology may need updating, and cross-references may drift out of sync. Without systematic maintenance, the knowledge base degrades: skills become hard to find, references break, and terminology becomes inconsistent.
This skill transforms maintenance from a reactive chore into a proactive ritual. By following a structured process -- read, check, propose, execute, verify, document -- we ensure the skills directory remains clear, consistent, and valuable.
Good maintenance prevents future problems. A well-maintained knowledge base is easier to search, easier to understand, and easier to extend.
II. When to Use This Skill
- Skill names become unclear or outdated -- names no longer describe what the skill does
- Terminology needs updating -- tool-specific language should be generalized, or industry terms have shifted
- Adding new skills -- new skills reference existing skills and need cross-reference validation
- Deprecating or merging skills -- old skills need to be removed or consolidated
- Conducting periodic audits -- regular health checks (quarterly recommended)
- After a major refactor -- ensuring consistency after large-scale changes
- Onboarding new contributors -- ensuring the knowledge base is accessible
When NOT to use: For creating new skills (use skill-creation). For ecosystem-wide assessment (use skill-audit). This skill is for maintaining individual skills or small groups.
III. The Maintenance Workflow
Step 1: Recognize the Need
Goal: Identify when maintenance is needed and clarify scope.
Actions:
- Identify the trigger: user request, noticed inconsistency, scheduled audit, or new skill addition
- Clarify scope with the user: What specifically needs to change? What should stay the same?
- Document the maintenance goal
Output: Clear understanding of maintenance scope.
Key Insight: Always pause and clarify scope before large refactors. Over-refactoring is worse than under-refactoring.
Step 2: Read Before Proposing
Goal: Understand what the skills actually do before suggesting changes.
Actions:
- Read all skills that will be affected by the maintenance, in full
- Understand the actual purpose and workflow of each skill
- Note cross-references between skills
- Identify patterns in naming or terminology
Output: Deep understanding of affected skills.
Key Insight: Never propose renames or refactors without reading the actual content first. Names should reflect reality, not assumptions.
Step 3: Check Accuracy
Goal: Verify everything in the skill is still true.
Actions:
- Check: Have conventions changed since the skill was written?
- Check: Are referenced tools, APIs, or patterns still current?
- Check: Do examples still represent real, valid scenarios?
- Check: Has the domain itself evolved?
Output: List of accuracy issues (if any).
Step 4: Check Completeness
Goal: Identify anything missing.
Actions:
- Check: Are there new trigger scenarios the skill should cover?
- Check: Are there new pitfalls discovered through real usage?
- Check: Are there new best practices that have emerged?
- Check: Should the skill reference new related skills?
Output: List of completeness gaps (if any).
Step 5: Check Triggers and Naming
Goal: Ensure the skill is discoverable and clearly named.
Actions:
- Check: Would a new agent recognize when to use this skill from the YAML description alone?
- Check: Does the description include enough trigger words?
- Check: Are 5+ concrete scenarios listed in "When to Use"?
- Check: Does the skill name follow verb-object convention?
- If renaming is needed: propose names following verb-object pattern, get user confirmation
Output: Trigger and naming assessment.
Step 6: Check Workflow and Checklist
Goal: Verify the workflow steps and quality criteria are current.
Actions:
- Check: Are steps in the right order? Should any be added, removed, or reordered?
- Check: Are decision points clearly marked?
- Check: Do quality checklist items still apply?
- Check: Are there new criteria that should be added?
Output: Workflow and checklist assessment.
Step 7: Check Supporting Files
Goal: Verify templates, references, and examples are current.
Actions:
- Check: Do templates match the current workflow?
- Check: Are references still valid and accessible?
- Check: Do examples still demonstrate the skill accurately?
Output: Supporting files assessment.
Step 8: Execute Changes
Goal: Apply all identified changes systematically.
Actions:
- If renaming: rename directories using
mv AND update internal metadata (name field, title heading)
- If refactoring terminology: search and catalog all references with
grep -r -i, determine strategy (what changes, what stays), execute with batch edits, verify no broken references
- If updating content: apply changes to SKILL.md and supporting files
- If changes are non-trivial: increment version (e.g., v1.0 to v1.1)
- Update "Last Updated" date
- Verify renames with
ls command
Example Batch Edit:
{
"edits": [
{"all": true, "find": "old-term", "replace": "new-term"},
{"all": true, "find": "Old Term", "replace": "New Term"}
]
}
Output: Updated skill files.
Key Insight: When refactoring terminology, always catalog before editing. Use systematic search to find all references -- do not rely on memory. Batch edits with all: true are more efficient than one-by-one replacements.
Step 8.5: Verify and Commit
Goal: Ensure all changes are correct and commit with comprehensive documentation.
Actions:
- Verify no unintended references remain:
grep -i "<old term>" <directory>
- Check git status:
git status
- Stage changes:
git add skills/
- Write comprehensive commit message with file-by-file breakdown
- Commit and push
Commit Message Template:
<Action> in skills directory
<Summary paragraph>
Changes:
- <file1> (<N> replacements)
- <change 1>
- <change 2>
- <file2> (<N> replacements)
- <change 1>
Kept <term> only when:
- <context 1>
- <context 2>
<Rationale paragraph>
Key Insight: Comprehensive commit messages are documentation. Future maintainers need to understand why changes were made, not just what changed.
Step 9: Document and Report
Goal: Create a maintenance report for future reference.
Actions:
- Create maintenance report documenting:
- What was checked (all 7 dimensions)
- What changed (with rationale)
- Current grade (A+ through F)
- Save as
docs/maintenance/[YYYY-MM-DD]_[skill-name]_maintenance.md
Output: Maintenance report.
Grading Rubric:
| Grade | Criteria |
|---|
| A+ | Complete philosophy, workflow, checklist, pitfalls, supporting files, process example |
| A | Complete philosophy, workflow, checklist, pitfalls |
| B | Has workflow and checklist, missing philosophy or pitfalls |
| C | Has workflow but missing checklist, pitfalls, or philosophy |
| D | Incomplete workflow |
| F | Stub or non-functional |
IV. Best Practices
Pause and Clarify Scope
Before any refactor, clarify: What exactly needs to change? What should stay the same? What's the scope? Avoid the temptation to "fix everything while we're at it."
Read Before Proposing
Never suggest changes without reading the actual content. Understanding reality prevents proposing changes that don't make sense.
Use Systematic Search
Don't rely on memory to find all references. Use search to systematically catalog all instances before making changes.
Preserve Contextually Appropriate References
Not all references should be changed. When refactoring terminology, preserve tool-specific mentions when they're contextually appropriate (e.g., when listing multiple tools by name).
Batch Edits for Efficiency
Use the file tool's multiple edits feature with all: true to replace all occurrences in a single operation. Batch edits are more efficient than one-by-one replacements.
Comprehensive Commit Messages
Write commit messages that explain: What changed (file-by-file breakdown), Why it changed (rationale), What was preserved (and why).
Document Immediately
Create maintenance reports right after completing the work. Details fade quickly, and future maintainers will need this context.
V. Quality Checklist
VI. Common Pitfalls
Over-Refactoring
Problem: Changing references that should stay -- historical documents, tool-specific mentions, examples that use real names for clarity.
Solution: Scope appropriately. Only change what needs changing. When in doubt, preserve and note it in the maintenance report.
Proposing Without Reading
Problem: Suggesting renames or changes based on assumptions about what a skill does, rather than what it actually does.
Solution: Read every affected skill completely before proposing any changes. Names should reflect reality.
Missing References
Problem: Relying on memory to find all references that need updating, leading to inconsistencies after the refactor.
Solution: Use systematic search (grep or equivalent) to catalog every reference before making any changes.
Vague Commit Messages
Problem: Committing maintenance changes with messages like "Updated skills" that don't explain what changed or why.
Solution: Write comprehensive commit messages: what changed, why it changed, and what was intentionally preserved.
Skipping the Report
Problem: Completing maintenance without recording the process. Future maintainers don't know what was checked, what was changed, or why.
Solution: Always produce a maintenance report. It takes 10 minutes and saves hours of future confusion.
VII. Example: Skill Rename and Terminology Refactor
Context: After creating 5 new skills, 4 existing skills had names that didn't follow the verb-object convention, and 32 references used tool-specific terminology that needed generalization.
Process:
- User requested renames for clarity
- Read all 4 skills to understand their actual purpose
- Proposed verb-object names, user refined (e.g., "spec-writer" became "write-release-specification")
- Renamed directories and updated all internal metadata
- Searched repository: found 530 total references to the old terminology
- User scoped down: skills directory only (32 references)
- Determined strategy: what to change, what to preserve
- Executed batch edits across 4 files (32 replacements)
- Verified, committed, and documented
Outcome: 4 skills renamed, 32 references updated, 6 tool-specific references intentionally preserved. All cross-references intact.
Time: ~2 hours total.
VIII. Maintenance Schedule
| Frequency | Trigger |
|---|
| Quarterly | Full audit of skills directory |
| After 5+ new skills | Consistency check for new additions |
| On request | When naming or terminology issues are identified |
| Before major releases | Ensure consistency before public releases |
IX. Related Skills
compression-ritual -- For preserving insights before large refactors
process-extraction -- For creating new skills from maintenance processes
health-audit -- For comprehensive repository health audits
documentation-audit -- For identifying documentation drift
Last Updated: 2026-04-06
Status: Active