Creating Skills
Skills are the primary extension mechanism for Gee-Code. A skill is a set of instructions loaded on demand via a slash command.
Quick Start
Section titled “Quick Start”1. Scaffold the skill
Section titled “1. Scaffold the skill”InitSkill(name="my-skill")This creates:
.gee/skills/my-skill/├── SKILL.md├── scripts/├── references/└── assets/2. Write the instructions
Section titled “2. Write the instructions”Edit .gee/skills/my-skill/SKILL.md:
---name: my-skilldescription: Generates API endpoint boilerplateactivation: /api-genargs: "[endpoint-name]"user_invocable: true---
# API Generator
When invoked, generate a REST API endpoint following the project's patterns.
## Steps
1. Read the existing route files to understand patterns2. Create a new route file with the endpoint3. Add request validation4. Add tests for the new endpoint
## Conventions
- Use the same error handling pattern as existing endpoints- Follow the project's naming conventions- Include OpenAPI docstrings3. Sync to server
Section titled “3. Sync to server”SyncSkill(skill_name="my-skill")The skill is now available as /api-gen.
SKILL.md Frontmatter
Section titled “SKILL.md Frontmatter”| Field | Required | Description |
|---|---|---|
name | Yes | Skill identifier |
description | Yes | Short description (max 1024 chars) |
activation | No | Slash command trigger (default: /name) |
args | No | Argument hint shown in help |
user_invocable | No | Whether users can invoke directly (default: true) |
agents | No | Bundled agent definitions |
mcp_servers | No | Required MCP server configurations |
Adding Scripts
Section titled “Adding Scripts”Python scripts in scripts/ can be executed by the AI during skill execution:
import sysimport json
def analyze_routes(project_path): """Find all route definitions in the project.""" # ... analysis logic return results
if __name__ == "__main__": results = analyze_routes(sys.argv[1]) print(json.dumps(results))The AI calls it with:
RunSkillScript(skill_name="my-skill", script_name="analyze.py", args="/path/to/project")Adding References
Section titled “Adding References”Reference docs in references/ are available to the AI when the skill is active:
references/├── api-patterns.md # Your API conventions└── error-codes.md # Standard error codesThese provide domain-specific knowledge the AI can reference during skill execution.
Bundling Agents
Section titled “Bundling Agents”Skills can include agent definitions in the frontmatter:
---name: full-stackdescription: Full-stack development skillagents: - name: frontend description: React component specialist model: claude-sonnet system_prompt: | You are a React specialist. Focus on component architecture... - name: backend description: API endpoint specialist model: claude-sonnet system_prompt: | You are a backend specialist. Focus on API design...---These agents are created when the skill is installed and available when the skill is active.
Validation
Section titled “Validation”Before syncing, validate your skill:
ValidateSkill(skill_path=".gee/skills/my-skill")This checks:
- SKILL.md frontmatter is valid
- Python scripts have correct syntax
- Directory structure is correct
Skill Lifecycle
Section titled “Skill Lifecycle”| Tool | Description |
|---|---|
InitSkill | Scaffold a new skill directory |
ValidateSkill | Check skill for errors |
SyncSkill | Upload to Gee server |
UpdateSkill | Update an existing skill |
DeleteSkill | Remove a skill you created |
UninstallSkill | Remove a marketplace skill |
Next Steps
Section titled “Next Steps”- Skills & Plugins — overview of the skill system
- Building Plugins — multi-component plugins
- Creating Agents — standalone agent definitions