@techwavedev/agi-agent-kit 1.1.3

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 (196) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/README.md +147 -0
  3. package/bin/init.js +471 -0
  4. package/package.json +36 -0
  5. package/templates/.agent/agents/backend-specialist.md +263 -0
  6. package/templates/.agent/agents/code-archaeologist.md +106 -0
  7. package/templates/.agent/agents/database-architect.md +226 -0
  8. package/templates/.agent/agents/debugger.md +225 -0
  9. package/templates/.agent/agents/devops-engineer.md +242 -0
  10. package/templates/.agent/agents/documentation-writer.md +104 -0
  11. package/templates/.agent/agents/explorer-agent.md +73 -0
  12. package/templates/.agent/agents/frontend-specialist.md +556 -0
  13. package/templates/.agent/agents/game-developer.md +162 -0
  14. package/templates/.agent/agents/mobile-developer.md +377 -0
  15. package/templates/.agent/agents/orchestrator.md +416 -0
  16. package/templates/.agent/agents/penetration-tester.md +188 -0
  17. package/templates/.agent/agents/performance-optimizer.md +187 -0
  18. package/templates/.agent/agents/product-manager.md +112 -0
  19. package/templates/.agent/agents/project-planner.md +403 -0
  20. package/templates/.agent/agents/qa-automation-engineer.md +109 -0
  21. package/templates/.agent/agents/security-auditor.md +170 -0
  22. package/templates/.agent/agents/seo-specialist.md +111 -0
  23. package/templates/.agent/agents/test-engineer.md +158 -0
  24. package/templates/.agent/rules/GEMINI.md +253 -0
  25. package/templates/.agent/workflows/brainstorm.md +113 -0
  26. package/templates/.agent/workflows/create.md +59 -0
  27. package/templates/.agent/workflows/debug.md +103 -0
  28. package/templates/.agent/workflows/deploy.md +176 -0
  29. package/templates/.agent/workflows/enhance.md +63 -0
  30. package/templates/.agent/workflows/orchestrate.md +237 -0
  31. package/templates/.agent/workflows/plan.md +89 -0
  32. package/templates/.agent/workflows/preview.md +81 -0
  33. package/templates/.agent/workflows/status.md +86 -0
  34. package/templates/.agent/workflows/test.md +144 -0
  35. package/templates/.agent/workflows/ui-ux-pro-max.md +296 -0
  36. package/templates/base/.env.example +54 -0
  37. package/templates/base/AGENTS.md +463 -0
  38. package/templates/base/requirements.txt +6 -0
  39. package/templates/base/skill-creator/LICENSE.txt +202 -0
  40. package/templates/base/skill-creator/SKILL_skillcreator.md +389 -0
  41. package/templates/base/skill-creator/references/output-patterns.md +82 -0
  42. package/templates/base/skill-creator/references/workflows.md +28 -0
  43. package/templates/base/skill-creator/scripts/init_skill.py +304 -0
  44. package/templates/base/skill-creator/scripts/package_skill.py +110 -0
  45. package/templates/base/skill-creator/scripts/quick_validate.py +95 -0
  46. package/templates/base/skill-creator/scripts/update_catalog.py +371 -0
  47. package/templates/skills/core/README.md +21 -0
  48. package/templates/skills/core/documentation/SKILL.md +351 -0
  49. package/templates/skills/core/documentation/references/best_practices.md +201 -0
  50. package/templates/skills/core/documentation/scripts/analyze_code.py +307 -0
  51. package/templates/skills/core/documentation/scripts/detect_changes.py +460 -0
  52. package/templates/skills/core/documentation/scripts/generate_changelog.py +312 -0
  53. package/templates/skills/core/documentation/scripts/sync_docs.py +272 -0
  54. package/templates/skills/core/documentation/scripts/update_skill_docs.py +366 -0
  55. package/templates/skills/core/pdf-reader/SKILL.md +104 -0
  56. package/templates/skills/core/pdf-reader/references/pdf_libraries.md +83 -0
  57. package/templates/skills/core/pdf-reader/scripts/extract_text.py +295 -0
  58. package/templates/skills/core/qdrant-memory/SKILL.md +435 -0
  59. package/templates/skills/core/qdrant-memory/references/advanced_patterns.md +375 -0
  60. package/templates/skills/core/qdrant-memory/references/collection_schemas.md +229 -0
  61. package/templates/skills/core/qdrant-memory/references/complete_guide.md +724 -0
  62. package/templates/skills/core/qdrant-memory/references/embedding_models.md +325 -0
  63. package/templates/skills/core/qdrant-memory/scripts/benchmark_token_savings.py +640 -0
  64. package/templates/skills/core/qdrant-memory/scripts/embedding_utils.py +323 -0
  65. package/templates/skills/core/qdrant-memory/scripts/hybrid_search.py +214 -0
  66. package/templates/skills/core/qdrant-memory/scripts/init_collection.py +193 -0
  67. package/templates/skills/core/qdrant-memory/scripts/memory_retrieval.py +345 -0
  68. package/templates/skills/core/qdrant-memory/scripts/semantic_cache.py +282 -0
  69. package/templates/skills/core/qdrant-memory/scripts/test_skill.py +655 -0
  70. package/templates/skills/core/webcrawler/SKILL.md +292 -0
  71. package/templates/skills/core/webcrawler/references/advanced_crawling.md +181 -0
  72. package/templates/skills/core/webcrawler/scripts/crawl_docs.py +532 -0
  73. package/templates/skills/core/webcrawler/scripts/extract_page.py +189 -0
  74. package/templates/skills/core/webcrawler/scripts/filter_docs.py +200 -0
  75. package/templates/skills/knowledge/api-patterns/SKILL.md +81 -0
  76. package/templates/skills/knowledge/api-patterns/api-style.md +42 -0
  77. package/templates/skills/knowledge/api-patterns/auth.md +24 -0
  78. package/templates/skills/knowledge/api-patterns/documentation.md +26 -0
  79. package/templates/skills/knowledge/api-patterns/graphql.md +41 -0
  80. package/templates/skills/knowledge/api-patterns/rate-limiting.md +31 -0
  81. package/templates/skills/knowledge/api-patterns/response.md +37 -0
  82. package/templates/skills/knowledge/api-patterns/rest.md +40 -0
  83. package/templates/skills/knowledge/api-patterns/scripts/api_validator.py +211 -0
  84. package/templates/skills/knowledge/api-patterns/security-testing.md +122 -0
  85. package/templates/skills/knowledge/api-patterns/trpc.md +41 -0
  86. package/templates/skills/knowledge/api-patterns/versioning.md +22 -0
  87. package/templates/skills/knowledge/app-builder/SKILL.md +75 -0
  88. package/templates/skills/knowledge/app-builder/agent-coordination.md +71 -0
  89. package/templates/skills/knowledge/app-builder/feature-building.md +53 -0
  90. package/templates/skills/knowledge/app-builder/project-detection.md +34 -0
  91. package/templates/skills/knowledge/app-builder/scaffolding.md +118 -0
  92. package/templates/skills/knowledge/app-builder/tech-stack.md +40 -0
  93. package/templates/skills/knowledge/app-builder/templates/SKILL.md +39 -0
  94. package/templates/skills/knowledge/app-builder/templates/astro-static/TEMPLATE.md +76 -0
  95. package/templates/skills/knowledge/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
  96. package/templates/skills/knowledge/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
  97. package/templates/skills/knowledge/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
  98. package/templates/skills/knowledge/app-builder/templates/express-api/TEMPLATE.md +83 -0
  99. package/templates/skills/knowledge/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
  100. package/templates/skills/knowledge/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
  101. package/templates/skills/knowledge/app-builder/templates/nextjs-fullstack/TEMPLATE.md +82 -0
  102. package/templates/skills/knowledge/app-builder/templates/nextjs-saas/TEMPLATE.md +100 -0
  103. package/templates/skills/knowledge/app-builder/templates/nextjs-static/TEMPLATE.md +106 -0
  104. package/templates/skills/knowledge/app-builder/templates/nuxt-app/TEMPLATE.md +101 -0
  105. package/templates/skills/knowledge/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
  106. package/templates/skills/knowledge/app-builder/templates/react-native-app/TEMPLATE.md +93 -0
  107. package/templates/skills/knowledge/architecture/SKILL.md +55 -0
  108. package/templates/skills/knowledge/architecture/context-discovery.md +43 -0
  109. package/templates/skills/knowledge/architecture/examples.md +94 -0
  110. package/templates/skills/knowledge/architecture/pattern-selection.md +68 -0
  111. package/templates/skills/knowledge/architecture/patterns-reference.md +50 -0
  112. package/templates/skills/knowledge/architecture/trade-off-analysis.md +77 -0
  113. package/templates/skills/knowledge/bash-linux/SKILL.md +199 -0
  114. package/templates/skills/knowledge/behavioral-modes/SKILL.md +242 -0
  115. package/templates/skills/knowledge/brainstorming/SKILL.md +163 -0
  116. package/templates/skills/knowledge/brainstorming/dynamic-questioning.md +350 -0
  117. package/templates/skills/knowledge/clean-code/SKILL.md +201 -0
  118. package/templates/skills/knowledge/code-review-checklist/SKILL.md +109 -0
  119. package/templates/skills/knowledge/database-design/SKILL.md +52 -0
  120. package/templates/skills/knowledge/database-design/database-selection.md +43 -0
  121. package/templates/skills/knowledge/database-design/indexing.md +39 -0
  122. package/templates/skills/knowledge/database-design/migrations.md +48 -0
  123. package/templates/skills/knowledge/database-design/optimization.md +36 -0
  124. package/templates/skills/knowledge/database-design/orm-selection.md +30 -0
  125. package/templates/skills/knowledge/database-design/schema-design.md +56 -0
  126. package/templates/skills/knowledge/database-design/scripts/schema_validator.py +172 -0
  127. package/templates/skills/knowledge/deployment-procedures/SKILL.md +241 -0
  128. package/templates/skills/knowledge/doc.md +177 -0
  129. package/templates/skills/knowledge/documentation-templates/SKILL.md +194 -0
  130. package/templates/skills/knowledge/frontend-design/SKILL.md +396 -0
  131. package/templates/skills/knowledge/frontend-design/animation-guide.md +331 -0
  132. package/templates/skills/knowledge/frontend-design/color-system.md +311 -0
  133. package/templates/skills/knowledge/frontend-design/decision-trees.md +418 -0
  134. package/templates/skills/knowledge/frontend-design/motion-graphics.md +306 -0
  135. package/templates/skills/knowledge/frontend-design/scripts/accessibility_checker.py +183 -0
  136. package/templates/skills/knowledge/frontend-design/scripts/ux_audit.py +722 -0
  137. package/templates/skills/knowledge/frontend-design/typography-system.md +345 -0
  138. package/templates/skills/knowledge/frontend-design/ux-psychology.md +541 -0
  139. package/templates/skills/knowledge/frontend-design/visual-effects.md +383 -0
  140. package/templates/skills/knowledge/game-development/2d-games/SKILL.md +119 -0
  141. package/templates/skills/knowledge/game-development/3d-games/SKILL.md +135 -0
  142. package/templates/skills/knowledge/game-development/SKILL.md +167 -0
  143. package/templates/skills/knowledge/game-development/game-art/SKILL.md +185 -0
  144. package/templates/skills/knowledge/game-development/game-audio/SKILL.md +190 -0
  145. package/templates/skills/knowledge/game-development/game-design/SKILL.md +129 -0
  146. package/templates/skills/knowledge/game-development/mobile-games/SKILL.md +108 -0
  147. package/templates/skills/knowledge/game-development/multiplayer/SKILL.md +132 -0
  148. package/templates/skills/knowledge/game-development/pc-games/SKILL.md +144 -0
  149. package/templates/skills/knowledge/game-development/vr-ar/SKILL.md +123 -0
  150. package/templates/skills/knowledge/game-development/web-games/SKILL.md +150 -0
  151. package/templates/skills/knowledge/geo-fundamentals/SKILL.md +156 -0
  152. package/templates/skills/knowledge/geo-fundamentals/scripts/geo_checker.py +289 -0
  153. package/templates/skills/knowledge/i18n-localization/SKILL.md +154 -0
  154. package/templates/skills/knowledge/i18n-localization/scripts/i18n_checker.py +241 -0
  155. package/templates/skills/knowledge/intelligent-routing/SKILL.md +334 -0
  156. package/templates/skills/knowledge/lint-and-validate/SKILL.md +45 -0
  157. package/templates/skills/knowledge/lint-and-validate/scripts/lint_runner.py +172 -0
  158. package/templates/skills/knowledge/lint-and-validate/scripts/type_coverage.py +173 -0
  159. package/templates/skills/knowledge/mcp-builder/SKILL.md +176 -0
  160. package/templates/skills/knowledge/mobile-design/SKILL.md +394 -0
  161. package/templates/skills/knowledge/mobile-design/decision-trees.md +516 -0
  162. package/templates/skills/knowledge/mobile-design/mobile-backend.md +491 -0
  163. package/templates/skills/knowledge/mobile-design/mobile-color-system.md +420 -0
  164. package/templates/skills/knowledge/mobile-design/mobile-debugging.md +122 -0
  165. package/templates/skills/knowledge/mobile-design/mobile-design-thinking.md +357 -0
  166. package/templates/skills/knowledge/mobile-design/mobile-navigation.md +458 -0
  167. package/templates/skills/knowledge/mobile-design/mobile-performance.md +767 -0
  168. package/templates/skills/knowledge/mobile-design/mobile-testing.md +356 -0
  169. package/templates/skills/knowledge/mobile-design/mobile-typography.md +433 -0
  170. package/templates/skills/knowledge/mobile-design/platform-android.md +666 -0
  171. package/templates/skills/knowledge/mobile-design/platform-ios.md +561 -0
  172. package/templates/skills/knowledge/mobile-design/scripts/mobile_audit.py +670 -0
  173. package/templates/skills/knowledge/mobile-design/touch-psychology.md +537 -0
  174. package/templates/skills/knowledge/nextjs-best-practices/SKILL.md +203 -0
  175. package/templates/skills/knowledge/nodejs-best-practices/SKILL.md +333 -0
  176. package/templates/skills/knowledge/parallel-agents/SKILL.md +175 -0
  177. package/templates/skills/knowledge/performance-profiling/SKILL.md +143 -0
  178. package/templates/skills/knowledge/performance-profiling/scripts/lighthouse_audit.py +76 -0
  179. package/templates/skills/knowledge/plan-writing/SKILL.md +152 -0
  180. package/templates/skills/knowledge/powershell-windows/SKILL.md +167 -0
  181. package/templates/skills/knowledge/python-patterns/SKILL.md +441 -0
  182. package/templates/skills/knowledge/react-patterns/SKILL.md +198 -0
  183. package/templates/skills/knowledge/red-team-tactics/SKILL.md +199 -0
  184. package/templates/skills/knowledge/seo-fundamentals/SKILL.md +129 -0
  185. package/templates/skills/knowledge/seo-fundamentals/scripts/seo_checker.py +219 -0
  186. package/templates/skills/knowledge/server-management/SKILL.md +161 -0
  187. package/templates/skills/knowledge/systematic-debugging/SKILL.md +109 -0
  188. package/templates/skills/knowledge/tailwind-patterns/SKILL.md +269 -0
  189. package/templates/skills/knowledge/tdd-workflow/SKILL.md +149 -0
  190. package/templates/skills/knowledge/testing-patterns/SKILL.md +178 -0
  191. package/templates/skills/knowledge/testing-patterns/scripts/test_runner.py +219 -0
  192. package/templates/skills/knowledge/vulnerability-scanner/SKILL.md +276 -0
  193. package/templates/skills/knowledge/vulnerability-scanner/checklists.md +121 -0
  194. package/templates/skills/knowledge/vulnerability-scanner/scripts/security_scan.py +458 -0
  195. package/templates/skills/knowledge/webapp-testing/SKILL.md +187 -0
  196. package/templates/skills/knowledge/webapp-testing/scripts/playwright_runner.py +173 -0
