ag-cortex 0.1.0

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 (162) hide show
  1. package/.agent/commands/test-browser.md +339 -0
  2. package/.agent/rules/00-constitution.md +46 -0
  3. package/.agent/rules/project-rules.md +49 -0
  4. package/.agent/skills/agent-browser/SKILL.md +223 -0
  5. package/.agent/skills/agent-native-architecture/SKILL.md +435 -0
  6. package/.agent/skills/agent-native-architecture/references/action-parity-discipline.md +409 -0
  7. package/.agent/skills/agent-native-architecture/references/agent-execution-patterns.md +467 -0
  8. package/.agent/skills/agent-native-architecture/references/agent-native-testing.md +582 -0
  9. package/.agent/skills/agent-native-architecture/references/architecture-patterns.md +478 -0
  10. package/.agent/skills/agent-native-architecture/references/dynamic-context-injection.md +338 -0
  11. package/.agent/skills/agent-native-architecture/references/files-universal-interface.md +301 -0
  12. package/.agent/skills/agent-native-architecture/references/from-primitives-to-domain-tools.md +359 -0
  13. package/.agent/skills/agent-native-architecture/references/mcp-tool-design.md +506 -0
  14. package/.agent/skills/agent-native-architecture/references/mobile-patterns.md +871 -0
  15. package/.agent/skills/agent-native-architecture/references/product-implications.md +443 -0
  16. package/.agent/skills/agent-native-architecture/references/refactoring-to-prompt-native.md +317 -0
  17. package/.agent/skills/agent-native-architecture/references/self-modification.md +269 -0
  18. package/.agent/skills/agent-native-architecture/references/shared-workspace-architecture.md +680 -0
  19. package/.agent/skills/agent-native-architecture/references/system-prompt-design.md +250 -0
  20. package/.agent/skills/agent-native-reviewer/SKILL.md +246 -0
  21. package/.agent/skills/andrew-kane-gem-writer/SKILL.md +184 -0
  22. package/.agent/skills/andrew-kane-gem-writer/references/database-adapters.md +231 -0
  23. package/.agent/skills/andrew-kane-gem-writer/references/module-organization.md +121 -0
  24. package/.agent/skills/andrew-kane-gem-writer/references/rails-integration.md +183 -0
  25. package/.agent/skills/andrew-kane-gem-writer/references/resources.md +119 -0
  26. package/.agent/skills/andrew-kane-gem-writer/references/testing-patterns.md +261 -0
  27. package/.agent/skills/ankane-readme-writer/SKILL.md +50 -0
  28. package/.agent/skills/architecture-strategist/SKILL.md +52 -0
  29. package/.agent/skills/best-practices-researcher/SKILL.md +100 -0
  30. package/.agent/skills/bug-reproduction-validator/SKILL.md +67 -0
  31. package/.agent/skills/code-simplicity-reviewer/SKILL.md +85 -0
  32. package/.agent/skills/coding-tutor/.claude-plugin/plugin.json +9 -0
  33. package/.agent/skills/coding-tutor/README.md +37 -0
  34. package/.agent/skills/coding-tutor/commands/quiz-me.md +1 -0
  35. package/.agent/skills/coding-tutor/commands/sync-tutorials.md +25 -0
  36. package/.agent/skills/coding-tutor/commands/teach-me.md +1 -0
  37. package/.agent/skills/coding-tutor/skills/coding-tutor/SKILL.md +214 -0
  38. package/.agent/skills/coding-tutor/skills/coding-tutor/scripts/create_tutorial.py +202 -0
  39. package/.agent/skills/coding-tutor/skills/coding-tutor/scripts/index_tutorials.py +203 -0
  40. package/.agent/skills/coding-tutor/skills/coding-tutor/scripts/quiz_priority.py +190 -0
  41. package/.agent/skills/coding-tutor/skills/coding-tutor/scripts/setup_tutorials.py +132 -0
  42. package/.agent/skills/compound-docs/SKILL.md +510 -0
  43. package/.agent/skills/compound-docs/assets/critical-pattern-template.md +34 -0
  44. package/.agent/skills/compound-docs/assets/resolution-template.md +93 -0
  45. package/.agent/skills/compound-docs/references/yaml-schema.md +65 -0
  46. package/.agent/skills/compound-docs/schema.yaml +176 -0
  47. package/.agent/skills/create-agent-skills/SKILL.md +299 -0
  48. package/.agent/skills/create-agent-skills/references/api-security.md +226 -0
  49. package/.agent/skills/create-agent-skills/references/be-clear-and-direct.md +531 -0
  50. package/.agent/skills/create-agent-skills/references/best-practices.md +404 -0
  51. package/.agent/skills/create-agent-skills/references/common-patterns.md +595 -0
  52. package/.agent/skills/create-agent-skills/references/core-principles.md +437 -0
  53. package/.agent/skills/create-agent-skills/references/executable-code.md +175 -0
  54. package/.agent/skills/create-agent-skills/references/iteration-and-testing.md +474 -0
  55. package/.agent/skills/create-agent-skills/references/official-spec.md +185 -0
  56. package/.agent/skills/create-agent-skills/references/recommended-structure.md +168 -0
  57. package/.agent/skills/create-agent-skills/references/skill-structure.md +372 -0
  58. package/.agent/skills/create-agent-skills/references/using-scripts.md +113 -0
  59. package/.agent/skills/create-agent-skills/references/using-templates.md +112 -0
  60. package/.agent/skills/create-agent-skills/references/workflows-and-validation.md +510 -0
  61. package/.agent/skills/create-agent-skills/templates/router-skill.md +73 -0
  62. package/.agent/skills/create-agent-skills/templates/simple-skill.md +33 -0
  63. package/.agent/skills/create-agent-skills/workflows/add-reference.md +96 -0
  64. package/.agent/skills/create-agent-skills/workflows/add-script.md +93 -0
  65. package/.agent/skills/create-agent-skills/workflows/add-template.md +74 -0
  66. package/.agent/skills/create-agent-skills/workflows/add-workflow.md +120 -0
  67. package/.agent/skills/create-agent-skills/workflows/audit-skill.md +138 -0
  68. package/.agent/skills/create-agent-skills/workflows/create-domain-expertise-skill.md +605 -0
  69. package/.agent/skills/create-agent-skills/workflows/create-new-skill.md +191 -0
  70. package/.agent/skills/create-agent-skills/workflows/get-guidance.md +121 -0
  71. package/.agent/skills/create-agent-skills/workflows/upgrade-to-router.md +161 -0
  72. package/.agent/skills/create-agent-skills/workflows/verify-skill.md +204 -0
  73. package/.agent/skills/data-integrity-guardian/SKILL.md +70 -0
  74. package/.agent/skills/data-migration-expert/SKILL.md +97 -0
  75. package/.agent/skills/deployment-verification-agent/SKILL.md +159 -0
  76. package/.agent/skills/design-implementation-reviewer/SKILL.md +85 -0
  77. package/.agent/skills/design-iterator/SKILL.md +197 -0
  78. package/.agent/skills/dhh-rails-reviewer/SKILL.md +45 -0
  79. package/.agent/skills/dhh-rails-style/SKILL.md +184 -0
  80. package/.agent/skills/dhh-rails-style/references/architecture.md +653 -0
  81. package/.agent/skills/dhh-rails-style/references/controllers.md +303 -0
  82. package/.agent/skills/dhh-rails-style/references/frontend.md +510 -0
  83. package/.agent/skills/dhh-rails-style/references/gems.md +266 -0
  84. package/.agent/skills/dhh-rails-style/references/models.md +359 -0
  85. package/.agent/skills/dhh-rails-style/references/testing.md +338 -0
  86. package/.agent/skills/dspy-ruby/SKILL.md +594 -0
  87. package/.agent/skills/dspy-ruby/assets/config-template.rb +359 -0
  88. package/.agent/skills/dspy-ruby/assets/module-template.rb +326 -0
  89. package/.agent/skills/dspy-ruby/assets/signature-template.rb +143 -0
  90. package/.agent/skills/dspy-ruby/references/core-concepts.md +265 -0
  91. package/.agent/skills/dspy-ruby/references/optimization.md +623 -0
  92. package/.agent/skills/dspy-ruby/references/providers.md +305 -0
  93. package/.agent/skills/every-style-editor/SKILL.md +134 -0
  94. package/.agent/skills/every-style-editor/references/EVERY_WRITE_STYLE.md +529 -0
  95. package/.agent/skills/figma-design-sync/SKILL.md +166 -0
  96. package/.agent/skills/file-todos/SKILL.md +251 -0
  97. package/.agent/skills/file-todos/assets/todo-template.md +155 -0
  98. package/.agent/skills/framework-docs-researcher/SKILL.md +83 -0
  99. package/.agent/skills/frontend-design/SKILL.md +42 -0
  100. package/.agent/skills/gemini-imagegen/SKILL.md +237 -0
  101. package/.agent/skills/gemini-imagegen/requirements.txt +2 -0
  102. package/.agent/skills/gemini-imagegen/scripts/compose_images.py +168 -0
  103. package/.agent/skills/gemini-imagegen/scripts/edit_image.py +157 -0
  104. package/.agent/skills/gemini-imagegen/scripts/gemini_images.py +265 -0
  105. package/.agent/skills/gemini-imagegen/scripts/generate_image.py +147 -0
  106. package/.agent/skills/gemini-imagegen/scripts/multi_turn_chat.py +215 -0
  107. package/.agent/skills/git-history-analyzer/SKILL.md +42 -0
  108. package/.agent/skills/git-worktree/SKILL.md +302 -0
  109. package/.agent/skills/git-worktree/scripts/worktree-manager.sh +345 -0
  110. package/.agent/skills/julik-frontend-races-reviewer/SKILL.md +222 -0
  111. package/.agent/skills/kieran-python-reviewer/SKILL.md +104 -0
  112. package/.agent/skills/kieran-rails-reviewer/SKILL.md +86 -0
  113. package/.agent/skills/kieran-typescript-reviewer/SKILL.md +95 -0
  114. package/.agent/skills/lint/SKILL.md +16 -0
  115. package/.agent/skills/pattern-recognition-specialist/SKILL.md +57 -0
  116. package/.agent/skills/performance-oracle/SKILL.md +110 -0
  117. package/.agent/skills/pr-comment-resolver/SKILL.md +69 -0
  118. package/.agent/skills/rclone/SKILL.md +150 -0
  119. package/.agent/skills/rclone/scripts/check_setup.sh +60 -0
  120. package/.agent/skills/repo-research-analyst/SKILL.md +113 -0
  121. package/.agent/skills/security-sentinel/SKILL.md +93 -0
  122. package/.agent/skills/skill-creator/SKILL.md +209 -0
  123. package/.agent/skills/skill-creator/scripts/init_skill.py +304 -0
  124. package/.agent/skills/skill-creator/scripts/package_skill.py +112 -0
  125. package/.agent/skills/skill-creator/scripts/quick_validate.py +72 -0
  126. package/.agent/skills/spec-flow-analyzer/SKILL.md +113 -0
  127. package/.agent/skills/test-agent/SKILL.md +4 -0
  128. package/.agent/workflows/agent-native-audit.md +277 -0
  129. package/.agent/workflows/ask-user-question.md +21 -0
  130. package/.agent/workflows/changelog.md +137 -0
  131. package/.agent/workflows/compound.md +202 -0
  132. package/.agent/workflows/create-agent-skill.md +8 -0
  133. package/.agent/workflows/deepen-plan-research.md +334 -0
  134. package/.agent/workflows/deepen-plan-synthesis.md +182 -0
  135. package/.agent/workflows/deepen-plan.md +79 -0
  136. package/.agent/workflows/feature-video.md +342 -0
  137. package/.agent/workflows/generate-command.md +162 -0
  138. package/.agent/workflows/heal-skill.md +142 -0
  139. package/.agent/workflows/lfg.md +20 -0
  140. package/.agent/workflows/plan-analysis.md +67 -0
  141. package/.agent/workflows/plan-next-steps.md +63 -0
  142. package/.agent/workflows/plan-review.md +33 -0
  143. package/.agent/workflows/plan-synthesis.md +106 -0
  144. package/.agent/workflows/plan.md +49 -0
  145. package/.agent/workflows/report-bug.md +150 -0
  146. package/.agent/workflows/reproduce-bug.md +99 -0
  147. package/.agent/workflows/resolve-parallel.md +34 -0
  148. package/.agent/workflows/resolve-pr-parallel.md +49 -0
  149. package/.agent/workflows/resolve-todo-parallel.md +35 -0
  150. package/.agent/workflows/review-analysis.md +145 -0
  151. package/.agent/workflows/review-synthesis.md +262 -0
  152. package/.agent/workflows/review.md +64 -0
  153. package/.agent/workflows/ship.md +90 -0
  154. package/.agent/workflows/test-command.md +3 -0
  155. package/.agent/workflows/triage.md +310 -0
  156. package/.agent/workflows/work.md +157 -0
  157. package/.agent/workflows/xcode-test.md +332 -0
  158. package/LICENSE +22 -0
  159. package/README.md +49 -0
  160. package/bin/ag-cortex.js +54 -0
  161. package/lib/core.js +165 -0
  162. package/package.json +31 -0
