Managing Skills
Skills are Claude Code capability extension packages that add specialized functionality to your Bots. This guide will teach you how to upload, manage, and use Skills in Wegent.
π Table of Contentsβ
- What is a Skill
- Creating a Skill Package
- Uploading Skills
- Managing Skills
- Using Skills in Bots
- Best Practices
- Common Issues
- Related Resources
π― What is a Skillβ
A Skill is a Claude Code capability extension package that contains executable code, configurations, and documentation. Skills are deployed to ~/.claude/skills/ when a task starts, extending the agent's capabilities.
Analogy: If a Bot is like a person, Skills are like tools or special training:
- Ghost: Person's personality and base knowledge
- Skills: Specialized tools and techniques the person can use
- Bot: Complete person with tools
Examples of Skills:
- Python debugging tools
- Code formatters and linters
- API testing utilities
- Database query helpers
- Custom workflow automation
π¦ Creating a Skill Packageβ
Requirementsβ
A Skill must be packaged as a ZIP file containing:
- SKILL.md (required): Documentation with YAML frontmatter
- Other files: Scripts, configurations, assets, etc.
SKILL.md Formatβ
---
description: "Brief description of what this skill does"
version: "1.0.0"
author: "Your Name"
tags: ["category1", "category2"]
---
# Skill Name
## Overview
Detailed description of the skill's functionality.
## Usage
How to use this skill...
## Examples
Example code or commands...
YAML Frontmatter Fieldsβ
| Field | Required | Description | Example |
|---|---|---|---|
description | Yes | Brief skill description | "Python debugging tool with breakpoint support" |
version | No | Semantic version number | "1.0.0", "2.3.1" |
author | No | Author name or organization | "WeCode Team", "Your Name" |
tags | No | Category tags (array) | ["python", "debugging", "development"] |
Directory Structure Exampleβ
my-skill.zip
βββ SKILL.md # Required: Documentation with frontmatter
βββ main.py # Your skill code
βββ config.json # Configuration file (optional)
βββ utils/
β βββ helper.py
β βββ formatter.py
βββ README.md # Additional docs (optional)
Creating the ZIP Packageβ
Using command line:
cd my-skill-directory
zip -r my-skill.zip .
Important:
- Include SKILL.md at the root level or in a subdirectory
- Keep file size under 10MB
- Avoid including sensitive data (API keys, passwords)
- Use relative paths in your code
β¬οΈ Uploading Skillsβ
Via Web UIβ
-
Navigate to Skills Page
- Go to Settings (βοΈ)
- Click on "Skills" tab
-
Upload Skill
- Click "Upload Skill" button
- Enter a unique skill name (e.g.,
python-debugger) - Select or drag-and-drop your ZIP file
- Wait for upload to complete
-
Verify Upload
- Skill card appears in the list
- Check metadata (version, author, tags)
- Status shows "Available"
Upload Requirementsβ
- File format: Must be a
.zipfile - File size: Maximum 10MB
- Name: Unique identifier (lowercase, hyphens allowed)
- SKILL.md: Must be present and valid
Validationβ
The system validates:
- β ZIP file format
- β File size < 10MB
- β SKILL.md exists
- β YAML frontmatter is valid
- β
descriptionfield is present - β No security issues (Zip Slip attacks)
π οΈ Managing Skillsβ
Viewing Skillsβ
Skills List displays:
- Skill name
- Description (first 2 lines)
- Version, author, tags
- File size and status
- Last updated time
Downloading Skillsβ
- Find your skill in the list
- Click the download icon (β¬οΈ)
- ZIP file is downloaded to your computer
Use case: Backup, share with team, or modify locally
Updating Skillsβ
- Click the edit icon (βοΈ) on a skill card
- Upload a new ZIP file
- Name and namespace cannot be changed
- Metadata is extracted from the new SKILL.md
Note: All Bots using this skill will get the updated version on next task start.
Deleting Skillsβ
- Click the delete icon (ποΈ) on a skill card
- Confirm deletion in the dialog
Important:
- β οΈ Cannot delete skills referenced by Bots/Ghosts
- Remove skill from all Bots first
- Error message shows which Bots are using the skill
π€ Using Skills in Botsβ
Associating Skills with Botsβ
-
Edit Bot
- Go to Settings > Bots
- Click edit on a Bot
-
Add Skills
- Find the "Skills" section (below Agent Config)
- Click the dropdown to see available skills
- Select skills to add
- Skills appear as removable tags
-
Save Bot
- Click "Save" button
- Skills are now associated with the Bot
Via YAML Configurationβ
apiVersion: agent.wecode.io/v1
kind: Ghost
metadata:
name: developer-ghost
namespace: default
spec:
systemPrompt: "You are a senior developer..."
mcpServers:
github:
command: docker
args: [...]
skills:
- python-debugger # Skill name
- code-formatter
- api-tester
How Skills Are Deployedβ
When a task starts:
- Executor fetches Bot configuration including skills list
- Downloads each skill from the API
- Extracts ZIP files to
~/.claude/skills/{skill-name}/ - Claude Code loads skills automatically
- Agent can use skill capabilities during task execution
Deployment path example:
~/.claude/skills/
βββ python-debugger/
β βββ SKILL.md
β βββ main.py
β βββ utils/
βββ code-formatter/
β βββ SKILL.md
β βββ formatter.py
βββ api-tester/
βββ SKILL.md
βββ test_runner.py
π‘ Best Practicesβ
Creating Skillsβ
-
Clear Documentation
- Write comprehensive SKILL.md
- Include usage examples
- Document dependencies
-
Semantic Versioning
- Use version numbers:
MAJOR.MINOR.PATCH - Increment major for breaking changes
- Increment minor for new features
- Increment patch for bug fixes
- Use version numbers:
-
Meaningful Tags
- Use descriptive category tags
- Examples:
["python", "testing"],["nodejs", "linting"] - Helps with discovery and organization
-
Keep It Focused
- One skill = one specific capability
- Don't create monolithic skills
- Easier to maintain and reuse
Managing Skillsβ
-
Naming Convention
- Use lowercase with hyphens:
my-skill-name - Be descriptive:
python-unit-test-runnervsrunner - Include language/framework if relevant
- Use lowercase with hyphens:
-
Version Control
- Update version number when modifying
- Keep old versions for rollback (download before update)
- Document changes in SKILL.md
-
Security
- Never include API keys or passwords
- Use environment variables for secrets
- Review ZIP contents before uploading
-
Size Optimization
- Remove unnecessary files
- Compress assets when possible
- Stay well under 10MB limit
Using Skillsβ
-
Test Individually
- Create a Bot with one skill first
- Verify it works correctly
- Then combine multiple skills
-
Document Dependencies
- Note which skills work together
- Document any conflicts
- Update Bot descriptions
-
Monitor Usage
- Check which Bots use each skill
- Remove unused skills
- Keep skills up to date
β Common Issuesβ
Upload Failuresβ
Problem: "SKILL.md not found in ZIP package"
- β Ensure SKILL.md exists at root or in subdirectory
- β
Check file name is exactly
SKILL.md(case-sensitive)
Problem: "Invalid YAML frontmatter"
- β
Verify YAML syntax between
---markers - β
Ensure
descriptionfield is present - β Check for proper indentation
Problem: "File size exceeds 10MB"
- β Remove unnecessary files
- β Compress large assets
- β Split into multiple smaller skills
Deletion Issuesβ
Problem: "Cannot delete Skill referenced by Ghosts"
- β Check error message for Bot/Ghost names
- β Edit those Bots to remove the skill
- β Then delete the skill
Deployment Issuesβ
Problem: Skill not available in task
- β Verify skill is associated with Bot
- β Check task logs for download errors
- β Ensure skill status is "Available"
Problem: "Unsafe file path detected in ZIP"
- β
Don't use
../in file paths - β
Don't use absolute paths like
/etc/ - β Use only relative paths within the ZIP
π Related Resourcesβ
Documentationβ
- YAML Specification - Skill
- Agent Settings - Configure agents and bots with skills
External Resourcesβ
Examplesβ
- Coming soon: Wegent Skills Repository
- Community-contributed skills
- Pre-built skill templates
π Quick Start Exampleβ
1. Create a Simple Skillβ
Create a directory structure:
hello-skill/
βββ SKILL.md
βββ hello.py
SKILL.md:
---
description: "A simple hello world skill"
version: "1.0.0"
author: "Your Name"
tags: ["example", "tutorial"]
---
# Hello Skill
A simple example skill that prints a greeting.
## Usage
This skill provides a hello() function that can be called by the agent.
hello.py:
def hello(name="World"):
return f"Hello, {name}!"
if __name__ == "__main__":
print(hello())
2. Package the Skillβ
cd hello-skill
zip -r hello-skill.zip .
3. Upload to Wegentβ
- Go to Settings > Skills
- Click "Upload Skill"
- Name:
hello-skill - Upload
hello-skill.zip - Wait for success message
4. Use in a Botβ
- Go to Settings > Bots
- Edit or create a Bot
- Scroll to "Skills" section
- Select
hello-skill - Save Bot
5. Test in a Taskβ
Create a task using this Bot and ask it to use the hello skill!
Need Help?
- Check Common Issues
- Review YAML Specification
- Ask in Wegent community forums