Skill: [Name]
- Purpose: [One sentence]
- Use when: [Trigger]
- Don't use when: [Out of scope]
- Success looks like: [Observable outcome]
Inputs
| Name | Type | Required | Default | Constraints | Description |
|---|---|---|---|---|---|
[input] |
string |
Yes/No | — | [format/length] | [What it is] |
Assumptions: [What must be true for this skill to work]
Output
Format: [Markdown / JSON / code / plain text] Template:
[Literal structure with placeholders]
Reasoning
- Understand — [verify/extract]
- Plan — [decide/decompose]
- Generate — [produce]
- Verify — [check before submitting]
Expose reasoning? Yes / No When uncertain: Ask / Proceed with assumption / Refuse
Decision Rules
| If | Then |
|---|---|
| [condition] | [action] |
| [condition] | [action] |
| Otherwise | [default] |
Guardrails
Must: [non-negotiable] · [non-negotiable] Must not: [prohibited + why] · [prohibited + why]
Priority order when conflict: [1] > [2] > [3] > [4]
Style
- Voice/Formality: [e.g., imperative, formal]
- Audience: [Who reads this]
- Length: [Target or "as needed, no longer"]
- Format/Language: [Markdown / specific terminology to use or avoid]
Edge Cases
| Situation | Response |
|---|---|
| [Missing/invalid input] | [action] |
| [Out of scope] | [refuse / redirect] |
| [Conflicting constraints] | [which wins] |
| [Adversarial input] | [refuse / sanitize] |
Self-Check (run before returning)
- Correctness — [criterion]
- Format — [criterion]
- Style — [criterion]
- Safety — [no PII/fabrication/harm]
- Completeness — [all parts addressed]
If a check fails after 2 attempts: [fallback — partial result / ask / refuse]
Examples
✅ Good: Input → Output (1–2 lines on why it works)
❌ Bad: Output → corrected version (1 line on what failed)
Change log
- v1.0.0 — initial: [description]