Add agent-skills module: SKILL.md folders loaded by the Skill tool
Co-Authored-By: Claude Sonnet 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01Lm655hdgDo5xsSLNomgdsy
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
# What the model sees before it loads any skill
|
||||
|
||||
tool name : Skill
|
||||
input schema : {
|
||||
"$schema" : "https://json-schema.org/draft/2020-12/schema",
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"command" : {
|
||||
"type" : "string",
|
||||
"description" : "The skill name (no arguments). E.g., \"pdf\" or \"xlsx\""
|
||||
}
|
||||
},
|
||||
"required" : [ "command" ],
|
||||
"additionalProperties" : false
|
||||
}
|
||||
description size : 1602 characters
|
||||
|
||||
--- the <available_skills> block of the tool description ---
|
||||
<available_skills>
|
||||
<skill>
|
||||
<name>incident-summary</name>
|
||||
<description>Summarise an incident timeline into impact, cause, and follow-ups for a status page or postmortem.</description>
|
||||
</skill>
|
||||
<skill>
|
||||
<name>release-notes</name>
|
||||
<description>Write release notes for a software version from a list of merged changes. Use when asked to draft, tidy or summarise release notes or a changelog entry.</description>
|
||||
</skill>
|
||||
<skill>
|
||||
<name>sql-review</name>
|
||||
<description>Review a SQL migration for locking, data-loss and rollback problems. Use when asked to check, review or approve a database migration script.</description>
|
||||
<allowed-tools>Bash</allowed-tools>
|
||||
</skill>
|
||||
</available_skills>
|
||||
|
||||
|
||||
contains 'release-notes' name : true
|
||||
contains a body line ('Breaking') : false
|
||||
contains the reference file name : false
|
||||
@@ -0,0 +1,22 @@
|
||||
# Loading one skill: two model calls
|
||||
|
||||
model calls: 2
|
||||
first call mentions the skill body ('Breaking' in any message) : false
|
||||
|
||||
--- tool result fed back to the model (what the Skill tool returned) ---
|
||||
Base directory for this skill: <module>/target/classes/skills/release-notes
|
||||
|
||||
# Release notes
|
||||
|
||||
Turn a list of merged changes into release notes a user can act on.
|
||||
|
||||
1. Group the changes under **Breaking**, **Added**, **Fixed** and **Internal**, in that order.
|
||||
2. Lead every **Breaking** item with what the reader must change, not with what the team did.
|
||||
3. Read `references/style-guide.md` (in this skill's directory) before writing the final text.
|
||||
4. Never invent a ticket number. If a change has none, leave the reference out.
|
||||
|
||||
Return the notes as Markdown with one bullet per change.
|
||||
|
||||
--- final answer ---
|
||||
## Breaking
|
||||
- Rename `cache.ttl` to `cache.expiry`.
|
||||
@@ -0,0 +1,16 @@
|
||||
# Unknown, duplicate and description-less skills
|
||||
|
||||
== unknown skill name
|
||||
call Skill(command="does-not-exist") returns: "Skill not found: does-not-exist"
|
||||
|
||||
== the same name in two directories (classpath skills first, then the copy)
|
||||
body served for release-notes contains the first copy ('Breaking') : true
|
||||
body served for release-notes contains the second copy : false
|
||||
|
||||
== a SKILL.md with no description
|
||||
loaded: name=no-description frontMatterKeys=[name]
|
||||
loaded: name=release-notes frontMatterKeys=[name, description]
|
||||
'no-description' appears in the tool description : true
|
||||
|
||||
== the allowed-tools key in sql-review's frontmatter
|
||||
echoed into the listing as <allowed-tools> : true
|
||||
@@ -0,0 +1,10 @@
|
||||
# Characters in the tool description as skills are added
|
||||
|
||||
skills tool description chars bodies, if all inlined ratio
|
||||
3 1399 24000 17.2x smaller
|
||||
10 2456 80000 32.6x smaller
|
||||
25 4766 200000 42.0x smaller
|
||||
50 8616 400000 46.4x smaller
|
||||
100 16316 800000 49.0x smaller
|
||||
|
||||
each skill body used here is 8000 characters; each description about 90.
|
||||
Reference in New Issue
Block a user