jettypod 3.0.1

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.
Files changed (122) hide show
  1. package/.claude/PROTECT_SKILLS.md +28 -0
  2. package/.claude/settings.json +24 -0
  3. package/.claude/settings.local.json +16 -0
  4. package/.claude/skills/epic-discover/SKILL.md +262 -0
  5. package/.claude/skills/feature-discover/SKILL.md +393 -0
  6. package/.claude/skills/speed-mode/SKILL.md +364 -0
  7. package/.claude/skills/stable-mode/SKILL.md +591 -0
  8. package/.github/workflows/test-safety.yml +85 -0
  9. package/README.md +25 -0
  10. package/SPEED-STABLE-AUDIT.md +853 -0
  11. package/SYSTEM-BEHAVIOR.md +1241 -0
  12. package/TEST_SAFETY_AUDIT.md +314 -0
  13. package/TEST_SAFETY_IMPLEMENTATION.md +97 -0
  14. package/cucumber.js +8 -0
  15. package/docs/COMMAND_REFERENCE.md +903 -0
  16. package/docs/DECISIONS.md +68 -0
  17. package/docs/README.md +48 -0
  18. package/docs/STANDARDS-SYSTEM-DOCUMENTATION.md +374 -0
  19. package/docs/TEST-REWRITE-PLAN.md +261 -0
  20. package/docs/ai-test-writing-requirements.md +219 -0
  21. package/docs/claude-code-skills.md +607 -0
  22. package/docs/core-jettypod-methodology/comprehensive-jettypod-methodology.md +582 -0
  23. package/docs/core-jettypod-methodology/deprecated/jettypod-comprehensive-standards.md +1222 -0
  24. package/docs/core-jettypod-methodology/deprecated/jettypod-operating-guide.md +3399 -0
  25. package/docs/core-jettypod-methodology/deprecated/jettypod-technical-checklist.md +1325 -0
  26. package/docs/core-jettypod-methodology/deprecated/jettypod-vibe-coding-framework.md +1544 -0
  27. package/docs/core-jettypod-methodology/deprecated/prompt-engineering-guide.md +320 -0
  28. package/docs/core-jettypod-methodology/deprecated/vibe-coding-cheatsheet (1).md +516 -0
  29. package/docs/core-jettypod-methodology/deprecated/vibe-coding-framework.md +1544 -0
  30. package/docs/features/jettypod-standards-explained.md +543 -0
  31. package/docs/features/standards-inventory.md +257 -0
  32. package/docs/gap-analysis-current-vs-comprehensive-methodology.md +939 -0
  33. package/docs/jettypod-system-overview.md +409 -0
  34. package/features/auto-generate-production-chores.feature +14 -0
  35. package/features/claude-md-protection/steps.js +487 -0
  36. package/features/decisions/index.js +490 -0
  37. package/features/decisions/index.test.js +208 -0
  38. package/features/git-hooks/git-hooks.feature +30 -0
  39. package/features/git-hooks/index.js +93 -0
  40. package/features/git-hooks/index.test.js +137 -0
  41. package/features/git-hooks/post-commit +56 -0
  42. package/features/git-hooks/post-merge +47 -0
  43. package/features/git-hooks/pre-commit +28 -0
  44. package/features/git-hooks/simple-steps.js +53 -0
  45. package/features/git-hooks/simple-test.feature +10 -0
  46. package/features/git-hooks/steps.js +196 -0
  47. package/features/jettypod-update-command.feature +46 -0
  48. package/features/mode-prompts/index.js +95 -0
  49. package/features/mode-prompts/simple-steps.js +44 -0
  50. package/features/mode-prompts/simple-test.feature +9 -0
  51. package/features/mode-prompts/validation.test.js +120 -0
  52. package/features/refactor-mode/steps.js +217 -0
  53. package/features/refactor-mode.feature +49 -0
  54. package/features/skills-update/index.test.js +216 -0
  55. package/features/step_definitions/auto-generate-production-chores.steps.js +162 -0
  56. package/features/step_definitions/terminal-logo.steps.js +145 -0
  57. package/features/step_definitions/update-command.steps.js +183 -0
  58. package/features/terminal-logo/index.js +39 -0
  59. package/features/terminal-logo/terminal-logo.feature +30 -0
  60. package/features/update-command/index.js +181 -0
  61. package/features/update-command/index.test.js +225 -0
  62. package/features/work-commands/bug-workflow-display.feature +22 -0
  63. package/features/work-commands/index.js +311 -0
  64. package/features/work-commands/simple-steps.js +69 -0
  65. package/features/work-commands/stable-tests.feature +57 -0
  66. package/features/work-commands/steps.js +1120 -0
  67. package/features/work-commands/validation.test.js +88 -0
  68. package/features/work-commands/work-commands.feature +13 -0
  69. package/features/work-tracking/discovery-validation.test.js +228 -0
  70. package/features/work-tracking/index.js +1511 -0
  71. package/features/work-tracking/mode-required.feature +112 -0
  72. package/features/work-tracking/phase-tracking.test.js +482 -0
  73. package/features/work-tracking/prototype-tracking.test.js +485 -0
  74. package/features/work-tracking/tree-view.test.js +310 -0
  75. package/features/work-tracking/work-set-mode.feature +71 -0
  76. package/features/work-tracking/work-start-mode.feature +88 -0
  77. package/full-test.txt +0 -0
  78. package/install.sh +89 -0
  79. package/jettypod.js +1640 -0
  80. package/lib/bug-workflow.js +94 -0
  81. package/lib/bug-workflow.test.js +177 -0
  82. package/lib/claudemd.js +130 -0
  83. package/lib/claudemd.test.js +195 -0
  84. package/lib/comprehensive-standards-full.json +1778 -0
  85. package/lib/config.js +181 -0
  86. package/lib/config.test.js +511 -0
  87. package/lib/constants.js +107 -0
  88. package/lib/constants.test.js +164 -0
  89. package/lib/current-work.js +130 -0
  90. package/lib/current-work.test.js +146 -0
  91. package/lib/database-project-config.test.js +107 -0
  92. package/lib/database.js +256 -0
  93. package/lib/database.test.js +106 -0
  94. package/lib/decisions-generator.js +102 -0
  95. package/lib/decisions-generator.test.js +457 -0
  96. package/lib/decisions-helpers.js +119 -0
  97. package/lib/decisions-helpers.test.js +310 -0
  98. package/lib/discovery-checkpoint.js +83 -0
  99. package/lib/docs-generator.js +280 -0
  100. package/lib/external-checklist.js +177 -0
  101. package/lib/git.js +142 -0
  102. package/lib/git.test.js +145 -0
  103. package/lib/logo.js +3 -0
  104. package/lib/migrations/001-epic-to-parent.js +24 -0
  105. package/lib/migrations/002-default-work-item-modes.js +37 -0
  106. package/lib/migrations/002-default-work-item-modes.test.js +351 -0
  107. package/lib/migrations/003-epic-discovery-fields.js +52 -0
  108. package/lib/migrations/004-discovery-decisions-table.js +32 -0
  109. package/lib/migrations/005-migrate-decision-data.js +62 -0
  110. package/lib/migrations/006-feature-phase-field.js +61 -0
  111. package/lib/migrations/007-prototype-tracking.js +38 -0
  112. package/lib/migrations/008-scenario-file-field.js +24 -0
  113. package/lib/migrations/index.js +74 -0
  114. package/lib/production-helpers.js +69 -0
  115. package/lib/project-state.test.js +92 -0
  116. package/lib/test-helpers.js +184 -0
  117. package/lib/test-helpers.test.js +255 -0
  118. package/package.json +36 -0
  119. package/prototypes/test/index.html +1 -0
  120. package/setup-dist-repo.sh +68 -0
  121. package/test-safety-check.sh +80 -0
  122. package/work-item-tracking-plan.md +199 -0
