# Skill authoring
Use this method to create a clear, reusable skill without duplicating an existing capability or embedding private runtime assumptions.
Discovery and scope
Start with the intended user outcome, activation examples, inputs, output, constraints, durable writes, and success criteria. Inspect the available skill catalog before proposing a new skill; adapt or extend an existing method when it covers the request.
State the skill's boundary: what it does, what it hands off, and what it will not do. A method does not grant authority to publish, spend, send, delete, or write to a system of record.
Authoring workflow
1. Define a concise name and a description that says both what the skill does and when it should activate. 2. Write a short workflow that uses supplied context before asking for missing decision-critical details. 3. Separate stable instructions from optional references, assets, and scripts. Document resource requirements and host capabilities rather than a private path or named provider. 4. Specify inputs, outputs, evidence and citation behavior, write ownership, and explicit approval gates. 5. Create realistic normal, missing-information, and boundary eval cases. 6. Review the package for stale dependencies, unsupported claims, and resource references that do not exist. Use `references/host-operations.md` for any host-provided validation, packaging, or worker-run capability.
Quality rules
- Keep the instructions focused; move detailed material to package-local references. - Match the current Agent Skills format: a valid `SKILL.md` frontmatter block and optional self-contained resources. - Do not copy source text without clear rights. Independently author a method when rights are absent or uncertain. - Do not present authored evals as executed tests or infer approval from silence. - Treat repeatedly tuned cases as development evidence, not untouched holdout evidence.