Skip to content

Skills ​

Skills are reusable AI instructions that can be loaded on demand. They provide consistent guidance for specific tasks like code review, testing, or working with particular technologies.

What are Skills? ​

A skill is a markdown file containing instructions that an AI agent can load when performing a specific task. Unlike knowledge notes (which capture information), skills capture how to do things.

Examples of skills:

  • Code Review — Consistent review criteria and checklist
  • TypeScript Patterns — Coding conventions for TypeScript projects
  • API Design — Guidelines for designing REST APIs
  • Testing Strategy — How to approach writing tests

Skill Structure ​

Skills are stored in the skills/ directory, each in its own folder:

skills/
├── index.md                    # Auto-generated index
├── code-review/
│   ├── SKILL.md               # Main skill file
│   ├── examples/              # Optional examples
│   └── templates/             # Optional templates
└── typescript-patterns/
    └── SKILL.md

SKILL.md Format ​

Each skill uses YAML frontmatter followed by markdown instructions:

markdown
---
name: code-review
title: Code Review Guide
version: 1.0.0
description: Comprehensive code review checklist and guidelines
tags: [quality, review, process]
triggers: [/code-review, /review]
applyTo: ["*.ts", "*.tsx", "*.js"]
related: [typescript-patterns, testing-strategy]
---

# Code Review Guide

When reviewing code, follow these guidelines...

## Checklist

- [ ] Code follows project conventions
- [ ] Tests are included
- [ ] Error handling is appropriate
      ...

Frontmatter Fields ​

FieldRequiredDescription
nameYesUnique identifier in kebab-case
titleYesHuman-readable title
versionNoSemantic version (default: 1.0.0)
descriptionNoBrief description of the skill
tagsNoTags for categorization and search
triggersNoPatterns that activate this skill (e.g., /code-review)
applyToNoFile patterns where this skill is relevant
relatedNoNames of related skills

Working with Skills via CLI ​

List Skills ​

bash
# List all skills
gyrus skill list

# Filter by tags
gyrus skill list --tags typescript,quality

# List in a specific workspace
gyrus skill list --workspace work

Read a Skill ​

bash
# Read by name
gyrus skill read code-review

# Read from specific workspace
gyrus skill read typescript-patterns --workspace work

Search Skills ​

bash
# Search by text
gyrus skill search "testing"

# Search with filters
gyrus skill search "review" --tags quality

# Search by trigger
gyrus skill search --trigger "/review"

Create a Skill ​

bash
# Create with flags
gyrus skill create \
  --name code-review \
  --title "Code Review Guide" \
  --content "# Code Review\n\nWhen reviewing code..." \
  --tags quality,review \
  --triggers /code-review,/review

# Create from file
gyrus skill create \
  --name api-design \
  --title "API Design Guidelines" \
  --file ./api-guidelines.md

Update a Skill ​

bash
# Update content
gyrus skill update code-review --content "# Updated content..."

# Update tags
gyrus skill update code-review --tags quality,review,process

# Update triggers
gyrus skill update code-review --triggers /code-review,/review,/cr

Working with Skills via MCP ​

AI agents can interact with skills through MCP tools:

skill_list ​

List skills with optional filtering:

json
{
  "tags": ["typescript", "quality"]
}

skill_read ​

Read a specific skill:

json
{
  "name": "code-review"
}

Search across skills:

json
{
  "query": "testing",
  "tags": ["quality"]
}

Or search by trigger:

json
{
  "trigger": "/code-review"
}

skill_create ​

Create a new skill:

json
{
  "name": "testing-strategy",
  "title": "Testing Strategy Guide",
  "content": "# Testing Strategy\n\nWhen writing tests...",
  "tags": ["testing", "quality"],
  "triggers": ["/test", "/testing"],
  "applyTo": ["*.test.ts", "*.spec.ts"]
}

skill_update ​

Update an existing skill:

json
{
  "name": "code-review",
  "tags": ["quality", "review", "process"],
  "triggers": ["/code-review", "/review", "/cr"]
}

Example Workflow ​

Loading a Skill for Code Review ​

User: Review this pull request.

Agent: Let me load the code review skill first.
[calls skill_read with name="code-review"]

Agent: I'll review using our code review guidelines:
- Checking code conventions...
- Verifying test coverage...
- Reviewing error handling...

Creating a Project-Specific Skill ​

User: We need consistent guidelines for our GraphQL resolvers.

Agent: I'll create a skill for that.
[calls skill_create]
  name: "graphql-resolvers"
  title: "GraphQL Resolver Guidelines"
  content: "..."
  tags: ["graphql", "api"]
  applyTo: ["*.resolver.ts"]

Agent: Created the skill. It will be available whenever
you're working on resolver files.

Best Practices ​

Keep Skills Focused ​

Each skill should cover a single, well-defined task or domain. If a skill grows too complex, split it into related skills.

Use Descriptive Triggers ​

Triggers make skills discoverable. Use intuitive names:

yaml
triggers: [/code-review, /review, /cr]

Include Examples ​

When possible, add an examples/ directory with concrete examples that demonstrate the skill in action.

Version Your Skills ​

Use semantic versioning to track changes:

yaml
version: 1.2.0

Tag for Discovery ​

Use consistent tags across skills:

  • Domain: typescript, python, graphql
  • Purpose: quality, testing, documentation
  • Process: review, deployment, debugging

Use the related field to connect complementary skills:

yaml
related: [typescript-patterns, testing-strategy]

Skills vs Knowledge Notes ​

AspectSkillsKnowledge Notes
PurposeHow to do thingsWhat to remember
StructureInstructions, checklistsInformation, context
UsageLoad on demandSearch and reference
Example"How to review code""Gotchas in our API"

Use skills for reusable procedures and knowledge notes for captured information.

Next Steps ​

Released under the MIT License.