원클릭으로
writing-great-skills
Reference for writing and editing skills well — the vocabulary and principles that make a skill predictable.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Reference for writing and editing skills well — the vocabulary and principles that make a skill predictable.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Write an implementation plan to docs/plans/. ALWAYS use this skill — never hand-roll a plan by mimicking files in docs/. Use when the user wants to create a project/implementation plan, when a plan discussed in chat should be persisted, or says /project-plan. Guarantees a spec exists, invoking to-spec if absent. Decomposes into vertical slices with Blocked-by edges, points to the spec for acceptance criteria, and extracts ADRs via to-adr.
Parse test failure output and diagnose root causes in a read-only background subagent, then fix the failures interactively in the main thread. Use when the user shares test output or says "tests fail". Default output path is /tmp/output.
Surface systemic patterns from an investigation as codified conventions or anti-patterns.
Architect a change from idea to actionable artifacts — bootstrap project instructions, research deeply, write a spec, then an implementation plan, each delegated to its skill. Use when the user wants to research a topic, explore a repo, write a spec, create a project plan, or says /architect.
Research a topic or repository deeply and produce a reference document under `docs/research/`. Handles two modes: code research (repo by URL, `org/repo`, or bare name — e.g. "check the spotless repo", "look at github.com/fastly/spotless") and topic research (concepts, technologies, patterns). Use when the user wants to research something, explore a repo, or says /research.
Elicit the user's intent before starting work. Use when a request is vague, when kicking off a new task, when another skill hits a vague request and needs to clarify it, or when the user says "help me with this", "I need something", "let's work on...", "draft a task", or /task.
| name | writing-great-skills |
| description | Reference for writing and editing skills well — the vocabulary and principles that make a skill predictable. |
| disable-model-invocation | true |
A skill exists to wrangle determinism out of a stochastic system. Predictability — the agent taking the same process every run, not producing the same output — is the root virtue; every lever below serves it.
Bold terms are defined in GLOSSARY.md; look them up there for the full meaning.
Two choices, trading different costs:
disable-model-invocation, and write a model-facing description with rich trigger phrasing ("Use when the user wants…, mentions…").disable-model-invocation: true; the description becomes a human-facing one-line summary, trigger lists stripped.Pick model-invocation only when the agent or another skill must reach the skill on its own. If it only ever fires by hand, make it user-invoked and pay no context load.
When user-invoked skills multiply past what you can remember, that piled-up cognitive load is cured by a router skill: one user-invoked skill that names the others and when to reach for each.
A description does two jobs — state what the skill is, and list the branches that should trigger it. Every word adds context load, so prune it even harder than the body:
A skill mixes two content types — steps and reference — freely: all steps, all reference, or both. The core decision is which to use and where each sits on the information hierarchy, a ladder ranked by how immediately the agent needs the material:
SKILL.md, the primary tier: what the agent does, in order. Each ends on a completion criterion, the condition that signals done. Make it checkable (can the agent tell done from not-done?) and, where it matters, exhaustive ("every modified model accounted for", not "produce a change list") — a vague criterion invites premature completion.SKILL.md, consulted on demand. Often a legitimately flat peer-set (every rule of a review on one rung) — fine, not a smell. This skill is all reference.SKILL.md into a separate file, reached by a context pointer, loaded only when the pointer fires. Spans disclosed reference (a sibling file like GLOSSARY.md, still part of the skill) through fully external reference that lives outside the skill system and any skill can point at.A demanding completion criterion drives thorough legwork — the digging the agent does within the work — whether or not the skill has steps, since "every rule applied" binds flat reference just as "every step done" binds a sequence.
Push too little down and the top bloats; push too much and you hide material the agent needs. That tension is the whole decision.
Progressive disclosure is the move down the ladder — out of SKILL.md into a linked file — so the top stays legible. Mechanics: a linked .md file in the skill folder, named for what it holds (this skill discloses its definitions to GLOSSARY.md). Each distinct way a skill is used is a branch — different runs taking different paths. Branching is the cleanest disclosure test: inline what every branch needs, push behind a pointer what only some branches reach. A context pointer's wording, not its target, decides when and how reliably the agent reaches the material.
Where the ladder decides how far down a piece sits, co-location decides what sits beside it: keep a concept's definition, rules, and caveats under one heading rather than scattered, so reading one part brings its neighbours with it.
Granularity is how finely you divide skills, and each cut spends one of the two loads, so split only when the cut earns it:
A leading word is a compact concept already in the model's pretraining that the agent thinks with while running the skill (e.g. lesson, fog of war, tracer bullets). Repeated through the text (or, for a strong one, used once), it accumulates a distributed definition and anchors a whole region of behaviour in the fewest tokens, by recruiting priors the model already holds.
It serves predictability twice. In the body it anchors execution: the agent reaches for the same behaviour every time the word appears. In the description it anchors invocation: when the same word lives in your prompts, docs, and code, the agent links that shared language to the skill and fires it more reliably.
Hunt for chances to refactor skills onto leading words. A triad spelled out at three sites (duplication), a description spending a sentence to gesture at one idea — each begs to collapse into a single token:
You win twice: fewer tokens, and a sharper hook for the agent to hang its thinking on. Assume every skill carries restatements that leading words retire — go find them.
Use these to diagnose issues the user may be having with the skill.