agentleFS
RamtoiRamtoi/skill-tree/skills/skill-authoring/SKILL.md

skill-authoring

Skill4 starsChanged 47 days agoApache-2.0View on GitHub

Write, review, or improve a SKILL.md for a Skill Tree library: a description that triggers, a lean body, hub frontmatter, done criteria. Use on "create a skill", "improve this skill", "skill review".

89 other projects use a version of this.

Adopted by

Most recently taken up by

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.
  • TencentCloudBaseSkill

    cloud-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

  • TencentCloudBaseSkill

    codebuddy-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

  • DIL8654Skill

    api-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

  • zaxbysauceSkill

    pr-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

  • albertdobmeyerSkill

    git-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-studioSkill

    frontend-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

The file

We split this skill into the rules it gives an agent

12 rules. 0 are common, 10 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 80 edited versions we read keep these.

  • 10

    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
  1. Distinctive:

    Read the gotchas first. Then follow the workflow in order.

    line 14
  2. Very specific:

    Keep bundled files one level deep (references/x.md, scripts/x.sh) and link them with relative paths.

    line 36
  3. Distinctive:

    Never write a machine path: no home-directory prefix, no drive letter, no backslashes.

    line 40
  4. Distinctive:

    If the workflow is one step the agent can already do, stop: one-step utility skills undertrigger no matter how they are described.

    line 60
  5. Distinctive:

    Check it against six prompts in your head: three that must trigger, three near-misses that must not.

    line 86
  6. Distinctive:

    Use this order and nothing the model already knows:

    line 92
  7. Distinctive:

    Put the non-negotiable constraints at the top or the bottom.

    line 116
  8. Distinctive:

    Prefer a numbered workflow with checkable ends over prose advice.

    line 118
  9. Very specific:

    Run references/review-checklist.md against the file.

    line 149
  10. Distinctive:

    Run the two or three test prompts from step 2 in fresh sessions, once with the skill equipped and once without.

    line 155
  11. Distinctive:

    No machine path and no backslash path appear anywhere in the skill.

    line 170
  12. Distinctive:

    Every file the body links exists, one level deep.

    line 171

“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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Skill authoring

A skill is an instruction package a coding agent loads on demand. Two budgets decide whether it works. The description sits in every session's context and carries the whole triggering decision. The body loads only after a trigger, so it has to earn its tokens with facts the agent would otherwise get wrong.

Read the gotchas first. Then follow the workflow in order; each step ends with something you can check.

Gotchas (facts that defy reasonable assumptions)

  • The frontmatter name must equal the directory name and the registry key. Slug only: lowercase letters, digits, hyphens. pi tolerates a mismatch; spec-strict clients and the hub do not.
  • Three description ceilings apply at once: 200 characters (the hub's rule and claude.ai's upload limit), 250 (Claude Code truncates there when it decides whether to trigger), 1024 (the Agent Skills spec; Codex refuses a longer one). Stay at or under 200 and put the trigger words early.
  • "When to use" belongs in the description, not the body. The body is not loaded until the skill has already triggered.
  • Codex and opencode ignore Claude-only frontmatter (disable-model-invocation, user-invocable, allowed-tools). They read name, description, license, compatibility, metadata. Anything else must not be load-bearing for those harnesses.
  • The hub counts a mention of another skill as a reference only as a backtick span (`deliver-it`) or a slash token (/deliver-it). A bare slug in prose is not a reference and will not surface a missing_refs finding when the project lacks that skill.
  • Keep bundled files one level deep (references/x.md, scripts/x.sh) and link them with relative paths. The hub's content walkers do not follow symlinks out of the skill directory, and nested reference chains get read partially.
  • Never write a machine path: no home-directory prefix, no drive letter, no backslashes. Use forward slashes and paths relative to the skill or the project.
  • A rarely needed workflow should be user-only invocation: it then costs no context until someone types /name.
  • Claude Code keeps a triggered body in context across turns. Write standing instructions, not a one-shot script.

Workflow

1. Confirm it should be a skill

The instruction is...Make it a
a multi-step workflow the agent should follow on demandskill
one or two rules that apply on every turn in a projectagent-doc rule or a hub snippet
a tool the agent should call with structured inputMCP server
a role with its own model and tool setsub-agent (a skill may ship one via ships_with)
knowledge the model already hasnothing; delete it

