Awesome-omni-skill opence-skill-creator

Learn how to create effective project skills following opence conventions.

install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/development/opence-skill-creator" ~/.claude/skills/diegosouzapw-awesome-omni-skill-opence-skill-creator && rm -rf "$T"
manifest: skills/development/opence-skill-creator/SKILL.md
source content
<!-- OPENCE:START -->

opence-skill-creator

Learn how to create effective project skills following opence conventions.

When to Create a Skill

Create a skill during the compound phase when you identify:

  • Repeatable workflows that can be encoded as instructions
  • Recurring pitfalls or manual checks that need documentation
  • Domain-specific knowledge that will be useful in future changes

Don't create a skill for one-off solutions or highly specific edge cases.

Quick Start

Use the CLI to create skills (recommended):

# Create a new skill
opence skill add api-testing --description "Guidelines for testing API endpoints"

# List all skills
opence skill list

# Show skill details
opence skill show api-testing

The CLI automatically:

  • Creates proper directory structure
  • Generates correct frontmatter for each tool
  • Validates naming conventions
  • Creates references/ and scripts/ directories

Skill Structure

.claude/skills/my-skill/
├── SKILL.md           # Concise entry point (< 200 lines)
├── references/        # Detailed documentation
│   └── *.md          # Extended guides, examples
└── scripts/          # Reusable code
    └── *.sh, *.py    # Helper scripts

SKILL.md: Keep concise. Include "When to use", key steps, and pointers to references/.

references/: Put detailed docs, long examples, API references here.

scripts/: Add reusable code that users can copy or execute.

Naming Rules

  • Format: kebab-case (e.g.,
    api-testing
    ,
    deploy-prod
    )
  • Reserved: Don't use
    opence-
    prefix (reserved for native skills)
  • Unique: Check with
    opence skill list
    to avoid duplicates

Valid:

api-testing
,
error-recovery
,
db-migration
Invalid:
api testing
(spaces),
api_testing
(underscores),
opence-custom
(reserved)

Writing Effective Descriptions

The

description
field determines when Claude automatically loads your skill. Write it carefully.

Good description patterns:

  • Start with an action verb: Explains, Creates, Reviews, Validates, Deploys, Fixes
  • Include keywords users naturally say
  • List specific trigger scenarios
  • Be specific but not overly narrow

Examples of good descriptions:

"Explains code with visual diagrams and analogies. Use when explaining how code works, teaching about a codebase, or when the user asks 'how does this work?'"

"Fix a GitHub issue following our coding standards. Use when working on issues or bugs."

"Research a topic thoroughly using multiple sources. Use for deep dives or comprehensive analysis."

Anti-patterns to avoid:

  • Too abstract:
    "Helps with development tasks"
    — Claude can't decide when to use it
  • Too specific:
    "Fix the login button CSS on mobile Safari 15.4"
    — Won't match future requests
  • Missing scenarios:
    "API testing utility"
    — No trigger context

Trigger phrase checklist:

  • Does it include words users would naturally say?
  • Would Claude know when to load it automatically?
  • Is it distinct from other skills' triggers?

Next Steps

After creating a skill:

  1. Edit SKILL.md to add instructions and examples
  2. Add detailed docs to references/ if needed
  3. Add helper scripts to scripts/ if applicable
  4. Test the skill in actual usage
  5. Commit to version control

See references/ for detailed guidance on:

  • Skill evaluation checklist — Four-question framework and "is it worth creating" criteria
  • Directory structure and sizing
  • Frontmatter formats for different tools
  • Best practices and anti-patterns
<!-- OPENCE:END -->