v1.3.8

Skill System

Last updated


A skill is a loadable markdown instruction pack that switches the agent into a specific execution mode (e.g., commit message generation, code review, README generation).

Skill format


A skill is a markdown file with YAML frontmatter for metadata:
  1. ***
  2. name: code-reviewer
  3. description: Deep code review covering quality, security, and architecture
  4. version: 1.0.0
  5. ***
  6. You are now a strict code reviewer...

The frontmatter name is the trigger keyword. The body arrives as a run_skill tool result when the skill activates; since v1.1.0 it is no longer appended to the system prompt.

Skill locations


The scanner walks ten directories (~/.copilot/skills and ~/.agents/skills added in v1.2.0), so skills written for other agents load without conversion:
PathSource label
<cwd>/.skillslocal
<cwd>/.claude/skillsclaude
~/.config/agenvoy/skills/.systemsystem (bundled, refreshed by make build from extensions/skills/)
~/.config/agenvoy/skills/.system_designsystem (optional skills installed with /skill → system, since v1.0.17)
~/.config/agenvoy/skillsuser (agenvoy before v1.0.22)
~/.claude/skillsclaude
~/.codex/skillscodex
~/.opencode/skillsopencode
~/.copilot/skillscopilot
~/.agents/skillsagents

~/.openai/skills and its openai source label were removed in v1.2.1; put those skills under ~/.agents/skills or another scanned directory.
Each skill is a directory containing SKILL.md plus optional scripts and templates. The source label shows next to the skill in the TUI slash picker, so it is obvious whether /code-reviewer came from this project, from Agenvoy's own storage, or from another agent's config.
Since v1.2.0 the skill list is no longer in the system prompt: it arrives in a per-turn context message placed before each user input (descriptions clipped to 256 characters), and the system prompt's ## Skills block keeps only the fixed activation rules. run_skill loads a body on demand.
The external sources claude, codex, copilot, opencode and agents can be switched off since v1.2.0: /skill → source in the TUI (a multi-select; unchecked sources are skipped), the dashboard's Skills page, or POST /v1/config/skill_source. The list is saved as skill_source_disabled in config.json and those directories are skipped when scanning; turning off claude also skips <cwd>/.claude/skills.

Bundled and installable skills


The bundled set is extension-install, extension-upload, scheduler-skill-creator and skill-creator. v1.0.17 removed code-reviewer, commit-generate, readme-generate, version-generate and search-suitable-public-api from the bundle. All of them except search-suitable-public-api, plus wiki-generate and (since v1.0.21) go-test-generate and seo-optimize, can be installed from the TUI with /skill → system (/skills before v1.0.22): a multi-select list where a checked entry is shallow-cloned from github.com/agenvoy/skill-<name> into ~/.config/agenvoy/skills/.system_design/ and an unchecked one that is present is deleted. The scanner rescans afterwards. Like .system, these directories cannot be deleted through DELETE /v1/skill.

Always-allow list


A skill can be marked always-allow so its tool calls skip the confirm gate: /skill → permission in the TUI, global scope only (it replaced /allow-skill in v1.0.22; the /dangerous command was removed earlier), or POST /v1/allowlist with a {skill: {name, scope, work_dir}} block (scope=global|project). Global entries live in ~/.config/agenvoy/allow_skill, project entries in <project>/.agenvoy/allow_skill, and the two are unioned at load time. An always-allow skill runs with the auto rules, so it only skips prompts while the working directory is a subdirectory of $HOME (not $HOME itself, not a denied or sensitive path); writes outside the working directory, irreversible commands and password prompts still ask.
中文