If the workflow is one step the agent can already do, stop: one-step utility skills undertrigger no matter how they are described.

2. Capture intent

Answer four questions before writing, from the conversation if it already holds the workflow, otherwise by asking:

  1. What should the agent be able to do after loading this?
  2. What will a user actually type when they need it? Collect the literal phrases.
  3. What does the output look like? Name the artifact and its shape.
  4. Is the result objectively checkable? If yes, plan two or three test prompts now.

3. Write the description first

Formula: what it does, then when to use it, then the literal trigger phrases, then a boundary if a neighbouring skill could fire instead.

description: |
  <verb phrase: what it produces or changes> for <context>. Use when <situation>
  or on "<phrase>", "<phrase>". Not for <adjacent case>; use `<other-skill>`.

Check it against six prompts in your head: three that must trigger, three near-misses that must not. Fix a near-miss by adding the boundary, not by deleting keywords. Count the characters; the hub's editor shows the meter.

4. Draft the body

Use this order and nothing the model already knows:

# <Title>

<Two or three sentences: what this skill changes about how the agent works.>

## Gotchas
- <environment fact that defies a reasonable assumption>

## Workflow
1. <step with a checkable end state>
2. ...

## Done when
- <machine-checkable criterion>
- <what the agent must show, not claim>

## References
- `references/<file>.md` — read when <condition>.

Rules for the body:

  • Put the non-negotiable constraints at the top or the bottom. Nothing critical in the middle of a long block.
  • Prefer a numbered workflow with checkable ends over prose advice. Prefer one worked example over a rule about style.
  • Give one default and a named escape hatch, never a menu of equal options.
  • Match prescriptiveness to fragility: exact commands for destructive or order-dependent steps, heuristics everywhere else.
  • Name the step the agent will talk itself out of and pre-empt the excuse.
  • Explain why once; do not stack MUST and NEVER.
  • Stay under 500 lines. Above about 150 lines, move material into references/ and say exactly when to read each file.
  • Bundle a script for anything the agent would reinvent each run, and handle its errors inside the script.

5. Choose the Skill Tree frontmatter

Decide scope, invocation, harness affinity, and companions. The table and the field shapes are in references/skill-tree-frontmatter.md; read it when you set anything beyond name and description.

6. Register and equip

  • New skill in the library: hub new skill <name>, or the skill_create tool of the skill-tree MCP server. Then edit the files it scaffolded.
  • A skill you wrote inside a project's .claude/skills/: hub project import-skill <name> --project <p>.
  • Equip it where it is needed: hub enable <name> --project <p>. A scope: global skill is on everywhere without an equip.
  • hub sync runs after every registry write, so the symlinks are in place when the command returns.

7. Review before you call it done

Run references/review-checklist.md against the file. Every red item is a fix, not a note. Two items are non-negotiable: the description fits the ceiling, and the body has a done-criteria section.

8. Prove it

Run the two or three test prompts from step 2 in fresh sessions, once with the skill equipped and once without. Read the traces, not only the outputs: an over-long skill shows up as the agent following instructions that do not apply. Keep the skill only when the with-skill run is better in a way you can name. For a full eval loop with graded assertions and trigger-rate tuning, hand the skill to skill-creator (Anthropic's), which this skill does not duplicate.

Done when

  • name equals the directory name and passes the slug rule.
  • The description is at or under 200 characters, states what and when, and carries the literal trigger phrases.
  • The body has a gotchas section, a numbered workflow, and a done-criteria section, and is under 500 lines.
  • No machine path and no backslash path appear anywhere in the skill.
  • Every file the body links exists, one level deep.
  • The skill is registered, equipped where intended, and hub sync reports no warning for it.
  • The with-skill run beat the no-skill run on the test prompts, and you can say how.

References

  • references/skill-tree-frontmatter.md — the fields the hub reads (scope, invocation flags, harnesses, ships_with), their exact shapes, and the registration commands. Read at step 5 and step 6.
  • references/review-checklist.md — the checklist for step 7, with the fix for each red item. Also the tool for "review my skill" requests.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.