Codumentor logo Codumentor

Skills Plugin

The Skills Plugin implements the Agent Skills open standard, providing a lightweight portable format for giving the agent reusable capabilities and domain expertise. Skills are invoked via slash commands (e.g., /review, /write-tests).

Overview

The Skills plugin:

  1. Discovers skill definitions from four directory tiers: system (bundled), organization, project, and user
  2. Injects an <available_skills> block into the agent prompt so it knows which skills exist and how to activate them
  3. Intercepts user input to detect slash commands matching skill names
  4. Expands the matched skill's content and appends any user-supplied arguments

Configuration

Basic Configuration

plugins:
  - module: codumentor.plugins.skills
    class: SkillsPlugin
    args:
      enabled: true
      skill_dirs:
        - skills/           # Relative to config file directory

Full Configuration

plugins:
  - module: codumentor.plugins.skills
    class: SkillsPlugin
    args:
      enabled: true
      builtin_enabled: true           # Load bundled system skills (default: true)
      project_skills_enabled: true    # Load skills from .codumentor/skills/ in repos (default: true)
      user_skills_dir: ~/.codumentor/skills  # Personal skills directory
      max_active_skills: 10           # Max skills injected per prompt (default: 10)
      skill_dirs:
        - skills/                     # Organization skill directories
        - /opt/shared-skills
      trust_policy:
        allow_scripts: false          # Allow skill helper scripts (default: false)
        allowed_sources_for_scripts:
          - user
        require_approval_for:
          - organization

Configuration Parameters

ParameterTypeDefaultDescription
enabledbooltrueEnable/disable the plugin
builtin_enabledbooltrueLoad skills bundled with Codumentor
project_skills_enabledbooltrueLoad skills from .codumentor/skills/ in each indexed repo
user_skills_dirstring~/.codumentor/skillsPersonal skills directory
max_active_skillsint10Maximum number of skills injected into a single prompt
skill_dirslist[]Additional organization-level skill directories
trust_policyobjectTrust settings for skill script execution

Skill Format

A skill is a directory containing a SKILL.md file with YAML frontmatter:

my-review-skill/
├── SKILL.md        # Required: frontmatter + instructions
├── scripts/        # Optional: helper scripts
└── references/     # Optional: reference documents

SKILL.md example:

---
name: review
description: Perform a thorough code review focusing on security and correctness
compatibility: ["codumentor>=1.0"]
license: MIT
---

You are an expert code reviewer. Analyze the provided code for:
1. Security vulnerabilities (injection, auth, secrets)
2. Logic errors and edge cases
3. Performance issues
4. Code style and maintainability

Provide a structured review with severity ratings.

Usage

Activating a Skill

Type a slash command matching a skill name at the start of your message:

/review                    # Activates the 'review' skill
/review src/api.py         # Activates 'review' with an argument
/write-tests MyClass       # Activates 'write-tests' with an argument

When a skill matches, its content is injected as context and the user's arguments are appended. A x-skill-activation-card transcript card shows which skill was activated.

Skill Discovery Priority

Skills are loaded in this order (later sources override earlier ones with the same name):

  1. System — bundled skills shipped with Codumentor
  2. Organization — directories listed in skill_dirs
  3. Project.codumentor/skills/ inside each indexed repository
  4. User~/.codumentor/skills/ (personal skills)

Disabling Skills

Users can disable individual skills via Settings → Agent Skills → Disabled Skills in the Web UI.

UI

The plugin provides a x-skill-activation-card transcript card element that is shown in the conversation when a skill is activated, displaying the skill name, source tier, and description.

Testing

python -m unittest tests.test_skills_plugin -v