Skill Creator
Creates complete, spec-compliant skill packages following AgentSkills.io and Anthropic standards.
Supports both creation and validation workflows with 100-point marketplace grading.
Overview
Skill Creator solves the gap between writing ad-hoc agent skills and producing marketplace-ready
packages that score well on the Intent Solutions 100-point rubric. It enforces the 2026 spec
(top-level identity fields, ${CLAUDE_SKILL_DIR} paths, scored sections) and catches
contradictions that would cost marketplace points. Supports two modes: create new skills from
scratch with full validation, or grade/audit existing skills with actionable fix suggestions.
Prerequisites
- Claude Code CLI with skill support (v2.1.78+ for advanced features like
effort, maxTurns)
- Python 3.10+ for validation scripts (
validate-skill.py, aggregate_benchmark.py)
- Target skill directory writable (
~/.claude/skills/ or .claude/skills/)
Instructions
Mode Detection
Determine user intent from their prompt:
- Create mode: "create a skill", "build a skill", "new skill" -> proceed to Step 1
- Validate mode: "validate", "check", "grade", "score", "audit" -> jump to Validation Workflow
Communicating with the User
Pay attention to context cues to understand the user's technical level. Skill creator is used by people across a wide range of familiarity — from first-time coders to senior engineers. In the default case:
- "evaluation" and "benchmark" are borderline but OK
- For "JSON" and "assertion", check for cues the user knows these terms before using them without explanation
- Briefly explain terms if in doubt
Step 1: Understand Requirements
If the current conversation already contains a workflow the user wants to capture (e.g., "turn this into a skill"), extract answers from the conversation history first — the tools used, the sequence of steps, corrections the user made, input/output formats observed. Confirm with the user before proceeding.
Ask the user with AskUserQuestion:
Skill Identity:
- Name (kebab-case, gerund preferred:
processing-pdfs, analyzing-data)
- Purpose (1-2 sentences: what it does + when to use it)
Execution Model:
- User-invocable via
/name? Or background knowledge only?
- Accepts arguments? (
$ARGUMENTS substitution)
- Needs isolated context? (
context: fork for subagent execution)
- Explicit-only invocation? (
disable-model-invocation: true — prevents auto-activation, requires /name)
Required Tools:
- Read, Write, Edit, Glob, Grep, WebFetch, WebSearch, Agent, AskUserQuestion, Skill
- Bash must be scoped:
Bash(git:*), Bash(npm:*), etc.
- MCP tools:
ServerName:tool_name
Optional: declare disallowed-tools (schema 3.7.0+):
- Defense-in-depth — an explicit denylist layered on top of the
allowed-tools allowlist
- Useful when the skill needs broad Bash but should never reach for high-risk operations
like
rm, curl to arbitrary hosts, .env file edits, or system-config writes
- Example:
disallowed-tools: [Bash(rm:*), Bash(curl:*), Bash(wget:*), Bash(sudo:*), Edit(.env), Write(.env)]
- A pattern must never appear in BOTH
allowed-tools and disallowed-tools — the
marketplace validator reports the overlap as an ERROR
- Default: omit the field (don't clutter frontmatter with a denylist the allowlist already covers)
- Naming parallel: skills use kebab-case
disallowed-tools; agents use camelCase
disallowedTools — never copy-paste between the two without renaming
Complexity:
- Simple (SKILL.md only)
- With scripts (automation code in
scripts/)
- With references (documentation in
references/)
- With templates (boilerplate in
templates/)
- Full package (all directories)
Location:
- Global:
~/.claude/skills/<skill-name>/
- Project:
.claude/skills/<skill-name>/
Step 2: Plan the Skill
Before writing, determine:
Degrees of Freedom:
| Level |
When to Use |
| High |
Creative/open-ended tasks (analysis, writing) |
| Medium |
Defined workflow, flexible content (most skills) |
| Low |
Strict output format (compliance, API calls, configs) |
Think of it as narrow bridge vs open field: a deployment skill is a narrow bridge (one safe path, guard rails everywhere), while a writing skill is an open field (Claude roams freely within broad boundaries). Match constraint level to the task.
Workflow Pattern (see ${CLAUDE_SKILL_DIR}/references/workflows.md):
- Sequential: fixed steps in order
- Conditional: branch based on input
- Wizard: interactive multi-step gathering
- Plan-Validate-Execute: verifiable intermediates
- Feedback Loop: iterate until quality met
- Checklist Workflow: copy-pasteable progress tracking for complex multi-step processes
- Search-Analyze-Report: explore and summarize
Output Pattern (see ${CLAUDE_SKILL_DIR}/references/output-patterns.md):
- Strict template (exact format)
- Flexible template (structure with creative content)
- Examples-driven (input/output pairs)
- Visual (HTML generation)
- Structured data (JSON/YAML)
Step 3: Initialize Structure
Create the skill directory and files:
mkdir -p {location}/{skill-name}
mkdir -p {location}/{skill-name}/scripts # if needed
mkdir -p {location}/{skill-name}/references # if needed
mkdir -p {location}/{skill-name}/templates # if needed
mkdir -p {location}/{skill-name}/assets # if needed
mkdir -p {location}/{skill-name}/evals # for eval-driven development
Steps 4-10: Write, Validate, Test, Iterate, Optimize, Report
For detailed guidance on writing SKILL.md (frontmatter rules, description scoring, body guidelines, string substitutions, DCI syntax), creating supporting files, validation, testing, iteration, description optimization, and final reporting, see Creation Guide.
Key rules:
version, author, license, compatibility, and tags are top-level fields (not nested under metadata:)
- Scope Bash:
Bash(git:*) not bare Bash
- Optional
disallowed-tools denylist (schema 3.7.0+) must never overlap allowed-tools (validator ERROR)
- Keep under 500 lines; offload to
references/ if longer
- Include "Use when" and "Trigger with" in description for enterprise scoring
- No XML tags in name or description (Anthropic spec prohibition)
- No time-sensitive information; use 'old patterns' section for deprecated approaches
- Include feedback loops for quality-critical workflows
- Run
python3 ${CLAUDE_SKILL_DIR}/scripts/validate-skill.py --grade {skill-dir}/SKILL.md to validate
- Create
evals/evals.json with 3+ scenarios, iterate until all assertions pass
Validation Workflow
When the user wants to validate, grade, or audit an existing skill. For detailed steps (V1-V5), see Creation Guide.
- Locate the SKILL.md (global
~/.claude/skills/ or project .claude/skills/)
- Run
python3 ${CLAUDE_SKILL_DIR}/scripts/validate-skill.py --grade {path}/SKILL.md
- Review grade against the 100-point rubric (A: 90+, B: 80-89, C: 70-79, D: 60-69, F: <60)
- Report results with prioritized fix recommendations
- Auto-fix if requested: add missing sections, fix description patterns, move nested metadata to top-level
Output
The skill produces one of two outputs depending on mode:
- Create mode: A complete skill package directory containing SKILL.md, optional
scripts/, references/, templates/, assets/, and evals/ subdirectories, plus a creation summary report with validation grade and eval results.
- Validate mode: A grade report showing the 100-point rubric score across 5 pillars (Progressive Disclosure, Ease of Use, Utility, Spec Compliance, Writing Style), with prioritized fix recommendations sorted by point value.
Examples
Simple Skill (Create Mode)
User: Create a skill called "code-review" that reviews code quality
Creates:
~/.claude/skills/code-review/
├── SKILL.md
└── evals/
└── evals.json
Frontmatter:
---
name: code-review
description: |
Make sure to use this skill whenever reviewing code for quality, security
vulnerabilities, and best practices. Use when doing code reviews, PR analysis,
or checking code quality. Trigger with "/code-review" or "review this code".
allowed-tools: "Read,Glob,Grep"
version: 1.0.0
author: Jeremy Longshore <jeremy@intentsolutions.io>
license: MIT
model: inherit
---
Full Package with Arguments (Create Mode)
User: Create a skill that generates release notes from git history
Creates:
~/.claude/skills/generating-release-notes/
├── SKILL.md (argument-hint: "[version-tag]")
├── scripts/
│ └── parse-commits.py
├── references/
│ └── commit-conventions.md
├── templates/
│ └── release-template.md
└── evals/
└── evals.json
Uses $ARGUMENTS[0] for version tag.
Uses context: fork for isolated execution.
Validate Mode
User: Grade my skill at ~/.claude/skills/code-review/SKILL.md
Runs: python3 ${CLAUDE_SKILL_DIR}/scripts/validate-skill.py --grade ~/.claude/skills/code-review/SKILL.md
Output:
Grade: B (84/100)
Improvements:
- Add "Trigger with" to description (+3 pts)
- Add ## Output section (+2 pts)
- Add ## Prerequisites section (+2 pts)
Edge Cases
- Name conflicts: Check if skill directory already exists before creating
- Empty arguments: If skill uses
$ARGUMENTS, handle the empty case
- Long content: If SKILL.md exceeds 300 lines during writing, stop and split to references
- Bash scoping: If user requests raw
Bash, always scope it
- Model selection: Default to
inherit, only override with good reason
- Undertriggering: If skill isn't activating, make description more aggressive/pushy
- Legacy metadata nesting: If found, move author/version/license to top-level
Error Handling
| Error |
Cause |
Solution |
| Name exists |
Directory already present |
Choose different name or confirm overwrite |
| Invalid name |
Not kebab-case or >64 chars |
Fix to lowercase-with-hyphens |
| Validation fails |
Missing fields or anti-patterns |
Run validator, fix reported issues |
| Resource missing |
${CLAUDE_SKILL_DIR}/ ref points to nonexistent file |
Create the file or fix the reference |
| Undertriggering |
Description too passive |
Add "Make sure to use whenever..." phrasing |
| Eval failures |
Skill not producing expected output |
Iterate on instructions and re-test |
| Low grade |
Missing scored sections or fields |
Add Overview, Prerequisites, Output sections |
Resources
References: ${CLAUDE_SKILL_DIR}/references/
creation-guide.md — Detailed Steps 4-10 and Validation Workflow (V1-V5)
source-of-truth.md — Canonical spec (AgentSkills.io, Anthropic docs, Lee Han Chung deep dive) | frontmatter-spec.md — Field reference | validation-rules.md — 100-point rubric
workflows.md — Workflow patterns | output-patterns.md — Output formats | schemas.md — JSON schemas (evals, grading, benchmarks)
anthropic-comparison.md — Gap analysis | advanced-eval-workflow.md — Eval, iteration, optimization, platform notes
Agents (read when spawning subagents): ${CLAUDE_SKILL_DIR}/agents/
grader.md — Assertion evaluation | comparator.md — Blind A/B comparison | analyzer.md — Benchmark analysis
Scripts: ${CLAUDE_SKILL_DIR}/scripts/
validate-skill.py — 100-point rubric grading | quick_validate.py — Lightweight validation
aggregate_benchmark.py — Benchmark stats | run_eval.py — Trigger accuracy testing
run_loop.py — Description optimization loop | improve_description.py — LLM-powered rewriting
generate_report.py — HTML reports | package_skill.py — .skill packaging | utils.py — Shared utilities
Eval Viewer: ${CLAUDE_SKILL_DIR}/eval-viewer/ — generate_review.py + viewer.html (interactive output comparison)
Assets: ${CLAUDE_SKILL_DIR}/assets/eval_review.html (trigger eval set editor)
Templates: ${CLAUDE_SKILL_DIR}/templates/skill-template.md (SKILL.md skeleton)
For advanced workflows (empirical eval, description optimization, blind comparison, packaging, platform notes), see Creation Guide and ${CLAUDE_SKILL_DIR}/references/advanced-eval-workflow.md.
1---
2name: skill-creator
3description: 'Create production-grade agent skills aligned with the 2026 AgentSkills.io
4 spec and Anthropic
5
6 best practices (2026). Also validates existing skills against the Intent Solutions
7 100-point rubric.
8
9 Use when building, testing, validating, or optimizing Claude Code skills.
10
11 Trigger with "/skill-creator", "create a skill", "validate my skill", or "check
12 skill quality".
13
14 Make sure to use this skill whenever creating a new skill, slash command, or agent
15 capability.
16
17 '
18argument-hint: "<create|validate|optimize> [skill-path]"
19allowed-tools: Read,Write,Edit,Glob,Grep,Bash(mkdir:*),Bash(chmod:*),Bash(python:*),Bash(claude:*),Agent,AskUserQuestion
20version: 5.22.0
21author: Jeremy Longshore <jeremy@intentsolutions.io>
22license: MIT
23tags:
24- skill-creation
25- validation
26- meta-tooling
27model: inherit
28effort: high
29compatibility: Designed for Claude Code
30---
31
32# Skill Creator
33
34Creates complete, spec-compliant skill packages following AgentSkills.io and Anthropic standards.
35Supports both creation and validation workflows with 100-point marketplace grading.
36
37## Overview
38
39Skill Creator solves the gap between writing ad-hoc agent skills and producing marketplace-ready
40packages that score well on the Intent Solutions 100-point rubric. It enforces the 2026 spec
41(top-level identity fields, `${CLAUDE_SKILL_DIR}` paths, scored sections) and catches
42contradictions that would cost marketplace points. Supports two modes: create new skills from
43scratch with full validation, or grade/audit existing skills with actionable fix suggestions.
44
45## Prerequisites
46
47- Claude Code CLI with skill support (v2.1.78+ for advanced features like `effort`, `maxTurns`)
48- Python 3.10+ for validation scripts (`validate-skill.py`, `aggregate_benchmark.py`)
49- Target skill directory writable (`~/.claude/skills/` or `.claude/skills/`)
50
51## Instructions
52
53### Mode Detection
54
55Determine user intent from their prompt:
56
57- **Create mode**: "create a skill", "build a skill", "new skill" -> proceed to Step 1
58- **Validate mode**: "validate", "check", "grade", "score", "audit" -> jump to Validation Workflow
59
60### Communicating with the User
61
62Pay attention to context cues to understand the user's technical level. Skill creator is used by people across a wide range of familiarity — from first-time coders to senior engineers. In the default case:
63
64- "evaluation" and "benchmark" are borderline but OK
65- For "JSON" and "assertion", check for cues the user knows these terms before using them without explanation
66- Briefly explain terms if in doubt
67
68### Step 1: Understand Requirements
69
70If the current conversation already contains a workflow the user wants to capture (e.g., "turn this into a skill"), extract answers from the conversation history first — the tools used, the sequence of steps, corrections the user made, input/output formats observed. Confirm with the user before proceeding.
71
72Ask the user with AskUserQuestion:
73
74**Skill Identity:**
75
76- Name (kebab-case, gerund preferred: `processing-pdfs`, `analyzing-data`)
77- Purpose (1-2 sentences: what it does + when to use it)
78
79**Execution Model:**
80
81- User-invocable via `/name`? Or background knowledge only?
82- Accepts arguments? (`$ARGUMENTS` substitution)
83- Needs isolated context? (`context: fork` for subagent execution)
84- Explicit-only invocation? (`disable-model-invocation: true` — prevents auto-activation, requires `/name`)
85
86**Required Tools:**
87
88- Read, Write, Edit, Glob, Grep, WebFetch, WebSearch, Agent, AskUserQuestion, Skill
89- Bash must be scoped: `Bash(git:*)`, `Bash(npm:*)`, etc.
90- MCP tools: `ServerName:tool_name`
91
92**Optional: declare `disallowed-tools` (schema 3.7.0+):**
93
94- Defense-in-depth — an explicit denylist layered on top of the `allowed-tools` allowlist
95- Useful when the skill needs broad Bash but should never reach for high-risk operations
96 like `rm`, `curl` to arbitrary hosts, `.env` file edits, or system-config writes
97- Example: `disallowed-tools: [Bash(rm:*), Bash(curl:*), Bash(wget:*), Bash(sudo:*), Edit(.env), Write(.env)]`
98- A pattern must never appear in BOTH `allowed-tools` and `disallowed-tools` — the
99 marketplace validator reports the overlap as an ERROR
100- Default: omit the field (don't clutter frontmatter with a denylist the allowlist already covers)
101- Naming parallel: skills use kebab-case `disallowed-tools`; agents use camelCase
102 `disallowedTools` — never copy-paste between the two without renaming
103
104**Complexity:**
105
106- Simple (SKILL.md only)
107- With scripts (automation code in `scripts/`)
108- With references (documentation in `references/`)
109- With templates (boilerplate in `templates/`)
110- Full package (all directories)
111
112**Location:**
113
114- Global: `~/.claude/skills/<skill-name>/`
115- Project: `.claude/skills/<skill-name>/`
116
117### Step 2: Plan the Skill
118
119Before writing, determine:
120
121**Degrees of Freedom:**
122
123| Level | When to Use |
124|-------|-------------|
125| High | Creative/open-ended tasks (analysis, writing) |
126| Medium | Defined workflow, flexible content (most skills) |
127| Low | Strict output format (compliance, API calls, configs) |
128
129Think of it as **narrow bridge vs open field**: a deployment skill is a narrow bridge (one safe path, guard rails everywhere), while a writing skill is an open field (Claude roams freely within broad boundaries). Match constraint level to the task.
130
131**Workflow Pattern** (see `${CLAUDE_SKILL_DIR}/references/workflows.md`):
132
133- Sequential: fixed steps in order
134- Conditional: branch based on input
135- Wizard: interactive multi-step gathering
136- Plan-Validate-Execute: verifiable intermediates
137- Feedback Loop: iterate until quality met
138- Checklist Workflow: copy-pasteable progress tracking for complex multi-step processes
139- Search-Analyze-Report: explore and summarize
140
141**Output Pattern** (see `${CLAUDE_SKILL_DIR}/references/output-patterns.md`):
142
143- Strict template (exact format)
144- Flexible template (structure with creative content)
145- Examples-driven (input/output pairs)
146- Visual (HTML generation)
147- Structured data (JSON/YAML)
148
149### Step 3: Initialize Structure
150
151Create the skill directory and files:
152
153```bash
154mkdir -p {location}/{skill-name}
155mkdir -p {location}/{skill-name}/scripts # if needed
156mkdir -p {location}/{skill-name}/references # if needed
157mkdir -p {location}/{skill-name}/templates # if needed
158mkdir -p {location}/{skill-name}/assets # if needed
159mkdir -p {location}/{skill-name}/evals # for eval-driven development
160```
161
162### Steps 4-10: Write, Validate, Test, Iterate, Optimize, Report
163
164For detailed guidance on writing SKILL.md (frontmatter rules, description scoring, body guidelines, string substitutions, DCI syntax), creating supporting files, validation, testing, iteration, description optimization, and final reporting, see [Creation Guide](references/creation-guide.md).
165
166Key rules:
167
168- `version`, `author`, `license`, `compatibility`, and `tags` are top-level fields (not nested under `metadata:`)
169- Scope Bash: `Bash(git:*)` not bare `Bash`
170- Optional `disallowed-tools` denylist (schema 3.7.0+) must never overlap `allowed-tools` (validator ERROR)
171- Keep under 500 lines; offload to `references/` if longer
172- Include "Use when" and "Trigger with" in description for enterprise scoring
173- No XML tags in name or description (Anthropic spec prohibition)
174- No time-sensitive information; use 'old patterns' section for deprecated approaches
175- Include feedback loops for quality-critical workflows
176- Run `python3 ${CLAUDE_SKILL_DIR}/scripts/validate-skill.py --grade {skill-dir}/SKILL.md` to validate
177- Create `evals/evals.json` with 3+ scenarios, iterate until all assertions pass
178
179## Validation Workflow
180
181When the user wants to validate, grade, or audit an existing skill. For detailed steps (V1-V5), see [Creation Guide](references/creation-guide.md).
182
1831. Locate the SKILL.md (global `~/.claude/skills/` or project `.claude/skills/`)
1842. Run `python3 ${CLAUDE_SKILL_DIR}/scripts/validate-skill.py --grade {path}/SKILL.md`
1853. Review grade against the 100-point rubric (A: 90+, B: 80-89, C: 70-79, D: 60-69, F: <60)
1864. Report results with prioritized fix recommendations
1875. Auto-fix if requested: add missing sections, fix description patterns, move nested metadata to top-level
188
189## Output
190
191The skill produces one of two outputs depending on mode:
192
193- **Create mode**: A complete skill package directory containing SKILL.md, optional `scripts/`, `references/`, `templates/`, `assets/`, and `evals/` subdirectories, plus a creation summary report with validation grade and eval results.
194- **Validate mode**: A grade report showing the 100-point rubric score across 5 pillars (Progressive Disclosure, Ease of Use, Utility, Spec Compliance, Writing Style), with prioritized fix recommendations sorted by point value.
195
196## Examples
197
198### Simple Skill (Create Mode)
199
200```
201User: Create a skill called "code-review" that reviews code quality
202
203Creates:
204~/.claude/skills/code-review/
205├── SKILL.md
206└── evals/
207 └── evals.json
208
209Frontmatter:
210---
211name: code-review
212description: |
213 Make sure to use this skill whenever reviewing code for quality, security
214 vulnerabilities, and best practices. Use when doing code reviews, PR analysis,
215 or checking code quality. Trigger with "/code-review" or "review this code".
216allowed-tools: "Read,Glob,Grep"
217version: 1.0.0
218author: Jeremy Longshore <jeremy@intentsolutions.io>
219license: MIT
220model: inherit
221---
222```
223
224### Full Package with Arguments (Create Mode)
225
226```
227User: Create a skill that generates release notes from git history
228
229Creates:
230~/.claude/skills/generating-release-notes/
231├── SKILL.md (argument-hint: "[version-tag]")
232├── scripts/
233│ └── parse-commits.py
234├── references/
235│ └── commit-conventions.md
236├── templates/
237│ └── release-template.md
238└── evals/
239 └── evals.json
240
241Uses $ARGUMENTS[0] for version tag.
242Uses context: fork for isolated execution.
243```
244
245### Validate Mode
246
247```
248User: Grade my skill at ~/.claude/skills/code-review/SKILL.md
249
250Runs: python3 ${CLAUDE_SKILL_DIR}/scripts/validate-skill.py --grade ~/.claude/skills/code-review/SKILL.md
251
252Output:
253 Grade: B (84/100)
254 Improvements:
255 - Add "Trigger with" to description (+3 pts)
256 - Add ## Output section (+2 pts)
257 - Add ## Prerequisites section (+2 pts)
258```
259
260## Edge Cases
261
262- **Name conflicts**: Check if skill directory already exists before creating
263- **Empty arguments**: If skill uses `$ARGUMENTS`, handle the empty case
264- **Long content**: If SKILL.md exceeds 300 lines during writing, stop and split to references
265- **Bash scoping**: If user requests raw `Bash`, always scope it
266- **Model selection**: Default to `inherit`, only override with good reason
267- **Undertriggering**: If skill isn't activating, make description more aggressive/pushy
268- **Legacy metadata nesting**: If found, move author/version/license to top-level
269
270## Error Handling
271
272| Error | Cause | Solution |
273|-------|-------|----------|
274| Name exists | Directory already present | Choose different name or confirm overwrite |
275| Invalid name | Not kebab-case or >64 chars | Fix to lowercase-with-hyphens |
276| Validation fails | Missing fields or anti-patterns | Run validator, fix reported issues |
277| Resource missing | `${CLAUDE_SKILL_DIR}/` ref points to nonexistent file | Create the file or fix the reference |
278| Undertriggering | Description too passive | Add "Make sure to use whenever..." phrasing |
279| Eval failures | Skill not producing expected output | Iterate on instructions and re-test |
280| Low grade | Missing scored sections or fields | Add Overview, Prerequisites, Output sections |
281
282## Resources
283
284**References:** `${CLAUDE_SKILL_DIR}/references/`
285
286- `creation-guide.md` — Detailed Steps 4-10 and Validation Workflow (V1-V5)
287- `source-of-truth.md` — Canonical spec ([AgentSkills.io](https://agentskills.io/specification), [Anthropic docs](https://code.claude.com/docs/en/skills), [Lee Han Chung deep dive](https://leehanchung.github.io/blogs/2025/10/26/claude-skills-deep-dive/)) | `frontmatter-spec.md` — Field reference | `validation-rules.md` — 100-point rubric
288- `workflows.md` — Workflow patterns | `output-patterns.md` — Output formats | `schemas.md` — JSON schemas (evals, grading, benchmarks)
289- `anthropic-comparison.md` — Gap analysis | `advanced-eval-workflow.md` — Eval, iteration, optimization, platform notes
290
291**Agents** (read when spawning subagents): `${CLAUDE_SKILL_DIR}/agents/`
292
293- `grader.md` — Assertion evaluation | `comparator.md` — Blind A/B comparison | `analyzer.md` — Benchmark analysis
294
295**Scripts:** `${CLAUDE_SKILL_DIR}/scripts/`
296
297- `validate-skill.py` — 100-point rubric grading | `quick_validate.py` — Lightweight validation
298- `aggregate_benchmark.py` — Benchmark stats | `run_eval.py` — Trigger accuracy testing
299- `run_loop.py` — Description optimization loop | `improve_description.py` — LLM-powered rewriting
300- `generate_report.py` — HTML reports | `package_skill.py` — .skill packaging | `utils.py` — Shared utilities
301
302**Eval Viewer:** `${CLAUDE_SKILL_DIR}/eval-viewer/` — `generate_review.py` + `viewer.html` (interactive output comparison)
303**Assets:** `${CLAUDE_SKILL_DIR}/assets/eval_review.html` (trigger eval set editor)
304**Templates:** `${CLAUDE_SKILL_DIR}/templates/skill-template.md` (SKILL.md skeleton)
305
306---
307
308For advanced workflows (empirical eval, description optimization, blind comparison, packaging, platform notes), see [Creation Guide](references/creation-guide.md) and `${CLAUDE_SKILL_DIR}/references/advanced-eval-workflow.md`.