omgkit 2.3.0 → 2.4.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.
@@ -0,0 +1,490 @@
1
+ # OMGKIT Skill Standards v2.0
2
+
3
+ > Aligned with Claude Platform Official Best Practices
4
+ > Source: https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices
5
+
6
+ This document defines the quality standards for all OMGKIT skills based on Claude's official skill authoring guidelines.
7
+
8
+ ---
9
+
10
+ ## Core Principles
11
+
12
+ ### 1. Concise is Key
13
+
14
+ The context window is a public good. Your Skill shares it with:
15
+ - System prompt
16
+ - Conversation history
17
+ - Other Skills' metadata
18
+ - User's actual request
19
+
20
+ **Default assumption**: Claude is already very smart. Only add context Claude doesn't already have.
21
+
22
+ Challenge each piece of information:
23
+ - "Does Claude really need this explanation?"
24
+ - "Can I assume Claude knows this?"
25
+ - "Does this paragraph justify its token cost?"
26
+
27
+ ### 2. Progressive Disclosure
28
+
29
+ SKILL.md serves as an overview that points Claude to detailed materials as needed:
30
+ - Keep SKILL.md body **under 500 lines**
31
+ - Split content into separate files when approaching this limit
32
+ - Claude reads files only when needed
33
+
34
+ ### 3. Degrees of Freedom
35
+
36
+ Match specificity to task fragility:
37
+
38
+ | Freedom Level | When to Use | Example |
39
+ |---------------|-------------|---------|
40
+ | **High** (text instructions) | Multiple valid approaches | Code review guidelines |
41
+ | **Medium** (pseudocode/params) | Preferred pattern exists | Report templates |
42
+ | **Low** (specific scripts) | Operations are fragile | Database migrations |
43
+
44
+ ---
45
+
46
+ ## Frontmatter Requirements
47
+
48
+ ```yaml
49
+ ---
50
+ name: skill-name
51
+ description: Third-person description of what it does and when to use it
52
+ ---
53
+ ```
54
+
55
+ ### Name Rules
56
+ - Maximum **64 characters**
57
+ - Lowercase letters, numbers, hyphens only
58
+ - No XML tags, no reserved words ("anthropic", "claude")
59
+ - **Recommended**: Use gerund form (verb + -ing)
60
+
61
+ **Good names** (gerund form):
62
+ - `processing-pdfs`
63
+ - `analyzing-data`
64
+ - `managing-databases`
65
+ - `testing-code`
66
+
67
+ **Acceptable alternatives**:
68
+ - Noun phrases: `pdf-processing`, `data-analysis`
69
+ - Action-oriented: `process-pdfs`, `analyze-data`
70
+
71
+ **Avoid**:
72
+ - Vague: `helper`, `utils`, `tools`
73
+ - Generic: `documents`, `data`, `files`
74
+
75
+ ### Description Rules
76
+ - Maximum **1024 characters**
77
+ - **Must be third person** (not "I can" or "You can use")
78
+ - Include BOTH what it does AND when to use it
79
+ - Be specific, include key terms
80
+
81
+ **Good descriptions**:
82
+ ```yaml
83
+ # Good - specific and includes trigger context
84
+ description: Extracts text and tables from PDF files, fills forms, merges documents. Use when working with PDF files or when the user mentions PDFs, forms, or document extraction.
85
+
86
+ # Good - includes specific triggers
87
+ description: Generates descriptive commit messages by analyzing git diffs. Use when the user asks for help writing commit messages or reviewing staged changes.
88
+ ```
89
+
90
+ **Bad descriptions**:
91
+ ```yaml
92
+ description: Helps with documents # Too vague
93
+ description: Processes data # No trigger context
94
+ description: I can help you with PDFs # Wrong person
95
+ ```
96
+
97
+ ---
98
+
99
+ ## Skill Structure
100
+
101
+ ### Minimal SKILL.md (Recommended for Most Skills)
102
+
103
+ ```markdown
104
+ ---
105
+ name: processing-pdfs
106
+ description: Extracts text and tables from PDF files, fills forms, merges documents. Use when working with PDF files or when the user mentions PDFs, forms, or document extraction.
107
+ ---
108
+
109
+ # Processing PDFs
110
+
111
+ ## Quick Start
112
+
113
+ Extract text with pdfplumber:
114
+ ```python
115
+ import pdfplumber
116
+ with pdfplumber.open("file.pdf") as pdf:
117
+ text = pdf.pages[0].extract_text()
118
+ ```
119
+
120
+ ## Features
121
+
122
+ - **Text extraction**: Use pdfplumber for text
123
+ - **Table extraction**: See [TABLES.md](TABLES.md)
124
+ - **Form filling**: See [FORMS.md](FORMS.md)
125
+ - **Merging**: See [MERGE.md](MERGE.md)
126
+
127
+ ## Workflows
128
+
129
+ ### Standard Extraction
130
+ 1. Load PDF with pdfplumber
131
+ 2. Extract text from each page
132
+ 3. Clean and format output
133
+
134
+ For advanced workflows, see [WORKFLOWS.md](WORKFLOWS.md).
135
+ ```
136
+
137
+ ### Directory Structure for Complex Skills
138
+
139
+ ```
140
+ skill-name/
141
+ ├── SKILL.md # Main instructions (<500 lines)
142
+ ├── REFERENCE.md # API reference (loaded as needed)
143
+ ├── EXAMPLES.md # Usage examples (loaded as needed)
144
+ ├── WORKFLOWS.md # Complex workflows (loaded as needed)
145
+ └── scripts/
146
+ ├── utility.py # Utility script (executed, not loaded)
147
+ └── validate.py # Validation script
148
+ ```
149
+
150
+ ---
151
+
152
+ ## Content Guidelines
153
+
154
+ ### What to Include
155
+
156
+ 1. **Quick start** - Minimal code to get started
157
+ 2. **Feature overview** - Brief descriptions with links to details
158
+ 3. **Common workflows** - Step-by-step for typical tasks
159
+ 4. **References to detailed files** - For advanced content
160
+
161
+ ### What NOT to Include
162
+
163
+ 1. **Explanations of basic concepts** - Claude knows what PDFs are
164
+ 2. **Multiple library options** - Pick one default, mention alternatives only if necessary
165
+ 3. **Verbose descriptions** - Be direct and concise
166
+ 4. **Time-sensitive information** - Use "old patterns" section if needed
167
+
168
+ ### Example: Concise vs Verbose
169
+
170
+ **Good (≈50 tokens)**:
171
+ ```markdown
172
+ ## Extract PDF Text
173
+
174
+ Use pdfplumber for text extraction:
175
+ ```python
176
+ import pdfplumber
177
+ with pdfplumber.open("file.pdf") as pdf:
178
+ text = pdf.pages[0].extract_text()
179
+ ```
180
+ ```
181
+
182
+ **Bad (≈150 tokens)**:
183
+ ```markdown
184
+ ## Extract PDF Text
185
+
186
+ PDF (Portable Document Format) files are a common file format that contains
187
+ text, images, and other content. To extract text from a PDF, you'll need to
188
+ use a library. There are many libraries available for PDF processing, but we
189
+ recommend pdfplumber because it's easy to use and handles most cases well.
190
+ First, you'll need to install it using pip. Then you can use the code below...
191
+ ```
192
+
193
+ ---
194
+
195
+ ## Progressive Disclosure Patterns
196
+
197
+ ### Pattern 1: High-Level Guide with References
198
+
199
+ ```markdown
200
+ ---
201
+ name: processing-documents
202
+ description: Processes various document formats including PDF, DOCX, and XLSX. Use when working with documents or file conversion.
203
+ ---
204
+
205
+ # Document Processing
206
+
207
+ ## Quick Reference
208
+
209
+ | Format | Library | Guide |
210
+ |--------|---------|-------|
211
+ | PDF | pdfplumber | [PDF.md](PDF.md) |
212
+ | DOCX | python-docx | [DOCX.md](DOCX.md) |
213
+ | XLSX | openpyxl | [XLSX.md](XLSX.md) |
214
+
215
+ ## Common Operations
216
+
217
+ **Extract text**: See format-specific guide above
218
+ **Convert formats**: See [CONVERT.md](CONVERT.md)
219
+ **Batch processing**: See [BATCH.md](BATCH.md)
220
+ ```
221
+
222
+ ### Pattern 2: Domain-Specific Organization
223
+
224
+ ```
225
+ bigquery-skill/
226
+ ├── SKILL.md
227
+ └── reference/
228
+ ├── finance.md
229
+ ├── sales.md
230
+ └── product.md
231
+ ```
232
+
233
+ ```markdown
234
+ # BigQuery Analysis
235
+
236
+ ## Datasets
237
+
238
+ | Domain | Schema | Guide |
239
+ |--------|--------|-------|
240
+ | Finance | revenue, billing | [reference/finance.md](reference/finance.md) |
241
+ | Sales | opportunities, pipeline | [reference/sales.md](reference/sales.md) |
242
+ | Product | API usage, features | [reference/product.md](reference/product.md) |
243
+ ```
244
+
245
+ ### Pattern 3: Conditional Details
246
+
247
+ ```markdown
248
+ # DOCX Processing
249
+
250
+ ## Creating Documents
251
+ Use docx-js for new documents. See [DOCX-JS.md](DOCX-JS.md).
252
+
253
+ ## Editing Documents
254
+ For simple edits, modify XML directly.
255
+
256
+ **For tracked changes**: See [REDLINING.md](REDLINING.md)
257
+ **For OOXML details**: See [OOXML.md](OOXML.md)
258
+ ```
259
+
260
+ ---
261
+
262
+ ## Workflows and Feedback Loops
263
+
264
+ ### Use Checklists for Complex Tasks
265
+
266
+ ```markdown
267
+ ## Form Processing Workflow
268
+
269
+ Copy this checklist and track progress:
270
+
271
+ ```
272
+ Progress:
273
+ - [ ] Step 1: Analyze form (run analyze_form.py)
274
+ - [ ] Step 2: Create field mapping (edit fields.json)
275
+ - [ ] Step 3: Validate mapping (run validate_fields.py)
276
+ - [ ] Step 4: Fill form (run fill_form.py)
277
+ - [ ] Step 5: Verify output (run verify_output.py)
278
+ ```
279
+
280
+ **Step 1**: Run `python scripts/analyze_form.py input.pdf`
281
+ **Step 2**: Edit `fields.json` with values
282
+ **Step 3**: Run `python scripts/validate_fields.py fields.json`
283
+ **Step 4**: Run `python scripts/fill_form.py input.pdf fields.json output.pdf`
284
+ **Step 5**: Run `python scripts/verify_output.py output.pdf`
285
+
286
+ If verification fails, return to Step 2.
287
+ ```
288
+
289
+ ### Implement Validation Loops
290
+
291
+ ```markdown
292
+ ## Edit Process
293
+
294
+ 1. Make edits to document
295
+ 2. **Validate immediately**: `python validate.py`
296
+ 3. If validation fails:
297
+ - Review error message
298
+ - Fix issues
299
+ - Run validation again
300
+ 4. **Only proceed when validation passes**
301
+ 5. Save output
302
+ ```
303
+
304
+ ---
305
+
306
+ ## Reference Files (for Detailed Content)
307
+
308
+ Keep references **one level deep** from SKILL.md:
309
+
310
+ **Good** (one level):
311
+ ```
312
+ SKILL.md → reference.md → (no further links)
313
+ SKILL.md → examples.md → (no further links)
314
+ ```
315
+
316
+ **Bad** (too deep):
317
+ ```
318
+ SKILL.md → advanced.md → details.md → (lost information)
319
+ ```
320
+
321
+ ### Structure Long Reference Files
322
+
323
+ For files >100 lines, include table of contents:
324
+
325
+ ```markdown
326
+ # API Reference
327
+
328
+ ## Contents
329
+ - Authentication
330
+ - Core Methods
331
+ - Advanced Features
332
+ - Error Handling
333
+ - Examples
334
+
335
+ ## Authentication
336
+ ...
337
+ ```
338
+
339
+ ---
340
+
341
+ ## Anti-Patterns to Avoid
342
+
343
+ ### ❌ Avoid Windows Paths
344
+ ```markdown
345
+ # Bad
346
+ scripts\helper.py
347
+
348
+ # Good
349
+ scripts/helper.py
350
+ ```
351
+
352
+ ### ❌ Avoid Too Many Options
353
+ ```markdown
354
+ # Bad
355
+ "You can use pypdf, or pdfplumber, or PyMuPDF, or pdf2image..."
356
+
357
+ # Good
358
+ "Use pdfplumber for text extraction.
359
+ For scanned PDFs requiring OCR, use pdf2image with pytesseract instead."
360
+ ```
361
+
362
+ ### ❌ Avoid Time-Sensitive Info
363
+ ```markdown
364
+ # Bad
365
+ "If before August 2025, use old API..."
366
+
367
+ # Good
368
+ ## Current Method
369
+ Use v2 API endpoint.
370
+
371
+ ## Legacy (Deprecated)
372
+ <details>
373
+ <summary>v1 API (deprecated 2025-08)</summary>
374
+ Old endpoint details...
375
+ </details>
376
+ ```
377
+
378
+ ### ❌ Avoid Inconsistent Terminology
379
+ ```markdown
380
+ # Bad
381
+ Mix of "API endpoint", "URL", "route", "path"
382
+
383
+ # Good
384
+ Always use "API endpoint" consistently
385
+ ```
386
+
387
+ ---
388
+
389
+ ## Skill Length Guidelines
390
+
391
+ | Skill Type | SKILL.md Max | Use Reference Files When |
392
+ |------------|--------------|--------------------------|
393
+ | Simple | 100 lines | Rarely needed |
394
+ | Standard | 200-300 lines | 1-2 reference files |
395
+ | Complex | 400-500 lines | 3+ reference files |
396
+
397
+ **Hard limit**: SKILL.md body should never exceed 500 lines.
398
+
399
+ ---
400
+
401
+ ## Testing Checklist
402
+
403
+ Before finalizing a skill:
404
+
405
+ ### Core Quality
406
+ - [ ] Name uses gerund form (or acceptable alternative)
407
+ - [ ] Name is ≤64 characters, lowercase, hyphens only
408
+ - [ ] Description is third person
409
+ - [ ] Description includes what it does AND when to use it
410
+ - [ ] SKILL.md body is under 500 lines
411
+ - [ ] Only essential context included (Claude already knows basics)
412
+ - [ ] References are one level deep
413
+ - [ ] No time-sensitive information
414
+ - [ ] Consistent terminology throughout
415
+
416
+ ### Structure
417
+ - [ ] Quick start section with minimal code
418
+ - [ ] Feature overview with links to details
419
+ - [ ] Workflows have clear steps
420
+ - [ ] Complex content in separate reference files
421
+
422
+ ### If Includes Scripts
423
+ - [ ] Scripts handle errors explicitly
424
+ - [ ] No "voodoo constants" (all values justified)
425
+ - [ ] Clear whether to execute or read scripts
426
+ - [ ] Forward slashes in all paths
427
+
428
+ ---
429
+
430
+ ## Migration from v1 Skills
431
+
432
+ To convert existing verbose skills:
433
+
434
+ 1. **Extract quick start**: Keep only the minimal getting-started code
435
+ 2. **Create reference files**: Move detailed content to REFERENCE.md, EXAMPLES.md, etc.
436
+ 3. **Simplify descriptions**: Remove explanations Claude already knows
437
+ 4. **Add navigation**: Replace inline content with links to reference files
438
+ 5. **Verify length**: Ensure SKILL.md is under 500 lines
439
+
440
+ ### Example Migration
441
+
442
+ **Before (v1 - 800 lines)**:
443
+ ```markdown
444
+ # MongoDB
445
+
446
+ MongoDB is a document database... [200 lines of explanation]
447
+
448
+ ## Schema Design
449
+ [300 lines of patterns and examples]
450
+
451
+ ## Query Optimization
452
+ [200 lines of techniques]
453
+
454
+ ## Best Practices
455
+ [100 lines of do's and don'ts]
456
+ ```
457
+
458
+ **After (v2 - 150 lines)**:
459
+ ```markdown
460
+ # MongoDB
461
+
462
+ ## Quick Start
463
+
464
+ ```python
465
+ from pymongo import MongoClient
466
+ client = MongoClient("mongodb://localhost:27017/")
467
+ db = client["mydb"]
468
+ ```
469
+
470
+ ## Features
471
+
472
+ | Feature | Guide |
473
+ |---------|-------|
474
+ | Schema Design | [SCHEMA.md](SCHEMA.md) |
475
+ | Query Optimization | [QUERIES.md](QUERIES.md) |
476
+ | Indexing | [INDEXES.md](INDEXES.md) |
477
+ | Transactions | [TRANSACTIONS.md](TRANSACTIONS.md) |
478
+
479
+ ## Common Patterns
480
+
481
+ - **CRUD operations**: See Quick Start above
482
+ - **Aggregation**: See [AGGREGATION.md](AGGREGATION.md)
483
+ - **Replication**: See [REPLICATION.md](REPLICATION.md)
484
+ ```
485
+
486
+ ---
487
+
488
+ *Version: 2.0*
489
+ *Based on: Claude Platform Best Practices (2025)*
490
+ *Last Updated: 2024-12-31*