Skill Planner

Module 7 pre-authoring worksheet · introduced in Lesson 7.3 · concept shape

What this is. The worksheet you fill in before you write a single line of SKILL.md YAML. Skills fail in predictable ways when authors start by typing YAML and figure out the shape as they go; filling this page first forces the thinking to happen before the typing.

How to use. Print one copy per skill you are considering. Work top to bottom. When every section has a real answer (not a placeholder), you are ready to open Lesson 7.3’s RECIPE walkthrough and author the actual file.

The load-bearing insight of Lesson 7.3 — keep this in view while you plan.

The description field is the classifier. The agent reads it to decide whether to fire the skill. Every word in that sentence matters.

Section 1 — Name and one-sentence purpose

Skill name (kebab-case, folder-safe)

This becomes the folder name under ~/.claude/skills/ or <project>/.claude/skills/. Short, specific, and boring beats clever.

What this skill does, in one sentence

Plain English. Write the sentence you’d say to a roommate, not the description the agent will see. That comes later.

The repetition count

Lesson 7.1’s three-part threshold test: this prompt has been run at least three times, in the same shape, on the same kind of input. If the answer is “not yet,” stop — this should be a saved prompt, not a skill.

Run 1 date: ________________   Run 2 date: ________________   Run 3 date: ________________

If I could not fill in three real dates: I am not ready to build this skill. The prompt goes in my saved-prompts folder and I revisit in two weeks.

Section 2 — Description (the classifier)

First-draft description

Aim for two to four sentences. The first names what the skill does. The second names when the agent should fire it. The third (optional) names when not to fire it.

Three-failure-mode self-check

Before tuning. Read your draft aloud and tick whichever apply. A “yes” on any of them means rewrite before installing.
Vague
Could this description fire on workflows I did not build this skill for? If “yes,” narrow the when.
□ Yes   □ No
Overfit
Does the description name a specific sender, filename, date, or phrase that would make the skill miss near-identical work? If “yes,” broaden the what.
□ Yes   □ No
Triggerless
Does the description describe only what the skill does and never name when to fire it? If “yes,” add the trigger sentence.
□ Yes   □ No

Descriptive + inclusive + exclusive rewrite

Apply the Lesson 7.3 fix: descriptive (names what it does), inclusive (names the triggering shape positively), exclusive (names one or two things it is explicitly not for).

Section 3 — Inputs

What the skill reads to do its work

Name every required input, whether the agent infers it from the request, extracts it from a file, or asks the user. “Email thread” is an input. “User’s voice template” is an input if you load one. “Today’s date” is an input if the skill behaves differently on weekdays.

What the skill is not allowed to read

Write the fence. “The email triage skill does not read threads outside the agent-access label.” This sentence later becomes the scope line in the body.

Section 4 — Procedure (4–7 numbered steps)

The body of the skill, step by step

The procedure section of SKILL.md. Write it in imperative voice: “Read the thread. Identify the sender’s ask. Draft a three-paragraph reply.” Keep it under seven steps — if it needs more, the skill is doing too much.

Section 5 — Output contract

What the skill is required to produce

Name the shape. “A three-bullet summary, each bullet under 20 words.” “A draft reply in the user’s voice, saved to Drafts, never sent.” Future-you will audit the skill against this contract — make it checkable.

Where the output goes

File path, Drafts folder, return-in-chat, stdout — be specific. The delivery is part of the contract.

What the skill is not allowed to produce

The “drafts, not sends” carve-out lives here. Also: “no auto-commit,” “no auto-share,” “no auto-RSVP.”

Section 6 — Failure modes (at least three)

The failure modes section of the body. Write the three most likely ways this skill will misfire. For each, name what future-you should look for in the trace. A skill without an explicit failure-modes section is a skill that will fail silently.
Failure mode 1
Failure mode 2
Failure mode 3

Section 7 — Ready-to-author checklist

  1. □  Every section above has a real answer. No “TBD,” no placeholders.
  2. □  The three-failure-mode self-check on Section 2 came back clean (no “yes” boxes unaddressed).
  3. □  The description includes the descriptive + inclusive + exclusive triple.
  4. □  The procedure is seven steps or fewer.
  5. □  The output contract is checkable — I can look at a single output and say “that matches” or “it doesn’t.”
  6. □  At least three failure modes are named, each with a trace signal.
  7. □  The three-part threshold test passed (Section 1 — three real run dates, not guesses).

When all seven boxes are ticked, open Lesson 7.3’s RECIPE walkthrough and translate this page into SKILL.md.

Worked example (reference only — use your own values)

Skill name: email-thread-summarizer One sentence: Produces a three-bullet summary of a work email thread, each bullet under 20 words, for the user to scan before replying. Repetition threshold: Run 1: 2026-03-14 (bike-shop vendor thread) Run 2: 2026-03-28 (sibling sign-off thread) Run 3: 2026-04-05 (research-trip logistics thread) → three runs confirmed, skill is warranted. Description (D+I+E): Summarizes a multi-message email thread into three bullets under 20 words each. Use when the user asks to “summarize,” “recap,” or “give me the TL;DR of” an email thread. Do NOT use for single messages, for non-email text (articles, PDFs, notes), or for producing replies — there is a separate skill for replies. Inputs (required): 1. The email thread (all messages, in order) 2. The user’s named ask (“summarize,” etc.) Inputs (fenced out): Threads outside the `agent-access` label. Messages the user has tagged `private`. Procedure: 1. Read the full thread top-to-bottom. 2. Identify the original ask and the latest state. 3. Name any open questions not yet resolved. 4. Produce three bullets, each under 20 words: a. what the thread is about b. where it currently stands c. what is still open or needs a decision Output contract: Exactly three bullets. Each under 20 words. Delivered inline in chat. Not allowed: Do not draft a reply. Do not mark the thread read. Do not change the thread’s label. Failure modes: 1. Produces four bullets when the thread is complex. — Trace signal: bullet count. 2. Invents a resolution that is not in the thread. — Trace signal: claim without a message to cite. 3. Summarizes a forwarded newsletter as if it were a conversation. — Trace signal: “the thread discusses” with a single sender.

The planner is the thinking. The YAML is the typing. Do the thinking first.