skills/skill-writer/SKILL.md
Create, synthesize, and iteratively improve agent skills following the Agent Skills specification. Use when asked to "create a skill", "write a skill", "synthesize sources into a skill", "improve a skill from positive/negative examples", "update a skill", or "maintain skill docs and registration". Handles source capture, precision passes, authoring, registration, and validation.
npx skillsauth add getsentry/skills skill-writerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this as the single canonical workflow for skill creation and improvement. Primary success condition: maximize high-value input coverage before authoring while minimizing wasted runtime tokens.
Follow the workflow steps in order. Load only the reference files required for the step you are on.
SKILL.md is the primary router: every bundled reference file should be flat under references/ and listed here with a direct "open when..." reason.
| Open when you need to... | Read |
|--------------------------|------|
| choose the minimum workflow path for create, update, iterate, or research-first work | references/mode-selection.md |
| choose the simplest adequate execution shape before deciding files | references/execution-shapes.md |
| apply writing constraints for depth, concision, and portability | references/design-principles.md |
| decide what belongs in SKILL.md, references/, SPEC.md, or supporting files | references/reference-architecture.md |
| create or update the maintenance contract for a skill | references/spec-template.md |
| find missing high-signal sources, including history and regressions | references/source-discovery.md |
| adapt an upstream prompt, workflow, rubric, benchmark, or docs into a skill | references/source-adaptation.md |
| run the full synthesis pass with coverage checks and source capture | references/synthesis-path.md |
| author or update SKILL.md, SPEC.md, and supporting files | references/authoring-path.md |
| improve trigger language and false-positive/false-negative behavior | references/description-optimization.md |
| iterate from positive, negative, or fix examples | references/iteration-path.md |
| store persistent working and holdout examples for future revisions | references/iteration-evidence.md |
| choose a response template, schema, or output contract | references/output-contracts.md |
| add or update evals for a skill's generated outputs or runtime behavior | references/skill-evals.md |
| troubleshoot overloaded layouts, hidden refs, or other structure failures | references/structure-troubleshooting.md |
| register the skill and run final validation checks | references/registration-validation.md |
| Open when you need to... | Read |
|--------------------------|------|
| keep the whole skill inline in one coherent SKILL.md | references/layout-inline-skill.md |
| split optional deep knowledge into focused routed references | references/layout-reference-backed-skill.md |
| add scripts for deterministic automation or validation | references/layout-script-backed-workflow.md |
| define a skill that is usually invoked with explicit arguments | references/layout-argument-driven-skill.md |
| ship reusable templates, schemas, or other static assets | references/layout-asset-template-skill.md |
| Open when you need to... | Read |
|--------------------------|------|
| break a task into fixed ordered steps | references/workflow-prompt-chaining.md |
| classify requests and route them to different downstream paths | references/workflow-routing.md |
| split independent work into parallel units or votes | references/workflow-parallel.md |
| discover work units dynamically and coordinate worker outputs | references/workflow-orchestrator-workers.md |
| run validate-fix-repeat checks during authoring or execution | references/workflow-validation-loops.md |
| validate a plan before executing a risky action | references/workflow-plan-validate-execute.md |
| Open when you need to... | Read |
|--------------------------|------|
| use Claude-specific frontmatter or invocation controls | references/claude-frontmatter-invocation.md |
| use Claude argument fields or substitution variables | references/claude-argument-substitutions.md |
| build a skill that runs in isolated context: fork | references/claude-subagent-fork.md |
| build a skill that uses Claude hooks for deterministic enforcement | references/claude-hook-backed.md |
| use Claude shell preprocessing for dynamic context injection | references/claude-dynamic-context.md |
| Open when you need to... | Read |
|--------------------------|------|
| see the expected depth for a documentation-heavy skill | references/example-documentation-skill.md |
| see the expected depth for a workflow-process skill | references/example-workflow-process-skill.md |
| see what a good routed skill looks like | references/example-router-skill.md |
| see what a good subagent-fork skill looks like | references/example-subagent-fork-skill.md |
| see what a good hook-backed skill looks like | references/example-hook-backed-skill.md |
create, update, synthesize, iterate) and inspect workspace prior art before choosing where files belong.references/mode-selection.md to choose the minimum required workflow paths.references/execution-shapes.md to choose the primary execution shape.Read references/synthesis-path.md.
references/source-discovery.md when source material is thin, stale, or ambiguous.references/source-adaptation.md when adapting an upstream prompt, workflow, rubric, benchmark, or docs.Read references/iteration-path.md first when selected path includes iteration (for example operation iterate).
references/iteration-evidence.md when examples should persist beyond the current turn.Skip this step when selected path does not include iteration.
Read references/authoring-path.md.
SKILL.md in imperative voice with trigger-rich description.SKILL.md as the runtime router, not an encyclopedia.references/authoring-path.md before creating new sections or files.references/reference-architecture.md before adding bulk instructions or new reference files.SPEC.md using references/spec-template.md when creating a new skill or materially changing its contract.SKILL.md.references/skill-evals.md when the request asks for evals, regression cases, benchmark cases, or model-graded quality checks for the skill being authored.references/authoring-path.md before description optimization or validation.Read references/description-optimization.md.
Read references/registration-validation.md.
Return:
SummaryChanges MadeValidation ResultsOpen Gapstesting
Iterate on a PR until actionable CI passes and high/medium review feedback is addressed. Use for PR CI failures, review feedback, or green-check loops; do not wait for human approval, draft status, or merge gates.
testing
Create or refresh reviewer-facing PR titles and descriptions. Use when opening a PR, updating its title or body, or preparing branch changes for review.
tools
Use for every request to commit changes or draft a commit message. Creates Sentry-style conventional commits with issue references.
development
Document and type a Sentry API endpoint. Write or fix @extend_schema decorators, specify response TypedDicts, type request parameters, correct type drift between the declared schema and the runtime response, and validate the generated spec. Use when asked to "document an endpoint", "add OpenAPI docs", "add/fix @extend_schema", "type an endpoint response", "fix the response type", "fix type drift", "reuse a response type", "split an overloaded endpoint", "specify the response schema", "add a TypedDict response", "migrate a legacy api-docs path", "fix a parameter type", or "make an endpoint public" / "promote an endpoint" (promotion is one section here).