Skills are discoverable instruction packs that extend nca's agent behavior. Each skill is a SKILL.md file that teaches the agent how to handle specific tasks, frameworks, or workflows.
Skills are not code plugins — they are structured instruction documents that the agent loads into its context when relevant. When a skill is invoked, the agent reads the skill's SKILL.md and follows its instructions.
nca looks for skills in configured directories:
[harness]
skill_directories = [".nca/skills", ".claude/skills"]Default search paths (relative to workspace):
.nca/skills/— nca-specific skills.claude/skills/— compatible with Claude Code skills
Each skill is a directory containing a SKILL.md file:
.nca/skills/
├── rust-patterns/
│ └── SKILL.md
├── api-design/
│ └── SKILL.md
└── testing/
└── SKILL.md
nca skills # List all discovered skills
nca skills list # Same
nca skills list --json # JSON outputOr in interactive mode:
/skills
# Install from a remote source
nca skills add https://github.com/user/skill-repo
# Install specific skills from a source
nca skills add https://github.com/user/skill-repo -s rust-patterns -s testing
# Install globally (available in all workspaces)
nca skills add https://github.com/user/skill-repo --globalnca skills remove rust-patterns
nca skills remove rust-patterns --globalnca skills update # Update all skills
nca skills update rust-patterns # Update a specific skillThe agent's system prompt includes a list of available skills. The agent can choose to invoke relevant skills based on the task.
Ask the agent to use a skill:
Use the rust-patterns skill to review this code.
Or the agent can invoke skills programmatically via the invoke_skill tool.
/skills # List available skills
Create a SKILL.md file in a skill directory:
# Skill Name
Brief description of what this skill does.
## When to Use
Describe when this skill should be activated.
## Instructions
Step-by-step instructions for the agent to follow.
### Step 1: Analysis
Analyze the codebase for...
### Step 2: Implementation
Apply the following patterns...
## Examples
### Before
\`\`\`rust
// problematic code
\`\`\`
### After
\`\`\`rust
// improved code
\`\`\`- Be specific — give clear, actionable instructions the agent can follow
- Include examples — show before/after code when applicable
- Define scope — explain when the skill should and shouldn't be used
- Keep it focused — one skill per concern (don't combine testing and deployment)
- Use structured steps — numbered steps help the agent track progress
my-project/.nca/skills/my-skill/SKILL.md
Available only in this workspace. Good for project-specific conventions.
~/.nca/skills/my-skill/SKILL.md
Available in all workspaces. Good for personal coding standards and reusable patterns.
my-project/.claude/skills/my-skill/SKILL.md
nca discovers skills from .claude/skills/ by default, making it compatible with Claude Code skill conventions.
When skills are available, nca adds a skills section to the system prompt listing all discovered skills by name. The agent can then use the invoke_skill tool to load any skill's full instructions on demand.