aiblueprint-cli 1.4.23 → 1.4.24

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 (89) hide show
  1. package/claude-code-config/skills/git-commit/SKILL.md +42 -0
  2. package/claude-code-config/{commands/git/create-pr.md → skills/git-create-pr/SKILL.md} +12 -18
  3. package/claude-code-config/skills/git-fix-pr-comments/SKILL.md +51 -0
  4. package/claude-code-config/skills/git-merge/SKILL.md +68 -0
  5. package/claude-code-config/skills/{claude-memory → meta-claude-memory}/SKILL.md +7 -2
  6. package/claude-code-config/skills/meta-claude-memory/references/rules-directory-guide.md +298 -0
  7. package/claude-code-config/skills/meta-prompt-creator/SKILL.md +285 -0
  8. package/claude-code-config/skills/meta-prompt-creator/references/anthropic-best-practices.md +126 -0
  9. package/claude-code-config/skills/meta-prompt-creator/references/anti-patterns.md +57 -0
  10. package/claude-code-config/skills/meta-prompt-creator/references/clarity-principles.md +54 -0
  11. package/claude-code-config/skills/meta-prompt-creator/references/context-management.md +389 -0
  12. package/claude-code-config/skills/meta-prompt-creator/references/few-shot-patterns.md +47 -0
  13. package/claude-code-config/skills/meta-prompt-creator/references/openai-best-practices.md +50 -0
  14. package/claude-code-config/skills/meta-prompt-creator/references/prompt-templates.md +110 -0
  15. package/claude-code-config/skills/meta-prompt-creator/references/reasoning-techniques.md +52 -0
  16. package/claude-code-config/skills/meta-prompt-creator/references/system-prompt-patterns.md +48 -0
  17. package/claude-code-config/skills/meta-prompt-creator/references/xml-structure.md +36 -0
  18. package/claude-code-config/skills/meta-skill-creator/LICENSE.txt +202 -0
  19. package/claude-code-config/skills/meta-skill-creator/SKILL.md +421 -0
  20. package/claude-code-config/skills/meta-skill-creator/package.json +5 -0
  21. package/claude-code-config/skills/meta-skill-creator/references/output-patterns.md +82 -0
  22. package/claude-code-config/skills/meta-skill-creator/references/progressive-disclosure-patterns.md +374 -0
  23. package/claude-code-config/skills/meta-skill-creator/references/prompting-integration.md +363 -0
  24. package/claude-code-config/skills/meta-skill-creator/references/real-world-examples.md +513 -0
  25. package/claude-code-config/skills/meta-skill-creator/references/script-patterns.md +385 -0
  26. package/claude-code-config/skills/meta-skill-creator/references/workflows.md +28 -0
  27. package/claude-code-config/skills/meta-skill-creator/references/xml-tag-guide.md +606 -0
  28. package/claude-code-config/skills/meta-skill-creator/scripts/init-skill.ts +214 -0
  29. package/claude-code-config/skills/meta-skill-creator/scripts/package-skill.ts +146 -0
  30. package/claude-code-config/skills/meta-skill-creator/scripts/validate.ts +138 -0
  31. package/claude-code-config/skills/{create-subagents → meta-subagent-creator}/SKILL.md +41 -15
  32. package/claude-code-config/skills/{setup-ralph → ralph-loop}/steps/step-00-init.md +2 -3
  33. package/claude-code-config/skills/utils-fix-errors/SKILL.md +61 -0
  34. package/claude-code-config/skills/utils-fix-grammar/SKILL.md +59 -0
  35. package/claude-code-config/skills/utils-oneshot/SKILL.md +56 -0
  36. package/claude-code-config/skills/workflow-apex/SKILL.md +303 -0
  37. package/claude-code-config/skills/workflow-apex/scripts/setup-templates.sh +134 -0
  38. package/claude-code-config/skills/workflow-apex/scripts/update-progress.sh +80 -0
  39. package/claude-code-config/skills/workflow-apex/steps/step-00-init.md +288 -0
  40. package/claude-code-config/skills/workflow-apex/steps/step-00b-branch.md +126 -0
  41. package/claude-code-config/skills/workflow-apex/steps/step-00b-economy.md +244 -0
  42. package/claude-code-config/skills/workflow-apex/steps/step-00b-interactive.md +153 -0
  43. package/claude-code-config/skills/workflow-apex/steps/step-01-analyze.md +361 -0
  44. package/claude-code-config/skills/workflow-apex/steps/step-02-plan.md +264 -0
  45. package/claude-code-config/skills/workflow-apex/steps/step-03-execute.md +239 -0
  46. package/claude-code-config/skills/workflow-apex/steps/step-04-validate.md +264 -0
  47. package/claude-code-config/skills/workflow-apex/steps/step-05-examine.md +294 -0
  48. package/claude-code-config/skills/workflow-apex/steps/step-06-resolve.md +237 -0
  49. package/claude-code-config/skills/workflow-apex/steps/step-07-tests.md +250 -0
  50. package/claude-code-config/skills/workflow-apex/steps/step-08-run-tests.md +308 -0
  51. package/claude-code-config/skills/workflow-apex/steps/step-09-finish.md +193 -0
  52. package/claude-code-config/skills/workflow-apex/templates/00-context.md +51 -0
  53. package/claude-code-config/skills/workflow-apex/templates/01-analyze.md +10 -0
  54. package/claude-code-config/skills/workflow-apex/templates/02-plan.md +10 -0
  55. package/claude-code-config/skills/workflow-apex/templates/03-execute.md +10 -0
  56. package/claude-code-config/skills/workflow-apex/templates/04-validate.md +10 -0
  57. package/claude-code-config/skills/workflow-apex/templates/05-examine.md +10 -0
  58. package/claude-code-config/skills/workflow-apex/templates/06-resolve.md +10 -0
  59. package/claude-code-config/skills/workflow-apex/templates/07-tests.md +10 -0
  60. package/claude-code-config/skills/workflow-apex/templates/08-run-tests.md +10 -0
  61. package/claude-code-config/skills/workflow-apex/templates/09-finish.md +10 -0
  62. package/claude-code-config/skills/workflow-apex/templates/README.md +195 -0
  63. package/claude-code-config/skills/workflow-apex/templates/step-complete.md +7 -0
  64. package/package.json +1 -1
  65. package/claude-code-config/commands/explore.md +0 -90
  66. package/claude-code-config/commands/git/commit.md +0 -60
  67. package/claude-code-config/commands/git/fix-pr-comments.md +0 -59
  68. package/claude-code-config/commands/oneshot.md +0 -57
  69. package/claude-code-config/skills/create-slash-commands/SKILL.md +0 -1110
  70. package/claude-code-config/skills/create-slash-commands/references/arguments.md +0 -273
  71. package/claude-code-config/skills/create-slash-commands/references/patterns.md +0 -947
  72. package/claude-code-config/skills/create-slash-commands/references/prompt-examples.md +0 -656
  73. package/claude-code-config/skills/create-slash-commands/references/tool-restrictions.md +0 -389
  74. /package/claude-code-config/skills/{claude-memory → meta-claude-memory}/references/comprehensive-example.md +0 -0
  75. /package/claude-code-config/skills/{claude-memory → meta-claude-memory}/references/project-patterns.md +0 -0
  76. /package/claude-code-config/skills/{claude-memory → meta-claude-memory}/references/prompting-techniques.md +0 -0
  77. /package/claude-code-config/skills/{claude-memory → meta-claude-memory}/references/section-templates.md +0 -0
  78. /package/claude-code-config/skills/{create-subagents → meta-subagent-creator}/references/context-management.md +0 -0
  79. /package/claude-code-config/skills/{create-subagents → meta-subagent-creator}/references/debugging-agents.md +0 -0
  80. /package/claude-code-config/skills/{create-subagents → meta-subagent-creator}/references/error-handling-and-recovery.md +0 -0
  81. /package/claude-code-config/skills/{create-subagents → meta-subagent-creator}/references/evaluation-and-testing.md +0 -0
  82. /package/claude-code-config/skills/{create-subagents → meta-subagent-creator}/references/orchestration-patterns.md +0 -0
  83. /package/claude-code-config/skills/{create-subagents → meta-subagent-creator}/references/subagents.md +0 -0
  84. /package/claude-code-config/skills/{create-subagents → meta-subagent-creator}/references/writing-subagent-prompts.md +0 -0
  85. /package/claude-code-config/skills/{setup-ralph → ralph-loop}/SKILL.md +0 -0
  86. /package/claude-code-config/skills/{setup-ralph → ralph-loop}/scripts/setup.sh +0 -0
  87. /package/claude-code-config/skills/{setup-ralph → ralph-loop}/steps/step-01-interactive-prd.md +0 -0
  88. /package/claude-code-config/skills/{setup-ralph → ralph-loop}/steps/step-02-create-stories.md +0 -0
  89. /package/claude-code-config/skills/{setup-ralph → ralph-loop}/steps/step-03-finish.md +0 -0
