X-Aeon Agents skills
This repository defines a set of AI agents skills that are used for X-Aeon projects.
Ways skills are written
- Follow guidelines from the following sources:
- Help agents follow those skills and their steps by using the following guidelines:
- About skill name and YAML frontmatter:
- Always name skills using
<verb>[-<object>-[<context>]]. - Use gerund in the skill name.
- Use third person in the skill description.
- Always add a
Use when ...part of the skill description.
- Always name skills using
- About skill content:
- Use Markdown for the skill's content.
- Use imperative verbs (ex:
Read the README file to know about the CLI usage). - Separate ordered steps in the skill's content using Markdown's headers (ex:
## 5. Perform data analysis), and give details of this step using bullet points. - Don't mix several commands in 1 step. Split steps if several commands are involved.
- Use
{variable_name}to identify placeholders. - Be clear and consistent about commands: always use backticks to identify a command, and use a prefix for the command type. Here are the prefixes in use:
-
cli:: Used for command-line tools. Ex:Use `cli: ls -la` to list all the files. -
agent:: Used for agent commands. Ex:Use `agent: ask_followup_question` to ask the USER about the intent. -
skill:: Used for skills. Ex:Use `skill: creating-pull-request` to create the PR for {branch}.
-
- Use some capital words in a consistent way:
-
USERrepresents the developer asking the agent to perform a task. -
ALWAYSis used to emphasize that a specific step is mandatory (ex.:ALWAYS use `cli: gh` to gather issue information). -
NEVERis used to emphasize that a specific step should never be done (ex.:NEVER use `cli: gh` to create a PR).
-
- About skill semantics:
- A skill is better followed when it consists only in a sequence of easily identified steps (like a workflow). Don't use vague guidelines in a skill.
- When another skill is performing a sub-task of your skill, reference it explicitely, like
Use `skill: skill_name` to perform this actioninstead ofPerform this action. Don't rely on the model understanding thatskill_namewas the right skill to perform the action. - Always ask the agent to inform the user about executing the skill.
- About skill name and YAML frontmatter:
General principles
Those principles allow for a safe agent interaction, while keeping its agility.
- The USER sets the branch for the agent, in a worktree.
- Agents should never switch branches.
- Agents automatically push their changes to the github remote, and create a Pull Request for their branch.
- Agents can rebase their branch.
Generating skills from ERB templates
Some skills are written as ERB templates (files ending with .erb) to allow dynamic content generation. To generate the final skill files from these templates, run the following executable:
bundle exec ruby bin/generate_skillsThis will:
- Find all
.erbfiles in theskills/directory - Process them using the ERB engine (with
XAeonAgentsSkills::GenHelpersavailable) - Generate the corresponding output files (removing the
.erbextension)
The following helper methods are available in ERB templates:
-
XAeonAgentsSkills::GenHelpers.init_skill_checklist- Returns the "Create Execution Checklist (MANDATORY)" section -
XAeonAgentsSkills::GenHelpers.validate_skill_checklist- Returns the "Final Verification (MANDATORY)" section
License
See LICENSE file.