cc-dev-template 0.1.5 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,104 @@
1
+ # Modify an Existing Skill
2
+
3
+ Fix issues, add capabilities, or refine behavior of an existing skill.
4
+
5
+ ## What To Do
6
+
7
+ <steps>
8
+
9
+ <step name="Find the Skill">
10
+ Determine which skill to modify.
11
+
12
+ If coming from audit, the path is known. Otherwise, ask the user or discover:
13
+ ```bash
14
+ node ~/.claude/skills/create-agent-skills/scripts/find-skills.js
15
+ ```
16
+
17
+ Confirm the skill exists before proceeding.
18
+ </step>
19
+
20
+ <step name="Read and Understand">
21
+ Read the entire skill - SKILL.md and all files in references/, scripts/, assets/.
22
+
23
+ Summarize for the user:
24
+ - Current structure
25
+ - Word count
26
+ - Any obvious issues (documentation-style writing, inline content that should be in references)
27
+ </step>
28
+
29
+ <step name="Understand What to Change">
30
+ Ask what the user wants to change:
31
+ - Fix issues from an audit?
32
+ - Improve activation (better description/triggers)?
33
+ - Add new capability?
34
+ - Refactor structure?
35
+ - Fix incorrect behavior?
36
+
37
+ Get specific about what's wrong and what "fixed" looks like.
38
+ </step>
39
+
40
+ <step name="Plan Changes">
41
+ Before editing, state what will change:
42
+ - Which files
43
+ - What specifically changes
44
+ - Any new files needed
45
+
46
+ Confirm with user before proceeding.
47
+ </step>
48
+
49
+ <step name="Apply Changes">
50
+ Make the modifications. Key rules:
51
+
52
+ **Keep it as instructions, not documentation.**
53
+ If rewriting, ensure Claude would know what to DO after reading.
54
+
55
+ **Maintain progressive disclosure.**
56
+ If adding content, consider whether it belongs in references/ instead of SKILL.md.
57
+
58
+ **Follow writing conventions.**
59
+ Imperative form, positive framing, no second person.
60
+
61
+ Read `references/principles.md` for full guidelines.
62
+ </step>
63
+
64
+ <step name="Validate">
65
+ Run validation:
66
+ ```bash
67
+ node ~/.claude/skills/create-agent-skills/scripts/validate-skill.js [skill-path]
68
+ ```
69
+
70
+ Also manually verify:
71
+ - Is this instructions, not documentation?
72
+ - Would Claude know what to DO?
73
+ - Is heavy content in references/?
74
+
75
+ Fix any issues before finishing.
76
+ </step>
77
+
78
+ <step name="Test">
79
+ If the change affects behavior:
80
+ 1. Reinstall if needed
81
+ 2. Restart Claude Code
82
+ 3. Test that the skill works as expected
83
+ </step>
84
+
85
+ </steps>
86
+
87
+ ## Common Modifications
88
+
89
+ **Fix documentation-style writing:**
90
+ Rewrite sections that describe the skill ("This skill does X") as instructions ("Do X").
91
+
92
+ **Improve activation:**
93
+ Collect trigger phrases from user, add to description in third person with quotes.
94
+
95
+ **Move content to references:**
96
+ Identify inline content (schemas, detailed explanations) that should be loaded on-demand. Create reference file, add pointer in SKILL.md.
97
+
98
+ **Fix second person:**
99
+ "You should parse" → "Parse"
100
+ "You can use" → "Use"
101
+
102
+ **Fix negative framing:**
103
+ "Don't skip validation" → "Always validate"
104
+ "Never assume" → "Verify explicitly"
@@ -0,0 +1,614 @@
1
+ # Skill Development Principles
2
+
3
+ This document contains the deep knowledge required to create, audit, and modify Claude Code skills correctly. Read this before any skill work.
4
+
5
+ ## The Fundamental Truth
6
+
7
+ **A skill is just a prompt with progressive disclosure.**
8
+
9
+ | Misconception | Reality |
10
+ |---------------|---------|
11
+ | Skills are a special runtime | Skills are markdown files |
12
+ | Skills have special syntax | Skills use natural language |
13
+ | Skills execute code | Skills prompt Claude to do things |
14
+ | Skills have state | Skills tell Claude to read/write files for state |
15
+ | SKILL.md is documentation | SKILL.md IS the prompt Claude reads |
16
+
17
+ When a skill "activates," Claude simply reads the SKILL.md file. The file contains natural language instructions telling Claude what to do.
18
+
19
+ ## The Most Common Mistake: Documentation vs Instructions
20
+
21
+ **This is the #1 reason skills fail.** People write SKILL.md as if it's a README explaining what the skill does. But SKILL.md IS the prompt—it must tell Claude what to DO.
22
+
23
+ ### Documentation (WRONG)
24
+
25
+ ```markdown
26
+ ## Purpose
27
+
28
+ This skill orchestrates the complete migration of Oracle Forms to React/Go.
29
+
30
+ **Who this is for**: Developers migrating Oracle Forms.
31
+
32
+ **Success looks like**: Running /implement-form progresses through all phases.
33
+
34
+ ## How It Works
35
+
36
+ The skill has 12 phases. Phase 1 does scaffolding, Phase 2 does discovery...
37
+
38
+ ## YAML Schema
39
+
40
+ ```yaml
41
+ form:
42
+ name: FORMNAME
43
+ prefix: xx
44
+ status: in_progress
45
+ # ... 50 more lines of schema
46
+ ```
47
+ ```
48
+
49
+ **Why this fails:** Claude reads this and thinks "interesting information, but what should I DO right now?" There are no actionable instructions.
50
+
51
+ ### Instructions (CORRECT)
52
+
53
+ ```markdown
54
+ ## What To Do Now
55
+
56
+ <step name="Get Form Name">
57
+ Ask which form to implement. Store the form name.
58
+ </step>
59
+
60
+ <step name="Check Workflow State">
61
+ Look for `.claude/workflows/{formname}/workflow.yaml`
62
+
63
+ If exists: Read it, determine current phase.
64
+ If not: Create new workflow, start at phase 1.
65
+ </step>
66
+
67
+ <step name="Route to Phase">
68
+ Based on `currentPhase`, read the appropriate file:
69
+
70
+ | Phase | File |
71
+ |-------|------|
72
+ | phase1 | `references/phase1.md` |
73
+ | phase2 | `references/phase2.md` |
74
+ </step>
75
+ ```
76
+
77
+ **Why this works:** Claude knows exactly what to do. Each step is an action. Heavy content (schemas, phase details) lives in references/.
78
+
79
+ ### Red Flags in SKILL.md
80
+
81
+ | Red Flag | Problem |
82
+ |----------|---------|
83
+ | "Who this is for:" | Meta-description. Claude doesn't need audience info. |
84
+ | "Success looks like:" | Describes outcomes, doesn't instruct. |
85
+ | "This skill orchestrates..." | Describes what skill IS, not what to DO. |
86
+ | "The purpose is..." | Documentation language. |
87
+ | Large inline schemas | Reference material, not instructions. |
88
+ | Phase explanations | Should route to phase files, not explain inline. |
89
+
90
+ ### The Test
91
+
92
+ After writing SKILL.md, ask: **"If Claude reads this right now, does it know what action to take?"**
93
+
94
+ If the answer is "it would understand what the skill is about" but not "it would know what to do," rewrite it.
95
+
96
+ ## Why Progressive Disclosure Matters
97
+
98
+ ### The Problem Without Skills
99
+
100
+ To handle a complex workflow, all instructions must be in one giant prompt:
101
+
102
+ ```
103
+ Here's how to plan a feature:
104
+ 1. First gather requirements... [500 lines]
105
+ 2. Then explore the codebase... [500 lines]
106
+ 3. Then check ADRs... [500 lines]
107
+ 4. Then draft the plan... [500 lines]
108
+ 5. Then validate... [500 lines]
109
+ 6. Then finalize... [500 lines]
110
+ ```
111
+
112
+ **Problems:**
113
+ - Massive context consumption upfront (3,000+ lines)
114
+ - Claude may get confused by irrelevant instructions
115
+ - Hard to maintain and update
116
+ - Scales poorly—can't add new capabilities without bloating context
117
+
118
+ ### The Solution: Three-Level Loading
119
+
120
+ Skills use progressive disclosure to load information just-in-time:
121
+
122
+ | Level | What Loads | When | Size Target |
123
+ |-------|------------|------|-------------|
124
+ | **1. Metadata** | `name` + `description` | Always (at startup) | ~100 words |
125
+ | **2. SKILL.md body** | Full instructions | When skill triggers | 1,500-2,000 words |
126
+ | **3. Bundled resources** | references/, scripts/, assets/ | Only when Claude needs them | Unlimited |
127
+
128
+ **Benefits:**
129
+ - Small initial context footprint
130
+ - Claude only sees relevant instructions for current phase
131
+ - Easy to add/modify individual phases
132
+ - Scales infinitely—heavy content lives in references/
133
+
134
+ ### Progressive Disclosure in Practice
135
+
136
+ ```
137
+ SKILL.md (small router):
138
+ "Ask what user wants.
139
+ If planning → read references/planning.md"
140
+
141
+ references/planning.md:
142
+ "Gather requirements.
143
+ When done → read references/drafting.md"
144
+
145
+ references/drafting.md:
146
+ "Create the plan artifact.
147
+ When done → read references/validation.md"
148
+ ```
149
+
150
+ If the user stops after planning, drafting and validation instructions are never loaded.
151
+
152
+ ## Frontmatter Requirements
153
+
154
+ ### Required Fields
155
+
156
+ ```yaml
157
+ ---
158
+ name: skill-name
159
+ description: What this skill does and when to use it
160
+ ---
161
+ ```
162
+
163
+ **name:**
164
+ - Hyphen-case format (lowercase + hyphens only)
165
+ - Must match the directory name
166
+ - Max 64 characters
167
+
168
+ **description:**
169
+ - Max 1024 characters
170
+ - CRITICAL for discovery—this determines when Claude triggers the skill
171
+ - Must explain WHAT and WHEN
172
+
173
+ ### Description Quality
174
+
175
+ The description is the most important part of a skill. Claude uses it to decide whether to activate.
176
+
177
+ **Third-person format with trigger phrases:**
178
+
179
+ ```yaml
180
+ # GOOD - specific triggers, third person
181
+ description: This skill should be used when the user asks to "create a hook", "add a PreToolUse hook", "validate tool use", or mentions hook events (PreToolUse, PostToolUse, Stop).
182
+
183
+ # GOOD - clear scenarios
184
+ description: Extract text and tables from PDF files, fill forms, merge documents. Use when working with PDF files or when the user mentions PDFs, forms, or document extraction.
185
+ ```
186
+
187
+ **Common mistakes:**
188
+
189
+ ```yaml
190
+ # BAD - wrong person
191
+ description: Use this skill when working with hooks.
192
+
193
+ # BAD - vague, no triggers
194
+ description: Provides hook guidance.
195
+
196
+ # BAD - no "when to use"
197
+ description: A skill for managing PDFs.
198
+
199
+ # BAD - too much detail (makes Claude think it can wing it)
200
+ description: This skill parses PDF files using PyPDF2, extracts text with OCR fallback, handles encrypted files with password prompts, and outputs to markdown format with table preservation...
201
+ ```
202
+
203
+ **Key insight from community testing:** If the description explains too much about WHAT the skill does, Claude believes it already knows enough and won't activate the skill. Keep descriptions focused on WHEN to use, not HOW it works internally.
204
+
205
+ ### Optional Fields
206
+
207
+ ```yaml
208
+ ---
209
+ name: skill-name
210
+ description: ...
211
+ license: Apache-2.0
212
+ allowed-tools: Read, Grep, Glob, Write
213
+ metadata:
214
+ version: 1.0.0
215
+ author: team-name
216
+ ---
217
+ ```
218
+
219
+ - `allowed-tools`: Restricts which tools Claude can use (security/safety)
220
+ - `license`: For distributed skills
221
+ - `metadata`: Custom key-value pairs
222
+
223
+ ## Writing Style Requirements
224
+
225
+ ### Imperative/Infinitive Form (Mandatory)
226
+
227
+ Write instructions as directives, not suggestions or descriptions.
228
+
229
+ **Correct (imperative):**
230
+ ```markdown
231
+ Parse the configuration file.
232
+ Extract the relevant fields.
233
+ Validate input before processing.
234
+ Run the test suite to verify changes.
235
+ ```
236
+
237
+ **Incorrect (second person):**
238
+ ```markdown
239
+ You should parse the configuration file.
240
+ You can extract the relevant fields.
241
+ You need to validate input before processing.
242
+ You might want to run the test suite.
243
+ ```
244
+
245
+ **Incorrect (passive/descriptive):**
246
+ ```markdown
247
+ The configuration file should be parsed.
248
+ Fields are extracted from the response.
249
+ Input validation is performed.
250
+ ```
251
+
252
+ ### Objective Instructional Tone
253
+
254
+ Focus on WHAT to do, not WHO should do it:
255
+
256
+ **Correct:**
257
+ ```markdown
258
+ To accomplish X, do Y.
259
+ For validation, check the following criteria.
260
+ When errors occur, retry with exponential backoff.
261
+ ```
262
+
263
+ **Incorrect:**
264
+ ```markdown
265
+ You can accomplish X by doing Y.
266
+ Claude should check the following criteria.
267
+ If you encounter errors, you might retry.
268
+ ```
269
+
270
+ ### Positive Framing
271
+
272
+ Tell Claude what TO do, not what NOT to do:
273
+
274
+ | Negative (avoid) | Positive (correct) |
275
+ |------------------|-------------------|
276
+ | Don't hallucinate facts | Only use information from provided documents |
277
+ | Don't be too formal | Write in a conversational, friendly tone |
278
+ | Avoid long paragraphs | Keep paragraphs to 3-4 sentences |
279
+ | Don't skip error handling | Include comprehensive error handling |
280
+ | Never make assumptions | Base responses on provided data |
281
+
282
+ ## Skill Structure
283
+
284
+ ### Minimal Skill
285
+
286
+ ```
287
+ skill-name/
288
+ └── SKILL.md
289
+ ```
290
+
291
+ Good for: Simple knowledge, no complex workflows
292
+
293
+ ### Standard Skill (Recommended)
294
+
295
+ ```
296
+ skill-name/
297
+ ├── SKILL.md
298
+ ├── references/
299
+ │ └── detailed-guide.md
300
+ └── scripts/
301
+ └── helper.py
302
+ ```
303
+
304
+ Good for: Most skills with detailed documentation or utilities
305
+
306
+ ### Complete Skill
307
+
308
+ ```
309
+ skill-name/
310
+ ├── SKILL.md # Lean router
311
+ ├── references/ # Docs loaded as needed
312
+ │ ├── workflow-1.md
313
+ │ ├── workflow-2.md
314
+ │ └── patterns.md
315
+ ├── scripts/ # Executable utilities
316
+ │ ├── validate.py
317
+ │ └── generate.sh
318
+ └── assets/ # Files for output (templates, etc.)
319
+ └── template.yaml
320
+ ```
321
+
322
+ Good for: Complex multi-workflow skills
323
+
324
+ ### When to Use Each Directory
325
+
326
+ **references/** - Documentation that Claude should read into context:
327
+ - Detailed workflow instructions
328
+ - Domain knowledge and patterns
329
+ - API documentation
330
+ - Schemas and specifications
331
+
332
+ **scripts/** - Executable code for deterministic operations:
333
+ - Validation utilities
334
+ - Code generation
335
+ - Data transformation
336
+ - File operations that need reliability
337
+
338
+ **Benefits of scripts:** Execute without loading into context (token-efficient), deterministic reliability, can be tested independently
339
+
340
+ **assets/** - Files used in output but never read:
341
+ - Templates Claude copies/modifies
342
+ - Boilerplate code
343
+ - Images, icons, fonts
344
+ - Sample documents
345
+
346
+ ## Size Guidelines
347
+
348
+ ### SKILL.md Body
349
+ - **Target**: 1,500-2,000 words
350
+ - **Maximum**: 5,000 words (strongly discouraged)
351
+ - **Anthropic guidance**: Under 500 lines
352
+
353
+ If SKILL.md exceeds these limits, move content to references/.
354
+
355
+ ### Why Size Matters
356
+
357
+ > "The context window is a public good—your skill shares it with everything else. Once loaded, every token competes with conversation history."
358
+ > — Anthropic Engineering
359
+
360
+ Challenge every piece of content: Does it justify its token cost? If Claude already knows it (general programming knowledge, common patterns), remove it.
361
+
362
+ ## Activation Patterns
363
+
364
+ ### How Skills Activate
365
+
366
+ **1. Autonomous (Description Match)**
367
+ Claude reads skill descriptions and decides when to activate based on user request matching.
368
+
369
+ - Less reliable (~50-84% success rate in community testing)
370
+ - Works better with specific trigger phrases
371
+ - Can fail if description is too detailed (Claude thinks it knows enough)
372
+
373
+ **2. Explicit (Slash Command)**
374
+ A slash command forces skill activation:
375
+
376
+ ```markdown
377
+ # /create-skill command
378
+ Activate the create-agent-skills skill to guide the user through skill creation.
379
+ ```
380
+
381
+ - Most reliable method
382
+ - Use for critical workflows
383
+ - Don't rely solely on autonomous activation
384
+
385
+ **3. Hybrid (Recommended)**
386
+ Slash command for explicit invocation + good description for autonomous discovery.
387
+
388
+ ### Improving Activation Reliability
389
+
390
+ 1. **Specific trigger phrases** in description
391
+ 2. **Reference in CLAUDE.md** for project skills
392
+ 3. **Keep description focused on WHEN**, not detailed HOW
393
+
394
+ ## Common Mistakes
395
+
396
+ ### Mistake 1: Treating SKILL.md as Documentation
397
+
398
+ **Problem:** Writing about the skill instead of instructions for Claude
399
+
400
+ ```markdown
401
+ # BAD - describes the skill
402
+ This skill helps users create PDF documents. It uses PyPDF2
403
+ for parsing and supports various output formats...
404
+ ```
405
+
406
+ ```markdown
407
+ # GOOD - instructs Claude
408
+ Parse the input PDF using the bundled script.
409
+ Extract text content, preserving table structure.
410
+ Output as markdown with proper heading hierarchy.
411
+ ```
412
+
413
+ ### Mistake 2: Everything in One File
414
+
415
+ **Problem:** Putting all content in SKILL.md
416
+
417
+ ```
418
+ skill-name/
419
+ └── SKILL.md (8,000 words)
420
+ ```
421
+
422
+ **Solution:** Use progressive disclosure
423
+
424
+ ```
425
+ skill-name/
426
+ ├── SKILL.md (1,800 words - router)
427
+ └── references/
428
+ ├── workflow-a.md (2,500 words)
429
+ └── workflow-b.md (3,700 words)
430
+ ```
431
+
432
+ ### Mistake 3: Vague Descriptions
433
+
434
+ **Problem:** No trigger phrases, unclear when to use
435
+
436
+ ```yaml
437
+ description: Helps with code review.
438
+ ```
439
+
440
+ **Solution:** Specific scenarios and phrases
441
+
442
+ ```yaml
443
+ description: This skill should be used when the user asks to "review this PR", "check my code", "find bugs", or mentions code quality, security review, or performance analysis.
444
+ ```
445
+
446
+ ### Mistake 4: Second Person Writing
447
+
448
+ **Problem:** Using "you" throughout
449
+
450
+ ```markdown
451
+ You should first read the config file.
452
+ Then you can parse the fields.
453
+ You might want to validate the output.
454
+ ```
455
+
456
+ **Solution:** Imperative form
457
+
458
+ ```markdown
459
+ First read the config file.
460
+ Parse the fields using the schema.
461
+ Validate output against expected format.
462
+ ```
463
+
464
+ ### Mistake 5: Missing Resource References
465
+
466
+ **Problem:** References exist but SKILL.md doesn't mention them
467
+
468
+ ```markdown
469
+ # SKILL.md
470
+ [Content with no mention of references/]
471
+ ```
472
+
473
+ **Solution:** Explicit pointers to resources
474
+
475
+ ```markdown
476
+ ## Additional Resources
477
+
478
+ For detailed patterns, read `references/patterns.md`.
479
+ For validation, run `scripts/validate.py`.
480
+ ```
481
+
482
+ ## Prompting Principles for Skill Content
483
+
484
+ Skills ARE prompts. The quality of a skill depends on applying good prompting principles when writing its content. These principles come from ADR-002 (Structured Prompting Practices) and the `prompting` skill.
485
+
486
+ ### Core Principle: Explain WHY, Not Just WHAT
487
+
488
+ Provide purpose and context rather than exhaustive implementation details. Trust Claude's intelligence.
489
+
490
+ **Mental Model**: Treat Claude like a brilliant senior colleague, not a junior who needs hand-holding.
491
+
492
+ **Provide:**
493
+ - The goal or purpose of the task
494
+ - Why this matters (business context, use case)
495
+ - Constraints that exist (technical, business, regulatory)
496
+ - What success looks like
497
+
498
+ **Avoid providing:**
499
+ - Every possible edge case (Claude handles these intelligently)
500
+ - Step-by-step implementation unless genuinely needed
501
+ - Obvious best practices for the domain
502
+
503
+ ### Use Positive Framing
504
+
505
+ Tell Claude what TO do, not what NOT to do. Negatives require extra processing and can prime unwanted behavior.
506
+
507
+ | Negative Framing | Positive Framing |
508
+ |------------------|------------------|
509
+ | "Don't hallucinate facts" | "Only use information from the provided documents" |
510
+ | "Don't be too verbose" | "Keep responses concise and focused" |
511
+ | "Avoid making assumptions" | "Base responses on the provided data" |
512
+ | "Never skip validation" | "Always validate input before processing" |
513
+
514
+ ### Be Clear and Direct
515
+
516
+ Claude 4.x models are more literal than previous versions. State exactly what is needed without hedging.
517
+
518
+ | Vague | Clear |
519
+ |-------|-------|
520
+ | "Maybe consider validating..." | "Validate input before processing" |
521
+ | "It might be helpful to..." | "Include error handling for edge cases" |
522
+ | "You could potentially..." | "Generate tests for all public functions" |
523
+
524
+ ### Provide Context
525
+
526
+ Every skill instruction benefits from context. Answer:
527
+ 1. **Why does this matter?** (Purpose, goal)
528
+ 2. **Who is this for?** (Audience, user type)
529
+ 3. **What does success look like?** (Outcomes, criteria)
530
+ 4. **What constraints exist?** (Technical limits, requirements)
531
+
532
+ ### The Complete Prompt Checklist
533
+
534
+ When writing skill content, verify each section answers:
535
+
536
+ - [ ] **WHAT** is Claude being asked to do?
537
+ - [ ] **WHY** does this matter? (Purpose, goal)
538
+ - [ ] **WHO** is this for? (Audience, user type)
539
+ - [ ] **SUCCESS** looks like what? (Outcomes, criteria)
540
+ - [ ] Frame everything **POSITIVELY** (what TO do)
541
+
542
+ ### Quick Diagnostics
543
+
544
+ If a skill produces problematic results:
545
+
546
+ | Problem | Likely Cause | Fix |
547
+ |---------|--------------|-----|
548
+ | Too minimal/basic | Not explicit about expectations | Add "Create a fully-featured..." or specify depth |
549
+ | Off-topic | Missing context about purpose | Explain WHY and what it's for |
550
+ | Inconsistent | Vague instructions | Be more direct and specific |
551
+ | Overly cautious | Negative framing | Reframe positively |
552
+ | Missing key details | Didn't explain success criteria | Define concrete outcomes |
553
+
554
+ ### Common Antipatterns
555
+
556
+ **The Micromanager**: Providing step-by-step implementation instead of goals.
557
+ - Fix: Explain the goal, let Claude handle implementation.
558
+
559
+ **The Negative Nancy**: String of "don't do X" instructions.
560
+ - Fix: Reframe every negative as a positive instruction.
561
+
562
+ **The Context-Free Zone**: Bare instruction with no purpose or audience.
563
+ - Fix: Explain who uses it, why it exists, what success looks like.
564
+
565
+ **The Vague Suggestion**: Hedged language like "maybe consider..."
566
+ - Fix: Be direct and explicit about what is needed.
567
+
568
+ ### Reference
569
+
570
+ For comprehensive prompting guidance, consult:
571
+ - **ADR-002**: Structured Prompting Practices for Agents and Commands
572
+ - **Prompting skill**: `~/.claude/skills/prompting/SKILL.md`
573
+
574
+ These principles are mandatory for all skill content. Apply them when writing SKILL.md files and reference documents.
575
+
576
+ ## Validation Checklist
577
+
578
+ Before finalizing any skill, verify:
579
+
580
+ ### Structure
581
+ - [ ] SKILL.md exists with valid YAML frontmatter
582
+ - [ ] `name` field matches directory name (hyphen-case)
583
+ - [ ] `description` field present and under 1024 characters
584
+ - [ ] All referenced files actually exist
585
+
586
+ ### Description Quality
587
+ - [ ] Uses third person ("This skill should be used when...")
588
+ - [ ] Includes specific trigger phrases
589
+ - [ ] Lists concrete scenarios
590
+ - [ ] Not overly detailed about implementation
591
+
592
+ ### Content Quality
593
+ - [ ] Body uses imperative/infinitive form throughout
594
+ - [ ] No second person ("you should", "you can")
595
+ - [ ] Body under 2,000 words (or content moved to references/)
596
+ - [ ] Positive framing (what TO do, not what NOT to do)
597
+
598
+ ### Prompting Quality
599
+ - [ ] Explains WHY, not just WHAT (purpose and context provided)
600
+ - [ ] Clear and direct language (no hedging or vague suggestions)
601
+ - [ ] Success criteria defined (what does good output look like?)
602
+ - [ ] Avoids micromanagement (goals over step-by-step instructions)
603
+ - [ ] No antipatterns (Micromanager, Negative Nancy, Context-Free Zone, Vague Suggestion)
604
+
605
+ ### Progressive Disclosure
606
+ - [ ] SKILL.md acts as router to heavier content
607
+ - [ ] Detailed docs in references/
608
+ - [ ] Deterministic operations in scripts/
609
+ - [ ] References clearly pointed to from SKILL.md
610
+
611
+ ### Testing
612
+ - [ ] Skill triggers on expected user queries
613
+ - [ ] Content is helpful for intended tasks
614
+ - [ ] No duplicated information across files