@@ -0,0 +1,371 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Skills Catalog Updater
4
+
5
+ Scans the skills directory and updates SKILLS_CATALOG.md with current skill information.
6
+ Run this script after creating, modifying, or deleting any skill.
7
+
8
+ Usage:
9
+ update_catalog.py --skills-dir <path>
10
+
11
+ Examples:
12
+ update_catalog.py --skills-dir skills/
13
+ update_catalog.py --skills-dir /path/to/skills
14
+
15
+ Exit Codes:
16
+ 0 - Success
17
+ 1 - Invalid arguments
18
+ 2 - Skills directory not found
19
+ 3 - Catalog file error
20
+ """
21
+
22
+ import argparse
23
+ import json
24
+ import re
25
+ import sys
26
+ from datetime import datetime
27
+ from pathlib import Path
28
+
29
+
30
+ def parse_skill_frontmatter(skill_md_path: Path) -> dict:
31
+ """
32
+ Parse YAML frontmatter from a SKILL.md file.
33
+
34
+ Returns:
35
+ dict with 'name' and 'description' keys, or None if parsing fails.
36
+ """
37
+ try:
38
+ content = skill_md_path.read_text()
39
+ except Exception as e:
40
+ print(f" ⚠️ Could not read {skill_md_path}: {e}")
41
+ return None
42
+
43
+ # Check for YAML frontmatter
44
+ if not content.startswith('---'):
45
+ print(f" ⚠️ No YAML frontmatter in {skill_md_path}")
46
+ return None
47
+
48
+ # Extract frontmatter
49
+ parts = content.split('---', 2)
50
+ if len(parts) < 3:
51
+ print(f" ⚠️ Invalid YAML frontmatter in {skill_md_path}")
52
+ return None
53
+
54
+ frontmatter = parts[1].strip()
55
+
56
+ # Parse simple YAML (name and description only)
57
+ result = {}
58
+ for line in frontmatter.split('\n'):
59
+ if ':' in line:
60
+ key, value = line.split(':', 1)
61
+ key = key.strip()
62
+ value = value.strip()
63
+ if key in ('name', 'description'):
64
+ result[key] = value
65
+
66
+ return result if 'name' in result else None
67
+
68
+
69
+ def scan_skills(skills_dir: Path) -> list:
70
+ """
71
+ Scan the skills directory for all skills.
72
+
73
+ Returns:
74
+ List of skill info dicts with name, description, location, scripts, references.
75
+ """
76
+ skills = []
77
+
78
+ for item in sorted(skills_dir.iterdir()):
79
+ if not item.is_dir():
80
+ continue
81
+
82
+ skill_md = item / 'SKILL.md'
83
+ if not skill_md.exists():
84
+ print(f" ⚠️ Skipping {item.name}: no SKILL.md found")
85
+ continue
86
+
87
+ frontmatter = parse_skill_frontmatter(skill_md)
88
+ if not frontmatter:
89
+ print(f" ⚠️ Skipping {item.name}: could not parse frontmatter")
90
+ continue
91
+
92
+ # Gather skill info
93
+ skill_info = {
94
+ 'name': frontmatter.get('name', item.name),
95
+ 'description': frontmatter.get('description', ''),
96
+ 'dir_name': item.name,
97
+ 'location': f"skills/{item.name}/",
98
+ 'scripts': [],
99
+ 'references': [],
100
+ 'has_assets': False,
101
+ 'parent': None,
102
+ }
103
+
104
+ # Check for scripts
105
+ scripts_dir = item / 'scripts'
106
+ if scripts_dir.exists() and scripts_dir.is_dir():
107
+ for script in sorted(scripts_dir.glob('*.py')):
108
+ if script.name != '__init__.py' and not script.name.startswith('example'):
109
+ skill_info['scripts'].append(script.name)
110
+
111
+ # Check for references
112
+ refs_dir = item / 'references'
113
+ if refs_dir.exists() and refs_dir.is_dir():
114
+ for ref in sorted(refs_dir.glob('*.md')):
115
+ if not ref.name.startswith('example'):
116
+ skill_info['references'].append(ref.name)
117
+
118
+ # Check for assets
119
+ assets_dir = item / 'assets'
120
+ if assets_dir.exists() and assets_dir.is_dir():
121
+ skill_info['has_assets'] = any(assets_dir.iterdir())
122
+
123
+ # Detect parent skill from SKILL.md content
124
+ try:
125
+ content = skill_md.read_text()
126
+ if 'Part of the' in content and 'skill family' in content:
127
+ # Extract parent reference
128
+ match = re.search(r'\[([Aa]ws)\s*(skill family|skill)\]', content)
129
+ if match:
130
+ skill_info['parent'] = 'aws'
131
+ elif '../aws/SKILL.md' in content:
132
+ skill_info['parent'] = 'aws'
133
+ except Exception:
134
+ pass
135
+
136
+ skills.append(skill_info)
137
+ print(f" ✅ Found skill: {skill_info['name']}")
138
+
139
+ return skills
140
+
141
+
142
+ def generate_skill_entry(skill: dict) -> str:
143
+ """Generate a markdown section for a single skill."""
144
+ lines = []
145
+
146
+ # Title
147
+ title = skill['name'].replace('-', ' ').title()
148
+ if skill['name'] == 'aws':
149
+ title = 'AWS (Hub)'
150
+ lines.append(f"### {title}")
151
+ lines.append("")
152
+
153
+ # Property table
154
+ lines.append("| Property | Value |")
155
+ lines.append("| -------- | ----- |")
156
+ lines.append(f"| **Name** | `{skill['name']}` |")
157
+ lines.append(f"| **Location** | `{skill['location']}` |")
158
+
159
+ if skill['parent']:
160
+ parent_title = skill['parent'].replace('-', ' ').title()
161
+ parent_anchor = skill['parent'].replace('-', '')
162
+ lines.append(f"| **Parent** | [{parent_title}](#{parent_anchor}) |")
163
+ elif skill['name'] == 'aws':
164
+ lines.append("| **Type** | Router / Hub |")
165
+ else:
166
+ lines.append("| **Type** | Standalone |")
167
+
168
+ lines.append("")
169
+
170
+ # Description
171
+ desc = skill['description']
172
+ if desc.startswith('[TODO'):
173
+ desc = '*[Description not yet provided]*'
174
+ lines.append(f"**Description:** {desc}")
175
+ lines.append("")
176
+
177
+ # Scripts
178
+ if skill['scripts']:
179
+ lines.append("**Scripts:**")
180
+ lines.append("")
181
+ lines.append("| Script | Purpose |")
182
+ lines.append("| ------ | ------- |")
183
+ for script in skill['scripts']:
184
+ lines.append(f"| `scripts/{script}` | *[See script for details]* |")
185
+ lines.append("")
186
+
187
+ # References
188
+ if skill['references']:
189
+ lines.append("**References:**")
190
+ for ref in skill['references']:
191
+ lines.append(f"- `references/{ref}`")
192
+ lines.append("")
193
+
194
+ lines.append("---")
195
+ lines.append("")
196
+
197
+ return '\n'.join(lines)
198
+
199
+
200
+ def generate_catalog(skills: list) -> str:
201
+ """Generate the complete SKILLS_CATALOG.md content."""
202
+ now = datetime.now().strftime("%Y-%m-%d %H:%M")
203
+
204
+ # Header
205
+ header = f"""# Skills Catalog
206
+
207
+ > **Auto-generated Documentation** — Last updated: {now}
208
+ >
209
+ > This catalog is automatically maintained. Update it by running:
210
+ > ```bash
211
+ > python skill-creator/scripts/update_catalog.py --skills-dir skills/
212
+ > ```
213
+
214
+ This document provides comprehensive documentation on available skills, how to use them, and when each skill should be triggered.
215
+
216
+ ---
217
+
218
+ ## Table of Contents
219
+
220
+ - [What Are Skills?](#what-are-skills)
221
+ - [Available Skills](#available-skills)
222
+ """
223
+
224
+ # Add skill links to TOC
225
+ toc_lines = []
226
+ for skill in skills:
227
+ title = skill['name'].replace('-', ' ').title()
228
+ if skill['name'] == 'aws':
229
+ title = 'AWS (Hub)'
230
+ anchor = title.lower().replace(' ', '-').replace('(', '').replace(')', '')
231
+ toc_lines.append(f" - [{title}](#{anchor})")
232
+
233
+ header += '\n'.join(toc_lines)
234
+ header += """
235
+ - [Using Skills](#using-skills)
236
+ - [Creating New Skills](#creating-new-skills)
237
+ - [Maintenance](#maintenance)
238
+
239
+ ---
240
+
241
+ ## What Are Skills?
242
+
243
+ **Skills** are modular, self-contained packages that extend the AI agent's capabilities with specialized knowledge, workflows, and tools.
244
+
245
+ ### Skill Structure
246
+
247
+ ```
248
+ skill-name/
249
+ ├── SKILL.md # (required) Main instruction file
250
+ ├── scripts/ # (optional) Executable scripts
251
+ ├── references/ # (optional) Documentation
252
+ └── assets/ # (optional) Templates, images, etc.
253
+ ```
254
+
255
+ ---
256
+
257
+ ## Available Skills
258
+
259
+ """
260
+
261
+ # Generate skill entries
262
+ skill_entries = []
263
+
264
+ # Sort: hub skills first, then by name
265
+ def sort_key(s):
266
+ if s['name'] == 'aws':
267
+ return ('0', s['name'])
268
+ elif s['parent']:
269
+ return ('1', s['name'])
270
+ else:
271
+ return ('2', s['name'])
272
+
273
+ for skill in sorted(skills, key=sort_key):
274
+ skill_entries.append(generate_skill_entry(skill))
275
+
276
+ # Footer
277
+ footer = """## Using Skills
278
+
279
+ Skills are automatically triggered based on the user's request matching the skill description. You can also explicitly invoke a skill:
280
+
281
+ ```
282
+ "Use the <skill-name> skill to <task>"
283
+ ```
284
+
285
+ ---
286
+
287
+ ## Creating New Skills
288
+
289
+ ```bash
290
+ # Initialize a new skill
291
+ python skill-creator/scripts/init_skill.py my-new-skill --path skills/
292
+
293
+ # Package the skill
294
+ python skill-creator/scripts/package_skill.py skills/my-new-skill
295
+ ```
296
+
297
+ For detailed guidance, see: `skill-creator/SKILL_skillcreator.md`
298
+
299
+ ---
300
+
301
+ ## Maintenance
302
+
303
+ ### Updating This Catalog
304
+
305
+ **IMPORTANT:** This catalog must be updated whenever skills are created, modified, or deleted.
306
+
307
+ ```bash
308
+ python skill-creator/scripts/update_catalog.py --skills-dir skills/
309
+ ```
310
+
311
+ ---
312
+
313
+ *This catalog is part of the [3-Layer Architecture](../AGENTS.md) for reliable AI agent operations.*
314
+ """
315
+
316
+ return header + '\n'.join(skill_entries) + footer
317
+
318
+
319
+ def main():
320
+ parser = argparse.ArgumentParser(description=__doc__)
321
+ parser.add_argument('--skills-dir', required=True, help='Path to skills directory')
322
+ parser.add_argument('--output', help='Output path (default: <skills-dir>/SKILLS_CATALOG.md)')
323
+ parser.add_argument('--json', action='store_true', help='Also output JSON summary')
324
+ args = parser.parse_args()
325
+
326
+ skills_dir = Path(args.skills_dir).resolve()
327
+
328
+ if not skills_dir.exists() or not skills_dir.is_dir():
329
+ print(f"❌ Error: Skills directory not found: {skills_dir}")
330
+ sys.exit(2)
331
+
332
+ print(f"🔍 Scanning skills in: {skills_dir}")
333
+ print()
334
+
335
+ # Scan for skills
336
+ skills = scan_skills(skills_dir)
337
+
338
+ if not skills:
339
+ print("\n⚠️ No valid skills found.")
340
+ sys.exit(0)
341
+
342
+ print(f"\n📚 Found {len(skills)} skill(s)")
343
+
344
+ # Generate catalog
345
+ catalog_content = generate_catalog(skills)
346
+
347
+ # Determine output path
348
+ output_path = Path(args.output) if args.output else skills_dir / 'SKILLS_CATALOG.md'
349
+
350
+ try:
351
+ output_path.write_text(catalog_content)
352
+ print(f"✅ Catalog updated: {output_path}")
353
+ except Exception as e:
354
+ print(f"❌ Error writing catalog: {e}")
355
+ sys.exit(3)
356
+
357
+ # Optional JSON output
358
+ if args.json:
359
+ json_path = output_path.with_suffix('.json')
360
+ try:
361
+ json_path.write_text(json.dumps(skills, indent=2))
362
+ print(f"✅ JSON summary: {json_path}")
363
+ except Exception as e:
364
+ print(f"⚠️ Could not write JSON: {e}")
365
+
366
+ print("\n✅ Catalog update complete!")
367
+ sys.exit(0)
368
+
369
+
370
+ if __name__ == '__main__':
371
+ main()
@@ -0,0 +1,21 @@
1
+ # Core Skills (Public)
2
+
3
+ These skills are included in all installation packs and are suitable for public distribution.
4
+
5
+ ## Skills Included
6
+
7
+ | Skill | Purpose |
8
+ | ---------------- | --------------------------------- |
9
+ | `webcrawler/` | Documentation harvesting agent |
10
+ | `pdf-reader/` | PDF text extraction |
11
+ | `qdrant-memory/` | Semantic cache & long-term memory |
12
+
13
+ ## Usage
14
+
15
+ These skills are automatically installed when running:
16
+
17
+ ```bash
18
+ npx @techwavedev/agi-agent-kit init --pack=core
19
+ ```
20
+
21
+ All packs (core, ec, full) include these skills.