@@ -0,0 +1,606 @@
1
+ <overview>
2
+ Complete guide to XML tags and structure for Claude Code skills. Skills must use pure XML structure (no markdown headings) for consistent parsing and efficient token usage.
3
+ </overview>
4
+
5
+ <critical_rule>
6
+ **Remove ALL markdown headings (#, ##, ###) from skill body content.**
7
+
8
+ Replace with semantic XML tags. Keep markdown formatting WITHIN content (bold, italic, lists, code blocks, links).
9
+
10
+ ❌ **Bad**:
11
+
12
+ ```markdown
13
+ # PDF Processing
14
+
15
+ ## Quick start
16
+
17
+ Extract text...
18
+
19
+ ## Advanced features
20
+
21
+ Form filling...
22
+ ```
23
+
24
+ ✅ **Good**:
25
+
26
+ ```xml
27
+ <objective>
28
+ PDF processing with text extraction, form filling, and merging.
29
+ </objective>
30
+
31
+ <quick_start>
32
+ Extract text...
33
+ </quick_start>
34
+
35
+ <advanced_features>
36
+ Form filling...
37
+ </advanced_features>
38
+ ```
39
+
40
+ </critical_rule>
41
+
42
+ <required_tags>
43
+ Every skill MUST have these three tags:
44
+
45
+ <tag name="objective">
46
+ **Purpose**: What the skill does and why it matters
47
+
48
+ **Content**: 1-3 paragraphs explaining the skill's purpose and value
49
+
50
+ **Example**:
51
+
52
+ ```xml
53
+ <objective>
54
+ Extract text and tables from PDF files, fill forms, and merge documents using Python libraries.
55
+
56
+ This skill provides comprehensive PDF processing capabilities for data extraction, form automation, and document manipulation tasks.
57
+ </objective>
58
+ ```
59
+
60
+ </tag>
61
+
62
+ <tag name="quick_start">
63
+ **Purpose**: Immediate, actionable guidance
64
+
65
+ **Content**: Minimal working example to get started quickly
66
+
67
+ **Example**:
68
+
69
+ ````xml
70
+ <quick_start>
71
+ Extract text with pdfplumber:
72
+
73
+ ```python
74
+ import pdfplumber
75
+ with pdfplumber.open("file.pdf") as pdf:
76
+ text = pdf.pages[0].extract_text()
77
+ ````
78
+
79
+ Extract tables:
80
+
81
+ ```python
82
+ with pdfplumber.open("file.pdf") as pdf:
83
+ tables = pdf.pages[0].extract_tables()
84
+ ```
85
+
86
+ </quick_start>
87
+
88
+ ````
89
+ </tag>
90
+
91
+ <tag name="success_criteria">
92
+ **Purpose**: How to know the task was completed correctly
93
+
94
+ **Content**: Specific, measurable criteria for success
95
+
96
+ **Alternative**: Can use `<when_successful>` instead
97
+
98
+ **Example**:
99
+ ```xml
100
+ <success_criteria>
101
+ - Text extracted successfully from PDF
102
+ - Output is clean and properly formatted
103
+ - No encoding errors
104
+ - Tables parsed into structured data
105
+ </success_criteria>
106
+ ````
107
+
108
+ Or:
109
+
110
+ ```xml
111
+ <when_successful>
112
+ The task is successful when:
113
+ - All pages processed without errors
114
+ - Output matches expected format
115
+ - Data is complete and accurate
116
+ </when_successful>
117
+ ```
118
+
119
+ </tag>
120
+ </required_tags>
121
+
122
+ <conditional_tags>
123
+ Add based on skill complexity and domain requirements:
124
+
125
+ <tag name="context">
126
+ **When to use**: Background information needed to understand the skill
127
+
128
+ **Content**: Situational context, domain background, prerequisites
129
+
130
+ **Example**:
131
+
132
+ ```xml
133
+ <context>
134
+ PDF files use the Portable Document Format standard, which encapsulates fonts, images, and layout information. Text extraction requires parsing this structure while preserving meaning.
135
+
136
+ Modern PDF libraries like pdfplumber provide high-level APIs for extraction while handling the underlying complexity.
137
+ </context>
138
+ ```
139
+
140
+ </tag>
141
+
142
+ <tag name="workflow">
143
+ **When to use**: Step-by-step procedures needed
144
+
145
+ **Content**: Numbered or ordered steps to complete a task
146
+
147
+ **Alternative**: Can use `<process>` instead
148
+
149
+ **Example**:
150
+
151
+ ```xml
152
+ <workflow>
153
+ 1. **Analyze PDF structure**: Use `pdfplumber.open()` to inspect pages
154
+ 2. **Extract content**: Call `extract_text()` or `extract_tables()`
155
+ 3. **Process data**: Clean and structure extracted content
156
+ 4. **Validate output**: Verify completeness and accuracy
157
+ 5. **Save results**: Write to JSON, CSV, or database
158
+ </workflow>
159
+ ```
160
+
161
+ </tag>
162
+
163
+ <tag name="advanced_features">
164
+ **When to use**: Deep-dive topics for experienced users
165
+
166
+ **Content**: Complex features, optimizations, edge cases
167
+
168
+ **Example**:
169
+
170
+ ````xml
171
+ <advanced_features>
172
+ <form_filling>
173
+ Fill PDF forms programmatically:
174
+
175
+ ```python
176
+ from pdfrw import PdfReader, PdfWriter
177
+
178
+ template_pdf = PdfReader('template.pdf')
179
+ # Modify form fields
180
+ PdfWriter('filled.pdf', trailer=template_pdf).write()
181
+ ````
182
+
183
+ See [references/form-filling.md](references/form-filling.md) for complete guide.
184
+ </form_filling>
185
+
186
+ <performance_optimization>
187
+ For large PDFs, process pages in parallel. See [references/performance.md](references/performance.md).
188
+ </performance_optimization>
189
+ </advanced_features>
190
+
191
+ ````
192
+ </tag>
193
+
194
+ <tag name="validation">
195
+ **When to use**: Output verification is critical
196
+
197
+ **Content**: How to verify outputs are correct
198
+
199
+ **Example**:
200
+ ```xml
201
+ <validation>
202
+ <text_extraction>
203
+ Verify extracted text:
204
+ - Check character count matches expected range
205
+ - Ensure no mojibake (encoding issues)
206
+ - Validate special characters preserved
207
+ </text_extraction>
208
+
209
+ <table_extraction>
210
+ Verify extracted tables:
211
+ - Row count matches PDF
212
+ - Column alignment preserved
213
+ - Numeric values unchanged
214
+ </table_extraction>
215
+ </validation>
216
+ ````
217
+
218
+ </tag>
219
+
220
+ <tag name="examples">
221
+ **When to use**: Multiple examples help understanding
222
+
223
+ **Content**: Multi-shot learning examples with input/output pairs
224
+
225
+ **Example**:
226
+
227
+ ````xml
228
+ <examples>
229
+ <example number="1">
230
+ <task>Extract text from simple PDF</task>
231
+ <code>
232
+ ```python
233
+ import pdfplumber
234
+ with pdfplumber.open("simple.pdf") as pdf:
235
+ text = pdf.pages[0].extract_text()
236
+ print(text)
237
+ ````
238
+
239
+ </code>
240
+ <output>
241
+ This is the text from the PDF...
242
+ </output>
243
+ </example>
244
+
245
+ <example number="2">
246
+ <task>Extract tables with custom settings</task>
247
+ <code>
248
+ ```python
249
+ with pdfplumber.open("tables.pdf") as pdf:
250
+ table = pdf.pages[0].extract_table({
251
+ "vertical_strategy": "lines",
252
+ "horizontal_strategy": "lines"
253
+ })
254
+ ```
255
+ </code>
256
+ </example>
257
+ </examples>
258
+ ```
259
+ </tag>
260
+
261
+ <tag name="anti_patterns">
262
+ **When to use**: Common mistakes should be avoided
263
+
264
+ **Content**: Bad practices with explanations and alternatives
265
+
266
+ **Example**:
267
+
268
+ ````xml
269
+ <anti_patterns>
270
+ <pitfall name="reading_entire_pdf">
271
+ ❌ **Bad**: Reading entire PDF into memory at once
272
+
273
+ ```python
274
+ text = "".join([page.extract_text() for page in pdf.pages])
275
+ ````
276
+
277
+ **Why bad**: Large PDFs cause memory issues
278
+
279
+ ✅ **Good**: Process page by page
280
+
281
+ ```python
282
+ for page in pdf.pages:
283
+ text = page.extract_text()
284
+ process(text)
285
+ ```
286
+
287
+ </pitfall>
288
+ </anti_patterns>
289
+ ```
290
+ </tag>
291
+
292
+ <tag name="security_checklist">
293
+ **When to use**: Security is critical (APIs, auth, payments)
294
+
295
+ **Content**: Non-negotiable security patterns and checks
296
+
297
+ **Example**:
298
+
299
+ ```xml
300
+ <security_checklist>
301
+ **Before deploying**:
302
+
303
+ - [ ] API keys stored in environment variables (never hardcoded)
304
+ - [ ] Input validation for all user-provided data
305
+ - [ ] Rate limiting implemented
306
+ - [ ] Error messages don't leak sensitive information
307
+ - [ ] HTTPS used for all API calls
308
+ - [ ] Authentication tokens refreshed properly
309
+ </security_checklist>
310
+ ```
311
+
312
+ </tag>
313
+
314
+ <tag name="testing">
315
+ **When to use**: Testing workflows are important
316
+
317
+ **Content**: How to test the skill's functionality
318
+
319
+ **Example**:
320
+
321
+ ````xml
322
+ <testing>
323
+ <unit_tests>
324
+ Test individual functions:
325
+
326
+ ```python
327
+ def test_extract_text():
328
+ with pdfplumber.open("test.pdf") as pdf:
329
+ text = pdf.pages[0].extract_text()
330
+ assert len(text) > 0
331
+ assert "expected content" in text
332
+ ````
333
+
334
+ </unit_tests>
335
+
336
+ <integration_tests>
337
+ Test full workflow:
338
+
339
+ ```python
340
+ def test_full_extraction():
341
+ result = extract_pdf_to_json("input.pdf")
342
+ assert result["page_count"] == 5
343
+ assert len(result["text"]) > 1000
344
+ ```
345
+
346
+ </integration_tests>
347
+ </testing>
348
+
349
+ ````
350
+ </tag>
351
+
352
+ <tag name="common_patterns">
353
+ **When to use**: Reusable code patterns exist
354
+
355
+ **Content**: Code examples and recipes for common tasks
356
+
357
+ **Example**:
358
+ ```xml
359
+ <common_patterns>
360
+ <pattern name="batch_processing">
361
+ Process multiple PDFs:
362
+
363
+ ```python
364
+ from pathlib import Path
365
+
366
+ pdf_dir = Path("pdfs/")
367
+ for pdf_file in pdf_dir.glob("*.pdf"):
368
+ with pdfplumber.open(pdf_file) as pdf:
369
+ text = pdf.pages[0].extract_text()
370
+ output_file = pdf_file.with_suffix(".txt")
371
+ output_file.write_text(text)
372
+ ````
373
+
374
+ </pattern>
375
+
376
+ <pattern name="error_handling">
377
+ Handle corrupted PDFs gracefully:
378
+
379
+ ```python
380
+ try:
381
+ with pdfplumber.open(pdf_path) as pdf:
382
+ text = pdf.pages[0].extract_text()
383
+ except Exception as e:
384
+ print(f"Failed to process {pdf_path}: {e}")
385
+ continue
386
+ ```
387
+
388
+ </pattern>
389
+ </common_patterns>
390
+ ```
391
+ </tag>
392
+
393
+ <tag name="reference_guides">
394
+ **When to use**: Detailed content exists in reference files
395
+
396
+ **Content**: Links to reference files with descriptions
397
+
398
+ **Alternative**: Can use `<detailed_references>` instead
399
+
400
+ **Example**:
401
+
402
+ ```xml
403
+ <reference_guides>
404
+ For deeper topics, see reference files:
405
+
406
+ - **`references/form-filling.md`** - Complete guide to PDF form filling
407
+ - **`references/performance.md`** - Performance optimization techniques
408
+ - **`references/troubleshooting.md`** - Common issues and solutions
409
+ - **`references/api-reference.md`** - Complete API documentation
410
+ </reference_guides>
411
+ ```
412
+
413
+ </tag>
414
+ </conditional_tags>
415
+
416
+ <xml_nesting>
417
+ <principle>
418
+ Properly nest XML tags for hierarchical content. Always close tags.
419
+ </principle>
420
+
421
+ <examples>
422
+ <simple_nesting>
423
+ ```xml
424
+ <objective>
425
+ Content here
426
+ </objective>
427
+ ```
428
+ </simple_nesting>
429
+
430
+ <nested_structure>
431
+
432
+ ```xml
433
+ <examples>
434
+ <example number="1">
435
+ <input>User input here</input>
436
+ <output>Expected output here</output>
437
+ </example>
438
+
439
+ <example number="2">
440
+ <input>Another input</input>
441
+ <output>Another output</output>
442
+ </example>
443
+ </examples>
444
+ ```
445
+
446
+ </nested_structure>
447
+
448
+ <deep_nesting>
449
+
450
+ ````xml
451
+ <advanced_features>
452
+ <feature_a>
453
+ <overview>Feature A overview</overview>
454
+ <usage>
455
+ ```python
456
+ # Code example
457
+ ````
458
+
459
+ </usage>
460
+ </feature_a>
461
+
462
+ <feature_b>
463
+ <overview>Feature B overview</overview>
464
+ <usage>
465
+
466
+ ```python
467
+ # Code example
468
+ ```
469
+
470
+ </usage>
471
+ </feature_b>
472
+ </advanced_features>
473
+ ```
474
+ </deep_nesting>
475
+ </examples>
476
+ </xml_nesting>
477
+
478
+ <tag_naming_conventions>
479
+ <use_descriptive_names>
480
+ Use descriptive, semantic names:
481
+
482
+ ✅ `<workflow>` not `<steps>`
483
+ ✅ `<success_criteria>` not `<done>`
484
+ ✅ `<anti_patterns>` not `<dont_do>`
485
+ ✅ `<reference_guides>` not `<links>`
486
+ </use_descriptive_names>
487
+
488
+ <be_consistent>
489
+ Be consistent within your skill. If you use `<workflow>`, don't also use `<process>` for the same purpose (unless they serve different roles).
490
+ </be_consistent>
491
+
492
+ <use_underscores>
493
+ For multi-word tag names, use underscores:
494
+
495
+ ✅ `<success_criteria>`
496
+ ✅ `<advanced_features>`
497
+ ✅ `<reference_guides>`
498
+
499
+ Not hyphens or camelCase:
500
+
501
+ ❌ `<success-criteria>`
502
+ ❌ `<successCriteria>`
503
+ </use_underscores>
504
+ </tag_naming_conventions>
505
+
506
+ <markdown_within_xml>
507
+ <allowed_formatting>
508
+ Markdown formatting is allowed WITHIN XML tag content:
509
+
510
+ ✅ **Bold**: `**text**`
511
+ ✅ **Italic**: `*text*`
512
+ ✅ **Lists**: `- item`
513
+ ✅ **Code blocks**: ` ```python `
514
+ ✅ **Links**: `[text](url)`
515
+ ✅ **Inline code**: `` `code` ``
516
+
517
+ **Example**:
518
+
519
+ ````xml
520
+ <quick_start>
521
+ Extract text with **pdfplumber**:
522
+
523
+ ```python
524
+ import pdfplumber
525
+ with pdfplumber.open("file.pdf") as pdf:
526
+ text = pdf.pages[0].extract_text()
527
+ ````
528
+
529
+ For _advanced_ usage, see [references/advanced.md](references/advanced.md).
530
+ </quick_start>
531
+
532
+ ````
533
+ </allowed_formatting>
534
+
535
+ <not_allowed>
536
+ ❌ **Markdown headings**: `# Heading`
537
+ ❌ **Horizontal rules**: `---`
538
+ ❌ **HTML tags**: `<div>` (unless they're semantic XML tags)
539
+ </not_allowed>
540
+ </markdown_within_xml>
541
+
542
+ <intelligence_rules>
543
+ <simple_skills>
544
+ **Use**: Required tags only
545
+
546
+ **Example domains**: Text extraction, file format conversion, simple API calls
547
+
548
+ ```xml
549
+ <objective>...</objective>
550
+ <quick_start>...</quick_start>
551
+ <success_criteria>...</success_criteria>
552
+ ````
553
+
554
+ </simple_skills>
555
+
556
+ <medium_skills>
557
+ **Use**: Required tags + workflow/examples as needed
558
+
559
+ **Example domains**: Document processing with steps, API integration with configuration
560
+
561
+ ```xml
562
+ <objective>...</objective>
563
+ <quick_start>...</quick_start>
564
+ <workflow>...</workflow>
565
+ <examples>...</examples>
566
+ <success_criteria>...</success_criteria>
567
+ ```
568
+
569
+ </medium_skills>
570
+
571
+ <complex_skills>
572
+ **Use**: Required tags + conditional tags as appropriate
573
+
574
+ **Example domains**: Payment processing, authentication systems, multi-step workflows with validation
575
+
576
+ ```xml
577
+ <objective>...</objective>
578
+ <context>...</context>
579
+ <quick_start>...</quick_start>
580
+ <workflow>...</workflow>
581
+ <validation>...</validation>
582
+ <security_checklist>...</security_checklist>
583
+ <anti_patterns>...</anti_patterns>
584
+ <reference_guides>...</reference_guides>
585
+ <success_criteria>...</success_criteria>
586
+ ```
587
+
588
+ </complex_skills>
589
+
590
+ <principle>
591
+ Don't over-engineer simple skills. Don't under-specify complex skills. Match tag selection to actual complexity and user needs.
592
+ </principle>
593
+ </intelligence_rules>
594
+
595
+ <validation_checklist>
596
+ Before finalizing, verify:
597
+
598
+ - [ ] No markdown headings in body (#, ##, ###)
599
+ - [ ] All required tags present (objective, quick_start, success_criteria)
600
+ - [ ] All XML tags properly closed
601
+ - [ ] Conditional tags appropriate for complexity
602
+ - [ ] Nested tags have correct indentation
603
+ - [ ] Tag names are descriptive and consistent
604
+ - [ ] Markdown formatting used only within tags
605
+ - [ ] Reference links use relative paths
606
+ </validation_checklist>