Skills System

Overview

Skills are reusable instruction sets that tell Claude Code how to behave in your projects. Create a skill once — like "always use type hints in Python" or "follow our Git branching conventions" — and it automatically applies to every session across your projects.

Creating Skills

Create skills through the Open Poet UI:

  1. Navigate to the Skills panel in the sidebar.
  2. Click Create New.
  3. Fill in the required fields:
FieldRequirements
nameLowercase with hyphens, no spaces (e.g., python-best-practices). Max 64 characters.
categoryOne of: coding, testing, deployment, documentation, workflow
contentMarkdown instructions that Claude Code will follow.
enabledWhether the skill is active and should be synced to projects.

Skill Structure

Each skill is stored on disk as a YAML-frontmatter markdown file. When synced to a project, the file is placed at .claude/skills/<name>/SKILL.md:

.claude/skills/python-best-practices/SKILL.md
---
name: python-best-practices
description: Python coding standards and type hint requirements
user-invocable: false
---

# Python Best Practices

## Instructions
- Use type hints for all function parameters and return values
- Follow PEP 8 style guidelines
- Write docstrings for public functions
- Prefer f-strings over .format() or % formatting
- Use pathlib instead of os.path for file operations

The description field in the frontmatter is auto-extracted from the first heading or the first line of the content.

Sync Policies

Each project has a skill_policy setting that determines which skills are synced:

PolicyBehavior
Inherit (default)The project receives all globally enabled skills. This is the default for new projects.
CustomThe project has per-project overrides for which global skills are enabled, plus its own project-specific skills.

Resolution Order

  1. If skill_policy is custom: use the per-project global skill overrides.
  2. If skill_policy is inherit (empty): use all globally enabled skills.
  3. In both cases, any enabled project-specific skills are added.
  4. Project skills override global skills with the same name.

Sync Process

Skills are synced to each project's .claude/skills/ directory so Claude Code can read them during sessions:

What Happens During Sync

  1. Active skills are written as markdown files to your project's .claude/skills/ directory.
  2. Old or disabled skills are cleaned up automatically.
  3. For remote (SSH) projects, files are synced via SFTP.

For remote projects (SSH), the sync process uses SFTP to write files to the remote server.

Project-Specific Skills

In addition to global skills, each project can define its own skills that only apply to that project:

Skill Management

Quick Example

Want Claude Code to always use type hints in Python? Create a skill:

  1. Go to the Skills panel and click Create New.
  2. Name it python-types, set category to coding.
  3. Add your instructions:
Example skill content
# Python Type Hints

## Instructions
- Use type hints for all function parameters and return values
- Use PEP 484 syntax (not comments)
- Prefer built-in generics (list[str]) over typing module (List[str])
- Add type hints when modifying existing functions

This skill will now be synced to all your projects and applied to every Claude Code session automatically.

Best Practices