git:20260813.874484b to git:20260813.199d770

22 added, 17 removed. Audit A to A.

---
name: "Skill: Conventions"
- description: "{{ ๐šซ๐šซ๐šซ }} Jason's placement and model-tag conventions for creating or editing skills"
+ description: "Jason's placement and model-tag conventions for creating or editing skills"
when_to_use: "Before creating or editing a skill โ€” checking where it should live and how to tag its model in frontmatter."
# No model/effort override: reference content that loads inline โ€” an override
# would downgrade the very session that's editing skills
disable-model-invocation: false # Claude must be able to load the conventions at the moment it's creating or editing a skill; read-only guidance needs no gate
+ metadata:
+ family: clod-config
---
# Skill creation conventions
- All skills live in `~/.claude/skills/` as `SKILL.md` files.
- Command skills (invoked explicitly) get `disable-model-invocation: true`; knowledge skills (always available for reference, never directly invoked) get `user-invocable: false`.
- Exception: a command skill may set `disable-model-invocation: false` when its `when_to_use` describes a moment Claude recognises before the user does (stale PR description, post-merge status drift, "add this to the roadmap" phrasing) **and** the skill contains its own approval gate before anything irreversible. The gate is the safety net; without one, keep it `true`.
## Where to create a skill
1. Always create in the project-local `.claude/skills/` directory unless explicitly told to create it globally.
2. Check for naming conflicts with personal-level skills (`~/.claude/skills/`) โ€” personal scope shadows project scope.
3. Use the new frontmatter convention below when creating or editing skills; recognise the old convention when reading existing skills.
- ## Model-tag convention (new)
+ ## Metadata convention (current)
- Runic letters in the YAML frontmatter `description` field signal which model the command uses:
+ Model and taxonomy live in real frontmatter, never in the `description` text:
- | Runes | Model |
- |---|---|
- | `๐šซ๐šซ๐šซ` | haiku |
- | `ฦ”ฦ”ฦ”` | sonnet |
- | `๐›€๐›€๐›€` | opus |
+ ```yaml
+ model: opus # explicit on every command skill; omit on knowledge skills (inherit)
+ effort: high # explicit on every command skill; omit on knowledge skills (inherit)
+ metadata:
+ glyph: แ›Ÿ # mirrors the model: field โ€” omit when model is omitted
+ family: pr # the skill's family prefix (pr, roadmap, doc, clod-lens, โ€ฆ)
+ bundle: roadmap-system # only on skills shipped by build-roadmap-zip.sh
+ ```
- Format: `description: "{{ ฦ”ฦ”ฦ” }} Command description here"`
+ | Glyph | Rune | Model |
+ |---|---|---|
+ | `แšบ` | hagalaz | haiku |
+ | `แ›Š` | sowilo | sonnet |
+ | `แ›Ÿ` | othala | opus |
+ | `แš ` | fehu | fable |
- ## Model-tag convention (old โ€” recognise, don't write)
+ Knowledge skills (`user-invocable: false`) set neither `model` nor `effort`: both fields override the session absolutely while the skill is active, so an inline reference skill would hijack the very turn that triggered it.
- | Runes | Model |
- |---|---|
- | `แšปแ›•` | haiku |
- | `แ›‡แšค` | sonnet |
- | `แ›œแšน` | opus |
- | `แšจแ›”` | fable |
+ ## Model-tag conventions (old โ€” recognise, don't write)
- Format: `description: "{{ แ›‡แšค }} Command description here"`
+ Retired forms that tagged the model inside `description` as `"{{ X }} โ€ฆ"`: Greek triples (`๐šซ๐šซ๐šซ` haiku, `ฦ”ฦ”ฦ”` sonnet, `๐›€๐›€๐›€` opus) and before that runic pairs (`แšปแ›•` haiku, `แ›‡แšค` sonnet, `แ›œแšน` opus, `แšจแ›”` fable). On sight, migrate the skill to the metadata convention above.