skill-evolution-driver
Helps teams continuously improve skills, automatically discovers skill optimization opportunities (such as missing necessary information, format issues, need version updates, etc.), executes safe update processes (backup, modify, test, restore), ensures skill quality continuously improves with project progress
SKILL.md
| Name | skill-evolution-driver |
| Description | Helps teams continuously improve skills, automatically discovers skill optimization opportunities (such as missing necessary information, format issues, need version updates, etc.), executes safe update processes (backup, modify, test, restore), ensures skill quality continuously improves with project progress |
name: skill-evolution-driver description: Helps teams continuously improve skills, automatically discovers skill optimization opportunities (such as missing necessary information, format issues, need version updates, etc.), executes safe update processes (backup, modify, test, restore), ensures skill quality continuously improves with project progress dependency: python: [] system: []
Skill Evolution Driver
Task Objectives
- This Skill is used to: Drive skill self-evolution, continuously optimize as project progresses
- Capabilities include:
- Monitor skill-manager stored data, identify skill optimization opportunities
- Remind users of potential optimization suggestions during idle time
- Maintain skill optimization task list
- Execute skill update processes (backup, update, test, restore)
- Manage skill version numbers
- Trigger Conditions: Triggered under any of following
- User direct request: "Optimize skills", "improve skills", "skills need update", "skill upgrade", "fix skill issues"
- Automatic monitoring trigger: Monitoring skill-manager stored skills data finds pending optimization tasks (such as: status=pending optimization tasks, errors and warnings in logs, missing required fields)
- Version related: "Skill version number needs update", "need to record skill changes"
- Quality related: "Skill format incorrect", "need to check skill quality", "skill tests failing"
Optimization Identification
Data Sources
Analyze optimization opportunities from skill-manager stored skill data:
- Missing Information: Skill configuration lacks necessary fields (such as version)
- Format Issues: Data format doesn't comply with specifications
- Duplicate Information: Redundant or duplicate content exists
- Usage Patterns: Identify improvement points based on access frequency and method
- Error Logs: Identify common errors or warnings from logs
- Cross-Skill Collaboration Issues: From other skills' logs identify dependency issues or improvement suggestions for current skill
Optimization Types
- format_improvement: Format improvement
- content_optimization: Content optimization
- version_update: Version number update
- bug_fix: Bug fix
- feature_enhancement: Feature enhancement
Evolution Process
Step 1: Remind User
Automatic Monitoring Trigger
Agent periodically checks skill-manager stored data, identifies optimization opportunities:
Check Tool: Invoke scripts/check_optimization_opportunities.py
# Check all skills
python scripts/check_optimization_opportunities.py
# Check specific skill
python scripts/check_optimization_opportunities.py --skill-name dev-observability
Check Content:
- Pending Tasks: Check skill-evolution-driver's own stored optimization tasks (status=pending)
- Missing Fields: Check if skill configuration lacks necessary fields (such as version, deploy_mode, manual_path)
- Error Logs: Check for ERROR/WARNING/CRITICAL logs in skill logs
- Directory Issues: Check if skill directory structure complies with specifications
Reminder Format:
Detected potential optimization opportunities:
- Skill: skill-name
- Optimization type: format_improvement
- Description: SKILL.md lacks version field
- Start optimization? (y/n)
User Direct Trigger
When user expresses following needs, directly remind user:
- "Optimize skills", "improve skills"
- "Skills need update", "skill upgrade"
- "Fix skill issues"
- "Skill version number needs update"
- "Skill format incorrect", "need to check skill quality"
Step 2: Maintain Task List
If user agrees, invoke skill-manager to store optimization tasks:
{
"task_id": "OPT-001",
"skill_name": "skill-name",
"optimization_type": "format_improvement",
"description": "SKILL.md lacks version field",
"status": "pending",
"feasibility": "pending",
"backup_path": "",
"old_version": "",
"new_version": "",
"test_result": "",
"notes": "",
"created_at": "2024-01-22 12:00:00",
"updated_at": "2024-01-22 12:00:00"
}
Storage method: Update skill-evolution-driver's configuration in skill-manager
import sys
sys.path.insert(0, '/workspace/projects/skill-manager/scripts')
from skill_manager import SkillStorage
storage = SkillStorage(data_path="/workspace/projects/skill-data.json")
existing_config = storage.get_config("skill-evolution-driver") or {}
existing_config["optimization_tasks"] = [task_dict] # Task list
storage.save_config("skill-evolution-driver", existing_config)
Step 3: Analyze Feasibility
Analyze that skill's optimization feasibility:
Feasibility Assessment Criteria:
- Skill directory structure complete
- SKILL.md format correct
- Script syntax correct
- Dependency relationships clear
- Optimization content clear
Infeasible Situations:
- Skill directory doesn't exist or corrupted
- SKILL.md format error, cannot parse
- Optimization content unclear or too complex
- Optimization may break existing functionality
Update task status:
- Feasible:
feasibility: "feasible" - Not feasible:
feasibility: "not_feasible", and explain reason innotes
Step 4: Backup Skill
Invoke scripts/backup_skill.py to backup skill:
python scripts/backup_skill.py --skill-dir /workspace/projects/skill-name
Backup file format: skill-name.backup.<timestamp>.skill
Update task:
backup_path: "/workspace/projects/skill-name.backup.<timestamp>.skill"
Step 5: Update Skill
Execute specific optimization operations, and update version number:
- Execute Optimization: Modify skill content based on optimization type
- Update Version Number: Invoke
scripts/update_version.py
python scripts/update_version.py --skill-dir /workspace/projects/skill-name --type patch
Version number types:
patch: Patch version (v1.0.0 -> v1.0.1)minor: Minor version (v1.0.0 -> v1.1.0)major: Major version (v1.0.0 -> v2.0.0)
Update task:
old_version: "v1.0.0"new_version: "v1.0.1"
Step 6: Test
Test and verify updated skill:
Test Content:
- SKILL.md format validation (YAML frontmatter)
- Script syntax check (Python syntax)
- Directory structure validation (complies with fixed structure)
- Dependency integrity check (dependency field)
Test script:
python scripts/backup_skill.py --validate-only --skill-dir /workspace/projects/skill-name
Step 7: Handle Test Results
Test Failed:
- Invoke
scripts/restore_skill.pyto restore skill - Use
manage_optimization_tasks.pyto update task status
# Restore skill
python scripts/restore_skill.py --backup-file <backup path> --skill-dir /workspace/projects/skill-name
# Update task status
python scripts/manage_optimization_tasks.py update \
--task-id OPT-001 \
--status failed \
--test-result failed \
--notes "Test failed: SKILL.md format error"
Test Passed:
- Use
manage_optimization_tasks.pyto update task status - Package new .skill file
- Inform user of update content
- Remind user to reload skill
# Update task status
python scripts/manage_optimization_tasks.py update \
--task-id OPT-001 \
--status completed \
--test-result passed \
--notes "Optimization successful: added version field" \
--new-version v1.0.1 \
--backup-path /workspace/projects/skill-name.backup.20260122120000.skill
Important: Must update task status to completed, avoid next check repeating same optimization opportunity.
Step 8: Notify User
Notify user based on test results:
Test Passed:
✓ Skill optimization successful
- Skill: skill-name
- Version: v1.0.0 -> v1.0.1
- Update content: Added version field
- Backup: skill-name.backup.<timestamp>.skill
Please reload AI interaction interface to use updated skill.
Test Failed:
✗ Skill optimization failed
- Skill: skill-name
- Reason: Test failed
- Details: SKILL.md format error
- Skill has been restored
Core Functionality Description
Agent-Processable Functions
- Monitor skill-manager data, identify optimization opportunities
- Remind users of optimization suggestions during idle time
- Maintain skill optimization task list
- Analyze optimization feasibility
- Execute optimization operations
- Perform test verification
- Handle test results
- Notify users
Script-Implemented Functions
- Check optimization opportunities:
scripts/check_optimization_opportunities.pyscans skill-manager data, automatically identifies optimization opportunities (filters completed tasks) - Manage optimization tasks:
scripts/manage_optimization_tasks.pyprovides add/delete/update/query functionality for optimization tasks - Backup skill:
scripts/backup_skill.pybacks up entire skill directory - Restore skill:
scripts/restore_skill.pyrestores skill from backup - Update version number:
scripts/update_version.pyincrements version field in SKILL.md - Test verification:
scripts/backup_skill.py --validate-onlyvalidates skill format
Resource Index
- Optimization opportunity check tool: See scripts/check_optimization_opportunities.py (automatically scans skill-manager data, identifies optimization opportunities, filters completed tasks)
- Optimization task management tool: See scripts/manage_optimization_tasks.py (add/delete/update/query for optimization tasks)
- Backup tool: See scripts/backup_skill.py (backs up skill directory)
- Restore tool: See scripts/restore_skill.py (restores skill from backup)
- Version management: See scripts/update_version.py (updates version number)
- Optimization guide: See references/optimization_guide.md (optimization types, test standards, best practices)
Precautions
- Must backup skill before optimization
- Keep task status synchronized during optimization process
- Must restore skill if test fails
- Version number follows semantic versioning specification
- Major changes require explicit user confirmation
- After optimization complete, must update task status to
completed, avoid repeating reminders - After optimization, remind user to reload skill
Best Practices
- Periodically monitor skill-manager data, identify optimization opportunities
- Prioritize handling high-value, low-risk optimizations
- Before optimization, fully analyze feasibility
- Maintain detailed optimization logs
- Periodically clean expired backup files
- Provide users with clear optimization descriptions
Usage Examples
Example 1: Add version Field
Detected skill-name's SKILL.md lacks version field.
- Remind user
- After user agrees, create optimization task
- Analyze feasibility: feasible
- Backup skill: skill-name.backup.20240122120000.skill
- Update SKILL.md, add version: v1.0.0
- Test verification: passed
- Update task status: completed
- Notify user: optimization successful
Example 2: Format Improvement
Detected skill-name's SKILL.md format doesn't comply with specifications.
- Remind user
- After user agrees, create optimization task
- Analyze feasibility: feasible
- Backup skill
- Fix SKILL.md format
- Update version number: v1.0.0 -> v1.0.1
- Test verification: passed
- Update task status: completed
- Notify user: optimization successful
Example 3: Infeasible Optimization
Detected skill-name's optimization content too complex.
- Remind user
- After user agrees, create optimization task
- Analyze feasibility: not feasible
- Update task status: failed
- Update notes: Optimization content too complex, requires manual intervention
- Notify user: optimization infeasible, needs manual handling