@@ -0,0 +1,607 @@
1
+ # Agent Skills
2
+
3
+ > Create, manage, and share Skills to extend Claude's capabilities in Claude Code.
4
+
5
+ This guide shows you how to create, use, and manage Agent Skills in Claude Code. Skills are modular capabilities that extend Claude's functionality through organized folders containing instructions, scripts, and resources.
6
+
7
+ ## Prerequisites
8
+
9
+ * Claude Code version 1.0 or later
10
+ * Basic familiarity with [Claude Code](/en/docs/claude-code/quickstart)
11
+
12
+ ## What are Agent Skills?
13
+
14
+ Agent Skills package expertise into discoverable capabilities. Each Skill consists of a `SKILL.md` file with instructions that Claude reads when relevant, plus optional supporting files like scripts and templates.
15
+
16
+ **How Skills are invoked**: Skills are **model-invoked**—Claude autonomously decides when to use them based on your request and the Skill's description. This is different from slash commands, which are **user-invoked** (you explicitly type `/command` to trigger them).
17
+
18
+ **Benefits**:
19
+
20
+ * Extend Claude's capabilities for your specific workflows
21
+ * Share expertise across your team via git
22
+ * Reduce repetitive prompting
23
+ * Compose multiple Skills for complex tasks
24
+
25
+ Learn more in the [Agent Skills overview](/en/docs/agents-and-tools/agent-skills/overview).
26
+
27
+ <Note>
28
+ For a deep dive into the architecture and real-world applications of Agent Skills, read our engineering blog: [Equipping agents for the real world with Agent Skills](https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills).
29
+ </Note>
30
+
31
+ ## Create a Skill
32
+
33
+ Skills are stored as directories containing a `SKILL.md` file.
34
+
35
+ ### Personal Skills
36
+
37
+ Personal Skills are available across all your projects. Store them in `~/.claude/skills/`:
38
+
39
+ ```bash theme={null}
40
+ mkdir -p ~/.claude/skills/my-skill-name
41
+ ```
42
+
43
+ **Use personal Skills for**:
44
+
45
+ * Your individual workflows and preferences
46
+ * Experimental Skills you're developing
47
+ * Personal productivity tools
48
+
49
+ ### Project Skills
50
+
51
+ Project Skills are shared with your team. Store them in `.claude/skills/` within your project:
52
+
53
+ ```bash theme={null}
54
+ mkdir -p .claude/skills/my-skill-name
55
+ ```
56
+
57
+ **Use project Skills for**:
58
+
59
+ * Team workflows and conventions
60
+ * Project-specific expertise
61
+ * Shared utilities and scripts
62
+
63
+ Project Skills are checked into git and automatically available to team members.
64
+
65
+ ### Plugin Skills
66
+
67
+ Skills can also come from [Claude Code plugins](/en/docs/claude-code/plugins). Plugins may bundle Skills that are automatically available when the plugin is installed. These Skills work the same way as personal and project Skills.
68
+
69
+ ## Write SKILL.md
70
+
71
+ Create a `SKILL.md` file with YAML frontmatter and Markdown content:
72
+
73
+ ```yaml theme={null}
74
+ ---
75
+ name: your-skill-name
76
+ description: Brief description of what this Skill does and when to use it
77
+ ---
78
+
79
+ # Your Skill Name
80
+
81
+ ## Instructions
82
+ Provide clear, step-by-step guidance for Claude.
83
+
84
+ ## Examples
85
+ Show concrete examples of using this Skill.
86
+ ```
87
+
88
+ **Field requirements**:
89
+
90
+ * `name`: Must use lowercase letters, numbers, and hyphens only (max 64 characters)
91
+ * `description`: Brief description of what the Skill does and when to use it (max 1024 characters)
92
+
93
+ The `description` field is critical for Claude to discover when to use your Skill. It should include both what the Skill does and when Claude should use it.
94
+
95
+ See the [best practices guide](/en/docs/agents-and-tools/agent-skills/best-practices) for complete authoring guidance including validation rules.
96
+
97
+ ## Add supporting files
98
+
99
+ Create additional files alongside SKILL.md:
100
+
101
+ ```
102
+ my-skill/
103
+ ├── SKILL.md (required)
104
+ ├── reference.md (optional documentation)
105
+ ├── examples.md (optional examples)
106
+ ├── scripts/
107
+ │ └── helper.py (optional utility)
108
+ └── templates/
109
+ └── template.txt (optional template)
110
+ ```
111
+
112
+ Reference these files from SKILL.md:
113
+
114
+ ````markdown theme={null}
115
+ For advanced usage, see [reference.md](reference.md).
116
+
117
+ Run the helper script:
118
+ ```bash
119
+ python scripts/helper.py input.txt
120
+ ```
121
+ ````
122
+
123
+ Claude reads these files only when needed, using progressive disclosure to manage context efficiently.
124
+
125
+ ## Restrict tool access with allowed-tools
126
+
127
+ Use the `allowed-tools` frontmatter field to limit which tools Claude can use when a Skill is active:
128
+
129
+ ```yaml theme={null}
130
+ ---
131
+ name: safe-file-reader
132
+ description: Read files without making changes. Use when you need read-only file access.
133
+ allowed-tools: Read, Grep, Glob
134
+ ---
135
+
136
+ # Safe File Reader
137
+
138
+ This Skill provides read-only file access.
139
+
140
+ ## Instructions
141
+ 1. Use Read to view file contents
142
+ 2. Use Grep to search within files
143
+ 3. Use Glob to find files by pattern
144
+ ```
145
+
146
+ When this Skill is active, Claude can only use the specified tools (Read, Grep, Glob) without needing to ask for permission. This is useful for:
147
+
148
+ * Read-only Skills that shouldn't modify files
149
+ * Skills with limited scope (e.g., only data analysis, no file writing)
150
+ * Security-sensitive workflows where you want to restrict capabilities
151
+
152
+ If `allowed-tools` is not specified, Claude will ask for permission to use tools as normal, following the standard permission model.
153
+
154
+ <Note>
155
+ `allowed-tools` is only supported for Skills in Claude Code.
156
+ </Note>
157
+
158
+ ## View available Skills
159
+
160
+ Skills are automatically discovered by Claude from three sources:
161
+
162
+ * Personal Skills: `~/.claude/skills/`
163
+ * Project Skills: `.claude/skills/`
164
+ * Plugin Skills: bundled with installed plugins
165
+
166
+ **To view all available Skills**, ask Claude directly:
167
+
168
+ ```
169
+ What Skills are available?
170
+ ```
171
+
172
+ or
173
+
174
+ ```
175
+ List all available Skills
176
+ ```
177
+
178
+ This will show all Skills from all sources, including plugin Skills.
179
+
180
+ **To inspect a specific Skill**, you can also check the filesystem:
181
+
182
+ ```bash theme={null}
183
+ # List personal Skills
184
+ ls ~/.claude/skills/
185
+
186
+ # List project Skills (if in a project directory)
187
+ ls .claude/skills/
188
+
189
+ # View a specific Skill's content
190
+ cat ~/.claude/skills/my-skill/SKILL.md
191
+ ```
192
+
193
+ ## Test a Skill
194
+
195
+ After creating a Skill, test it by asking questions that match your description.
196
+
197
+ **Example**: If your description mentions "PDF files":
198
+
199
+ ```
200
+ Can you help me extract text from this PDF?
201
+ ```
202
+
203
+ Claude autonomously decides to use your Skill if it matches the request—you don't need to explicitly invoke it. The Skill activates automatically based on the context of your question.
204
+
205
+ ## Debug a Skill
206
+
207
+ If Claude doesn't use your Skill, check these common issues:
208
+
209
+ ### Make description specific
210
+
211
+ **Too vague**:
212
+
213
+ ```yaml theme={null}
214
+ description: Helps with documents
215
+ ```
216
+
217
+ **Specific**:
218
+
219
+ ```yaml theme={null}
220
+ 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.
221
+ ```
222
+
223
+ Include both what the Skill does and when to use it in the description.
224
+
225
+ ### Verify file path
226
+
227
+ **Personal Skills**: `~/.claude/skills/skill-name/SKILL.md`
228
+ **Project Skills**: `.claude/skills/skill-name/SKILL.md`
229
+
230
+ Check the file exists:
231
+
232
+ ```bash theme={null}
233
+ # Personal
234
+ ls ~/.claude/skills/my-skill/SKILL.md
235
+
236
+ # Project
237
+ ls .claude/skills/my-skill/SKILL.md
238
+ ```
239
+
240
+ ### Check YAML syntax
241
+
242
+ Invalid YAML prevents the Skill from loading. Verify the frontmatter:
243
+
244
+ ```bash theme={null}
245
+ cat SKILL.md | head -n 10
246
+ ```
247
+
248
+ Ensure:
249
+
250
+ * Opening `---` on line 1
251
+ * Closing `---` before Markdown content
252
+ * Valid YAML syntax (no tabs, correct indentation)
253
+
254
+ ### View errors
255
+
256
+ Run Claude Code with debug mode to see Skill loading errors:
257
+
258
+ ```bash theme={null}
259
+ claude --debug
260
+ ```
261
+
262
+ ## Share Skills with your team
263
+
264
+ **Recommended approach**: Distribute Skills through [plugins](/en/docs/claude-code/plugins).
265
+
266
+ To share Skills via plugin:
267
+
268
+ 1. Create a plugin with Skills in the `skills/` directory
269
+ 2. Add the plugin to a marketplace
270
+ 3. Team members install the plugin
271
+
272
+ For complete instructions, see [Add Skills to your plugin](/en/docs/claude-code/plugins#add-skills-to-your-plugin).
273
+
274
+ You can also share Skills directly through project repositories:
275
+
276
+ ### Step 1: Add Skill to your project
277
+
278
+ Create a project Skill:
279
+
280
+ ```bash theme={null}
281
+ mkdir -p .claude/skills/team-skill
282
+ # Create SKILL.md
283
+ ```
284
+
285
+ ### Step 2: Commit to git
286
+
287
+ ```bash theme={null}
288
+ git add .claude/skills/
289
+ git commit -m "Add team Skill for PDF processing"
290
+ git push
291
+ ```
292
+
293
+ ### Step 3: Team members get Skills automatically
294
+
295
+ When team members pull the latest changes, Skills are immediately available:
296
+
297
+ ```bash theme={null}
298
+ git pull
299
+ claude # Skills are now available
300
+ ```
301
+
302
+ ## Update a Skill
303
+
304
+ Edit SKILL.md directly:
305
+
306
+ ```bash theme={null}
307
+ # Personal Skill
308
+ code ~/.claude/skills/my-skill/SKILL.md
309
+
310
+ # Project Skill
311
+ code .claude/skills/my-skill/SKILL.md
312
+ ```
313
+
314
+ Changes take effect the next time you start Claude Code. If Claude Code is already running, restart it to load the updates.
315
+
316
+ ## Remove a Skill
317
+
318
+ Delete the Skill directory:
319
+
320
+ ```bash theme={null}
321
+ # Personal
322
+ rm -rf ~/.claude/skills/my-skill
323
+
324
+ # Project
325
+ rm -rf .claude/skills/my-skill
326
+ git commit -m "Remove unused Skill"
327
+ ```
328
+
329
+ ## Best practices
330
+
331
+ ### Keep Skills focused
332
+
333
+ One Skill should address one capability:
334
+
335
+ **Focused**:
336
+
337
+ * "PDF form filling"
338
+ * "Excel data analysis"
339
+ * "Git commit messages"
340
+
341
+ **Too broad**:
342
+
343
+ * "Document processing" (split into separate Skills)
344
+ * "Data tools" (split by data type or operation)
345
+
346
+ ### Write clear descriptions
347
+
348
+ Help Claude discover when to use Skills by including specific triggers in your description:
349
+
350
+ **Clear**:
351
+
352
+ ```yaml theme={null}
353
+ description: Analyze Excel spreadsheets, create pivot tables, and generate charts. Use when working with Excel files, spreadsheets, or analyzing tabular data in .xlsx format.
354
+ ```
355
+
356
+ **Vague**:
357
+
358
+ ```yaml theme={null}
359
+ description: For files
360
+ ```
361
+
362
+ ### Test with your team
363
+
364
+ Have teammates use Skills and provide feedback:
365
+
366
+ * Does the Skill activate when expected?
367
+ * Are the instructions clear?
368
+ * Are there missing examples or edge cases?
369
+
370
+ ### Document Skill versions
371
+
372
+ You can document Skill versions in your SKILL.md content to track changes over time. Add a version history section:
373
+
374
+ ```markdown theme={null}
375
+ # My Skill
376
+
377
+ ## Version History
378
+ - v2.0.0 (2025-10-01): Breaking changes to API
379
+ - v1.1.0 (2025-09-15): Added new features
380
+ - v1.0.0 (2025-09-01): Initial release
381
+ ```
382
+
383
+ This helps team members understand what changed between versions.
384
+
385
+ ## Troubleshooting
386
+
387
+ ### Claude doesn't use my Skill
388
+
389
+ **Symptom**: You ask a relevant question but Claude doesn't use your Skill.
390
+
391
+ **Check**: Is the description specific enough?
392
+
393
+ Vague descriptions make discovery difficult. Include both what the Skill does and when to use it, with key terms users would mention.
394
+
395
+ **Too generic**:
396
+
397
+ ```yaml theme={null}
398
+ description: Helps with data
399
+ ```
400
+
401
+ **Specific**:
402
+
403
+ ```yaml theme={null}
404
+ description: Analyze Excel spreadsheets, generate pivot tables, create charts. Use when working with Excel files, spreadsheets, or .xlsx files.
405
+ ```
406
+
407
+ **Check**: Is the YAML valid?
408
+
409
+ Run validation to check for syntax errors:
410
+
411
+ ```bash theme={null}
412
+ # View frontmatter
413
+ cat .claude/skills/my-skill/SKILL.md | head -n 15
414
+
415
+ # Check for common issues
416
+ # - Missing opening or closing ---
417
+ # - Tabs instead of spaces
418
+ # - Unquoted strings with special characters
419
+ ```
420
+
421
+ **Check**: Is the Skill in the correct location?
422
+
423
+ ```bash theme={null}
424
+ # Personal Skills
425
+ ls ~/.claude/skills/*/SKILL.md
426
+
427
+ # Project Skills
428
+ ls .claude/skills/*/SKILL.md
429
+ ```
430
+
431
+ ### Skill has errors
432
+
433
+ **Symptom**: The Skill loads but doesn't work correctly.
434
+
435
+ **Check**: Are dependencies available?
436
+
437
+ Claude will automatically install required dependencies (or ask for permission to install them) when it needs them.
438
+
439
+ **Check**: Do scripts have execute permissions?
440
+
441
+ ```bash theme={null}
442
+ chmod +x .claude/skills/my-skill/scripts/*.py
443
+ ```
444
+
445
+ **Check**: Are file paths correct?
446
+
447
+ Use forward slashes (Unix style) in all paths:
448
+
449
+ **Correct**: `scripts/helper.py`
450
+ **Wrong**: `scripts\helper.py` (Windows style)
451
+
452
+ ### Multiple Skills conflict
453
+
454
+ **Symptom**: Claude uses the wrong Skill or seems confused between similar Skills.
455
+
456
+ **Be specific in descriptions**: Help Claude choose the right Skill by using distinct trigger terms in your descriptions.
457
+
458
+ Instead of:
459
+
460
+ ```yaml theme={null}
461
+ # Skill 1
462
+ description: For data analysis
463
+
464
+ # Skill 2
465
+ description: For analyzing data
466
+ ```
467
+
468
+ Use:
469
+
470
+ ```yaml theme={null}
471
+ # Skill 1
472
+ description: Analyze sales data in Excel files and CRM exports. Use for sales reports, pipeline analysis, and revenue tracking.
473
+
474
+ # Skill 2
475
+ description: Analyze log files and system metrics data. Use for performance monitoring, debugging, and system diagnostics.
476
+ ```
477
+
478
+ ## Examples
479
+
480
+ ### Simple Skill (single file)
481
+
482
+ ```
483
+ commit-helper/
484
+ └── SKILL.md
485
+ ```
486
+
487
+ ```yaml theme={null}
488
+ ---
489
+ name: generating-commit-messages
490
+ description: Generates clear commit messages from git diffs. Use when writing commit messages or reviewing staged changes.
491
+ ---
492
+
493
+ # Generating Commit Messages
494
+
495
+ ## Instructions
496
+
497
+ 1. Run `git diff --staged` to see changes
498
+ 2. I'll suggest a commit message with:
499
+ - Summary under 50 characters
500
+ - Detailed description
501
+ - Affected components
502
+
503
+ ## Best practices
504
+
505
+ - Use present tense
506
+ - Explain what and why, not how
507
+ ```
508
+
509
+ ### Skill with tool permissions
510
+
511
+ ```
512
+ code-reviewer/
513
+ └── SKILL.md
514
+ ```
515
+
516
+ ```yaml theme={null}
517
+ ---
518
+ name: code-reviewer
519
+ description: Review code for best practices and potential issues. Use when reviewing code, checking PRs, or analyzing code quality.
520
+ allowed-tools: Read, Grep, Glob
521
+ ---
522
+
523
+ # Code Reviewer
524
+
525
+ ## Review checklist
526
+
527
+ 1. Code organization and structure
528
+ 2. Error handling
529
+ 3. Performance considerations
530
+ 4. Security concerns
531
+ 5. Test coverage
532
+
533
+ ## Instructions
534
+
535
+ 1. Read the target files using Read tool
536
+ 2. Search for patterns using Grep
537
+ 3. Find related files using Glob
538
+ 4. Provide detailed feedback on code quality
539
+ ```
540
+
541
+ ### Multi-file Skill
542
+
543
+ ```
544
+ pdf-processing/
545
+ ├── SKILL.md
546
+ ├── FORMS.md
547
+ ├── REFERENCE.md
548
+ └── scripts/
549
+ ├── fill_form.py
550
+ └── validate.py
551
+ ```
552
+
553
+ **SKILL.md**:
554
+
555
+ ````yaml theme={null}
556
+ ---
557
+ name: pdf-processing
558
+ description: Extract text, fill forms, merge PDFs. Use when working with PDF files, forms, or document extraction. Requires pypdf and pdfplumber packages.
559
+ ---
560
+
561
+ # PDF Processing
562
+
563
+ ## Quick start
564
+
565
+ Extract text:
566
+ ```python
567
+ import pdfplumber
568
+ with pdfplumber.open("doc.pdf") as pdf:
569
+ text = pdf.pages[0].extract_text()
570
+ ```
571
+
572
+ For form filling, see [FORMS.md](FORMS.md).
573
+ For detailed API reference, see [REFERENCE.md](REFERENCE.md).
574
+
575
+ ## Requirements
576
+
577
+ Packages must be installed in your environment:
578
+ ```bash
579
+ pip install pypdf pdfplumber
580
+ ```
581
+ ````
582
+
583
+ <Note>
584
+ List required packages in the description. Packages must be installed in your environment before Claude can use them.
585
+ </Note>
586
+
587
+ Claude loads additional files only when needed.
588
+
589
+ ## Next steps
590
+
591
+ <CardGroup cols={2}>
592
+ <Card title="Authoring best practices" icon="lightbulb" href="/en/docs/agents-and-tools/agent-skills/best-practices">
593
+ Write Skills that Claude can use effectively
594
+ </Card>
595
+
596
+ <Card title="Agent Skills overview" icon="book" href="/en/docs/agents-and-tools/agent-skills/overview">
597
+ Learn how Skills work across Claude products
598
+ </Card>
599
+
600
+ <Card title="Use Skills in the Agent SDK" icon="cube" href="/en/api/agent-sdk/skills">
601
+ Use Skills programmatically with TypeScript and Python
602
+ </Card>
603
+
604
+ <Card title="Get started with Agent Skills" icon="rocket" href="/en/docs/agents-and-tools/agent-skills/quickstart">
605
+ Create your first Skill
606
+ </Card>
607
+ </CardGroup>