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:
2026-10-13 02:48:07 +00:00
co-authored by Claude Sonnet 5.5
parent e79b75a105
commit c13195295d
21 changed files with 665 additions and 0 deletions
+38
View File
@@ -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
+10
View File
@@ -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.