Overview
Adding content to Impeccable involves creating source files, building, testing, and committing. The build system automatically transforms your content into formats for all 4 providers (Cursor, Claude Code, Gemini CLI, Codex CLI).Adding a Skill
Skills are reusable instruction sets that teach the AI how to perform specific tasks.1. Create the Source File
2. Add Frontmatter and Content
Skills follow the Agent Skills specification:3. Field Requirements
Required Fields:name: Skill identifier (1-64 chars, lowercase, numbers, hyphens only)description: What the skill provides (1-1024 chars)
license: License or attribution informationcompatibility: Environment requirements (1-500 chars)metadata: Arbitrary key-value pairsallowed-tools(experimental): Pre-approved tools list
4. Writing Skill Instructions
Good skill instructions:- Focus on one domain: Don’t try to do too much
- Be explicit: State what to do AND what NOT to do
- Include context: Explain why certain approaches are preferred
- Provide examples: Show concrete use cases
- Define success: Make clear what “done” looks like
5. Build and Test
- Copy the relevant
dist/output to a test project - Invoke the skill
- Verify it works as expected
- Test edge cases
6. Commit
Commit both source and generated files:Adding a Command
Commands are quick prompts users can invoke directly.1. Create the Source File
2. Add Frontmatter and Content
3. Field Requirements
Required Fields:name: Command identifierdescription: What the command does
args: Array of argument objectsname: Argument identifierdescription: What it’s forrequired: Boolean (defaults to false)
4. Writing Command Prompts
Good command prompts:- Work without substitution: Cursor doesn’t support arguments, so write prompts that work by appending user input
- Use clear placeholders:
{{argname}}gets transformed to provider-specific syntax - Provide context: Explain the task clearly
- Be concise: Commands should be quick to invoke
5. Argument Transformation
Placeholders are transformed for each provider:- Cursor: No transformation (arguments appended to prompt)
- Claude Code:
{{argname}}kept as-is - Gemini:
{{argname}}→{{args}}(single args string) - Codex:
{{argname}}→$ARGNAME(uppercase)
6. Build and Test
- Copy outputs to test projects
- Try with and without arguments
- Verify output quality
- Test edge cases (missing args, unusual inputs)
7. Commit
Commit both source and generated files:Testing Checklist
- Source file has valid YAML frontmatter
- Description is clear and concise
- Build completes without errors
- Works in at least one provider
- Prompt works without argument substitution (for Cursor)
- Examples are accurate and helpful
- Edge cases handled gracefully
Common Mistakes
YAML Formatting Errors
Frontmatter Delimiters
Description Length
Build Troubleshooting
YAML Parsing Errors
- Check frontmatter indentation (YAML is indent-sensitive)
- Ensure
---delimiters are on their own lines - Verify colons have spaces after them (
key: value)
Output Doesn’t Match Expectations
- Check the transformer function for your provider in
scripts/lib/transformers/ - Verify source file has correct frontmatter structure
- Run
bun run rebuildto ensure clean build
Provider Doesn’t Recognize Files
- Check installation path for your provider
- Verify file naming matches provider requirements
- Consult provider’s documentation
Best Practices
Skill Best Practices
- One domain, one skill: Don’t combine unrelated concerns
- Clear instructions: Write for clarity, not cleverness
- Examples over explanation: Show, don’t just tell
- State constraints: What NOT to do is as important as what to do
- Test thoroughly: Try edge cases and unusual inputs
Command Best Practices
- Clear purpose: User should know exactly what it does
- Flexible design: Work with or without arguments
- Concise prompts: Commands should be quick to invoke
- Good defaults: Provide sensible behavior when args are missing
- Cross-provider testing: Verify works in multiple tools
Getting Help
Need help adding content?- Check Architecture for system design
- See Build System for build details
- Review existing skills/commands in
source/for examples - Open an issue on GitHub for specific questions
Related
- Contributing Overview - Getting started guide
- Architecture - System architecture
- Build System - Build system internals
