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