@@ -0,0 +1,404 @@
1
+ # Skill Authoring Best Practices
2
+
3
+ Source: [platform.agent.com/docs/en/agents-and-tools/agent-skills/best-practices](https://platform.agent.com/docs/en/agents-and-tools/agent-skills/best-practices)
4
+
5
+ ## Core Principles
6
+
7
+ ### Concise is Key
8
+
9
+ The context window is a public good. Your Skill shares the context window with everything else Antigravity needs to know.
10
+
11
+ **Default assumption**: Antigravity is already very smart. Only add context Antigravity doesn't already have.
12
+
13
+ Challenge each piece of information:
14
+ - "Does Antigravity really need this explanation?"
15
+ - "Can I assume Antigravity knows this?"
16
+ - "Does this paragraph justify its token cost?"
17
+
18
+ **Good example (concise, ~50 tokens):**
19
+ ```markdown
20
+ ## Extract PDF text
21
+
22
+ Use pdfplumber for text extraction:
23
+
24
+ ```python
25
+ import pdfplumber
26
+ with pdfplumber.open("file.pdf") as pdf:
27
+ text = pdf.pages[0].extract_text()
28
+ ```
29
+ ```
30
+
31
+ **Bad example (too verbose, ~150 tokens):**
32
+ ```markdown
33
+ ## Extract PDF text
34
+
35
+ PDF (Portable Document Format) files are a common file format that contains
36
+ text, images, and other content. To extract text from a PDF, you'll need to
37
+ use a library. There are many libraries available...
38
+ ```
39
+
40
+ ### Set Appropriate Degrees of Freedom
41
+
42
+ Match specificity to task fragility and variability.
43
+
44
+ **High freedom** (multiple valid approaches):
45
+ ```markdown
46
+ ## Code review process
47
+
48
+ 1. Analyze the code structure and organization
49
+ 2. Check for potential bugs or edge cases
50
+ 3. Suggest improvements for readability
51
+ 4. Verify adherence to project conventions
52
+ ```
53
+
54
+ **Medium freedom** (preferred pattern with variation):
55
+ ```markdown
56
+ ## Generate report
57
+
58
+ Use this template and customize as needed:
59
+
60
+ ```python
61
+ def generate_report(data, format="markdown"):
62
+ # Process data
63
+ # Generate output in specified format
64
+ ```
65
+ ```
66
+
67
+ **Low freedom** (fragile, exact sequence required):
68
+ ```markdown
69
+ ## Database migration
70
+
71
+ Run exactly this script:
72
+
73
+ ```bash
74
+ python scripts/migrate.py --verify --backup
75
+ ```
76
+
77
+ Do not modify the command or add flags.
78
+ ```
79
+
80
+ ### Test With All Models
81
+
82
+ Skills act as additions to models. Test with Haiku, Sonnet, and Opus.
83
+
84
+ - **Haiku**: Does the Skill provide enough guidance?
85
+ - **Sonnet**: Is the Skill clear and efficient?
86
+ - **Opus**: Does the Skill avoid over-explaining?
87
+
88
+ ## Naming Conventions
89
+
90
+ Use **gerund form** (verb + -ing) for Skill names:
91
+
92
+ **Good:**
93
+ - `processing-pdfs`
94
+ - `analyzing-spreadsheets`
95
+ - `managing-databases`
96
+ - `testing-code`
97
+ - `writing-documentation`
98
+
99
+ **Acceptable alternatives:**
100
+ - Noun phrases: `pdf-processing`, `spreadsheet-analysis`
101
+ - Action-oriented: `process-pdfs`, `analyze-spreadsheets`
102
+
103
+ **Avoid:**
104
+ - Vague: `helper`, `utils`, `tools`
105
+ - Generic: `documents`, `data`, `files`
106
+ - Reserved: `antigravity-*`, `agent-*`
107
+
108
+ ## Writing Effective Descriptions
109
+
110
+ **Always write in third person.** The description is injected into the system prompt.
111
+
112
+ **Be specific and include key terms:**
113
+
114
+ ```yaml
115
+ # PDF Processing skill
116
+ 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.
117
+
118
+ # Excel Analysis skill
119
+ description: Analyze Excel spreadsheets, create pivot tables, generate charts. Use when analyzing Excel files, spreadsheets, tabular data, or .xlsx files.
120
+
121
+ # Git Commit Helper skill
122
+ description: Generate descriptive commit messages by analyzing git diffs. Use when the user asks for help writing commit messages or reviewing staged changes.
123
+ ```
124
+
125
+ **Avoid vague descriptions:**
126
+ ```yaml
127
+ description: Helps with documents # Too vague!
128
+ description: Processes data # Too generic!
129
+ description: Does stuff with files # Useless!
130
+ ```
131
+
132
+ ## Progressive Disclosure Patterns
133
+
134
+ ### Pattern 1: High-level guide with references
135
+
136
+ ```markdown
137
+ ---
138
+ name: pdf-processing
139
+ description: Extracts text and tables from PDF files, fills forms, merges documents.
140
+ ---
141
+
142
+ # PDF Processing
143
+
144
+ ## Quick start
145
+
146
+ ```python
147
+ import pdfplumber
148
+ with pdfplumber.open("file.pdf") as pdf:
149
+ text = pdf.pages[0].extract_text()
150
+ ```
151
+
152
+ ## Advanced features
153
+
154
+ **Form filling**: See [FORMS.md](FORMS.md)
155
+ **API reference**: See [REFERENCE.md](REFERENCE.md)
156
+ **Examples**: See [EXAMPLES.md](EXAMPLES.md)
157
+ ```
158
+
159
+ ### Pattern 2: Domain-specific organization
160
+
161
+ ```
162
+ bigquery-skill/
163
+ ├── SKILL.md (overview and navigation)
164
+ └── reference/
165
+ ├── finance.md (revenue, billing)
166
+ ├── sales.md (opportunities, pipeline)
167
+ ├── product.md (API usage, features)
168
+ └── marketing.md (campaigns, attribution)
169
+ ```
170
+
171
+ ### Pattern 3: Conditional details
172
+
173
+ ```markdown
174
+ # DOCX Processing
175
+
176
+ ## Creating documents
177
+
178
+ Use docx-js for new documents. See [DOCX-JS.md](DOCX-JS.md).
179
+
180
+ ## Editing documents
181
+
182
+ For simple edits, modify the XML directly.
183
+
184
+ **For tracked changes**: See [REDLINING.md](REDLINING.md)
185
+ **For OOXML details**: See [OOXML.md](OOXML.md)
186
+ ```
187
+
188
+ ## Keep References One Level Deep
189
+
190
+ Antigravity may partially read files when they're referenced from other referenced files.
191
+
192
+ **Bad (too deep):**
193
+ ```markdown
194
+ # SKILL.md
195
+ See [advanced.md](advanced.md)...
196
+
197
+ # advanced.md
198
+ See [details.md](details.md)...
199
+
200
+ # details.md
201
+ Here's the actual information...
202
+ ```
203
+
204
+ **Good (one level deep):**
205
+ ```markdown
206
+ # SKILL.md
207
+
208
+ **Basic usage**: [in SKILL.md]
209
+ **Advanced features**: See [advanced.md](advanced.md)
210
+ **API reference**: See [reference.md](reference.md)
211
+ **Examples**: See [examples.md](examples.md)
212
+ ```
213
+
214
+ ## Workflows and Feedback Loops
215
+
216
+ ### Workflow with Checklist
217
+
218
+ ```markdown
219
+ ## Research synthesis workflow
220
+
221
+ Copy this checklist:
222
+
223
+ ```
224
+ - [ ] Step 1: Read all source documents
225
+ - [ ] Step 2: Identify key themes
226
+ - [ ] Step 3: Cross-reference claims
227
+ - [ ] Step 4: Create structured summary
228
+ - [ ] Step 5: Verify citations
229
+ ```
230
+
231
+ **Step 1: Read all source documents**
232
+
233
+ Review each document in `sources/`. Note main arguments.
234
+ ...
235
+ ```
236
+
237
+ ### Feedback Loop Pattern
238
+
239
+ ```markdown
240
+ ## Document editing process
241
+
242
+ 1. Make your edits to `word/document.xml`
243
+ 2. **Validate immediately**: `python scripts/validate.py unpacked_dir/`
244
+ 3. If validation fails:
245
+ - Review the error message
246
+ - Fix the issues
247
+ - Run validation again
248
+ 4. **Only proceed when validation passes**
249
+ 5. Rebuild: `python scripts/pack.py unpacked_dir/ output.docx`
250
+ ```
251
+
252
+ ## Common Patterns
253
+
254
+ ### Template Pattern
255
+
256
+ ```markdown
257
+ ## Report structure
258
+
259
+ Use this template:
260
+
261
+ ```markdown
262
+ # [Analysis Title]
263
+
264
+ ## Executive summary
265
+ [One-paragraph overview]
266
+
267
+ ## Key findings
268
+ - Finding 1 with supporting data
269
+ - Finding 2 with supporting data
270
+
271
+ ## Recommendations
272
+ 1. Specific actionable recommendation
273
+ 2. Specific actionable recommendation
274
+ ```
275
+ ```
276
+
277
+ ### Examples Pattern
278
+
279
+ ```markdown
280
+ ## Commit message format
281
+
282
+ **Example 1:**
283
+ Input: Added user authentication with JWT tokens
284
+ Output:
285
+ ```
286
+ feat(auth): implement JWT-based authentication
287
+
288
+ Add login endpoint and token validation middleware
289
+ ```
290
+
291
+ **Example 2:**
292
+ Input: Fixed bug where dates displayed incorrectly
293
+ Output:
294
+ ```
295
+ fix(reports): correct date formatting in timezone conversion
296
+ ```
297
+ ```
298
+
299
+ ### Conditional Workflow Pattern
300
+
301
+ ```markdown
302
+ ## Document modification
303
+
304
+ 1. Determine the modification type:
305
+
306
+ **Creating new content?** → Follow "Creation workflow"
307
+ **Editing existing?** → Follow "Editing workflow"
308
+
309
+ 2. Creation workflow:
310
+ - Use docx-js library
311
+ - Build document from scratch
312
+
313
+ 3. Editing workflow:
314
+ - Unpack existing document
315
+ - Modify XML directly
316
+ - Validate after each change
317
+ ```
318
+
319
+ ## Content Guidelines
320
+
321
+ ### Avoid Time-Sensitive Information
322
+
323
+ **Bad:**
324
+ ```markdown
325
+ If you're doing this before August 2025, use the old API.
326
+ ```
327
+
328
+ **Good:**
329
+ ```markdown
330
+ ## Current method
331
+
332
+ Use the v2 API endpoint: `api.example.com/v2/messages`
333
+
334
+ ## Old patterns
335
+
336
+ <details>
337
+ <summary>Legacy v1 API (deprecated 2025-08)</summary>
338
+ The v1 API used: `api.example.com/v1/messages`
339
+ </details>
340
+ ```
341
+
342
+ ### Use Consistent Terminology
343
+
344
+ **Good - Consistent:**
345
+ - Always "API endpoint"
346
+ - Always "field"
347
+ - Always "extract"
348
+
349
+ **Bad - Inconsistent:**
350
+ - Mix "API endpoint", "URL", "API route", "path"
351
+ - Mix "field", "box", "element", "control"
352
+
353
+ ## Anti-Patterns to Avoid
354
+
355
+ ### Windows-Style Paths
356
+
357
+ - **Good**: `scripts/helper.py`, `reference/guide.md`
358
+ - **Avoid**: `scripts\helper.py`, `reference\guide.md`
359
+
360
+ ### Too Many Options
361
+
362
+ **Bad:**
363
+ ```markdown
364
+ You can use pypdf, or pdfplumber, or PyMuPDF, or pdf2image, or...
365
+ ```
366
+
367
+ **Good:**
368
+ ```markdown
369
+ Use pdfplumber for text extraction:
370
+ ```python
371
+ import pdfplumber
372
+ ```
373
+
374
+ For scanned PDFs requiring OCR, use pdf2image with pytesseract instead.
375
+ ```
376
+
377
+ ## Checklist for Effective Skills
378
+
379
+ ### Core Quality
380
+ - [ ] Description is specific and includes key terms
381
+ - [ ] Description includes both what and when
382
+ - [ ] SKILL.md body under 500 lines
383
+ - [ ] Additional details in separate files
384
+ - [ ] No time-sensitive information
385
+ - [ ] Consistent terminology
386
+ - [ ] Examples are concrete
387
+ - [ ] References one level deep
388
+ - [ ] Progressive disclosure used appropriately
389
+ - [ ] Workflows have clear steps
390
+
391
+ ### Code and Scripts
392
+ - [ ] Scripts handle errors explicitly
393
+ - [ ] No "voodoo constants" (all values justified)
394
+ - [ ] Required packages listed
395
+ - [ ] Scripts have clear documentation
396
+ - [ ] No Windows-style paths
397
+ - [ ] Validation steps for critical operations
398
+ - [ ] Feedback loops for quality-critical tasks
399
+
400
+ ### Testing
401
+ - [ ] At least three test scenarios
402
+ - [ ] Tested with Haiku, Sonnet, and Opus
403
+ - [ ] Tested with real usage scenarios
404
+ - [ ] Team feedback incorporated