-
Notifications
You must be signed in to change notification settings - Fork 17
Description
Please create a new /task epic to create a create-skill skill using the agentskills specification (AgentSkills.io).
Context
Agent skills (AgentSkills.io) is an open specification to help AI agents understand how to do things. They can include using tools, calling subagents, and specialized agents can use specialized agent skills.
Agent skills include frontmatter medata such as name, description, license, author, version, allowed-tools
A great way to share repeatable capabilities and workflows.
Guidelines:
Metadata: try to keep under 100 tokens
Skill body: Try to keep less than 5000 tokens according to agent skills spec, but ~160 Lines of Code (LoC) is ideal
Resources:
You can add more detailed references in scripts/, references/ and /assets - loaded only when required.
Validation:
Use the skills-ref refence library to validate skills.
skills-ref validate ./my-skill
Constraints {
Skills should be specified in markdown, and natural language. Use Sudolang syntax for things like interfaces and function composition, where it is appropriate to save tokens, conform to a specific interface, etc. See ai/skills/sudolang/sudolang-syntax.mdc. Otherwise, prefer natural language.
Favor symbolic code tools (e.g. JavaScript) over AI agent inference when intelligent decisions don't need to be made. e.g. fetching a remote URL should be done with standard error handling in symbolic code to avoid bloating context with irrelevant details such as http response codes, parsing and data mapping details, etc.
Skills should follow the naming conventions below.
}
Requirements
- Given a Sudolang skill does not yet exist in
ai/skills/sudolang, should create the Sudolang skill using this skills guide. Syntax reference exists here:ai/rules/sudolang/sudolang-syntax.mdc - Given the user is trying to create a skill for the aidd Framework, the created skill should be located in the
$projectRoot/aidd-custom/folder - Given the user is trying to create a custom skill in their own repository (not aidd Framework), the skill should be created in the
$projectRoot/aidd-custom/folder - Given there are possibly existing related skills in
ai/oraidd-custom/find them and plan how existing skills may be leveraged for the new skill in order to avoid overlap and duplication - Given our skill has been created, should run a symbolic (javascript code) validator to call
skills-ref validate, count and report sizes with warnings if frontmatter > 100 tokens and if skill body > 160 LoC - Given a skill topic, use web search to find best practices for that topic to add to the skill
- Given we have a good plan for the skill, present the plan to the user and ask if any changes are required
SudoLang Skill References
- SudoLang standard & README: https://github.com/paralleldrive/sudolang
- Important info about how to structure SudoLang programs: https://medium.com/javascript-scene/anatomy-of-a-sudolang-program-prompt-engineering-by-example-f7a7b65263bc - NOTE: skills generally don't need initializers.
Skill Creation Process
1 gather requirements
- given a user prompt, restate and ideate with with RTC -d 10 - if anything is unclear, ask the user a few clarifying questions, no more than 3 questions at a time. ask more questions if needed until you have enough information to implement the skill. This includes the creation of this skills skill. Please ask my clarifying questions.
- identify opportunities to use symbolic tools if it makes sense given the context of the skill
- define interfaces for symbolic skills in SudoLang syntax (types inspired by TypeScript - syntax is similar, but functions can have very simple signatures like
({ characterCount: Number }) => result: Boolean.
The following document should be located in the docs/skills folder and linked in the README.md
Skills, Rules, and Agents: Terminology and Model
No skills vs rules distinction
There is no separate "rules" category. Everything is a skill. Skills are the single abstraction for capabilities and guidance. Skills can contain rules, constraints, functions, and callable tools, and skills can employ sub-agents. Likewise, sub-agents can employ skills, but avoid circular dependencies and inifinite loops.
Naming
Skills → verbs
Name skills as you would in the real world: verb form.
- Examples:
play-piano,judge-prompt-response,format-code,run-tests - A skill answers: "What can be done?" → the verb.
Agents → nouns
Agents are named as nouns (the "who" or "what" that does the work).
- Examples: piano-player, result-agent, judge-agent
- An agent answers: "Who/what performs this role?" → the noun.
Agents as functions
Agents behave like functions: they have expected inputs and expected outputs.
-
result-agent
- ({ context, prompt }) => result
-
judge-agent
- ({prompt, result, test}) => { pass: Boolean, score: 0..100 }
Agents invoke skills
Agents invoke or use skills to fulfill their contract. Skills are the verbs; agents are the nouns that apply those verbs.
- The judge-agent (noun) might use the skill judge-prompt-response (verb) to produce pass/fail and score from (prompt, result, test).