@techwavedev/agi-agent-kit 1.3.6 → 1.5.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 (758) hide show
  1. package/CHANGELOG.md +108 -0
  2. package/README.md +88 -59
  3. package/bin/init.js +964 -89
  4. package/package.json +1 -1
  5. package/templates/base/.agent/workflows/memory-usage.md +68 -0
  6. package/templates/base/.env.example +21 -4
  7. package/templates/base/AGENTS.md +96 -8
  8. package/templates/base/README.md +7 -7
  9. package/templates/base/data/workflows.json +162 -0
  10. package/templates/base/execution/memory_manager.py +9 -10
  11. package/templates/base/execution/memory_usage_proof.py +307 -0
  12. package/templates/base/execution/session_init.py +10 -6
  13. package/templates/skills/SKILLS_CATALOG.md +923 -914
  14. package/templates/skills/core/documentation/SKILL.md +33 -0
  15. package/templates/skills/core/documentation/scripts/__pycache__/analyze_code.cpython-312.pyc +0 -0
  16. package/templates/skills/core/documentation/scripts/__pycache__/detect_changes.cpython-312.pyc +0 -0
  17. package/templates/skills/core/documentation/scripts/__pycache__/generate_changelog.cpython-312.pyc +0 -0
  18. package/templates/skills/core/documentation/scripts/__pycache__/sync_docs.cpython-312.pyc +0 -0
  19. package/templates/skills/core/documentation/scripts/__pycache__/update_skill_docs.cpython-312.pyc +0 -0
  20. package/templates/skills/core/pdf-reader/SKILL.md +33 -0
  21. package/templates/skills/core/pdf-reader/scripts/__pycache__/extract_text.cpython-312.pyc +0 -0
  22. package/templates/skills/core/qdrant-memory/SKILL.md +33 -0
  23. package/templates/skills/core/qdrant-memory/scripts/__pycache__/benchmark_token_savings.cpython-312.pyc +0 -0
  24. package/templates/skills/core/qdrant-memory/scripts/__pycache__/bm25_index.cpython-312.pyc +0 -0
  25. package/templates/skills/core/qdrant-memory/scripts/__pycache__/embedding_utils.cpython-312.pyc +0 -0
  26. package/templates/skills/core/qdrant-memory/scripts/__pycache__/hybrid_search.cpython-312.pyc +0 -0
  27. package/templates/skills/core/qdrant-memory/scripts/__pycache__/init_collection.cpython-312.pyc +0 -0
  28. package/templates/skills/core/qdrant-memory/scripts/__pycache__/memory_retrieval.cpython-312.pyc +0 -0
  29. package/templates/skills/core/qdrant-memory/scripts/__pycache__/semantic_cache.cpython-312.pyc +0 -0
  30. package/templates/skills/core/qdrant-memory/scripts/__pycache__/test_skill.cpython-312.pyc +0 -0
  31. package/templates/skills/core/webcrawler/SKILL.md +33 -0
  32. package/templates/skills/core/webcrawler/scripts/__pycache__/crawl_docs.cpython-312.pyc +0 -0
  33. package/templates/skills/core/webcrawler/scripts/__pycache__/extract_page.cpython-312.pyc +0 -0
  34. package/templates/skills/core/webcrawler/scripts/__pycache__/filter_docs.cpython-312.pyc +0 -0
  35. package/templates/skills/extended/ai-agents/last30days/scripts/__pycache__/last30days.cpython-312.pyc +0 -0
  36. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/__init__.cpython-312.pyc +0 -0
  37. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/cache.cpython-312.pyc +0 -0
  38. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/dates.cpython-312.pyc +0 -0
  39. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/dedupe.cpython-312.pyc +0 -0
  40. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/env.cpython-312.pyc +0 -0
  41. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/http.cpython-312.pyc +0 -0
  42. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/models.cpython-312.pyc +0 -0
  43. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/normalize.cpython-312.pyc +0 -0
  44. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/openai_reddit.cpython-312.pyc +0 -0
  45. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/reddit_enrich.cpython-312.pyc +0 -0
  46. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/render.cpython-312.pyc +0 -0
  47. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/schema.cpython-312.pyc +0 -0
  48. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/score.cpython-312.pyc +0 -0
  49. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/ui.cpython-312.pyc +0 -0
  50. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/websearch.cpython-312.pyc +0 -0
  51. package/templates/skills/extended/ai-agents/last30days/scripts/lib/__pycache__/xai_x.cpython-312.pyc +0 -0
  52. package/templates/skills/extended/ai-agents/last30days/tests/__pycache__/__init__.cpython-312.pyc +0 -0
  53. package/templates/skills/extended/ai-agents/last30days/tests/__pycache__/test_cache.cpython-312.pyc +0 -0
  54. package/templates/skills/extended/ai-agents/last30days/tests/__pycache__/test_dates.cpython-312.pyc +0 -0
  55. package/templates/skills/extended/ai-agents/last30days/tests/__pycache__/test_dedupe.cpython-312.pyc +0 -0
  56. package/templates/skills/extended/ai-agents/last30days/tests/__pycache__/test_models.cpython-312.pyc +0 -0
  57. package/templates/skills/extended/ai-agents/last30days/tests/__pycache__/test_normalize.cpython-312.pyc +0 -0
  58. package/templates/skills/extended/ai-agents/last30days/tests/__pycache__/test_render.cpython-312.pyc +0 -0
  59. package/templates/skills/extended/ai-agents/last30days/tests/__pycache__/test_score.cpython-312.pyc +0 -0
  60. package/templates/skills/extended/ai-agents/voice-ai-engine-development/examples/__pycache__/complete_voice_engine.cpython-312.pyc +0 -0
  61. package/templates/skills/extended/ai-agents/voice-ai-engine-development/examples/__pycache__/gemini_agent_example.cpython-312.pyc +0 -0
  62. package/templates/skills/extended/ai-agents/voice-ai-engine-development/examples/__pycache__/interrupt_system_example.cpython-312.pyc +0 -0
  63. package/templates/skills/extended/ai-agents/voice-ai-engine-development/templates/__pycache__/base_worker_template.cpython-312.pyc +0 -0
  64. package/templates/skills/extended/ai-agents/voice-ai-engine-development/templates/__pycache__/multi_provider_factory_template.cpython-312.pyc +0 -0
  65. package/templates/skills/extended/ai-agents/youtube-summarizer/scripts/__pycache__/extract-transcript.cpython-312.pyc +0 -0
  66. package/templates/skills/extended/architecture/ddd-context-mapping/SKILL.md +85 -0
  67. package/templates/skills/extended/architecture/ddd-strategic-design/SKILL.md +85 -0
  68. package/templates/skills/extended/architecture/ddd-tactical-patterns/SKILL.md +86 -0
  69. package/templates/skills/extended/architecture/domain-driven-design/SKILL.md +107 -0
  70. package/templates/skills/extended/backend/dbos-golang/SKILL.md +167 -0
  71. package/templates/skills/extended/backend/dbos-python/SKILL.md +136 -0
  72. package/templates/skills/extended/backend/dbos-typescript/SKILL.md +145 -0
  73. package/templates/skills/extended/backend/laravel-expert/SKILL.md +219 -0
  74. package/templates/skills/extended/backend/senior-architect/scripts/__pycache__/architecture_diagram_generator.cpython-312.pyc +0 -0
  75. package/templates/skills/extended/backend/senior-architect/scripts/__pycache__/dependency_analyzer.cpython-312.pyc +0 -0
  76. package/templates/skills/extended/backend/senior-architect/scripts/__pycache__/project_architect.cpython-312.pyc +0 -0
  77. package/templates/skills/extended/blockchain/crypto-bd-agent/SKILL.md +282 -0
  78. package/templates/skills/extended/data/pdf/scripts/__pycache__/check_bounding_boxes.cpython-312.pyc +0 -0
  79. package/templates/skills/extended/data/pdf/scripts/__pycache__/check_bounding_boxes_test.cpython-312.pyc +0 -0
  80. package/templates/skills/extended/data/pdf/scripts/__pycache__/check_fillable_fields.cpython-312.pyc +0 -0
  81. package/templates/skills/extended/data/pdf/scripts/__pycache__/convert_pdf_to_images.cpython-312.pyc +0 -0
  82. package/templates/skills/extended/data/pdf/scripts/__pycache__/create_validation_image.cpython-312.pyc +0 -0
  83. package/templates/skills/extended/data/pdf/scripts/__pycache__/extract_form_field_info.cpython-312.pyc +0 -0
  84. package/templates/skills/extended/data/pdf/scripts/__pycache__/fill_fillable_fields.cpython-312.pyc +0 -0
  85. package/templates/skills/extended/data/pdf/scripts/__pycache__/fill_pdf_form_with_annotations.cpython-312.pyc +0 -0
  86. package/templates/skills/extended/data/pdf-official/scripts/__pycache__/check_bounding_boxes.cpython-312.pyc +0 -0
  87. package/templates/skills/extended/data/pdf-official/scripts/__pycache__/check_bounding_boxes_test.cpython-312.pyc +0 -0
  88. package/templates/skills/extended/data/pdf-official/scripts/__pycache__/check_fillable_fields.cpython-312.pyc +0 -0
  89. package/templates/skills/extended/data/pdf-official/scripts/__pycache__/convert_pdf_to_images.cpython-312.pyc +0 -0
  90. package/templates/skills/extended/data/pdf-official/scripts/__pycache__/create_validation_image.cpython-312.pyc +0 -0
  91. package/templates/skills/extended/data/pdf-official/scripts/__pycache__/extract_form_field_info.cpython-312.pyc +0 -0
  92. package/templates/skills/extended/data/pdf-official/scripts/__pycache__/fill_fillable_fields.cpython-312.pyc +0 -0
  93. package/templates/skills/extended/data/pdf-official/scripts/__pycache__/fill_pdf_form_with_annotations.cpython-312.pyc +0 -0
  94. package/templates/skills/extended/data/xlsx/__pycache__/recalc.cpython-312.pyc +0 -0
  95. package/templates/skills/extended/data/xlsx-official/__pycache__/recalc.cpython-312.pyc +0 -0
  96. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/0.cpython-312.pyc +0 -0
  97. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/1.cpython-312.pyc +0 -0
  98. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/10.cpython-312.pyc +0 -0
  99. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/100.cpython-312.pyc +0 -0
  100. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/101.cpython-312.pyc +0 -0
  101. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/102.cpython-312.pyc +0 -0
  102. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/103.cpython-312.pyc +0 -0
  103. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/104.cpython-312.pyc +0 -0
  104. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/105.cpython-312.pyc +0 -0
  105. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/106.cpython-312.pyc +0 -0
  106. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/107.cpython-312.pyc +0 -0
  107. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/108.cpython-312.pyc +0 -0
  108. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/109.cpython-312.pyc +0 -0
  109. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/11.cpython-312.pyc +0 -0
  110. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/110.cpython-312.pyc +0 -0
  111. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/111.cpython-312.pyc +0 -0
  112. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/112.cpython-312.pyc +0 -0
  113. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/113.cpython-312.pyc +0 -0
  114. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/114.cpython-312.pyc +0 -0
  115. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/115.cpython-312.pyc +0 -0
  116. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/116.cpython-312.pyc +0 -0
  117. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/117.cpython-312.pyc +0 -0
  118. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/118.cpython-312.pyc +0 -0
  119. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/119.cpython-312.pyc +0 -0
  120. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/12.cpython-312.pyc +0 -0
  121. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/120.cpython-312.pyc +0 -0
  122. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/121.cpython-312.pyc +0 -0
  123. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/122.cpython-312.pyc +0 -0
  124. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/123.cpython-312.pyc +0 -0
  125. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/124.cpython-312.pyc +0 -0
  126. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/125.cpython-312.pyc +0 -0
  127. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/126.cpython-312.pyc +0 -0
  128. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/127.cpython-312.pyc +0 -0
  129. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/128.cpython-312.pyc +0 -0
  130. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/129.cpython-312.pyc +0 -0
  131. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/13.cpython-312.pyc +0 -0
  132. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/130.cpython-312.pyc +0 -0
  133. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/131.cpython-312.pyc +0 -0
  134. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/132.cpython-312.pyc +0 -0
  135. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/133.cpython-312.pyc +0 -0
  136. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/134.cpython-312.pyc +0 -0
  137. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/135.cpython-312.pyc +0 -0
  138. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/136.cpython-312.pyc +0 -0
  139. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/137.cpython-312.pyc +0 -0
  140. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/138.cpython-312.pyc +0 -0
  141. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/139.cpython-312.pyc +0 -0
  142. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/14.cpython-312.pyc +0 -0
  143. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/140.cpython-312.pyc +0 -0
  144. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/141.cpython-312.pyc +0 -0
  145. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/142.cpython-312.pyc +0 -0
  146. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/143.cpython-312.pyc +0 -0
  147. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/144.cpython-312.pyc +0 -0
  148. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/145.cpython-312.pyc +0 -0
  149. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/146.cpython-312.pyc +0 -0
  150. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/147.cpython-312.pyc +0 -0
  151. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/148.cpython-312.pyc +0 -0
  152. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/149.cpython-312.pyc +0 -0
  153. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/15.cpython-312.pyc +0 -0
  154. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/150.cpython-312.pyc +0 -0
  155. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/151.cpython-312.pyc +0 -0
  156. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/152.cpython-312.pyc +0 -0
  157. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/153.cpython-312.pyc +0 -0
  158. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/154.cpython-312.pyc +0 -0
  159. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/155.cpython-312.pyc +0 -0
  160. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/156.cpython-312.pyc +0 -0
  161. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/157.cpython-312.pyc +0 -0
  162. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/158.cpython-312.pyc +0 -0
  163. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/159.cpython-312.pyc +0 -0
  164. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/16.cpython-312.pyc +0 -0
  165. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/160.cpython-312.pyc +0 -0
  166. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/161.cpython-312.pyc +0 -0
  167. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/162.cpython-312.pyc +0 -0
  168. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/163.cpython-312.pyc +0 -0
  169. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/17.cpython-312.pyc +0 -0
  170. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/18.cpython-312.pyc +0 -0
  171. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/19.cpython-312.pyc +0 -0
  172. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/2.cpython-312.pyc +0 -0
  173. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/20.cpython-312.pyc +0 -0
  174. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/21.cpython-312.pyc +0 -0
  175. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/22.cpython-312.pyc +0 -0
  176. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/23.cpython-312.pyc +0 -0
  177. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/24.cpython-312.pyc +0 -0
  178. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/25.cpython-312.pyc +0 -0
  179. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/26.cpython-312.pyc +0 -0
  180. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/27.cpython-312.pyc +0 -0
  181. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/28.cpython-312.pyc +0 -0
  182. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/29.cpython-312.pyc +0 -0
  183. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/3.cpython-312.pyc +0 -0
  184. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/30.cpython-312.pyc +0 -0
  185. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/31.cpython-312.pyc +0 -0
  186. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/32.cpython-312.pyc +0 -0
  187. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/33.cpython-312.pyc +0 -0
  188. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/34.cpython-312.pyc +0 -0
  189. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/35.cpython-312.pyc +0 -0
  190. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/36.cpython-312.pyc +0 -0
  191. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/37.cpython-312.pyc +0 -0
  192. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/38.cpython-312.pyc +0 -0
  193. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/39.cpython-312.pyc +0 -0
  194. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/4.cpython-312.pyc +0 -0
  195. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/40.cpython-312.pyc +0 -0
  196. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/41.cpython-312.pyc +0 -0
  197. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/42.cpython-312.pyc +0 -0
  198. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/43.cpython-312.pyc +0 -0
  199. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/44.cpython-312.pyc +0 -0
  200. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/45.cpython-312.pyc +0 -0
  201. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/46.cpython-312.pyc +0 -0
  202. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/47.cpython-312.pyc +0 -0
  203. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/48.cpython-312.pyc +0 -0
  204. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/49.cpython-312.pyc +0 -0
  205. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/5.cpython-312.pyc +0 -0
  206. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/50.cpython-312.pyc +0 -0
  207. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/51.cpython-312.pyc +0 -0
  208. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/52.cpython-312.pyc +0 -0
  209. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/53.cpython-312.pyc +0 -0
  210. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/54.cpython-312.pyc +0 -0
  211. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/55.cpython-312.pyc +0 -0
  212. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/56.cpython-312.pyc +0 -0
  213. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/57.cpython-312.pyc +0 -0
  214. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/58.cpython-312.pyc +0 -0
  215. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/59.cpython-312.pyc +0 -0
  216. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/6.cpython-312.pyc +0 -0
  217. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/60.cpython-312.pyc +0 -0
  218. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/61.cpython-312.pyc +0 -0
  219. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/62.cpython-312.pyc +0 -0
  220. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/63.cpython-312.pyc +0 -0
  221. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/64.cpython-312.pyc +0 -0
  222. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/65.cpython-312.pyc +0 -0
  223. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/66.cpython-312.pyc +0 -0
  224. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/67.cpython-312.pyc +0 -0
  225. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/68.cpython-312.pyc +0 -0
  226. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/69.cpython-312.pyc +0 -0
  227. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/7.cpython-312.pyc +0 -0
  228. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/70.cpython-312.pyc +0 -0
  229. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/71.cpython-312.pyc +0 -0
  230. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/72.cpython-312.pyc +0 -0
  231. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/73.cpython-312.pyc +0 -0
  232. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/74.cpython-312.pyc +0 -0
  233. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/75.cpython-312.pyc +0 -0
  234. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/76.cpython-312.pyc +0 -0
  235. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/77.cpython-312.pyc +0 -0
  236. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/78.cpython-312.pyc +0 -0
  237. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/79.cpython-312.pyc +0 -0
  238. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/8.cpython-312.pyc +0 -0
  239. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/80.cpython-312.pyc +0 -0
  240. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/81.cpython-312.pyc +0 -0
  241. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/82.cpython-312.pyc +0 -0
  242. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/83.cpython-312.pyc +0 -0
  243. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/84.cpython-312.pyc +0 -0
  244. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/85.cpython-312.pyc +0 -0
  245. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/86.cpython-312.pyc +0 -0
  246. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/87.cpython-312.pyc +0 -0
  247. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/88.cpython-312.pyc +0 -0
  248. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/89.cpython-312.pyc +0 -0
  249. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/9.cpython-312.pyc +0 -0
  250. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/90.cpython-312.pyc +0 -0
  251. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/91.cpython-312.pyc +0 -0
  252. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/92.cpython-312.pyc +0 -0
  253. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/93.cpython-312.pyc +0 -0
  254. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/94.cpython-312.pyc +0 -0
  255. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/95.cpython-312.pyc +0 -0
  256. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/96.cpython-312.pyc +0 -0
  257. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/97.cpython-312.pyc +0 -0
  258. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/98.cpython-312.pyc +0 -0
  259. package/templates/skills/extended/devops/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/__pycache__/99.cpython-312.pyc +0 -0
  260. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/0.cpython-312.pyc +0 -0
  261. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/1.cpython-312.pyc +0 -0
  262. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/10.cpython-312.pyc +0 -0
  263. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/100.cpython-312.pyc +0 -0
  264. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/101.cpython-312.pyc +0 -0
  265. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/102.cpython-312.pyc +0 -0
  266. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/103.cpython-312.pyc +0 -0
  267. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/104.cpython-312.pyc +0 -0
  268. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/105.cpython-312.pyc +0 -0
  269. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/106.cpython-312.pyc +0 -0
  270. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/107.cpython-312.pyc +0 -0
  271. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/108.cpython-312.pyc +0 -0
  272. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/109.cpython-312.pyc +0 -0
  273. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/11.cpython-312.pyc +0 -0
  274. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/110.cpython-312.pyc +0 -0
  275. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/111.cpython-312.pyc +0 -0
  276. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/112.cpython-312.pyc +0 -0
  277. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/113.cpython-312.pyc +0 -0
  278. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/114.cpython-312.pyc +0 -0
  279. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/115.cpython-312.pyc +0 -0
  280. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/116.cpython-312.pyc +0 -0
  281. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/117.cpython-312.pyc +0 -0
  282. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/118.cpython-312.pyc +0 -0
  283. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/119.cpython-312.pyc +0 -0
  284. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/12.cpython-312.pyc +0 -0
  285. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/120.cpython-312.pyc +0 -0
  286. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/121.cpython-312.pyc +0 -0
  287. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/122.cpython-312.pyc +0 -0
  288. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/123.cpython-312.pyc +0 -0
  289. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/124.cpython-312.pyc +0 -0
  290. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/125.cpython-312.pyc +0 -0
  291. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/126.cpython-312.pyc +0 -0
  292. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/127.cpython-312.pyc +0 -0
  293. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/128.cpython-312.pyc +0 -0
  294. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/129.cpython-312.pyc +0 -0
  295. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/13.cpython-312.pyc +0 -0
  296. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/130.cpython-312.pyc +0 -0
  297. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/131.cpython-312.pyc +0 -0
  298. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/132.cpython-312.pyc +0 -0
  299. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/133.cpython-312.pyc +0 -0
  300. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/134.cpython-312.pyc +0 -0
  301. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/135.cpython-312.pyc +0 -0
  302. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/136.cpython-312.pyc +0 -0
  303. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/137.cpython-312.pyc +0 -0
  304. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/138.cpython-312.pyc +0 -0
  305. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/139.cpython-312.pyc +0 -0
  306. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/14.cpython-312.pyc +0 -0
  307. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/140.cpython-312.pyc +0 -0
  308. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/141.cpython-312.pyc +0 -0
  309. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/142.cpython-312.pyc +0 -0
  310. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/143.cpython-312.pyc +0 -0
  311. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/144.cpython-312.pyc +0 -0
  312. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/145.cpython-312.pyc +0 -0
  313. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/146.cpython-312.pyc +0 -0
  314. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/147.cpython-312.pyc +0 -0
  315. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/148.cpython-312.pyc +0 -0
  316. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/149.cpython-312.pyc +0 -0
  317. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/15.cpython-312.pyc +0 -0
  318. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/150.cpython-312.pyc +0 -0
  319. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/151.cpython-312.pyc +0 -0
  320. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/152.cpython-312.pyc +0 -0
  321. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/153.cpython-312.pyc +0 -0
  322. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/154.cpython-312.pyc +0 -0
  323. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/155.cpython-312.pyc +0 -0
  324. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/156.cpython-312.pyc +0 -0
  325. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/157.cpython-312.pyc +0 -0
  326. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/158.cpython-312.pyc +0 -0
  327. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/159.cpython-312.pyc +0 -0
  328. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/16.cpython-312.pyc +0 -0
  329. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/160.cpython-312.pyc +0 -0
  330. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/161.cpython-312.pyc +0 -0
  331. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/162.cpython-312.pyc +0 -0
  332. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/163.cpython-312.pyc +0 -0
  333. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/17.cpython-312.pyc +0 -0
  334. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/18.cpython-312.pyc +0 -0
  335. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/19.cpython-312.pyc +0 -0
  336. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/2.cpython-312.pyc +0 -0
  337. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/20.cpython-312.pyc +0 -0
  338. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/21.cpython-312.pyc +0 -0
  339. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/22.cpython-312.pyc +0 -0
  340. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/23.cpython-312.pyc +0 -0
  341. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/24.cpython-312.pyc +0 -0
  342. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/25.cpython-312.pyc +0 -0
  343. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/26.cpython-312.pyc +0 -0
  344. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/27.cpython-312.pyc +0 -0
  345. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/28.cpython-312.pyc +0 -0
  346. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/29.cpython-312.pyc +0 -0
  347. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/3.cpython-312.pyc +0 -0
  348. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/30.cpython-312.pyc +0 -0
  349. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/31.cpython-312.pyc +0 -0
  350. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/32.cpython-312.pyc +0 -0
  351. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/33.cpython-312.pyc +0 -0
  352. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/34.cpython-312.pyc +0 -0
  353. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/35.cpython-312.pyc +0 -0
  354. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/36.cpython-312.pyc +0 -0
  355. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/37.cpython-312.pyc +0 -0
  356. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/38.cpython-312.pyc +0 -0
  357. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/39.cpython-312.pyc +0 -0
  358. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/4.cpython-312.pyc +0 -0
  359. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/40.cpython-312.pyc +0 -0
  360. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/41.cpython-312.pyc +0 -0
  361. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/42.cpython-312.pyc +0 -0
  362. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/43.cpython-312.pyc +0 -0
  363. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/44.cpython-312.pyc +0 -0
  364. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/45.cpython-312.pyc +0 -0
  365. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/46.cpython-312.pyc +0 -0
  366. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/47.cpython-312.pyc +0 -0
  367. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/48.cpython-312.pyc +0 -0
  368. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/49.cpython-312.pyc +0 -0
  369. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/5.cpython-312.pyc +0 -0
  370. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/50.cpython-312.pyc +0 -0
  371. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/51.cpython-312.pyc +0 -0
  372. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/52.cpython-312.pyc +0 -0
  373. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/53.cpython-312.pyc +0 -0
  374. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/54.cpython-312.pyc +0 -0
  375. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/55.cpython-312.pyc +0 -0
  376. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/56.cpython-312.pyc +0 -0
  377. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/57.cpython-312.pyc +0 -0
  378. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/58.cpython-312.pyc +0 -0
  379. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/59.cpython-312.pyc +0 -0
  380. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/6.cpython-312.pyc +0 -0
  381. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/60.cpython-312.pyc +0 -0
  382. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/61.cpython-312.pyc +0 -0
  383. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/62.cpython-312.pyc +0 -0
  384. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/63.cpython-312.pyc +0 -0
  385. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/64.cpython-312.pyc +0 -0
  386. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/65.cpython-312.pyc +0 -0
  387. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/66.cpython-312.pyc +0 -0
  388. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/67.cpython-312.pyc +0 -0
  389. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/68.cpython-312.pyc +0 -0
  390. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/69.cpython-312.pyc +0 -0
  391. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/7.cpython-312.pyc +0 -0
  392. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/70.cpython-312.pyc +0 -0
  393. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/71.cpython-312.pyc +0 -0
  394. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/72.cpython-312.pyc +0 -0
  395. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/73.cpython-312.pyc +0 -0
  396. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/74.cpython-312.pyc +0 -0
  397. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/75.cpython-312.pyc +0 -0
  398. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/76.cpython-312.pyc +0 -0
  399. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/77.cpython-312.pyc +0 -0
  400. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/78.cpython-312.pyc +0 -0
  401. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/79.cpython-312.pyc +0 -0
  402. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/8.cpython-312.pyc +0 -0
  403. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/80.cpython-312.pyc +0 -0
  404. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/81.cpython-312.pyc +0 -0
  405. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/82.cpython-312.pyc +0 -0
  406. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/83.cpython-312.pyc +0 -0
  407. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/84.cpython-312.pyc +0 -0
  408. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/85.cpython-312.pyc +0 -0
  409. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/86.cpython-312.pyc +0 -0
  410. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/87.cpython-312.pyc +0 -0
  411. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/88.cpython-312.pyc +0 -0
  412. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/89.cpython-312.pyc +0 -0
  413. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/9.cpython-312.pyc +0 -0
  414. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/90.cpython-312.pyc +0 -0
  415. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/91.cpython-312.pyc +0 -0
  416. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/92.cpython-312.pyc +0 -0
  417. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/93.cpython-312.pyc +0 -0
  418. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/94.cpython-312.pyc +0 -0
  419. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/95.cpython-312.pyc +0 -0
  420. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/96.cpython-312.pyc +0 -0
  421. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/97.cpython-312.pyc +0 -0
  422. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/98.cpython-312.pyc +0 -0
  423. package/templates/skills/extended/devops/loki-mode/benchmarks/results/humaneval-loki-solutions/__pycache__/99.cpython-312.pyc +0 -0
  424. package/templates/skills/extended/documentation/docx/ooxml/scripts/__pycache__/pack.cpython-312.pyc +0 -0
  425. package/templates/skills/extended/documentation/docx/ooxml/scripts/__pycache__/unpack.cpython-312.pyc +0 -0
  426. package/templates/skills/extended/documentation/docx/ooxml/scripts/__pycache__/validate.cpython-312.pyc +0 -0
  427. package/templates/skills/extended/documentation/docx/ooxml/scripts/validation/__pycache__/__init__.cpython-312.pyc +0 -0
  428. package/templates/skills/extended/documentation/docx/ooxml/scripts/validation/__pycache__/base.cpython-312.pyc +0 -0
  429. package/templates/skills/extended/documentation/docx/ooxml/scripts/validation/__pycache__/docx.cpython-312.pyc +0 -0
  430. package/templates/skills/extended/documentation/docx/ooxml/scripts/validation/__pycache__/pptx.cpython-312.pyc +0 -0
  431. package/templates/skills/extended/documentation/docx/ooxml/scripts/validation/__pycache__/redlining.cpython-312.pyc +0 -0
  432. package/templates/skills/extended/documentation/docx/scripts/__pycache__/__init__.cpython-312.pyc +0 -0
  433. package/templates/skills/extended/documentation/docx/scripts/__pycache__/document.cpython-312.pyc +0 -0
  434. package/templates/skills/extended/documentation/docx/scripts/__pycache__/utilities.cpython-312.pyc +0 -0
  435. package/templates/skills/extended/documentation/product-manager-toolkit/scripts/__pycache__/customer_interview_analyzer.cpython-312.pyc +0 -0
  436. package/templates/skills/extended/documentation/product-manager-toolkit/scripts/__pycache__/rice_prioritizer.cpython-312.pyc +0 -0
  437. package/templates/skills/extended/frontend/pptx/ooxml/scripts/__pycache__/pack.cpython-312.pyc +0 -0
  438. package/templates/skills/extended/frontend/pptx/ooxml/scripts/__pycache__/unpack.cpython-312.pyc +0 -0
  439. package/templates/skills/extended/frontend/pptx/ooxml/scripts/__pycache__/validate.cpython-312.pyc +0 -0
  440. package/templates/skills/extended/frontend/pptx/ooxml/scripts/validation/__pycache__/__init__.cpython-312.pyc +0 -0
  441. package/templates/skills/extended/frontend/pptx/ooxml/scripts/validation/__pycache__/base.cpython-312.pyc +0 -0
  442. package/templates/skills/extended/frontend/pptx/ooxml/scripts/validation/__pycache__/docx.cpython-312.pyc +0 -0
  443. package/templates/skills/extended/frontend/pptx/ooxml/scripts/validation/__pycache__/pptx.cpython-312.pyc +0 -0
  444. package/templates/skills/extended/frontend/pptx/ooxml/scripts/validation/__pycache__/redlining.cpython-312.pyc +0 -0
  445. package/templates/skills/extended/frontend/pptx/scripts/__pycache__/inventory.cpython-312.pyc +0 -0
  446. package/templates/skills/extended/frontend/pptx/scripts/__pycache__/rearrange.cpython-312.pyc +0 -0
  447. package/templates/skills/extended/frontend/pptx/scripts/__pycache__/replace.cpython-312.pyc +0 -0
  448. package/templates/skills/extended/frontend/pptx/scripts/__pycache__/thumbnail.cpython-312.pyc +0 -0
  449. package/templates/skills/extended/frontend/react-flow-architect/SKILL.md +647 -0
  450. package/templates/skills/extended/frontend/senior-fullstack/scripts/__pycache__/code_quality_analyzer.cpython-312.pyc +0 -0
  451. package/templates/skills/extended/frontend/senior-fullstack/scripts/__pycache__/fullstack_scaffolder.cpython-312.pyc +0 -0
  452. package/templates/skills/extended/frontend/senior-fullstack/scripts/__pycache__/project_scaffolder.cpython-312.pyc +0 -0
  453. package/templates/skills/extended/frontend/ui-ux-pro-max/scripts/__pycache__/core.cpython-312.pyc +0 -0
  454. package/templates/skills/extended/frontend/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-312.pyc +0 -0
  455. package/templates/skills/extended/frontend/ui-ux-pro-max/scripts/__pycache__/search.cpython-312.pyc +0 -0
  456. package/templates/skills/extended/mobile/app-store-optimization/__pycache__/ab_test_planner.cpython-312.pyc +0 -0
  457. package/templates/skills/extended/mobile/app-store-optimization/__pycache__/aso_scorer.cpython-312.pyc +0 -0
  458. package/templates/skills/extended/mobile/app-store-optimization/__pycache__/competitor_analyzer.cpython-312.pyc +0 -0
  459. package/templates/skills/extended/mobile/app-store-optimization/__pycache__/keyword_analyzer.cpython-312.pyc +0 -0
  460. package/templates/skills/extended/mobile/app-store-optimization/__pycache__/launch_checklist.cpython-312.pyc +0 -0
  461. package/templates/skills/extended/mobile/app-store-optimization/__pycache__/localization_helper.cpython-312.pyc +0 -0
  462. package/templates/skills/extended/mobile/app-store-optimization/__pycache__/metadata_optimizer.cpython-312.pyc +0 -0
  463. package/templates/skills/extended/mobile/app-store-optimization/__pycache__/review_analyzer.cpython-312.pyc +0 -0
  464. package/templates/skills/extended/other/oss-hunter/bin/__pycache__/hunter.cpython-312.pyc +0 -0
  465. package/templates/skills/extended/other/typescript-expert/scripts/__pycache__/ts_diagnostic.cpython-312.pyc +0 -0
  466. package/templates/skills/extended/security/laravel-security-audit/SKILL.md +257 -0
  467. package/templates/skills/extended/workflow/slack-gif-creator/core/__pycache__/easing.cpython-312.pyc +0 -0
  468. package/templates/skills/extended/workflow/slack-gif-creator/core/__pycache__/frame_composer.cpython-312.pyc +0 -0
  469. package/templates/skills/extended/workflow/slack-gif-creator/core/__pycache__/gif_builder.cpython-312.pyc +0 -0
  470. package/templates/skills/extended/workflow/slack-gif-creator/core/__pycache__/validators.cpython-312.pyc +0 -0
  471. package/templates/skills/knowledge/ai-agents/notebooklm-rag/SKILL.md +35 -0
  472. package/templates/skills/knowledge/ai-agents/parallel-agents/SKILL.md +35 -0
  473. package/templates/skills/knowledge/ai-agents/prompt-engineering-patterns/scripts/__pycache__/optimize-prompt.cpython-312.pyc +0 -0
  474. package/templates/skills/knowledge/architecture/architecture/SKILL.md +35 -0
  475. package/templates/skills/knowledge/architecture/brainstorming/SKILL.md +35 -0
  476. package/templates/skills/knowledge/architecture/executing-plans/SKILL.md +35 -0
  477. package/templates/skills/knowledge/architecture/plan-writing/SKILL.md +35 -0
  478. package/templates/skills/knowledge/backend/api-design-principles/assets/__pycache__/rest-api-template.cpython-312.pyc +0 -0
  479. package/templates/skills/knowledge/backend/api-patterns/SKILL.md +34 -0
  480. package/templates/skills/knowledge/backend/api-patterns/scripts/__pycache__/api_validator.cpython-312.pyc +0 -0
  481. package/templates/skills/knowledge/backend/database-design/SKILL.md +35 -0
  482. package/templates/skills/knowledge/backend/database-design/scripts/__pycache__/schema_validator.cpython-312.pyc +0 -0
  483. package/templates/skills/knowledge/backend/nodejs-best-practices/SKILL.md +35 -0
  484. package/templates/skills/knowledge/backend/python-patterns/SKILL.md +35 -0
  485. package/templates/skills/knowledge/content/content-creator/scripts/__pycache__/brand_voice_analyzer.cpython-312.pyc +0 -0
  486. package/templates/skills/knowledge/content/content-creator/scripts/__pycache__/seo_optimizer.cpython-312.pyc +0 -0
  487. package/templates/skills/knowledge/content/geo-fundamentals/SKILL.md +34 -0
  488. package/templates/skills/knowledge/content/geo-fundamentals/scripts/__pycache__/geo_checker.cpython-312.pyc +0 -0
  489. package/templates/skills/knowledge/content/seo-fundamentals/scripts/__pycache__/seo_checker.cpython-312.pyc +0 -0
  490. package/templates/skills/knowledge/debugging/performance-profiling/SKILL.md +35 -0
  491. package/templates/skills/knowledge/debugging/performance-profiling/scripts/__pycache__/lighthouse_audit.cpython-312.pyc +0 -0
  492. package/templates/skills/knowledge/devops/bash-linux/SKILL.md +35 -0
  493. package/templates/skills/knowledge/devops/powershell-windows/SKILL.md +35 -0
  494. package/templates/skills/knowledge/devops/server-management/SKILL.md +35 -0
  495. package/templates/skills/knowledge/documentation/documentation-templates/SKILL.md +35 -0
  496. package/templates/skills/knowledge/frontend/design-md/SKILL.md +35 -0
  497. package/templates/skills/knowledge/frontend/frontend-design/SKILL.md +35 -0
  498. package/templates/skills/knowledge/frontend/frontend-design/scripts/__pycache__/accessibility_checker.cpython-312.pyc +0 -0
  499. package/templates/skills/knowledge/frontend/frontend-design/scripts/__pycache__/ux_audit.cpython-312.pyc +0 -0
  500. package/templates/skills/knowledge/frontend/nextjs-best-practices/SKILL.md +35 -0
  501. package/templates/skills/knowledge/frontend/react-components/SKILL.md +35 -0
  502. package/templates/skills/knowledge/frontend/react-patterns/SKILL.md +35 -0
  503. package/templates/skills/knowledge/frontend/stitch-loop/SKILL.md +35 -0
  504. package/templates/skills/knowledge/frontend/tailwind-patterns/SKILL.md +35 -0
  505. package/templates/skills/knowledge/gaming/game-development/2d-games/SKILL.md +35 -0
  506. package/templates/skills/knowledge/gaming/game-development/3d-games/SKILL.md +35 -0
  507. package/templates/skills/knowledge/gaming/game-development/SKILL.md +35 -0
  508. package/templates/skills/knowledge/gaming/game-development/game-art/SKILL.md +35 -0
  509. package/templates/skills/knowledge/gaming/game-development/game-audio/SKILL.md +35 -0
  510. package/templates/skills/knowledge/gaming/game-development/game-design/SKILL.md +35 -0
  511. package/templates/skills/knowledge/gaming/game-development/mobile-games/SKILL.md +35 -0
  512. package/templates/skills/knowledge/gaming/game-development/multiplayer/SKILL.md +35 -0
  513. package/templates/skills/knowledge/gaming/game-development/pc-games/SKILL.md +35 -0
  514. package/templates/skills/knowledge/gaming/game-development/vr-ar/SKILL.md +35 -0
  515. package/templates/skills/knowledge/gaming/game-development/web-games/SKILL.md +35 -0
  516. package/templates/skills/knowledge/i18n/i18n-localization/SKILL.md +35 -0
  517. package/templates/skills/knowledge/i18n/i18n-localization/scripts/__pycache__/i18n_checker.cpython-312.pyc +0 -0
  518. package/templates/skills/knowledge/mobile/mobile-design/SKILL.md +35 -0
  519. package/templates/skills/knowledge/mobile/mobile-design/scripts/__pycache__/mobile_audit.cpython-312.pyc +0 -0
  520. package/templates/skills/knowledge/security/red-team-tactics/SKILL.md +35 -0
  521. package/templates/skills/knowledge/security/vulnerability-scanner/SKILL.md +35 -0
  522. package/templates/skills/knowledge/security/vulnerability-scanner/scripts/__pycache__/security_scan.cpython-312.pyc +0 -0
  523. package/templates/skills/knowledge/testing/lint-and-validate/SKILL.md +34 -0
  524. package/templates/skills/knowledge/testing/lint-and-validate/scripts/__pycache__/lint_runner.cpython-312.pyc +0 -0
  525. package/templates/skills/knowledge/testing/lint-and-validate/scripts/__pycache__/type_coverage.cpython-312.pyc +0 -0
  526. package/templates/skills/knowledge/testing/tdd-workflow/SKILL.md +35 -0
  527. package/templates/skills/knowledge/testing/testing-patterns/scripts/__pycache__/test_runner.cpython-312.pyc +0 -0
  528. package/templates/skills/knowledge/testing/webapp-testing/SKILL.md +35 -0
  529. package/templates/skills/knowledge/testing/webapp-testing/scripts/__pycache__/playwright_runner.cpython-312.pyc +0 -0
  530. package/templates/skills/knowledge/workflow/app-builder/SKILL.md +35 -0
  531. package/templates/skills/knowledge/workflow/app-builder/templates/SKILL.md +35 -0
  532. package/templates/skills/knowledge/workflow/behavioral-modes/SKILL.md +35 -0
  533. package/templates/skills/knowledge/workflow/clean-code/SKILL.md +34 -0
  534. package/templates/skills/knowledge/workflow/deployment-procedures/SKILL.md +35 -0
  535. package/templates/skills/knowledge/workflow/intelligent-routing/SKILL.md +35 -0
  536. package/templates/skills/knowledge/workflow/plugin-discovery/SKILL.md +35 -0
  537. package/templates/skills/knowledge/workflow/plugin-discovery/scripts/__pycache__/platform_setup.cpython-312.pyc +0 -0
  538. package/templates/skills/knowledge/workflow/self-update/SKILL.md +35 -0
  539. package/templates/skills/knowledge/workflow/self-update/scripts/__pycache__/update_kit.cpython-312.pyc +0 -0
  540. package/templates/skills/knowledge/workflow/verification-before-completion/SKILL.md +35 -0
  541. package/templates/base/.agent/scripts/release_gate.py +0 -148
  542. package/templates/base/.agent/workflows/release-protocol.md +0 -43
  543. package/templates/skills/extended/ai-agents/internal-comms-anthropic/LICENSE.txt +0 -202
  544. package/templates/skills/extended/ai-agents/internal-comms-anthropic/SKILL.md +0 -73
  545. package/templates/skills/extended/ai-agents/internal-comms-anthropic/examples/3p-updates.md +0 -47
  546. package/templates/skills/extended/ai-agents/internal-comms-anthropic/examples/company-newsletter.md +0 -65
  547. package/templates/skills/extended/ai-agents/internal-comms-anthropic/examples/faq-answers.md +0 -30
  548. package/templates/skills/extended/ai-agents/internal-comms-anthropic/examples/general-comms.md +0 -16
  549. package/templates/skills/extended/ai-agents/skill-creator-ms/SKILL.md +0 -654
  550. package/templates/skills/extended/documentation/docx-official/LICENSE.txt +0 -30
  551. package/templates/skills/extended/documentation/docx-official/SKILL.md +0 -238
  552. package/templates/skills/extended/documentation/docx-official/docx-js.md +0 -350
  553. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
  554. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
  555. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
  556. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
  557. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
  558. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
  559. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
  560. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
  561. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
  562. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
  563. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
  564. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
  565. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
  566. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
  567. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
  568. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
  569. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
  570. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
  571. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
  572. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
  573. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
  574. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
  575. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
  576. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
  577. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
  578. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
  579. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
  580. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
  581. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
  582. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
  583. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
  584. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/mce/mc.xsd +0 -75
  585. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/microsoft/wml-2010.xsd +0 -560
  586. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/microsoft/wml-2012.xsd +0 -67
  587. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/microsoft/wml-2018.xsd +0 -14
  588. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -20
  589. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -13
  590. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
  591. package/templates/skills/extended/documentation/docx-official/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -8
  592. package/templates/skills/extended/documentation/docx-official/ooxml/scripts/__pycache__/pack.cpython-312.pyc +0 -0
  593. package/templates/skills/extended/documentation/docx-official/ooxml/scripts/__pycache__/unpack.cpython-312.pyc +0 -0
  594. package/templates/skills/extended/documentation/docx-official/ooxml/scripts/__pycache__/validate.cpython-312.pyc +0 -0
  595. package/templates/skills/extended/documentation/docx-official/ooxml/scripts/pack.py +0 -159
  596. package/templates/skills/extended/documentation/docx-official/ooxml/scripts/unpack.py +0 -29
  597. package/templates/skills/extended/documentation/docx-official/ooxml/scripts/validate.py +0 -69
  598. package/templates/skills/extended/documentation/docx-official/ooxml/scripts/validation/__init__.py +0 -15
  599. package/templates/skills/extended/documentation/docx-official/ooxml/scripts/validation/__pycache__/__init__.cpython-312.pyc +0 -0
  600. package/templates/skills/extended/documentation/docx-official/ooxml/scripts/validation/__pycache__/base.cpython-312.pyc +0 -0
  601. package/templates/skills/extended/documentation/docx-official/ooxml/scripts/validation/__pycache__/docx.cpython-312.pyc +0 -0
  602. package/templates/skills/extended/documentation/docx-official/ooxml/scripts/validation/__pycache__/pptx.cpython-312.pyc +0 -0
  603. package/templates/skills/extended/documentation/docx-official/ooxml/scripts/validation/__pycache__/redlining.cpython-312.pyc +0 -0
  604. package/templates/skills/extended/documentation/docx-official/ooxml/scripts/validation/base.py +0 -951
  605. package/templates/skills/extended/documentation/docx-official/ooxml/scripts/validation/docx.py +0 -274
  606. package/templates/skills/extended/documentation/docx-official/ooxml/scripts/validation/pptx.py +0 -315
  607. package/templates/skills/extended/documentation/docx-official/ooxml/scripts/validation/redlining.py +0 -279
  608. package/templates/skills/extended/documentation/docx-official/ooxml.md +0 -610
  609. package/templates/skills/extended/documentation/docx-official/scripts/__init__.py +0 -1
  610. package/templates/skills/extended/documentation/docx-official/scripts/__pycache__/__init__.cpython-312.pyc +0 -0
  611. package/templates/skills/extended/documentation/docx-official/scripts/__pycache__/document.cpython-312.pyc +0 -0
  612. package/templates/skills/extended/documentation/docx-official/scripts/__pycache__/utilities.cpython-312.pyc +0 -0
  613. package/templates/skills/extended/documentation/docx-official/scripts/document.py +0 -1276
  614. package/templates/skills/extended/documentation/docx-official/scripts/templates/comments.xml +0 -3
  615. package/templates/skills/extended/documentation/docx-official/scripts/templates/commentsExtended.xml +0 -3
  616. package/templates/skills/extended/documentation/docx-official/scripts/templates/commentsExtensible.xml +0 -3
  617. package/templates/skills/extended/documentation/docx-official/scripts/templates/commentsIds.xml +0 -3
  618. package/templates/skills/extended/documentation/docx-official/scripts/templates/people.xml +0 -3
  619. package/templates/skills/extended/documentation/docx-official/scripts/utilities.py +0 -374
  620. package/templates/skills/extended/frontend/active-directory-attacks/SKILL.md +0 -424
  621. package/templates/skills/extended/frontend/active-directory-attacks/references/advanced-attacks.md +0 -382
  622. package/templates/skills/extended/frontend/brand-guidelines-anthropic/LICENSE.txt +0 -202
  623. package/templates/skills/extended/frontend/brand-guidelines-anthropic/SKILL.md +0 -114
  624. package/templates/skills/extended/frontend/brand-guidelines-community/LICENSE.txt +0 -202
  625. package/templates/skills/extended/frontend/brand-guidelines-community/SKILL.md +0 -114
  626. package/templates/skills/extended/frontend/burp-suite-testing/SKILL.md +0 -421
  627. package/templates/skills/extended/frontend/discord-bot-architect/SKILL.md +0 -318
  628. package/templates/skills/extended/frontend/event-sourcing-architect/SKILL.md +0 -99
  629. package/templates/skills/extended/frontend/event-store-design/SKILL.md +0 -490
  630. package/templates/skills/extended/frontend/html-injection-testing/SKILL.md +0 -539
  631. package/templates/skills/extended/frontend/hybrid-search-implementation/SKILL.md +0 -73
  632. package/templates/skills/extended/frontend/hybrid-search-implementation/resources/implementation-playbook.md +0 -567
  633. package/templates/skills/extended/frontend/istio-traffic-management/SKILL.md +0 -378
  634. package/templates/skills/extended/frontend/linux-privilege-escalation/SKILL.md +0 -545
  635. package/templates/skills/extended/frontend/mcp-builder-ms/SKILL.md +0 -344
  636. package/templates/skills/extended/frontend/memory-forensics/SKILL.md +0 -532
  637. package/templates/skills/extended/frontend/metasploit-framework/SKILL.md +0 -519
  638. package/templates/skills/extended/frontend/ml-engineer/SKILL.md +0 -209
  639. package/templates/skills/extended/frontend/mlops-engineer/SKILL.md +0 -260
  640. package/templates/skills/extended/frontend/monorepo-architect/SKILL.md +0 -102
  641. package/templates/skills/extended/frontend/monorepo-management/SKILL.md +0 -76
  642. package/templates/skills/extended/frontend/monorepo-management/resources/implementation-playbook.md +0 -621
  643. package/templates/skills/extended/frontend/pptx-official/LICENSE.txt +0 -30
  644. package/templates/skills/extended/frontend/pptx-official/SKILL.md +0 -525
  645. package/templates/skills/extended/frontend/pptx-official/html2pptx.md +0 -625
  646. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
  647. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
  648. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
  649. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
  650. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
  651. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
  652. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
  653. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
  654. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
  655. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
  656. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
  657. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
  658. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
  659. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
  660. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
  661. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
  662. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
  663. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
  664. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
  665. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
  666. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
  667. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
  668. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
  669. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
  670. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
  671. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
  672. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
  673. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
  674. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
  675. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
  676. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
  677. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/mce/mc.xsd +0 -75
  678. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/microsoft/wml-2010.xsd +0 -560
  679. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/microsoft/wml-2012.xsd +0 -67
  680. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/microsoft/wml-2018.xsd +0 -14
  681. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -20
  682. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -13
  683. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
  684. package/templates/skills/extended/frontend/pptx-official/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -8
  685. package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/__pycache__/pack.cpython-312.pyc +0 -0
  686. package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/__pycache__/unpack.cpython-312.pyc +0 -0
  687. package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/__pycache__/validate.cpython-312.pyc +0 -0
  688. package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/pack.py +0 -159
  689. package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/unpack.py +0 -29
  690. package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/validate.py +0 -69
  691. package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/validation/__init__.py +0 -15
  692. package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/validation/__pycache__/__init__.cpython-312.pyc +0 -0
  693. package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/validation/__pycache__/base.cpython-312.pyc +0 -0
  694. package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/validation/__pycache__/docx.cpython-312.pyc +0 -0
  695. package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/validation/__pycache__/pptx.cpython-312.pyc +0 -0
  696. package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/validation/__pycache__/redlining.cpython-312.pyc +0 -0
  697. package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/validation/base.py +0 -951
  698. package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/validation/docx.py +0 -274
  699. package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/validation/pptx.py +0 -315
  700. package/templates/skills/extended/frontend/pptx-official/ooxml/scripts/validation/redlining.py +0 -279
  701. package/templates/skills/extended/frontend/pptx-official/ooxml.md +0 -427
  702. package/templates/skills/extended/frontend/pptx-official/scripts/__pycache__/inventory.cpython-312.pyc +0 -0
  703. package/templates/skills/extended/frontend/pptx-official/scripts/__pycache__/rearrange.cpython-312.pyc +0 -0
  704. package/templates/skills/extended/frontend/pptx-official/scripts/__pycache__/replace.cpython-312.pyc +0 -0
  705. package/templates/skills/extended/frontend/pptx-official/scripts/__pycache__/thumbnail.cpython-312.pyc +0 -0
  706. package/templates/skills/extended/frontend/pptx-official/scripts/html2pptx.js +0 -979
  707. package/templates/skills/extended/frontend/pptx-official/scripts/inventory.py +0 -1020
  708. package/templates/skills/extended/frontend/pptx-official/scripts/rearrange.py +0 -231
  709. package/templates/skills/extended/frontend/pptx-official/scripts/replace.py +0 -385
  710. package/templates/skills/extended/frontend/pptx-official/scripts/thumbnail.py +0 -450
  711. package/templates/skills/extended/frontend/quant-analyst/SKILL.md +0 -94
  712. package/templates/skills/extended/frontend/risk-metrics-calculation/SKILL.md +0 -74
  713. package/templates/skills/extended/frontend/risk-metrics-calculation/resources/implementation-playbook.md +0 -554
  714. package/templates/skills/extended/frontend/security-bluebook-builder/SKILL.md +0 -63
  715. package/templates/skills/extended/frontend/skill-creator/LICENSE.txt +0 -202
  716. package/templates/skills/extended/frontend/skill-creator/README.md +0 -270
  717. package/templates/skills/extended/frontend/skill-creator/SKILL.md +0 -634
  718. package/templates/skills/extended/frontend/skill-creator/references/output-patterns.md +0 -82
  719. package/templates/skills/extended/frontend/skill-creator/references/workflows.md +0 -28
  720. package/templates/skills/extended/frontend/skill-creator/scripts/__pycache__/init_skill.cpython-312.pyc +0 -0
  721. package/templates/skills/extended/frontend/skill-creator/scripts/__pycache__/package_skill.cpython-312.pyc +0 -0
  722. package/templates/skills/extended/frontend/skill-creator/scripts/__pycache__/quick_validate.cpython-312.pyc +0 -0
  723. package/templates/skills/extended/frontend/skill-creator/scripts/init_skill.py +0 -303
  724. package/templates/skills/extended/frontend/skill-creator/scripts/package_skill.py +0 -110
  725. package/templates/skills/extended/frontend/skill-creator/scripts/quick_validate.py +0 -95
  726. package/templates/skills/extended/frontend/telegram-bot-builder/SKILL.md +0 -295
  727. package/templates/skills/extended/frontend/using-superpowers/SKILL.md +0 -128
  728. package/templates/skills/extended/gaming/audio-transcriber/CHANGELOG.md +0 -137
  729. package/templates/skills/extended/gaming/audio-transcriber/README.md +0 -340
  730. package/templates/skills/extended/gaming/audio-transcriber/SKILL.md +0 -599
  731. package/templates/skills/extended/gaming/audio-transcriber/examples/basic-transcription.sh +0 -250
  732. package/templates/skills/extended/gaming/audio-transcriber/references/tools-comparison.md +0 -352
  733. package/templates/skills/extended/gaming/audio-transcriber/scripts/__pycache__/transcribe.cpython-312.pyc +0 -0
  734. package/templates/skills/extended/gaming/audio-transcriber/scripts/install-requirements.sh +0 -190
  735. package/templates/skills/extended/gaming/audio-transcriber/scripts/transcribe.py +0 -486
  736. package/templates/skills/extended/gaming/internal-comms-community/LICENSE.txt +0 -202
  737. package/templates/skills/extended/gaming/internal-comms-community/SKILL.md +0 -73
  738. package/templates/skills/extended/gaming/startup-business-analyst-market-opportunity/SKILL.md +0 -281
  739. package/templates/skills/knowledge/frontend/design-md/design-md/README.md +0 -34
  740. package/templates/skills/knowledge/frontend/design-md/design-md/SKILL.md +0 -193
  741. package/templates/skills/knowledge/frontend/design-md/design-md/examples/DESIGN.md +0 -154
  742. package/templates/skills/knowledge/frontend/react-components/react-components/README.md +0 -36
  743. package/templates/skills/knowledge/frontend/react-components/react-components/SKILL.md +0 -53
  744. package/templates/skills/knowledge/frontend/react-components/react-components/examples/gold-standard-card.tsx +0 -80
  745. package/templates/skills/knowledge/frontend/react-components/react-components/package-lock.json +0 -231
  746. package/templates/skills/knowledge/frontend/react-components/react-components/package.json +0 -16
  747. package/templates/skills/knowledge/frontend/react-components/react-components/resources/architecture-checklist.md +0 -15
  748. package/templates/skills/knowledge/frontend/react-components/react-components/resources/component-template.tsx +0 -37
  749. package/templates/skills/knowledge/frontend/react-components/react-components/resources/stitch-api-reference.md +0 -14
  750. package/templates/skills/knowledge/frontend/react-components/react-components/resources/style-guide.json +0 -27
  751. package/templates/skills/knowledge/frontend/react-components/react-components/scripts/fetch-stitch.sh +0 -30
  752. package/templates/skills/knowledge/frontend/react-components/react-components/scripts/validate.js +0 -68
  753. package/templates/skills/knowledge/frontend/stitch-loop/stitch-loop/README.md +0 -54
  754. package/templates/skills/knowledge/frontend/stitch-loop/stitch-loop/SKILL.md +0 -235
  755. package/templates/skills/knowledge/frontend/stitch-loop/stitch-loop/examples/SITE.md +0 -73
  756. package/templates/skills/knowledge/frontend/stitch-loop/stitch-loop/examples/next-prompt.md +0 -25
  757. package/templates/skills/knowledge/frontend/stitch-loop/stitch-loop/resources/baton-schema.md +0 -61
  758. package/templates/skills/knowledge/frontend/stitch-loop/stitch-loop/resources/site-template.md +0 -104
