A Skill is a folder containing a SKILL.md that teaches Qoder CLI how to do something specific: reviewing PRs using your team’s standards, generating commit messages in your preferred format, or querying your company’s database schema. When you ask Qoder CLI something that matches a Skill’s purpose, Qoder CLI automatically applies it.Key features:
Intelligent invocation: The model autonomously decides when to use a Skill based on user requests and Skill descriptions
Modular design: Each Skill focuses on solving a specific type of task
Flexible extension: Supports both user-level and project-level custom Skills
Create a directory in your user-level Skills folder. User-level Skills are available across all your projects. You can also create project-level Skills in .qoder/skills/ to share with your team.
Every Skill needs a SKILL.md file, starting with YAML metadata between --- markers that must include name and description, followed by Markdown instructions.Create ~/.qoder/skills/api-doc-generator/SKILL.md:
Copy
---name: api-doc-generatordescription: Generate comprehensive API documentation from code. Use when creating API docs, documenting endpoints, or generating OpenAPI specs.---# API Documentation GeneratorWhen generating API documentation:1. Identify all API endpoints and routes2. Document request/response formats3. Include authentication requirements4. Add example requests and responses5. Generate OpenAPI/Swagger specification if needed
Open an API route file in your project and ask a question matching the Skill's description:
Copy
Generate documentation for this API
Qoder CLI applies the api-doc-generator Skill and generates relevant API documentation. If not triggered, try rephrasing using keywords from the description.
Skills can be loaded via command or automatically invoked by the model. The model decides which Skill to use based on request content—no explicit specification needed.
Discovery: At startup, Qoder CLI loads each Skill's name and description, enabling fast startup while letting the model understand each Skill's applicable scenarios.
Activation: When a request matches a Skill's description, the model requests to use that Skill and loads the full SKILL.md. Some Skills can run without an extra confirmation; Skills that need additional capabilities may ask for approval. Write descriptions that include keywords users commonly use.
Execution: The model executes according to Skill instructions, loading referenced files or running scripts as needed.
Create SKILL.md with YAML frontmatter and Markdown content:
Copy
---name: skill-namedescription: Brief description of functionality and when to use---# Skill Name## InstructionsProvide clear step-by-step guidance.## ExamplesShow specific usage examples.
Frontmatter fields:
Field
Required
Description
Constraints
name
Yes
Unique Skill identifier
Lowercase letters, numbers, hyphens only; max 64 chars
description
Yes
Functional description for model to determine when to use
Max 1024 chars
Important: The description field is critical for the model to discover when to use your Skill. Include what it does and when to use it. See "Best Practices" section for details.
Edit SKILL.md directly. New sessions load the updated Skill on startup. If Qoder CLI is already running, run /skills reload to refresh the discovered Skills.
The description should include: what the Skill does, when to use it, and key trigger words.Comparison:
Copy
# Not recommended: vaguedescription: Helps with logs# Recommended: specificdescription: Analyze log files to identify errors, patterns, and performance issues. Use when debugging logs, investigating errors, or monitoring application behavior.
ls ~/.qoder/skills/*/SKILL.mdls .qoder/skills/*/SKILL.md
Confirm SKILL.md exists with correct path.Check YAML format:View SKILL.md to verify frontmatter has no syntax errors (indentation, quote matching).Check description specificity:Use clear, specific descriptions:
Copy
# Recommended: clear purpose and trigger conditionsdescription: Analyze log files to identify errors, patterns, and performance issues. Use when debugging logs, investigating errors, or monitoring application behavior.# Not recommended: vaguedescription: For logs
Analyze log files and diagnose issues.Directory structure:
Copy
log-analyzer/└── SKILL.md
SKILL.md:
Copy
---name: log-analyzerdescription: Analyze log files to identify errors, patterns, and performance issues. Use when debugging logs, investigating errors, or monitoring application behavior.---# Log Analyzer## Instructions1. Read the log file to understand its format2. Identify and categorize issues: - Error patterns and stack traces - Warning messages - Performance bottlenecks - Unusual patterns or anomalies3. Provide summary with: - Issue severity and frequency - Root cause analysis - Recommended solutions## Analysis tips- Focus on recent critical errors first- Look for recurring patterns- Check timestamp correlations across entries
---name: database-migratordescription: Generate and manage database migrations, schema changes, and data transformations. Use when creating migrations, modifying database schema, or managing database versions. Requires sqlalchemy and alembic packages.---# Database Migrator## Quick startGenerate a new migration:```bashpython scripts/generate_migration.py --name add_user_table```For detailed migration patterns, see [MIGRATION_GUIDE.md](MIGRATION_GUIDE.md).For rollback strategies, see [ROLLBACK.md](ROLLBACK.md).## Workflow1. **Analyze changes**: Compare current schema with desired state2. **Generate migration**: Create migration file with up/down operations3. **Validate**: Run `python scripts/validate_schema.py` to check syntax4. **Backup**: Execute `scripts/backup_db.sh` before applying5. **Apply**: Run migration in staging environment first6. **Verify**: Check data integrity after migration## RequirementsInstall required packages:```bashpip install sqlalchemy alembic psycopg2-binary```## Safety checks- Always backup before migrations- Test rollback procedures- Validate data integrity after changes- Use transactions for atomic operations