skill-authoring
Skill1 starsChanged 31 days agoMITView on GitHub
Write or amend a dASS skill (a SKILL.md addon) - its frontmatter contract with the model and the user (user-invocable, disable-model-invocation, argument-hint, injection-mode, tool lists), and how the skill becomes a /skill:<name> slash command. Use when creating a new skill, editing or debugging an existing one, wiring a skill's arguments for its slash command, or when a skill's user or model reach must change.
89 other projects use a version of this.
Adopted by
Most recently taken up by
- neuroborus/agent-runnertheir own version, first seen Nov 8, 2026
- juninmd/skillstheir own version, first seen Nov 8, 2026
- TrueImmortal82/open-code-skillstheir own version, first seen Nov 8, 2026
- patrykmurzyn/skillstheir own version, first seen Nov 8, 2026
- frnkgns/Overgeared-Skillstheir own version, first seen Nov 8, 2026
- notivn/AIEVv2their own version, first seen Nov 8, 2026
Used with
Projects with it also use cloud-api-recipe-authoring, codebuddy-ide-mcp-upgrade and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
TencentCloudBaseSkillcloud-api-recipe-authoring
Author or revise a cloud-api-operations recipe (config/source/skills/cloud-api-operations/references/recipes/). Encodes why the long tail of control-plane capabilities is deliberately NOT wrapped as MCP/CLI tools, the API-first admission test for whether a capability deserves a recipe, the negative and positive lists, the fixed recipe structure, the writing rules distilled from writing-for-agents, the user-facing copy red lines, and the product regeneration/verification pipeline. Also routes contributors (and their agents) to the contribution flow and the pre-PR self-test protocol in references/contributing.md. Use when adding a recipe, judging whether a scenario belongs in the recipe set, updating the recipes index, re-checking existing recipes against the admission test, or onboarding someone who wants to submit one.
Also in 3 projects that use this
TencentCloudBaseSkillcodebuddy-ide-mcp-upgrade
升级 CodeBuddy IDE(genie 扩展)内置的 CloudBase MCP,以及 MCP 发版时同步 IDE 侧白名单。当用户提到「更新 IDE 里的 MCP」「内置 MCP 版本太老」「IDE 集成的 CloudBase 功能不足」「改工具白名单 toolWhiteList」「把新 bundle 打进 CodeBuddy」「白名单漂移」「MCP 发版要同步什么」时使用。覆盖:解包定位内置 bundle 与内嵌配置、重新构建 mcp bundle、生成新的工具白名单与系统提示词、安全注入 IDE 并备份、用 MCP 协议验证工具清单、人工端到端验收、一键回滚。
Also in 3 projects that use this
DIL8654Skillapi-contract-review
Review ASP.NET Core Web API contracts for HTTP semantics, versioning, backward compatibility, and response consistency. Use when the user asks to review an API, check endpoints, validate REST behavior, or before releasing contract changes.
Also in 5 projects that use this
zaxbysauceSkillpr-review-fix
Codex adapter for addressing pull request review feedback in opencode-swarm. Use when the user asks to fix PR review comments, requested changes, reviewer findings, CI-review notes, or a pasted review summary with low false-positive tolerance.
Also in 3 projects that use this
albertdobmeyerSkillgit-workflows
Advanced git operations beyond add/commit/push. Use when rebasing, bisecting bugs, using worktrees for parallel development, recovering with reflog, managing subtrees/submodules, resolving merge conflicts, cherry-picking across branches, or working with monorepos.
Also in 3 projects that use this
rogue-dev-studioSkillfrontend-engineering
Expert frontend application engineering: accessible UI structure, state and data-fetching discipline, form/validation UX, responsive layouts, performance budgets, and integration with API contracts. Use when building or refining SPA/web screens, design-system consumption, client-side routing, or fixing UI reliability (loading, empty, and error states).
Also in 3 projects that use this
- +6 more from TencentCloudBase
Other versions89 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 89
- nyldn/claude-octopus★ 4.4ksame name
- endurain-project/endurain★ 2.4ksame name
- joaovitoriasilva/endurain★ 2.4ksame name
- theopenco/llmgateway★ 1.7ksame name
- TencentCloudBase/CloudBase-AI-ToolKit★ 1.2ksame name
- TencentCloudBase/CloudBase-MCP★ 1.2ksame name
- TencentCloudBase/CloudBase-AI-Toolkit★ 1.2ksame name
- pockebot/openpocket★ 847same name
- QuixiAI/agi-memory★ 623same name
- QuixiAI/Hexis★ 623same name
79 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository11 other files it gives its agents.
- AGENTS.mdAGENTS.md
- code-traceSkill
- command-authoringSkill
- dass-reportSkill
- dass-testSkill
- equipSkill
- grillingSkill
- idea-to-ticketSkill
- lua-ui-controlsSkill
- rival-reconSkill
- tool-authoringSkill
The file
We split this skill into the rules it gives an agent
3 rules. 0 are common, 1 is distinctive, and 2 are very specific to this project.
0
Common
Most of the 80 edited versions we read keep these.
1
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 33
Keep the frontmatter and the body moving together:
- Very specific: line 54
After editing a file already on disk, /addon-reload rescans the packs without a restart.
- Very specific: line 110
Every valid, user-invocable skill yields a /skill:<name> command (namespaced by pack: /skill:<pack>:<name>).
“Common” is measured: kept by at least 6 in 10 of the 80 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Skill authoring (dASS)
A skill is a single SKILL.md (or <name>.md) file in a skills/ folder of an addon source. Where a scriptable tool's frontmatter is a contract with the model, a skill's frontmatter is a contract with two clients:
- the model reads
description- through theskill-loadtool and the skills section of the prompt - to decide whether to invoke the skill; - the user reaches the skill through the
/skill:<name>slash command, derived from the same addon, with the arguments the frontmatter declares.
The body is the skill's content. The contract is the part that breaks silently: a body that drifts from its description, or an argument-hint that no longer matches the variables the body reads, turns a working skill into a lying one, and nothing raises. Every run of this skill ends with the frontmatter and the body telling the same story.
This is the dASS-specific branch. The universal craft of writing the content - pointers, the information hierarchy, invocation choice, router skills - lives in writing-for-agents; how a skill becomes a template lives in llt-prompt-parts.
Steps
1. Find the file, or establish that it should exist
List the skills/ folders of the addon sources and grep for the skill name. Read equip/FORMATS.md for the roots and the short/full layout when the location is not obvious. Amending an existing skill and writing a new one are the same job past this step - the only difference is whether there is a file to read first.
Done when: the path is known (short format skills/<name>.md, or full format skills/<name>/SKILL.md), or the skill is established as new.
2. Read the contract before the body
Frontmatter first, body second. description, the two invocation gates and argument-hint state what the skill promises and how it is reached; the body states what it does and which $variables it reads. Most faults in existing skills are visible right here, before anything is touched.
Done when: both have been read and any gap between them is named out loud.
3. Change the skill
Keep the frontmatter and the body moving together:
- a new or changed argument →
argument-hintmoves with it, and the$variablesin the body move with it - the model's reach changes →
disable-model-invocationanddescriptionmove with it - the user's reach changes →
user-invocablemoves with it - the prompt cost changes →
injection-modemoves with it
In short format the file name is the skill name, so a rename means renaming the file.
Done when: the body is coherent, and every claim in the frontmatter is true of it.
4. Verify as far as the situation deserves
Verification is a judgment call, not a ritual. The moves, cheapest first:
| Move | What it proves |
| Read it back | the frontmatter parses, the name matches the file/folder, and the gates read as intended |
Type /skill:<name> | the command resolves, and its argument chips/hint match the argument-hint |
| Invoke it | the body injects, every $variable expanded, and the skill chip lands on the message |
After editing a file already on disk, /addon-reload rescans the packs without a restart. The runner is the live command itself; there is no stubbing layer, because the arguments are bound by the very schema argument-hint produced.
The failure mode worth naming: claiming a skill works because the file exists. If no /skill:<name> command appeared, the answer is "the loader did not pick it up yet", not "looks fine".
Done when: the level of checking is stated out loud, together with what it does and does not prove.
5. Show the result
The path, plus what was verified and by which move. The user's next action depends on that distinction.
Done when: the path and the verification level are on screen.
Where the file goes
A skills/ folder inside an addon source - .agents/, .claude/, .gemini/ and the rest in a repo, .llmassist/packs/<pack>/ for packs, %LOCALAPPDATA%\.llmassist\ for machine-wide equipment. Extensions are .md and .mdx.
| Format | Path | Notes |
| Short | skills/<name>.md | the file name is the skill name |
| Full | skills/<name>/SKILL.md | the folder name is the skill name; the folder may carry resources |
SkillFileLocator is the authority; equip/FORMATS.md lists the roots.
The frontmatter
---
name: my-skill
description: What this skill does and when to reach it. This is what the model reads.
user-invocable: true
disable-model-invocation: false
argument-hint: "<target> [mode:$fast|thorough]"
injection-mode: default
allowed-tools: [fs-read_entry, fs-grep]
---Frontmatter is optional: with none, the name falls back to the first # heading (or the file/folder name) and the description to the first paragraph. A missing description raises a diagnostic.
| Key | Default | Meaning |
name | file/folder name | must equal the file (short) or folder (full) name, else a mismatch diagnostic |
description | markdown fallback | the model-facing pointer; a missing one raises a diagnostic |
user-invocable | true | whether a /skill:<name> command is derived at all |
disable-model-invocation | false | forbids the model from invoking the skill; it also leaves the chat's available set |
argument-hint | none | declares the command's arguments - see Arguments |
injection-mode | default | default injects name + description into the prompt; full also injects the body |
allowed-tools / available-tools / disallowed-tools | empty | tool lists shown in the UI. Display metadata today, not enforcement |
Shared with every addon kind: order, aliases, enabled, hidden, and the display strings title and category (localizable, no behaviour). name is validated by SkillName: 1-64 chars, digits / lowercase latin / hyphens only, no leading, trailing or doubled hyphens.
[!NOTE] The two invocation keys split reach. A model-invoked skill keeps a
descriptionand nodisable-model-invocation- the model may fire it. A user-invoked skill setsdisable-model-invocation: trueand turnsdescriptionhuman-facing. A skill that is notuser-invocablegets no command; a skill the user cannot remember is a candidate for a router skill (writing-for-agents).
The command
Every valid, user-invocable skill yields a /skill:<name> command (namespaced by pack: /skill:<pack>:<name>). Two facts worth holding:
- The command's schema is the skill's
argument-hint. An invalid argument set blocks the send before anything runs. - The command injects the full body, with
injection-modeignored (it is a prompt concern), and the caller's generation intent untouched.
Arguments and variables
argument-hint parses into the arguments the command binds. The full grammar - brackets, choices, descriptions, escaping and the fallbacks - is in ARGUMENT-HINT.md; read it before writing a hint with more than a bare <name>.
Once bound, the arguments reach the body through $variables, expanded by SlashCommandVariableExpander:
| Variable | Resolves to |
$ARGUMENTS | the raw positional text |
$REST | the rest positional's text |
$0, $1, ... | positionals; zero-based when the body contains $0, else one-based |
$<hint-name> | the named positional from the argument-hint |
$SKILL_NAME | the skill's name |
$SKILL_DIR / $CLAUDE_SKILL_DIR | the skill's home directory |
| anything else | the process environment variable of that name |
An unknown variable is left verbatim - a typo must not silently eat text. A $name inside backticks (` or ```) is left literal, for prose that talks about variables.
What bites
- A
namethat does not match the file (short) or folder (full) name - the most common way a skill silently fails to load. - An
argument-hintthat starts with a bracket but does not parse: it falls back to a free-form slot and raisesInvalidArgumentHint- the arguments you meant are silently gone. - A required rest positional (
<name...>): rejected by the parser, so the whole hint falls back. - Reading
disable-model-invocationas "skill-load only": it also removes the skill from the model's available set entirely. - A
.md/.mdxfile outside askills/folder: nothing loads it, however correct the frontmatter is.
Neighbours
- The shape of a scriptable tool: the
tool-authoringskill. - Skills and sub-agents as LLT templates (
params_schema, localization): thellt-prompt-partsskill. - The craft of the writing itself: the
writing-for-agentsskill. - Deciding which skill is worth writing at all:
equip. A contract that contradicts its own behaviour:dass-report.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