package/bin/init.js CHANGED
@@ -9,8 +9,8 @@
9
9
  *
10
10
  * Packs:
11
11
  * core - Base framework + common skills (webcrawler, pdf-reader, qdrant-memory)
12
- * medium - Core + 76 specialized skills + .agent structure
13
- * full - Medium + 782 community skills (complete suite)
12
+ * medium - Core + 89 specialized skills + .agent structure
13
+ * full - Medium + 785 community skills (complete suite)
14
14
  *
15
15
  * Options:
16
16
  * --path=<dir> Target directory (default: current)
@@ -22,6 +22,7 @@ const fs = require("fs");
22
22
  const path = require("path");
23
23
  const readline = require("readline");
24
24
  const { execSync } = require("child_process");
25
+ const os = require("os");
25
26
 
26
27
  // Color utilities for terminal output
27
28
  const colors = {
@@ -54,19 +55,44 @@ const PACKS = {
54
55
  medium: {
55
56
  name: "Medium",
56
57
  description:
57
- "Core + 76 specialized skills + .agent structure (API, Security, Design, AI, Architecture)",
58
+ "Core + 89 specialized skills + .agent structure (API, Security, Design, AI, Architecture)",
58
59
  skills: ["core", "knowledge"],
59
60
  includeAgent: true,
60
61
  },
61
62
  full: {
62
63
  name: "Full Suite",
63
64
  description:
64
- "Complete suite (Medium + 782 community skills from antigravity-awesome-skills)",
65
+ "Complete suite (Medium + 785 community skills from antigravity-awesome-skills v5.4.0)",
65
66
  skills: ["core", "knowledge", "extended"],
66
67
  includeAgent: true,
67
68
  },
69
+ custom: {
70
+ name: "Custom",
71
+ description: "Core + selected domains only",
72
+ skills: ["core"], // domains are resolved at install time via options.domains
73
+ includeAgent: true,
74
+ },
68
75
  };
69
76
 
77
+ // Domain definitions — maps domain name to skill counts per tier
78
+ const DOMAINS = [
79
+ { id: "ai-agents", label: "AI Agents & Orchestration", knowledge: 9, extended: 93 },
80
+ { id: "architecture", label: "Architecture & System Design", knowledge: 6, extended: 32 },
81
+ { id: "backend", label: "Backend & APIs", knowledge: 8, extended: 100 },
82
+ { id: "blockchain", label: "Blockchain & Web3", knowledge: 1, extended: 3 },
83
+ { id: "content", label: "Content & Copy", knowledge: 6, extended: 21 },
84
+ { id: "debugging", label: "Debugging & Observability", knowledge: 5, extended: 36 },
85
+ { id: "devops", label: "DevOps & Cloud", knowledge: 5, extended: 140 },
86
+ { id: "documentation",label: "Documentation", knowledge: 3, extended: 34 },
87
+ { id: "frontend", label: "Frontend & UI/UX", knowledge: 11, extended: 61 },
88
+ { id: "gaming", label: "Gaming & Creative", knowledge: 1, extended: 4 },
89
+ { id: "mobile", label: "Mobile (iOS/Android/RN)", knowledge: 1, extended: 8 },
90
+ { id: "security", label: "Security & Pen Testing", knowledge: 2, extended: 38 },
91
+ { id: "testing", label: "Testing & QA", knowledge: 6, extended: 32 },
92
+ { id: "workflow", label: "Workflow & Automation", knowledge: 10, extended: 142 },
93
+ { id: "i18n", label: "i18n & Localisation", knowledge: 1, extended: 0 },
94
+ ];
95
+
70
96
  // Parse command line arguments
71
97
  function parseArgs() {
72
98
  const args = process.argv.slice(2);
@@ -76,6 +102,8 @@ function parseArgs() {
76
102
  path: process.cwd(),
77
103
  symlinks: true,
78
104
  help: false,
105
+ global: false,
106
+ ci: false, // --ci: skip all prompts, use safe defaults
79
107
  };
80
108
 
81
109
  for (const arg of args) {
@@ -85,8 +113,13 @@ function parseArgs() {
85
113
  options.pack = arg.split("=")[1];
86
114
  } else if (arg.startsWith("--path=")) {
87
115
  options.path = path.resolve(arg.split("=")[1]);
116
+ } else if (arg === "--global" || arg === "-g") {
117
+ options.global = true;
118
+ options.path = path.join(os.homedir() || process.env.HOME || process.env.USERPROFILE || "", ".agent");
88
119
  } else if (arg === "--no-symlinks") {
89
120
  options.symlinks = false;
121
+ } else if (arg === "--ci") {
122
+ options.ci = true;
90
123
  } else if (arg === "--help" || arg === "-h") {
91
124
  options.help = true;
92
125
  }
@@ -106,6 +139,7 @@ ${colors.bright}Usage:${colors.reset}
106
139
  ${colors.bright}Options:${colors.reset}
107
140
  --pack=<pack> Select skill pack (core, medium, full)
108
141
  --path=<dir> Target directory (default: current)
142
+ --global, -g Install globally to ~/.agent directory
109
143
  --no-symlinks Skip GEMINI.md/CLAUDE.md symlink creation
110
144
  --help Show this help message
111
145
 
@@ -113,10 +147,10 @@ ${colors.bright}Packs:${colors.reset}
113
147
  ${colors.green}core${colors.reset} Base framework + common skills
114
148
  (webcrawler, pdf-reader, qdrant-memory, documentation)
115
149
 
116
- ${colors.blue}medium${colors.reset} Core + 76 specialized skills + .agent/ structure
150
+ ${colors.blue}medium${colors.reset} Core + 89 specialized skills + .agent/ structure
117
151
  (API, Security, Design, AI, Architecture, Testing...)
118
152
 
119
- ${colors.yellow}full${colors.reset} Complete suite (Medium + 782 community skills)
153
+ ${colors.yellow}full${colors.reset} Complete suite (Medium + 785 community skills)
120
154
  (All antigravity-awesome-skills, AGI-adapted)
121
155
 
122
156
  ${colors.bright}Examples:${colors.reset}
@@ -128,51 +162,540 @@ ${colors.bright}Note:${colors.reset} Most scripts require ${colors.cyan}python3$
128
162
  `);
129
163
  }
130
164
 
131
- // Prompt user for pack selection
165
+ // Prompt user for pack selection (including custom domain picker)
132
166
  async function promptPackSelection() {
167
+ console.log(`\n${colors.bright}Which pack would you like to install?${colors.reset}\n`);
168
+ console.log(` ${colors.green}1. core${colors.reset} — 4 essential skills (webcrawler, pdf-reader, qdrant-memory, documentation)`);
169
+ console.log(` ${colors.blue}2. medium${colors.reset} — Core + 89 domain skills + .agent/ structure`);
170
+ console.log(` ${colors.yellow}3. full${colors.reset} — Everything: Medium + 785 community skills (878 total)`);
171
+ console.log(` ${colors.cyan}4. custom${colors.reset} — Core + you choose specific domains\n`);
172
+
173
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
174
+
175
+ return new Promise((resolve) => {
176
+ rl.question(` Enter choice (1-4) or pack name (default: core): `, async (answer) => {
177
+ rl.close();
178
+ const choice = answer.trim().toLowerCase();
179
+
180
+ if (choice === "2" || choice === "medium" || choice === "knowledge") {
181
+ resolve("medium");
182
+ } else if (choice === "3" || choice === "full") {
183
+ resolve("full");
184
+ } else if (choice === "4" || choice === "custom") {
185
+ const domains = await promptDomainSelection();
186
+ resolve(domains.length > 0 ? "custom" : "core");
187
+ } else {
188
+ if (choice !== "1" && choice !== "core" && choice !== "") {
189
+ log.warn("Invalid choice, defaulting to core");
190
+ }
191
+ resolve("core");
192
+ }
193
+ });
194
+ });
195
+ }
196
+
197
+ // Multi-select domain picker for custom installs
198
+ async function promptDomainSelection() {
199
+ const templatesPath = path.join(__dirname, "..", "templates", "skills");
200
+
201
+ console.log(`\n${colors.bright}━━━ Custom Domain Selection ━━━${colors.reset}`);
202
+ console.log(` ${colors.cyan}Core skills (webcrawler, pdf-reader, qdrant-memory, documentation) are always included.${colors.reset}\n`);
203
+ console.log(` The numbers show ${colors.blue}professional skills${colors.reset} (curated, same as medium pack)`);
204
+ console.log(` and ${colors.yellow}community skills${colors.reset} (antigravity-awesome-skills, same as full pack).`);
205
+ console.log(` You get both tiers for each domain you select.\n`);
206
+ console.log(` ${"".padEnd(38)} ${colors.blue}■ professional${colors.reset} ${colors.yellow}■ community${colors.reset}`);
207
+ console.log(` ${"-".repeat(72)}`);
208
+
209
+ DOMAINS.forEach((d, i) => {
210
+ const num = String(i + 1).padStart(2);
211
+ const knStr = d.knowledge > 0 ? `${d.knowledge} skills` : `— `;
212
+ const exStr = d.extended > 0 ? `${d.extended} skills` : `—`;
213
+ const knColored = d.knowledge > 0
214
+ ? `${colors.blue}+${knStr}${colors.reset}`.padEnd(22)
215
+ : `${colors.dim}${knStr}${colors.reset}`.padEnd(22);
216
+ const exColored = d.extended > 0
217
+ ? `${colors.yellow}+${exStr}${colors.reset}`
218
+ : `${colors.dim}${exStr}${colors.reset}`;
219
+ console.log(` ${colors.bright}${num}.${colors.reset} ${d.label.padEnd(36)} ${knColored} ${exColored}`);
220
+ });
221
+
222
+ console.log(`\n Enter domain numbers separated by commas, or ranges (e.g. 1,3,5-7,9)`);
223
+ console.log(` Type ${colors.cyan}all${colors.reset} to select all, or press Enter to skip (core only)\n`);
224
+
225
+ const rl2 = readline.createInterface({ input: process.stdin, output: process.stdout });
226
+
227
+ return new Promise((resolve) => {
228
+ rl2.question(` Your domains: `, (answer) => {
229
+ rl2.close();
230
+ const input = answer.trim().toLowerCase();
231
+
232
+ if (!input) {
233
+ log.info("No domains selected — core only.");
234
+ resolve([]);
235
+ return;
236
+ }
237
+
238
+ if (input === "all") {
239
+ log.success(`All ${DOMAINS.length} domains selected.`);
240
+ // Store selected domain ids on process env for copySkills to read
241
+ process.env._AGI_CUSTOM_DOMAINS = DOMAINS.map((d) => d.id).join(",");
242
+ resolve(DOMAINS.map((d) => d.id));
243
+ return;
244
+ }
245
+
246
+ // Parse numbers and ranges like "1,3,5-7"
247
+ const selected = [];
248
+ const parts = input.split(",");
249
+ for (const part of parts) {
250
+ const rangeParts = part.trim().split("-").map(Number);
251
+ if (rangeParts.length === 2) {
252
+ const [from, to] = rangeParts;
253
+ for (let n = from; n <= to; n++) {
254
+ if (n >= 1 && n <= DOMAINS.length) selected.push(DOMAINS[n - 1].id);
255
+ }
256
+ } else {
257
+ const n = parseInt(part.trim(), 10);
258
+ if (n >= 1 && n <= DOMAINS.length) selected.push(DOMAINS[n - 1].id);
259
+ }
260
+ }
261
+
262
+ if (selected.length === 0) {
263
+ log.warn("No valid domains selected — falling back to core.");
264
+ resolve([]);
265
+ return;
266
+ }
267
+
268
+ const names = selected.map((id) => DOMAINS.find((d) => d.id === id).label);
269
+ log.success(`Selected domains: ${colors.cyan}${names.join(", ")}${colors.reset}`);
270
+ process.env._AGI_CUSTOM_DOMAINS = selected.join(",");
271
+ resolve(selected);
272
+ });
273
+ });
274
+ }
275
+
276
+ // Prompt user for install scope: project-local vs global
277
+ async function promptInstallScope(options) {
278
+ // Skip prompt if the user already passed --global or an explicit --path
279
+ if (options.global || options._pathExplicit) {
280
+ return;
281
+ }
282
+
283
+ // Platform compatibility reference
284
+ const PLATFORM_COMPAT = [
285
+ { name: "Gemini CLI", globalDir: "~/.gemini/skills", globalOk: true, note: "" },
286
+ { name: "Claude Code", globalDir: "~/.claude/skills", globalOk: true, note: "" },
287
+ { name: "Cursor", globalDir: "~/.cursor/skills", globalOk: false, note: "reads skills from project dir only" },
288
+ { name: "Codex CLI", globalDir: "~/.codex/skills", globalOk: true, note: "requires CODEX_HOME env var if non-default" },
289
+ { name: "OpenCode", globalDir: "(project dir only)", globalOk: false, note: "global skill dirs not yet supported" },
290
+ { name: "OpenClaw", globalDir: "~/.openclaw/skills", globalOk: true, note: "" },
291
+ { name: "AdaL CLI", globalDir: "~/.adal/skills", globalOk: true, note: "" },
292
+ { name: "Copilot/VS", globalDir: "(project dir only)", globalOk: false, note: "skills loaded per-workspace only" },
293
+ ];
294
+
295
+ console.log(`\n${colors.bright}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${colors.reset}`);
296
+ console.log(`${colors.bright} INSTALL SCOPE${colors.reset}`);
297
+ console.log(`${colors.bright}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${colors.reset}\n`);
298
+
299
+ console.log(` ${colors.bright}Option 1 — Project install (default, safest)${colors.reset}`);
300
+ console.log(` ─────────────────────────────────────────────`);
301
+ console.log(` Skills and agents are installed inside the ${colors.cyan}current directory${colors.reset}.`);
302
+ console.log(` Only this project can use them.\n`);
303
+ console.log(` ${colors.green}✔ Pitfalls to be aware of:${colors.reset}`);
304
+ console.log(` • You must run init again for every new project`);
305
+ console.log(` • Skills are NOT shared across projects`);
306
+ console.log(` • Existing files in this directory ${colors.yellow}may be overwritten${colors.reset} (e.g. AGENTS.md)\n`);
307
+
308
+ console.log(` ${colors.bright}Option 2 — Global install${colors.reset}`);
309
+ console.log(` ─────────────────────────────────────────────`);
310
+ console.log(` Skills installed once in ${colors.cyan}~/.agent${colors.reset} and symlinked into`);
311
+ console.log(` each supported AI platform's global skills directory.\n`);
312
+ console.log(` ${colors.yellow}⚠ Pitfalls to be aware of:${colors.reset}`);
313
+ console.log(` • Existing files in platform dirs ${colors.red}may be overwritten${colors.reset}`);
314
+ console.log(` • Not all platforms support global skill dirs (see table below)`);
315
+ console.log(` • Symlinks may conflict if you later do a project install`);
316
+ console.log(` • Removing skills requires manual cleanup of ~/.agent and symlinks\n`);
317
+
318
+ console.log(` ${colors.bright}Platform Global Install Compatibility:${colors.reset}`);
319
+ console.log(` ${"Platform".padEnd(14)} ${"Global Dir".padEnd(26)} ${"Supported?".padEnd(12)} Notes`);
320
+ console.log(` ${"─".repeat(72)}`);
321
+ for (const p of PLATFORM_COMPAT) {
322
+ const supported = p.globalOk
323
+ ? `${colors.green}✔ Yes${colors.reset} `
324
+ : `${colors.red}✖ No${colors.reset} `;
325
+ const note = p.note ? `${colors.yellow}⚠ ${p.note}${colors.reset}` : "";
326
+ console.log(` ${p.name.padEnd(14)} ${p.globalDir.padEnd(26)} ${supported} ${note}`);
327
+ }
328
+
329
+ console.log(`\n ${colors.bright}${colors.red}⚠ DISCLAIMER${colors.reset}`);
330
+ console.log(` ${"─".repeat(60)}`);
331
+ console.log(` By proceeding you acknowledge that:`);
332
+ console.log(` • This installer may ${colors.yellow}create, overwrite, or symlink files${colors.reset}`);
333
+ console.log(` in your project directory or home directory (~/.agent,`);
334
+ console.log(` ~/.gemini, ~/.claude, ~/.cursor, etc.)`);
335
+ console.log(` • ${colors.red}Existing AGENTS.md, GEMINI.md, CLAUDE.md${colors.reset} and platform`);
336
+ console.log(` skill dirs may be replaced.`);
337
+ console.log(` • The authors of agi-agent-kit ${colors.bright}assume no responsibility${colors.reset}`);
338
+ console.log(` for data loss, configuration conflicts, or any damages`);
339
+ console.log(` resulting from using this installer.`);
340
+ console.log(` • ${colors.cyan}Always back up important files before proceeding.${colors.reset}`);
341
+ console.log(``);
342
+
133
343
  const rl = readline.createInterface({
134
344
  input: process.stdin,
135
345
  output: process.stdout,
136
346
  });
137
347
 
138
348
  return new Promise((resolve) => {
139
- console.log(
140
- `\n${colors.bright}Which pack would you like to install?${colors.reset}\n`,
141
- );
142
- console.log(
143
- ` 1. ${colors.green}core${colors.reset} Essential skills (webcrawler, pdf-reader, qdrant-memory, documentation)`,
144
- );
145
- console.log(
146
- ` 2. ${colors.blue}medium${colors.reset} Core + 76 specialized skills + .agent/ structure`,
147
- );
148
- console.log(
149
- ` 3. ${colors.yellow}full${colors.reset} Complete suite (Medium + 782 community skills)\n`,
150
- );
151
-
152
349
  rl.question(
153
- `Enter choice (1-3) or pack name (default: core): `,
350
+ ` Choose install scope (1=Project / 2=Global, default: 1): `,
154
351
  (answer) => {
155
352
  rl.close();
156
- const choice = answer.trim().toLowerCase();
157
-
158
- if (choice === "1" || choice === "core" || choice === "")
159
- resolve("core");
160
- else if (
161
- choice === "2" ||
162
- choice === "medium" ||
163
- choice === "knowledge"
164
- )
165
- resolve("medium");
166
- else if (choice === "3" || choice === "full") resolve("full");
167
- else {
168
- log.warn("Invalid choice, defaulting to core");
169
- resolve("core");
353
+ const choice = answer.trim();
354
+
355
+ if (choice === "2" || choice.toLowerCase() === "global" || choice.toLowerCase() === "g") {
356
+ const os = require("os");
357
+ options.global = true;
358
+ options.path = path.join(os.homedir(), ".agent");
359
+ console.log(``);
360
+ log.warn(`Global install selected. Symlinks will be created in ~/.gemini/skills, ~/.claude/skills, etc.`);
361
+ log.warn(`Platforms marked ✖ above will NOT pick up global skills automatically.`);
362
+ log.success(`Target directory: ${colors.cyan}${options.path}${colors.reset}`);
363
+ } else {
364
+ log.success(`Project install — target: ${colors.cyan}${options.path}${colors.reset}`);
170
365
  }
366
+ resolve();
171
367
  },
172
368
  );
173
369
  });
174
370
  }
175
371
 
372
+ // Detect existing files that will be overwritten and offer to back them up
373
+ async function backupExistingFiles(targetPath, options = {}) {
374
+ const os = require("os");
375
+ const homeDir = os.homedir();
376
+
377
+ // Files and dirs the installer will create/overwrite in the target path
378
+ const WATCHED = [
379
+ "AGENTS.md", "GEMINI.md", "CLAUDE.md", "OPENCODE.md",
380
+ "COPILOT.md", "OPENCLAW.md", ".env", "directives",
381
+ "execution", "skills", "skill-creator", ".agent",
382
+ ];
383
+
384
+ // For global installs, also check platform dirs that will be symlinked
385
+ const GLOBAL_PLATFORM_DIRS = options.global ? [
386
+ path.join(homeDir, ".gemini", "skills"),
387
+ path.join(homeDir, ".claude", "skills"),
388
+ path.join(homeDir, ".codex", "skills"),
389
+ path.join(homeDir, ".cursor", "skills"),
390
+ path.join(homeDir, ".openclaw", "skills"),
391
+ path.join(homeDir, ".adal", "skills"),
392
+ ] : [];
393
+
394
+ const existing = WATCHED.filter((f) =>
395
+ fs.existsSync(path.join(targetPath, f)),
396
+ );
397
+
398
+ const existingGlobalDirs = GLOBAL_PLATFORM_DIRS.filter((p) =>
399
+ fs.existsSync(p) && !fs.lstatSync(p).isSymbolicLink(),
400
+ );
401
+
402
+ if (existing.length === 0 && existingGlobalDirs.length === 0) {
403
+ return; // Nothing to back up
404
+ }
405
+
406
+ console.log(`\n${colors.bright}━━━ Backup Existing Files ━━━${colors.reset}\n`);
407
+ console.log(` The following items already exist and ${colors.yellow}may be overwritten${colors.reset}:\n`);
408
+
409
+ for (const f of existing) {
410
+ const full = path.join(targetPath, f);
411
+ const isDir = fs.statSync(full).isDirectory();
412
+ console.log(` ${colors.yellow}${isDir ? "📁" : "📄"} ${full}${colors.reset}`);
413
+ }
414
+ for (const d of existingGlobalDirs) {
415
+ console.log(` ${colors.yellow}📁 ${d}${colors.reset} ${colors.red}(real dir — will be replaced by symlink)${colors.reset}`);
416
+ }
417
+
418
+ console.log(`
419
+ ${colors.bright}We strongly recommend backing these up before continuing.${colors.reset}`);
420
+ const backupBase = options.global
421
+ ? path.join(homeDir, `.agi-global-backup-<timestamp>`)
422
+ : path.join(targetPath, `.agi-backup-<timestamp>`);
423
+ console.log(` Backup will be saved to: ${colors.cyan}${backupBase}${colors.reset}\n`);
424
+
425
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
426
+
427
+ return new Promise((resolve) => {
428
+ rl.question(` Create backup now? (Y/n, default: Y): `, (answer) => {
429
+ rl.close();
430
+ const choice = answer.trim().toLowerCase();
431
+
432
+ if (choice === "n" || choice === "no") {
433
+ log.warn("Backup skipped — existing files may be overwritten.");
434
+ resolve();
435
+ return;
436
+ }
437
+
438
+ const ts = new Date().toISOString().replace(/[:.]/g, "-").replace("T", "_").slice(0, 19);
439
+ const backupDir = options.global
440
+ ? path.join(homeDir, `.agi-global-backup-${ts}`)
441
+ : path.join(targetPath, `.agi-backup-${ts}`);
442
+ fs.mkdirSync(backupDir, { recursive: true });
443
+
444
+ let backed = 0;
445
+ for (const f of existing) {
446
+ const src = path.join(targetPath, f);
447
+ const dest = path.join(backupDir, f);
448
+ try { copyDirSync(src, dest) || fs.copyFileSync(src, dest); backed++; } catch (e) {
449
+ log.warn(`Could not back up ${f}: ${e.message}`);
450
+ }
451
+ }
452
+ for (const d of existingGlobalDirs) {
453
+ const name = d.replace(homeDir, "~").replace(/\//g, "_").replace(/^_/, "");
454
+ const dest = path.join(backupDir, name);
455
+ try { copyDirSync(d, dest); backed++; } catch (e) {
456
+ log.warn(`Could not back up ${d}: ${e.message}`);
457
+ }
458
+ }
459
+
460
+ log.success(`Backup created: ${colors.cyan}${backupDir}${colors.reset} (${backed} items)`);
461
+ resolve();
462
+ });
463
+ });
464
+ }
465
+
466
+ // Generate an uninstall script for global installs
467
+ function generateUninstallScript(installPath, options) {
468
+ const os = require("os");
469
+ const homeDir = os.homedir();
470
+ const scriptPath = path.join(installPath, "uninstall-agi.sh");
471
+
472
+ const platformSymlinks = [
473
+ path.join(homeDir, ".gemini", "skills"),
474
+ path.join(homeDir, ".claude", "skills"),
475
+ path.join(homeDir, ".codex", "skills"),
476
+ path.join(homeDir, ".cursor", "skills"),
477
+ path.join(homeDir, ".openclaw", "skills"),
478
+ path.join(homeDir, ".adal", "skills"),
479
+ ];
480
+
481
+ const instructionLinks = ["GEMINI.md", "CLAUDE.md", "OPENCODE.md", "COPILOT.md", "OPENCLAW.md"]
482
+ .map((f) => path.join(installPath, f));
483
+
484
+ // Build the uninstall script content as a plain string to avoid quote escaping issues
485
+ let script = "#!/usr/bin/env bash\n";
486
+ script += "# AGI Agent Kit - Global Uninstaller\n";
487
+ script += "# Generated: " + new Date().toISOString() + "\n";
488
+ script += "# Install path: " + installPath + "\n";
489
+ script += "\n";
490
+ script += "set -e\n";
491
+ script += "\n";
492
+ script += "echo 'AGI Agent Kit - Global Uninstaller'\n";
493
+ script += "echo 'This will remove:'\n";
494
+ script += "echo ' - Skill symlinks from platform dirs (~/.gemini/skills, ~/.claude/skills, etc.)'\n";
495
+ script += "echo ' - Instruction file symlinks (GEMINI.md, CLAUDE.md, etc.)'\n";
496
+ script += "echo ' - The install directory: " + installPath + "'\n";
497
+ script += "echo ''\n";
498
+ script += "read -r -p 'Proceed? (y/N): ' confirm\n";
499
+ script += "if [ \"$confirm\" != 'y' ] && [ \"$confirm\" != 'Y' ]; then echo 'Aborted.'; exit 0; fi\n";
500
+ script += "\n";
501
+ script += "echo 'Removing platform skill symlinks...'\n";
502
+ for (const p of platformSymlinks) {
503
+ script += "[ -L '" + p + "' ] && rm '" + p + "' && echo ' Removed: " + p + "' || echo ' Skipped (not a symlink): " + p + "'\n";
504
+ }
505
+ script += "\n";
506
+ script += "echo 'Removing instruction file symlinks...'\n";
507
+ for (const p of instructionLinks) {
508
+ script += "[ -L '" + p + "' ] && rm '" + p + "' && echo ' Removed: " + p + "' || echo ' Skipped: " + p + "'\n";
509
+ }
510
+ script += "\n";
511
+ script += "echo 'Removing install directory: " + installPath + "'\n";
512
+ script += "rm -rf '" + installPath + "'\n";
513
+ script += "echo 'AGI Agent Kit global install removed successfully.'\n";
514
+ script += "echo 'Note: your .env and any backups were NOT removed.'\n";
515
+
516
+ fs.writeFileSync(scriptPath, script, { mode: 0o755 });
517
+ log.success("Uninstall script created: " + colors.cyan + scriptPath + colors.reset);
518
+ console.log(" Run it anytime to cleanly remove this global install:");
519
+ console.log(" " + colors.yellow + "bash " + scriptPath + colors.reset + "\n");
520
+ }
521
+
522
+ // Prompt user for local Qdrant + Ollama usage
523
+ async function promptLocalInfrastructure() {
524
+ // ── Step 1: Detect what's already running ──────────────────────────────────
525
+ const detected = { ollama: false, docker: false, qdrant: false };
526
+ let ollamaUrl = "http://localhost:11434";
527
+ let qdrantUrl = "http://localhost:6333";
528
+
529
+ try { execSync("ollama --version", { stdio: "pipe" }); detected.ollama = true; } catch (e) {}
530
+ try { execSync("docker --version", { stdio: "pipe" }); detected.docker = true; } catch (e) {}
531
+ try {
532
+ execSync(`curl -sf ${qdrantUrl}/healthz`, { stdio: "pipe", timeout: 3000 });
533
+ detected.qdrant = true;
534
+ } catch (e) {}
535
+
536
+ const icon = (ok) => ok ? `${colors.green}✔ detected${colors.reset}` : `${colors.red}✖ not found${colors.reset}`;
537
+
538
+ console.log(`\n${colors.bright}━━━ Local Memory Infrastructure (Qdrant + Ollama) ━━━${colors.reset}\n`);
539
+ console.log(` This toolkit supports a ${colors.cyan}local vector memory system${colors.reset} powered by:`);
540
+ console.log(` • ${colors.green}Qdrant${colors.reset} — local vector database for semantic agent memory`);
541
+ console.log(` • ${colors.green}Ollama${colors.reset} — local LLM runtime for private embeddings (nomic-embed-text)\n`);
542
+ console.log(` ${colors.bright}Current status:${colors.reset}`);
543
+ console.log(` Ollama CLI ${icon(detected.ollama)}`);
544
+ console.log(` Docker CLI ${icon(detected.docker)}`);
545
+ console.log(` Qdrant API ${icon(detected.qdrant)} (${qdrantUrl})\n`);
546
+
547
+ // ── Step 2: Ask enable/skip ────────────────────────────────────────────────
548
+ const allReady = detected.ollama && detected.qdrant;
549
+ if (allReady) {
550
+ console.log(` ${colors.green}✔ Both services detected — enabling memory is recommended.${colors.reset}\n`);
551
+ }
552
+
553
+ console.log(` ${colors.bright}1. Yes${colors.reset} — enable memory (Qdrant + Ollama)`);
554
+ console.log(` ${colors.bright}2. Skip${colors.reset} — disable for now (can enable later in .env)\n`);
555
+
556
+ const answer1 = await _ask(` Enable memory? (1/2, default: 1): `);
557
+ const wantsMemory = !(answer1 === "2" || ["skip","no","n"].includes(answer1.toLowerCase()));
558
+
559
+ if (!wantsMemory) {
560
+ log.info("Memory infrastructure skipped.");
561
+ return { useLocal: false, detected, ollamaUrl, qdrantUrl };
562
+ }
563
+
564
+ // ── Step 3: Per-service resolution when not detected ──────────────────────
565
+ if (!detected.ollama) {
566
+ console.log(`\n ${colors.yellow}⚠ Ollama not detected at localhost.${colors.reset}`);
567
+ console.log(` ${colors.bright}What would you like to do?${colors.reset}`);
568
+ console.log(` ${colors.bright}1.${colors.reset} I'll install it locally → ${colors.cyan}https://ollama.com/download${colors.reset}`);
569
+ console.log(` ${colors.bright}2.${colors.reset} I have it on a custom URL (remote server / Docker host)\n`);
570
+ const a = await _ask(` Choice (1/2, default: 1): `);
571
+ if (a === "2") {
572
+ const url = await _ask(` Enter Ollama URL (e.g. http://192.168.1.10:11434): `);
573
+ if (url.trim()) {
574
+ ollamaUrl = url.trim().replace(/\/$/, "");
575
+ log.success(`Ollama URL set to: ${colors.cyan}${ollamaUrl}${colors.reset}`);
576
+ // Verify it's reachable
577
+ try {
578
+ execSync(`curl -sf ${ollamaUrl}/api/tags`, { stdio: "pipe", timeout: 4000 });
579
+ log.success(`Ollama reachable at ${ollamaUrl}`);
580
+ detected.ollama = true;
581
+ } catch (e) {
582
+ log.warn(`Could not reach Ollama at ${ollamaUrl} — make sure it's running.`);
583
+ }
584
+ }
585
+ } else {
586
+ console.log(` ${colors.cyan}Install Ollama, then run:${colors.reset} ${colors.yellow}ollama pull nomic-embed-text${colors.reset}`);
587
+ console.log(` Memory will be written to .env — start Ollama before using the agent.\n`);
588
+ }
589
+ }
590
+
591
+ if (!detected.qdrant) {
592
+ console.log(`\n ${colors.yellow}⚠ Qdrant not detected at ${qdrantUrl}.${colors.reset}`);
593
+ console.log(` ${colors.bright}What would you like to do?${colors.reset}`);
594
+ console.log(` ${colors.bright}1.${colors.reset} I'll run it locally via Docker`);
595
+ console.log(` ${colors.yellow}docker run -d -p 6333:6333 -v qdrant_storage:/qdrant/storage qdrant/qdrant${colors.reset}`);
596
+ console.log(` ${colors.bright}2.${colors.reset} I have Qdrant on a custom URL (Qdrant Cloud, remote server, etc.)\n`);
597
+ const a = await _ask(` Choice (1/2, default: 1): `);
598
+ if (a === "2") {
599
+ const url = await _ask(` Enter Qdrant URL (e.g. https://xyz.qdrant.tech or http://10.0.0.5:6333): `);
600
+ if (url.trim()) {
601
+ qdrantUrl = url.trim().replace(/\/$/, "");
602
+ const apiKey = await _ask(` Qdrant API key (leave blank if not required): `);
603
+ log.success(`Qdrant URL set to: ${colors.cyan}${qdrantUrl}${colors.reset}`);
604
+ // Verify
605
+ try {
606
+ const header = apiKey.trim() ? `-H 'api-key: ${apiKey.trim()}'` : "";
607
+ execSync(`curl -sf ${header} ${qdrantUrl}/healthz`, { stdio: "pipe", timeout: 4000 });
608
+ log.success(`Qdrant reachable at ${qdrantUrl}`);
609
+ detected.qdrant = true;
610
+ } catch (e) {
611
+ log.warn(`Could not reach Qdrant at ${qdrantUrl} — check URL and API key.`);
612
+ }
613
+ return { useLocal: true, detected, ollamaUrl, qdrantUrl, qdrantApiKey: apiKey.trim() };
614
+ }
615
+ } else {
616
+ if (!detected.docker) {
617
+ console.log(`\n ${colors.yellow}⚠ Docker also not found.${colors.reset} Install Docker Desktop first:`);
618
+ console.log(` ${colors.cyan}https://www.docker.com/products/docker-desktop${colors.reset}`);
619
+ }
620
+ console.log(` Memory config will be written to .env — start Qdrant before using the agent.\n`);
621
+ }
622
+ }
623
+
624
+ log.success("Memory infrastructure configured.");
625
+ return { useLocal: true, detected, ollamaUrl, qdrantUrl };
626
+ }
627
+
628
+ // Helper: promisified readline question
629
+ function _ask(question) {
630
+ return new Promise((resolve) => {
631
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
632
+ rl.question(question, (answer) => { rl.close(); resolve(answer.trim()); });
633
+ });
634
+ }
635
+
636
+ // Write (or merge) a .env file with memory configuration
637
+ function writeEnvFile(targetPath, infraChoice) {
638
+ const envPath = path.join(targetPath, ".env");
639
+ const envExamplePath = path.join(
640
+ __dirname,
641
+ "..",
642
+ "templates",
643
+ "base",
644
+ ".env.example",
645
+ );
646
+
647
+ // Build the memory block
648
+ const memoryEnabled = infraChoice.useLocal ? "true" : "false";
649
+ const qdrantUrl = infraChoice.qdrantUrl || "http://localhost:6333";
650
+ const qdrantApiKey = infraChoice.qdrantApiKey || "";
651
+ const ollamaUrl = infraChoice.ollamaUrl || "http://localhost:11434";
652
+
653
+ const memoryBlock = [
654
+ "",
655
+ "# ============================================================",
656
+ "# Agent Memory Configuration (Qdrant & Local LLM)",
657
+ "# ============================================================",
658
+ `MEMORY_ENABLED=${memoryEnabled}`,
659
+ `QDRANT_URL=${qdrantUrl}`,
660
+ `QDRANT_API_KEY=${qdrantApiKey}`,
661
+ "QDRANT_COLLECTION=agent_memory",
662
+ "EMBEDDING_PROVIDER=ollama",
663
+ `OLLAMA_URL=${ollamaUrl}`,
664
+ "EMBEDDING_MODEL=nomic-embed-text",
665
+ "CACHE_THRESHOLD=0.92",
666
+ "CACHE_TTL_DAYS=7",
667
+ "",
668
+ ].join("\n");
669
+
670
+ if (fs.existsSync(envPath)) {
671
+ // .env already exists — append the memory block only if not already present
672
+ const existing = fs.readFileSync(envPath, "utf8");
673
+ if (existing.includes("MEMORY_ENABLED")) {
674
+ // Already configured — patch just the MEMORY_ENABLED line
675
+ const patched = existing.replace(
676
+ /^MEMORY_ENABLED=.*/m,
677
+ `MEMORY_ENABLED=${memoryEnabled}`,
678
+ );
679
+ fs.writeFileSync(envPath, patched, "utf8");
680
+ log.success(`.env updated: MEMORY_ENABLED=${memoryEnabled}`);
681
+ } else {
682
+ // Append the new block
683
+ fs.appendFileSync(envPath, memoryBlock, "utf8");
684
+ log.success(`.env: memory configuration appended (MEMORY_ENABLED=${memoryEnabled})`);
685
+ }
686
+ } else {
687
+ // Create a fresh .env from the example template, then append memory block
688
+ let base = "";
689
+ if (fs.existsSync(envExamplePath)) {
690
+ base = fs.readFileSync(envExamplePath, "utf8");
691
+ } else {
692
+ base = "# AGI Agent Kit — Environment Configuration\n# Fill in your API keys below\n";
693
+ }
694
+ fs.writeFileSync(envPath, base + memoryBlock, "utf8");
695
+ log.success(`.env created (MEMORY_ENABLED=${memoryEnabled})`);
696
+ }
697
+ }
698
+
176
699
  // Prompt for update components
177
700
  async function promptUpdateSelection() {
178
701
  return new Promise((resolve) => {
@@ -228,45 +751,108 @@ function isSkillDir(dirPath) {
228
751
  // Supports both flat (core/) and categorized (knowledge/frontend/react-patterns/) layouts.
229
752
  // Skills are always installed flat at the destination: skills/<skill-name>/
230
753
  function copySkills(targetPath, pack, templatesPath) {
231
- log.header(`Installing ${PACKS[pack].name} skills...`);
754
+ const destSkillsPath = path.join(targetPath, "skills");
755
+
756
+ // Helper: install all skills inside a category directory
757
+ function installCategoryDir(categoryPath, categoryName) {
758
+ if (!fs.existsSync(categoryPath)) return 0;
759
+ let count = 0;
760
+ const entries = fs.readdirSync(categoryPath, { withFileTypes: true });
761
+ for (const entry of entries) {
762
+ if (!entry.isDirectory()) continue;
763
+ const entryPath = path.join(categoryPath, entry.name);
764
+ if (isSkillDir(entryPath)) {
765
+ // Direct skill (e.g. core/webcrawler/)
766
+ const dest = path.join(destSkillsPath, entry.name);
767
+ if (copyDirSync(entryPath, dest)) { count++; }
768
+ } else {
769
+ // Category dir (e.g. knowledge/frontend/) — recurse one level
770
+ const skillDirs = fs.readdirSync(entryPath, { withFileTypes: true })
771
+ .filter((d) => d.isDirectory() && isSkillDir(path.join(entryPath, d.name)));
772
+ for (const skill of skillDirs) {
773
+ const src = path.join(entryPath, skill.name);
774
+ const dest = path.join(destSkillsPath, skill.name);
775
+ if (copyDirSync(src, dest)) { count++; }
776
+ }
777
+ }
778
+ }
779
+ return count;
780
+ }
232
781
 
233
- const skillGroups = PACKS[pack].skills;
782
+ if (pack === "custom") {
783
+ // ── Custom pack: always install core, then per-domain selections ──
784
+ log.header("Installing Custom pack (core + selected domains)...");
234
785
 
235
- for (const group of skillGroups) {
236
- const srcSkillsPath = path.join(templatesPath, "skills", group);
237
- const destSkillsPath = path.join(targetPath, "skills");
786
+ // 1. Core skills always
787
+ const coreCount = installCategoryDir(
788
+ path.join(templatesPath, "skills", "core"), "core"
789
+ );
790
+ log.success(`Core: ${coreCount} skills installed`);
238
791
 
239
- if (fs.existsSync(srcSkillsPath)) {
240
- const entries = fs
241
- .readdirSync(srcSkillsPath, { withFileTypes: true })
242
- .filter((d) => d.isDirectory());
792
+ // 2. Selected domains from env (set by promptDomainSelection)
793
+ const selected = (process.env._AGI_CUSTOM_DOMAINS || "").split(",").filter(Boolean);
243
794
 
244
- for (const entry of entries) {
245
- const entryPath = path.join(srcSkillsPath, entry.name);
795
+ if (selected.length === 0) {
796
+ log.warn("No domains selected core only install.");
797
+ return;
798
+ }
246
799
 
247
- if (isSkillDir(entryPath)) {
248
- // Direct skill directory (e.g., core/webcrawler/)
249
- const dest = path.join(destSkillsPath, entry.name);
250
- if (copyDirSync(entryPath, dest)) {
251
- log.success(`Installed skill: ${entry.name}`);
252
- }
253
- } else {
254
- // Category directory (e.g., knowledge/frontend/) — recurse one level
255
- const categorySkills = fs
256
- .readdirSync(entryPath, { withFileTypes: true })
257
- .filter((d) => d.isDirectory() && isSkillDir(path.join(entryPath, d.name)));
258
-
259
- for (const skill of categorySkills) {
260
- const src = path.join(entryPath, skill.name);
261
- const dest = path.join(destSkillsPath, skill.name);
262
- if (copyDirSync(src, dest)) {
263
- log.success(`Installed skill: ${skill.name} (${entry.name})`);
800
+ for (const domainId of selected) {
801
+ let total = 0;
802
+ // Install from knowledge/<domain> if it exists
803
+ const knPath = path.join(templatesPath, "skills", "knowledge", domainId);
804
+ if (fs.existsSync(knPath)) {
805
+ const n = installCategoryDir(knPath, domainId);
806
+ total += n;
807
+ }
808
+ // Install from extended/<domain> if it exists
809
+ const exPath = path.join(templatesPath, "skills", "extended", domainId);
810
+ if (fs.existsSync(exPath)) {
811
+ const n = installCategoryDir(exPath, domainId);
812
+ total += n;
813
+ }
814
+ const domainInfo = DOMAINS.find((d) => d.id === domainId);
815
+ const label = domainInfo ? domainInfo.label : domainId;
816
+ if (total > 0) {
817
+ log.success(`Domain ${colors.cyan}${label}${colors.reset}: ${total} skills installed`);
818
+ } else {
819
+ log.warn(`Domain ${label}: no skills found (check template paths)`);
820
+ }
821
+ }
822
+
823
+ } else {
824
+ // ── Standard pack: iterate skill groups ──
825
+ log.header(`Installing ${PACKS[pack].name} skills...`);
826
+ const skillGroups = PACKS[pack].skills;
827
+
828
+ for (const group of skillGroups) {
829
+ const srcSkillsPath = path.join(templatesPath, "skills", group);
830
+ if (fs.existsSync(srcSkillsPath)) {
831
+ const entries = fs.readdirSync(srcSkillsPath, { withFileTypes: true })
832
+ .filter((d) => d.isDirectory());
833
+
834
+ for (const entry of entries) {
835
+ const entryPath = path.join(srcSkillsPath, entry.name);
836
+ if (isSkillDir(entryPath)) {
837
+ const dest = path.join(destSkillsPath, entry.name);
838
+ if (copyDirSync(entryPath, dest)) {
839
+ log.success(`Installed skill: ${entry.name}`);
840
+ }
841
+ } else {
842
+ const categorySkills = fs.readdirSync(entryPath, { withFileTypes: true })
843
+ .filter((d) => d.isDirectory() && isSkillDir(path.join(entryPath, d.name)));
844
+ for (const skill of categorySkills) {
845
+ const src = path.join(entryPath, skill.name);
846
+ const dest = path.join(destSkillsPath, skill.name);
847
+ if (copyDirSync(src, dest)) {
848
+ log.success(`Installed skill: ${skill.name} (${entry.name})`);
849
+ }
264
850
  }
265
851
  }
266
852
  }
853
+ } else {
854
+ log.warn(`Skills directory not found: ${srcSkillsPath}`);
267
855
  }
268
- } else {
269
- log.warn(`Skills directory not found: ${srcSkillsPath}`);
270
856
  }
271
857
  }
272
858
  }
@@ -317,10 +903,19 @@ function copyBaseFiles(targetPath, templatesPath, options) {
317
903
  copyDirSync(srcSkillCreator, destSkillCreator);
318
904
  log.success("Installed skill-creator/");
319
905
  }
906
+
907
+ // Copy data (workflows metadata)
908
+ const srcData = path.join(templatesPath, "base", "data");
909
+ const destData = path.join(targetPath, "data");
910
+
911
+ if (fs.existsSync(srcData)) {
912
+ copyDirSync(srcData, destData);
913
+ log.success("Installed data/ (workflows metadata)");
914
+ }
320
915
  }
321
916
 
322
917
  // Create symlinks for multi-platform support
323
- function createSymlinks(targetPath) {
918
+ function createSymlinks(targetPath, options = {}) {
324
919
  log.header("Creating symlinks...");
325
920
 
326
921
  const agentsMd = path.join(targetPath, "AGENTS.md");
@@ -360,19 +955,21 @@ function createSymlinks(targetPath) {
360
955
  return;
361
956
  }
362
957
 
958
+ const homeDir = os.homedir() || process.env.HOME || process.env.USERPROFILE || "";
959
+
363
960
  const platformDirs = [
364
- { platform: ".claude/skills", platformName: "Claude Code" },
365
- { platform: ".gemini/skills", platformName: "Gemini CLI" },
366
- { platform: ".codex/skills", platformName: "Codex CLI" },
367
- { platform: ".cursor/skills", platformName: "Cursor" },
368
- { platform: ".adal/skills", platformName: "AdaL CLI" },
369
- { platform: ".openclaw/skills", platformName: "OpenClaw" },
961
+ { platform: ".claude/skills", platformName: "Claude Code", globalPath: path.join(homeDir, ".claude", "skills") },
962
+ { platform: ".gemini/skills", platformName: "Gemini CLI", globalPath: path.join(homeDir, ".gemini", "skills") },
963
+ { platform: ".codex/skills", platformName: "Codex CLI", globalPath: path.join(process.env.CODEX_HOME || homeDir, ".codex", "skills") },
964
+ { platform: ".cursor/skills", platformName: "Cursor", globalPath: path.join(homeDir, ".cursor", "skills") },
965
+ { platform: ".adal/skills", platformName: "AdaL CLI", globalPath: path.join(homeDir, ".adal", "skills") },
966
+ { platform: ".openclaw/skills", platformName: "OpenClaw", globalPath: path.join(homeDir, ".openclaw", "skills") },
370
967
  ];
371
968
 
372
- for (const { platform, platformName } of platformDirs) {
373
- const parts = platform.split("/");
374
- const parentDir = path.join(targetPath, parts[0]);
375
- const linkPath = path.join(targetPath, platform);
969
+ for (const info of platformDirs) {
970
+ const { platform, platformName, globalPath } = info;
971
+ const linkPath = options.global ? globalPath : path.join(targetPath, platform);
972
+ const parentDir = path.dirname(linkPath);
376
973
 
377
974
  try {
378
975
  // Create parent directory (e.g., .claude/)
@@ -391,9 +988,13 @@ function createSymlinks(targetPath) {
391
988
  // Create relative symlink: .claude/skills → ../skills
392
989
  const relativeTarget = path.relative(parentDir, skillsDir);
393
990
  fs.symlinkSync(relativeTarget, linkPath);
394
- log.success(`Created skill symlink: ${platform} → skills/ (${platformName})`);
991
+ log.success(
992
+ `Created skill symlink: ${platform} → skills/ (${platformName})`,
993
+ );
395
994
  } catch (err) {
396
- log.warn(`Failed to create skill symlink for ${platformName}: ${err.message}`);
995
+ log.warn(
996
+ `Failed to create skill symlink for ${platformName}: ${err.message}`,
997
+ );
397
998
  }
398
999
  }
399
1000
  }
@@ -497,6 +1098,62 @@ function setupPythonEnv(targetPath) {
497
1098
  log.info(`Activate with: ${colors.yellow}${activateCmd}${colors.reset}`);
498
1099
  }
499
1100
 
1101
+ // Ask user about platform orchestration features and apply them
1102
+ async function promptPlatformFeatures(targetPath) {
1103
+ const features = { agentTeams: false };
1104
+
1105
+ console.log(`\n${colors.bright}━━━ Platform Orchestration Features ━━━${colors.reset}\n`);
1106
+ console.log(` ${colors.bright}Agent Teams${colors.reset} (Claude Code only)`);
1107
+ console.log(` Enables true parallel multi-agent execution — multiple specialist`);
1108
+ console.log(` agents (frontend, backend, security, etc.) work simultaneously`);
1109
+ console.log(` rather than one at a time. Best for complex, multi-domain tasks.\n`);
1110
+ console.log(` ${colors.yellow}Requires:${colors.reset} Claude Code with experimental features enabled.`);
1111
+ console.log(` ${colors.green}Recommended${colors.reset} if you plan to use @orchestrator or specialist agents.\n`);
1112
+ console.log(` ${colors.bright}1. Enable Agent Teams${colors.reset} — writes to .claude/settings.json (recommended)`);
1113
+ console.log(` ${colors.bright}2. Skip${colors.reset} — you can enable it manually later\n`);
1114
+
1115
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
1116
+
1117
+ return new Promise((resolve) => {
1118
+ rl.question(` Enable Agent Teams? (1/2, default: 1): `, (answer) => {
1119
+ rl.close();
1120
+ const choice = answer.trim();
1121
+
1122
+ if (choice === "2" || choice.toLowerCase() === "skip" || choice.toLowerCase() === "n") {
1123
+ log.info("Agent Teams skipped. Enable later by editing .claude/settings.json.");
1124
+ console.log(` Add this to ${colors.cyan}.claude/settings.json${colors.reset}:`);
1125
+ console.log(` ${colors.yellow}{ "env": { "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1" } }${colors.reset}\n`);
1126
+ resolve(features);
1127
+ return;
1128
+ }
1129
+
1130
+ // Write .claude/settings.json
1131
+ try {
1132
+ const claudeDir = path.join(targetPath, ".claude");
1133
+ fs.mkdirSync(claudeDir, { recursive: true });
1134
+ const settingsPath = path.join(claudeDir, "settings.json");
1135
+
1136
+ // Merge with existing settings if present
1137
+ let existing = {};
1138
+ if (fs.existsSync(settingsPath)) {
1139
+ try { existing = JSON.parse(fs.readFileSync(settingsPath, "utf8")); } catch (e) {}
1140
+ }
1141
+ existing.env = existing.env || {};
1142
+ existing.env.CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS = "1";
1143
+
1144
+ fs.writeFileSync(settingsPath, JSON.stringify(existing, null, 2), "utf8");
1145
+ features.agentTeams = true;
1146
+ log.success(`Agent Teams enabled → ${colors.cyan}${settingsPath}${colors.reset}`);
1147
+ console.log(` Restart Claude Code in this directory to activate.\n`);
1148
+ } catch (e) {
1149
+ log.warn(`Could not write .claude/settings.json: ${e.message}`);
1150
+ }
1151
+
1152
+ resolve(features);
1153
+ });
1154
+ });
1155
+ }
1156
+
500
1157
  // Auto-run platform setup wizard to pre-configure environment
501
1158
  function runPlatformSetup(targetPath) {
502
1159
  const setupScript = path.join(
@@ -545,14 +1202,166 @@ function runPlatformSetup(targetPath) {
545
1202
  }
546
1203
  }
547
1204
 
1205
+ // Verify memory system (Qdrant + Ollama) after .env is written
1206
+ function verifyMemorySetup(targetPath) {
1207
+ log.header("Verifying memory system (Qdrant + Ollama)...");
1208
+
1209
+ const bootScript = path.join(targetPath, "execution", "session_boot.py");
1210
+
1211
+ if (!fs.existsSync(bootScript)) {
1212
+ log.warn("session_boot.py not found — skipping memory verification.");
1213
+ console.log(
1214
+ ` You can verify later: ${colors.yellow}python3 execution/session_boot.py --auto-fix${colors.reset}`,
1215
+ );
1216
+ return false;
1217
+ }
1218
+
1219
+ const isWindows = process.platform === "win32";
1220
+ const venvPython = isWindows
1221
+ ? path.join(targetPath, ".venv", "Scripts", "python")
1222
+ : path.join(targetPath, ".venv", "bin", "python3");
1223
+ const pythonCmd = fs.existsSync(venvPython) ? `"${venvPython}"` : "python3";
1224
+
1225
+ try {
1226
+ const output = execSync(
1227
+ `${pythonCmd} "${bootScript}" --auto-fix`,
1228
+ { stdio: "pipe", timeout: 60000, cwd: targetPath },
1229
+ ).toString().trim();
1230
+ console.log(` ${output}`);
1231
+ return true;
1232
+ } catch (e) {
1233
+ // session_boot exits non-zero when services aren't running — show its output
1234
+ const output = (e.stdout || e.stderr || "").toString().trim();
1235
+ if (output) {
1236
+ console.log(`\n${output}\n`);
1237
+ }
1238
+ console.log(` ${colors.yellow}⚠ Memory services not detected yet.${colors.reset}`);
1239
+ console.log(`
1240
+ ${colors.bright}Follow these steps to get Qdrant + Ollama running:${colors.reset}
1241
+
1242
+ ${colors.bright}Step 1 — Install Ollama (if not already installed)${colors.reset}
1243
+ ${colors.cyan}https://ollama.com/download${colors.reset}
1244
+ Download and install for your OS, then come back here.
1245
+
1246
+ ${colors.bright}Step 2 — Start Ollama in a NEW terminal tab/window${colors.reset}
1247
+ ${colors.yellow}ollama serve${colors.reset}
1248
+ ${colors.red}⚠ IMPORTANT:${colors.reset} This command runs in the foreground and must stay open.
1249
+ Open a new terminal tab (Cmd+T on Mac) and leave this running there.
1250
+ You will see logs like "Listening on 127.0.0.1:11434" — that means it's ready.
1251
+
1252
+ ${colors.bright}Step 3 — Start Qdrant via Docker (in your original terminal)${colors.reset}
1253
+ ${colors.yellow}docker run -d -p 6333:6333 -v qdrant_storage:/qdrant/storage qdrant/qdrant${colors.reset}
1254
+ The ${colors.cyan}-d${colors.reset} flag runs it in the background. Docker Desktop must be running first.
1255
+ Verify it's up: ${colors.yellow}curl http://localhost:6333/healthz${colors.reset} → should return ${colors.green}{"title":"qdrant"}${colors.reset}
1256
+
1257
+ ${colors.bright}Step 4 — Re-run the memory verification${colors.reset}
1258
+ ${colors.yellow}python3 execution/session_boot.py --auto-fix${colors.reset}
1259
+ This will pull the embedding model and create the memory collections automatically.
1260
+ `);
1261
+ return false;
1262
+ }
1263
+ }
1264
+
548
1265
  // Main init function
1266
+ // Detect an existing AGI Agent Kit install and ask the user what to do
1267
+ async function detectExistingInstall(targetPath) {
1268
+ const agentsMd = path.join(targetPath, "AGENTS.md");
1269
+ const versionFile = path.join(targetPath, ".agi-version");
1270
+
1271
+ if (!fs.existsSync(agentsMd)) {
1272
+ return { action: "install" }; // Clean install
1273
+ }
1274
+
1275
+ // Read installed version if available
1276
+ let installedVersion = "unknown";
1277
+ if (fs.existsSync(versionFile)) {
1278
+ installedVersion = fs.readFileSync(versionFile, "utf8").trim();
1279
+ } else {
1280
+ // Fallback: try to grep it from AGENTS.md
1281
+ const mdContent = fs.readFileSync(agentsMd, "utf8");
1282
+ const match = mdContent.match(/agi-agent-kit[\s@v]+([\d.]+)/);
1283
+ if (match) installedVersion = match[1];
1284
+ }
1285
+
1286
+ // Current package version
1287
+ let incomingVersion = "unknown";
1288
+ try {
1289
+ const pkg = JSON.parse(fs.readFileSync(path.join(__dirname, "..", "package.json"), "utf8"));
1290
+ incomingVersion = pkg.version || "unknown";
1291
+ } catch (e) {}
1292
+
1293
+ console.log(`\n${colors.bright}━━━ Existing Installation Detected ━━━${colors.reset}\n`);
1294
+ console.log(` ${colors.yellow}AGI Agent Kit is already installed in this directory.${colors.reset}`);
1295
+ console.log(` Installed version : ${colors.cyan}${installedVersion}${colors.reset}`);
1296
+ console.log(` Incoming version : ${colors.green}${incomingVersion}${colors.reset}\n`);
1297
+
1298
+ const isSameVersion = installedVersion === incomingVersion;
1299
+ if (isSameVersion) {
1300
+ console.log(` ${colors.yellow}⚠ Same version detected.${colors.reset} Reinstalling will overwrite current files.\n`);
1301
+ } else if (installedVersion !== "unknown" && incomingVersion !== "unknown") {
1302
+ const [iMaj, iMin, iPatch] = installedVersion.split(".").map(Number);
1303
+ const [nMaj, nMin, nPatch] = incomingVersion.split(".").map(Number);
1304
+ const isDowngrade = nMaj < iMaj || (nMaj === iMaj && nMin < iMin) || (nMaj === iMaj && nMin === iMin && nPatch < iPatch);
1305
+ if (isDowngrade) {
1306
+ console.log(` ${colors.red}⚠ WARNING: Incoming version is OLDER than installed.${colors.reset}`);
1307
+ console.log(` You are about to downgrade. This may break things.\n`);
1308
+ }
1309
+ }
1310
+
1311
+ console.log(` What would you like to do?\n`);
1312
+ console.log(` ${colors.green}1. Update${colors.reset} — refresh skills, directives & execution scripts`);
1313
+ console.log(` ${colors.cyan}Preserves${colors.reset} your .env, custom skills, and .agent/ folder`);
1314
+ console.log(` ${colors.yellow}2. Reinstall${colors.reset} — full overwrite of all files (${colors.red}destructive${colors.reset})`);
1315
+ console.log(` You will be offered a backup before anything is changed`);
1316
+ console.log(` ${colors.red}3. Cancel${colors.reset} — abort, make no changes\n`);
1317
+
1318
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
1319
+
1320
+ return new Promise((resolve) => {
1321
+ rl.question(` Your choice (1/2/3, default: 1): `, (answer) => {
1322
+ rl.close();
1323
+ const choice = answer.trim();
1324
+
1325
+ if (choice === "3" || choice.toLowerCase() === "cancel") {
1326
+ log.info("Install cancelled.");
1327
+ process.exit(0);
1328
+ } else if (choice === "2" || choice.toLowerCase() === "reinstall") {
1329
+ log.warn("Full reinstall selected — all existing files will be overwritten.");
1330
+ resolve({ action: "reinstall", installedVersion, incomingVersion });
1331
+ } else {
1332
+ // Default: update
1333
+ log.success(`Update selected — refreshing to v${incomingVersion}, preserving .env and custom files.`);
1334
+ resolve({ action: "update", installedVersion, incomingVersion });
1335
+ }
1336
+ });
1337
+ });
1338
+ }
1339
+
549
1340
  async function init(options) {
550
1341
  log.header("🚀 AGI Agent Kit Initializer");
551
1342
 
1343
+ if (options.ci) {
1344
+ log.info("CI mode: all prompts skipped, using safe defaults (pack=core, memory=disabled, teams=skip).");
1345
+ }
1346
+
1347
+ // Detect existing install FIRST — before any scope/pack prompts
1348
+ const existingInstall = options.ci
1349
+ ? { action: "install" }
1350
+ : await detectExistingInstall(options.path);
1351
+ const isUpdate = existingInstall.action === "update";
1352
+
1353
+ // Ask install scope (project vs global) — skip if already set via CLI flag
1354
+ if (!options.ci) await promptInstallScope(options);
1355
+
1356
+ // Offer backup only for reinstall (update preserves files, and backup is implied)
1357
+ if (!isUpdate && !options.ci) {
1358
+ await backupExistingFiles(options.path, options);
1359
+ }
1360
+
552
1361
  // Determine pack
553
1362
  let pack = options.pack;
554
1363
  if (!pack) {
555
- pack = await promptPackSelection();
1364
+ pack = options.ci ? "core" : await promptPackSelection();
556
1365
  }
557
1366
 
558
1367
  if (!PACKS[pack]) {
@@ -581,7 +1390,7 @@ async function init(options) {
581
1390
 
582
1391
  // Create symlinks
583
1392
  if (options.symlinks) {
584
- createSymlinks(options.path);
1393
+ createSymlinks(options.path, options);
585
1394
  }
586
1395
 
587
1396
  // Copy .agent/ for full pack
@@ -592,21 +1401,87 @@ async function init(options) {
592
1401
  // Setup Python environment
593
1402
  setupPythonEnv(options.path);
594
1403
 
1404
+ // Ask user about local Qdrant + Ollama and write .env
1405
+ // Skip on update (preserve existing .env settings)
1406
+ let infraChoice = { useLocal: false, detected: {}, ollamaUrl: "http://localhost:11434", qdrantUrl: "http://localhost:6333" };
1407
+ if (!isUpdate && !options.ci) {
1408
+ infraChoice = await promptLocalInfrastructure();
1409
+ writeEnvFile(options.path, infraChoice);
1410
+ } else if (!isUpdate && options.ci) {
1411
+ // CI: write .env with memory disabled — no Qdrant/Ollama available
1412
+ writeEnvFile(options.path, infraChoice);
1413
+ log.info("CI mode: memory disabled in .env.");
1414
+ } else {
1415
+ // On update, read existing MEMORY_ENABLED from .env so hints stay accurate
1416
+ const envPath = path.join(options.path, ".env");
1417
+ if (fs.existsSync(envPath)) {
1418
+ const envContent = fs.readFileSync(envPath, "utf8");
1419
+ const memMatch = envContent.match(/^MEMORY_ENABLED=(.+)$/m);
1420
+ infraChoice.useLocal = memMatch && memMatch[1].trim() === "true";
1421
+ }
1422
+ log.info("Update mode: .env preserved, memory setting unchanged.");
1423
+ }
1424
+
1425
+ // If memory enabled, verify Qdrant + Ollama are up and configured
1426
+ let memoryVerified = false;
1427
+ if (infraChoice.useLocal) {
1428
+ memoryVerified = verifyMemorySetup(options.path);
1429
+ }
1430
+
1431
+ // Ask about platform features (Agent Teams, MCP, etc.) BEFORE running setup wizard
1432
+ const platformFeatures = options.ci
1433
+ ? { agentTeams: false }
1434
+ : await promptPlatformFeatures(options.path);
1435
+
595
1436
  // Auto-run platform setup wizard
596
1437
  runPlatformSetup(options.path);
597
1438
 
1439
+ // For global installs: generate an uninstall script
1440
+ if (options.global) {
1441
+ generateUninstallScript(options.path, options);
1442
+ }
1443
+
1444
+ // Write version stamp so future runs can detect the installed version
1445
+ try {
1446
+ const pkg = JSON.parse(fs.readFileSync(path.join(__dirname, "..", "package.json"), "utf8"));
1447
+ fs.writeFileSync(path.join(options.path, ".agi-version"), pkg.version || "unknown", "utf8");
1448
+ } catch (e) { /* non-fatal */ }
1449
+
598
1450
  // Final message
599
- log.header("✨ Installation complete!");
1451
+ const actionLabel = isUpdate ? "🔄 Update complete!" : "✨ Installation complete!";
1452
+ log.header(actionLabel);
1453
+
1454
+ let memoryHint;
1455
+ if (!infraChoice.useLocal) {
1456
+ memoryHint = ` 3. ${colors.yellow}Memory is DISABLED${colors.reset}. To enable later, set ${colors.cyan}MEMORY_ENABLED=true${colors.reset} in ${colors.cyan}.env${colors.reset}.`;
1457
+ } else if (memoryVerified) {
1458
+ // Services were already up and verified during install
1459
+ memoryHint = ` 3. ${colors.green}✔ Memory is READY${colors.reset} — Qdrant + Ollama verified during setup.\n Run at any time to check: ${colors.yellow}python3 execution/session_boot.py${colors.reset}`;
1460
+ } else {
1461
+ // User chose to enable but services weren't up yet
1462
+ memoryHint = ` 3. ${colors.bright}Start memory services${colors.reset} (open a ${colors.red}NEW terminal tab${colors.reset} for Ollama):\n\n ${colors.yellow}# Terminal tab 1 — leave this running:${colors.reset}\n ${colors.yellow}ollama serve${colors.reset}\n\n ${colors.yellow}# Terminal tab 2 — run once:${colors.reset}\n ${colors.yellow}docker run -d -p 6333:6333 -v qdrant_storage:/qdrant/storage qdrant/qdrant${colors.reset}\n ${colors.yellow}python3 execution/session_boot.py --auto-fix${colors.reset}`;
1463
+ }
1464
+
600
1465
  console.log(`
601
- Next steps:
602
- 1. Activate the Python environment:
1466
+ ${colors.bright}Summary of what was configured:${colors.reset}
1467
+ ${colors.green}✔${colors.reset} Python environment (.venv)
1468
+ ${colors.green}✔${colors.reset} Skills installed (${pack} pack)
1469
+ ${colors.green}✔${colors.reset} AGENTS.md + platform symlinks
1470
+ ${infraChoice.useLocal ? colors.green + "✔" + colors.reset : colors.yellow + "−" + colors.reset} Memory (Qdrant + Ollama): ${infraChoice.useLocal ? colors.green + "enabled" + colors.reset : colors.yellow + "disabled" + colors.reset}
1471
+ ${platformFeatures.agentTeams ? colors.green + "✔" + colors.reset : colors.yellow + "−" + colors.reset} Agent Teams (parallel execution): ${platformFeatures.agentTeams ? colors.green + "enabled" + colors.reset : colors.yellow + "skipped" + colors.reset}
1472
+ ${colors.dim}− MCP Servers: not configured (project-specific, add later)${colors.reset}
1473
+
1474
+ ${colors.bright}Next steps:${colors.reset}
1475
+ 1. Activate Python environment:
603
1476
  ${colors.yellow}source .venv/bin/activate${colors.reset}
604
1477
  2. Review ${colors.cyan}AGENTS.md${colors.reset} for architecture overview
605
- 3. Boot the memory system (optional, requires Qdrant + Ollama):
606
- ${colors.yellow}python3 execution/session_boot.py --auto-fix${colors.reset}
607
- 4. Check ${colors.cyan}skills/${colors.reset} for available capabilities
608
- 5. Create ${colors.cyan}.env${colors.reset} with your API keys
609
-
1478
+ ${memoryHint}${platformFeatures.agentTeams ? "" : `
1479
+ ▸ To enable Agent Teams later:\n ${colors.yellow}echo '${JSON.stringify({ env: { CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS: "1" } }, null, 2)}' > .claude/settings.json${colors.reset}`}
1480
+ To add MCP servers: edit ${colors.cyan}.claude/settings.json${colors.reset} ${colors.cyan}mcpServers${colors.reset} section
1481
+ To install Claude plugins (pyright-lsp etc): type inside Claude Code:
1482
+ ${colors.yellow}/plugin install pyright-lsp@claude-plugins-official${colors.reset}
1483
+ ▸ Check ${colors.cyan}skills/${colors.reset} for available capabilities
1484
+
610
1485
  Happy coding! 🎉
611
1486
  `);
612
1487
  }
@@ -698,7 +1573,7 @@ async function update(options) {
698
1573
  // 4. Update Core Documentation if needed
699
1574
  // We generally respect user's AGENTS.md, but maybe we update GEMINI.md/CLAUDE.md symlinks?
700
1575
  if (options.symlinks) {
701
- createSymlinks(options.path);
1576
+ createSymlinks(options.path, options);
702
1577
  }
703
1578
 
704
1579
  log.header("✨ Update complete!");