@trieungoctam/vibekit 1.0.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 (352) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +85 -0
  3. package/agents/debugger.md +158 -0
  4. package/agents/docs-manager.md +220 -0
  5. package/agents/planner.md +129 -0
  6. package/agents/researcher.md +58 -0
  7. package/agents/reviewer.md +152 -0
  8. package/agents/tester.md +126 -0
  9. package/bin/vibekit.js +18 -0
  10. package/hooks/lib/ck-config-utils.cjs +831 -0
  11. package/hooks/lib/colors.cjs +95 -0
  12. package/hooks/lib/config-counter.cjs +103 -0
  13. package/hooks/lib/context-builder.cjs +616 -0
  14. package/hooks/lib/git-info-cache.cjs +143 -0
  15. package/hooks/lib/hook-logger.cjs +92 -0
  16. package/hooks/lib/privacy-checker.cjs +297 -0
  17. package/hooks/lib/project-detector.cjs +474 -0
  18. package/hooks/lib/scout-checker.cjs +263 -0
  19. package/hooks/lib/transcript-parser.cjs +181 -0
  20. package/hooks/post-edit-simplify-reminder.cjs +156 -0
  21. package/hooks/privacy-block.cjs +166 -0
  22. package/hooks/scout-block.cjs +147 -0
  23. package/hooks/session-init.cjs +360 -0
  24. package/package.json +41 -0
  25. package/rules/development-rules.md +52 -0
  26. package/rules/documentation-management.md +121 -0
  27. package/rules/orchestration-protocol.md +43 -0
  28. package/rules/primary-workflow.md +57 -0
  29. package/rules/team-coordination-rules.md +90 -0
  30. package/skills/ai/agent-browser/SKILL.md +294 -0
  31. package/skills/ai/agent-browser/references/.gitkeep +0 -0
  32. package/skills/ai/agent-browser/references/agent-browser-vs-chrome-devtools.md +112 -0
  33. package/skills/ai/agent-browser/references/browserbase-cloud-setup.md +161 -0
  34. package/skills/ai/ai-artist/SKILL.md +122 -0
  35. package/skills/ai/ai-artist/data/awesome-prompts.csv +3592 -0
  36. package/skills/ai/ai-artist/data/lighting.csv +19 -0
  37. package/skills/ai/ai-artist/data/nano-banana-templates.csv +17 -0
  38. package/skills/ai/ai-artist/data/platforms.csv +11 -0
  39. package/skills/ai/ai-artist/data/styles.csv +26 -0
  40. package/skills/ai/ai-artist/data/techniques.csv +19 -0
  41. package/skills/ai/ai-artist/data/use-cases.csv +16 -0
  42. package/skills/ai/ai-artist/references/advanced-techniques.md +184 -0
  43. package/skills/ai/ai-artist/references/awesome-nano-banana-pro-prompts.md +8575 -0
  44. package/skills/ai/ai-artist/references/domain-code.md +66 -0
  45. package/skills/ai/ai-artist/references/domain-data.md +72 -0
  46. package/skills/ai/ai-artist/references/domain-marketing.md +66 -0
  47. package/skills/ai/ai-artist/references/domain-patterns.md +33 -0
  48. package/skills/ai/ai-artist/references/domain-writing.md +68 -0
  49. package/skills/ai/ai-artist/references/image-prompting.md +141 -0
  50. package/skills/ai/ai-artist/references/llm-prompting.md +165 -0
  51. package/skills/ai/ai-artist/references/nano-banana.md +136 -0
  52. package/skills/ai/ai-artist/references/reasoning-techniques.md +201 -0
  53. package/skills/ai/ai-artist/references/validation-workflow.md +117 -0
  54. package/skills/ai/ai-artist/scripts/core.py +197 -0
  55. package/skills/ai/ai-artist/scripts/extract_prompts.py +102 -0
  56. package/skills/ai/ai-artist/scripts/generate.py +370 -0
  57. package/skills/ai/ai-artist/scripts/search.py +147 -0
  58. package/skills/ai/ai-multimodal/.env.example +204 -0
  59. package/skills/ai/ai-multimodal/SKILL.md +110 -0
  60. package/skills/ai/ai-multimodal/references/audio-processing.md +387 -0
  61. package/skills/ai/ai-multimodal/references/image-generation.md +939 -0
  62. package/skills/ai/ai-multimodal/references/music-generation.md +311 -0
  63. package/skills/ai/ai-multimodal/references/video-analysis.md +515 -0
  64. package/skills/ai/ai-multimodal/references/video-generation.md +457 -0
  65. package/skills/ai/ai-multimodal/references/vision-understanding.md +492 -0
  66. package/skills/ai/ai-multimodal/scripts/.coverage +0 -0
  67. package/skills/ai/ai-multimodal/scripts/check_setup.py +315 -0
  68. package/skills/ai/ai-multimodal/scripts/document_converter.py +395 -0
  69. package/skills/ai/ai-multimodal/scripts/gemini_batch_process.py +1185 -0
  70. package/skills/ai/ai-multimodal/scripts/media_optimizer.py +506 -0
  71. package/skills/ai/ai-multimodal/scripts/requirements.txt +26 -0
  72. package/skills/ai/ai-multimodal/scripts/tests/.coverage +0 -0
  73. package/skills/ai/ai-multimodal/scripts/tests/requirements.txt +20 -0
  74. package/skills/ai/ai-multimodal/scripts/tests/test_document_converter.py +74 -0
  75. package/skills/ai/ai-multimodal/scripts/tests/test_gemini_batch_process.py +362 -0
  76. package/skills/ai/ai-multimodal/scripts/tests/test_media_optimizer.py +373 -0
  77. package/skills/ai/mcp-management/README.md +219 -0
  78. package/skills/ai/mcp-management/SKILL.md +210 -0
  79. package/skills/ai/mcp-management/assets/tools.json +3146 -0
  80. package/skills/ai/mcp-management/references/configuration.md +114 -0
  81. package/skills/ai/mcp-management/references/gemini-cli-integration.md +221 -0
  82. package/skills/ai/mcp-management/references/mcp-protocol.md +116 -0
  83. package/skills/ai/mcp-management/scripts/.env.example +10 -0
  84. package/skills/ai/mcp-management/scripts/cli.ts +195 -0
  85. package/skills/ai/mcp-management/scripts/dist/analyze-tools.js +70 -0
  86. package/skills/ai/mcp-management/scripts/dist/cli.js +160 -0
  87. package/skills/ai/mcp-management/scripts/dist/mcp-client.js +183 -0
  88. package/skills/ai/mcp-management/scripts/mcp-client.ts +230 -0
  89. package/skills/ai/mcp-management/scripts/package.json +20 -0
  90. package/skills/ai/mcp-management/scripts/tsconfig.json +15 -0
  91. package/skills/core/brainstorm/SKILL.md +164 -0
  92. package/skills/core/brainstorm/scripts/frame-template.html +214 -0
  93. package/skills/core/brainstorm/scripts/helper.js +88 -0
  94. package/skills/core/brainstorm/scripts/server.cjs +338 -0
  95. package/skills/core/brainstorm/scripts/start-server.sh +153 -0
  96. package/skills/core/brainstorm/scripts/stop-server.sh +55 -0
  97. package/skills/core/brainstorm/spec-document-reviewer-prompt.md +49 -0
  98. package/skills/core/brainstorm/visual-companion.md +286 -0
  99. package/skills/core/code-review/SKILL.md +147 -0
  100. package/skills/core/code-review/references/code-review-reception.md +113 -0
  101. package/skills/core/code-review/references/codebase-scan-workflow.md +29 -0
  102. package/skills/core/code-review/references/edge-case-scouting.md +119 -0
  103. package/skills/core/code-review/references/parallel-review-workflow.md +69 -0
  104. package/skills/core/code-review/references/requesting-code-review.md +116 -0
  105. package/skills/core/code-review/references/task-management-reviews.md +140 -0
  106. package/skills/core/code-review/references/verification-before-completion.md +139 -0
  107. package/skills/core/cook/README.md +86 -0
  108. package/skills/core/cook/SKILL.md +113 -0
  109. package/skills/core/cook/references/intent-detection.md +101 -0
  110. package/skills/core/cook/references/review-cycle.md +75 -0
  111. package/skills/core/cook/references/subagent-patterns.md +75 -0
  112. package/skills/core/cook/references/workflow-steps.md +172 -0
  113. package/skills/core/debug/SKILL.md +121 -0
  114. package/skills/core/debug/references/defense-in-depth.md +124 -0
  115. package/skills/core/debug/references/frontend-verification.md +103 -0
  116. package/skills/core/debug/references/investigation-methodology.md +101 -0
  117. package/skills/core/debug/references/log-and-ci-analysis.md +97 -0
  118. package/skills/core/debug/references/performance-diagnostics.md +113 -0
  119. package/skills/core/debug/references/reporting-standards.md +122 -0
  120. package/skills/core/debug/references/root-cause-tracing.md +122 -0
  121. package/skills/core/debug/references/systematic-debugging.md +102 -0
  122. package/skills/core/debug/references/task-management-debugging.md +155 -0
  123. package/skills/core/debug/references/verification.md +123 -0
  124. package/skills/core/debug/scripts/find-polluter.sh +63 -0
  125. package/skills/core/debug/scripts/find-polluter.test.md +102 -0
  126. package/skills/core/execute/SKILL.md +70 -0
  127. package/skills/core/fix/SKILL.md +111 -0
  128. package/skills/core/fix/references/complexity-assessment.md +72 -0
  129. package/skills/core/fix/references/mode-selection.md +46 -0
  130. package/skills/core/fix/references/parallel-exploration.md +100 -0
  131. package/skills/core/fix/references/review-cycle.md +77 -0
  132. package/skills/core/fix/references/skill-activation-matrix.md +78 -0
  133. package/skills/core/fix/references/task-orchestration.md +103 -0
  134. package/skills/core/fix/references/workflow-ci.md +28 -0
  135. package/skills/core/fix/references/workflow-deep.md +122 -0
  136. package/skills/core/fix/references/workflow-logs.md +72 -0
  137. package/skills/core/fix/references/workflow-quick.md +59 -0
  138. package/skills/core/fix/references/workflow-standard.md +111 -0
  139. package/skills/core/fix/references/workflow-test.md +75 -0
  140. package/skills/core/fix/references/workflow-types.md +33 -0
  141. package/skills/core/fix/references/workflow-ui.md +75 -0
  142. package/skills/core/plan/SKILL.md +145 -0
  143. package/skills/core/plan/plan-document-reviewer-prompt.md +49 -0
  144. package/skills/core/subagent-dev/SKILL.md +277 -0
  145. package/skills/core/subagent-dev/code-quality-reviewer-prompt.md +26 -0
  146. package/skills/core/subagent-dev/implementer-prompt.md +113 -0
  147. package/skills/core/subagent-dev/spec-reviewer-prompt.md +61 -0
  148. package/skills/core/tdd/SKILL.md +371 -0
  149. package/skills/core/tdd/testing-anti-patterns.md +299 -0
  150. package/skills/core/test/SKILL.md +109 -0
  151. package/skills/core/test/references/report-format.md +58 -0
  152. package/skills/core/test/references/test-execution-workflow.md +103 -0
  153. package/skills/core/test/references/ui-testing-workflow.md +65 -0
  154. package/skills/core/verify/SKILL.md +139 -0
  155. package/skills/dev/backend-dev/SKILL.md +96 -0
  156. package/skills/dev/backend-dev/references/backend-api-design.md +495 -0
  157. package/skills/dev/backend-dev/references/backend-architecture.md +454 -0
  158. package/skills/dev/backend-dev/references/backend-authentication.md +338 -0
  159. package/skills/dev/backend-dev/references/backend-code-quality.md +659 -0
  160. package/skills/dev/backend-dev/references/backend-debugging.md +904 -0
  161. package/skills/dev/backend-dev/references/backend-devops.md +494 -0
  162. package/skills/dev/backend-dev/references/backend-mindset.md +387 -0
  163. package/skills/dev/backend-dev/references/backend-performance.md +397 -0
  164. package/skills/dev/backend-dev/references/backend-security.md +290 -0
  165. package/skills/dev/backend-dev/references/backend-technologies.md +256 -0
  166. package/skills/dev/backend-dev/references/backend-testing.md +429 -0
  167. package/skills/dev/context-engineering/SKILL.md +108 -0
  168. package/skills/dev/context-engineering/references/context-compression.md +84 -0
  169. package/skills/dev/context-engineering/references/context-degradation.md +93 -0
  170. package/skills/dev/context-engineering/references/context-fundamentals.md +75 -0
  171. package/skills/dev/context-engineering/references/context-optimization.md +82 -0
  172. package/skills/dev/context-engineering/references/evaluation.md +89 -0
  173. package/skills/dev/context-engineering/references/memory-systems.md +88 -0
  174. package/skills/dev/context-engineering/references/multi-agent-patterns.md +90 -0
  175. package/skills/dev/context-engineering/references/project-development.md +97 -0
  176. package/skills/dev/context-engineering/references/runtime-awareness.md +202 -0
  177. package/skills/dev/context-engineering/references/tool-design.md +86 -0
  178. package/skills/dev/context-engineering/scripts/compression_evaluator.py +349 -0
  179. package/skills/dev/context-engineering/scripts/context_analyzer.py +317 -0
  180. package/skills/dev/context-engineering/scripts/tests/test_edge_cases.py +246 -0
  181. package/skills/dev/databases/SKILL.md +84 -0
  182. package/skills/dev/databases/analytics.md +198 -0
  183. package/skills/dev/databases/db-design.md +188 -0
  184. package/skills/dev/databases/incremental-etl.md +213 -0
  185. package/skills/dev/databases/references/mongodb-aggregation.md +447 -0
  186. package/skills/dev/databases/references/mongodb-atlas.md +465 -0
  187. package/skills/dev/databases/references/mongodb-crud.md +408 -0
  188. package/skills/dev/databases/references/mongodb-indexing.md +442 -0
  189. package/skills/dev/databases/references/postgresql-administration.md +594 -0
  190. package/skills/dev/databases/references/postgresql-performance.md +527 -0
  191. package/skills/dev/databases/references/postgresql-psql-cli.md +467 -0
  192. package/skills/dev/databases/references/postgresql-queries.md +475 -0
  193. package/skills/dev/databases/scripts/.coverage +0 -0
  194. package/skills/dev/databases/scripts/db_backup.py +502 -0
  195. package/skills/dev/databases/scripts/db_migrate.py +426 -0
  196. package/skills/dev/databases/scripts/db_performance_check.py +457 -0
  197. package/skills/dev/databases/scripts/requirements.txt +20 -0
  198. package/skills/dev/databases/scripts/tests/coverage-db.json +1 -0
  199. package/skills/dev/databases/scripts/tests/requirements.txt +4 -0
  200. package/skills/dev/databases/scripts/tests/test_db_backup.py +340 -0
  201. package/skills/dev/databases/scripts/tests/test_db_migrate.py +277 -0
  202. package/skills/dev/databases/scripts/tests/test_db_performance_check.py +370 -0
  203. package/skills/dev/databases/stacks/bigquery.md +231 -0
  204. package/skills/dev/databases/stacks/d1_cloudflare.md +137 -0
  205. package/skills/dev/databases/stacks/mysql.md +216 -0
  206. package/skills/dev/databases/stacks/postgres.md +235 -0
  207. package/skills/dev/databases/stacks/sqlite.md +244 -0
  208. package/skills/dev/databases/transactional.md +176 -0
  209. package/skills/dev/devops/.env.example +76 -0
  210. package/skills/dev/devops/SKILL.md +97 -0
  211. package/skills/dev/devops/references/browser-rendering.md +305 -0
  212. package/skills/dev/devops/references/cloudflare-d1-kv.md +123 -0
  213. package/skills/dev/devops/references/cloudflare-platform.md +271 -0
  214. package/skills/dev/devops/references/cloudflare-r2-storage.md +280 -0
  215. package/skills/dev/devops/references/cloudflare-workers-advanced.md +312 -0
  216. package/skills/dev/devops/references/cloudflare-workers-apis.md +309 -0
  217. package/skills/dev/devops/references/cloudflare-workers-basics.md +418 -0
  218. package/skills/dev/devops/references/docker-basics.md +297 -0
  219. package/skills/dev/devops/references/docker-compose.md +292 -0
  220. package/skills/dev/devops/references/gcloud-platform.md +297 -0
  221. package/skills/dev/devops/references/gcloud-services.md +304 -0
  222. package/skills/dev/devops/references/kubernetes-basics.md +99 -0
  223. package/skills/dev/devops/references/kubernetes-helm-advanced.md +75 -0
  224. package/skills/dev/devops/references/kubernetes-helm.md +81 -0
  225. package/skills/dev/devops/references/kubernetes-kubectl.md +74 -0
  226. package/skills/dev/devops/references/kubernetes-security-advanced.md +98 -0
  227. package/skills/dev/devops/references/kubernetes-security.md +95 -0
  228. package/skills/dev/devops/references/kubernetes-troubleshooting-advanced.md +74 -0
  229. package/skills/dev/devops/references/kubernetes-troubleshooting.md +49 -0
  230. package/skills/dev/devops/references/kubernetes-workflows-advanced.md +75 -0
  231. package/skills/dev/devops/references/kubernetes-workflows.md +78 -0
  232. package/skills/dev/devops/scripts/cloudflare_deploy.py +269 -0
  233. package/skills/dev/devops/scripts/docker_optimize.py +332 -0
  234. package/skills/dev/devops/scripts/requirements.txt +20 -0
  235. package/skills/dev/devops/scripts/tests/requirements.txt +3 -0
  236. package/skills/dev/devops/scripts/tests/test_cloudflare_deploy.py +285 -0
  237. package/skills/dev/devops/scripts/tests/test_docker_optimize.py +436 -0
  238. package/skills/dev/frontend-design/SKILL.md +78 -0
  239. package/skills/dev/frontend-design/references/ai-multimodal-overview.md +165 -0
  240. package/skills/dev/frontend-design/references/analysis-best-practices.md +80 -0
  241. package/skills/dev/frontend-design/references/analysis-prompts.md +141 -0
  242. package/skills/dev/frontend-design/references/analysis-techniques.md +118 -0
  243. package/skills/dev/frontend-design/references/animejs.md +396 -0
  244. package/skills/dev/frontend-design/references/asset-generation.md +337 -0
  245. package/skills/dev/frontend-design/references/design-extraction-overview.md +71 -0
  246. package/skills/dev/frontend-design/references/extraction-best-practices.md +141 -0
  247. package/skills/dev/frontend-design/references/extraction-output-templates.md +162 -0
  248. package/skills/dev/frontend-design/references/extraction-prompts.md +127 -0
  249. package/skills/dev/frontend-design/references/technical-accessibility.md +119 -0
  250. package/skills/dev/frontend-design/references/technical-best-practices.md +97 -0
  251. package/skills/dev/frontend-design/references/technical-optimization.md +44 -0
  252. package/skills/dev/frontend-design/references/technical-overview.md +90 -0
  253. package/skills/dev/frontend-design/references/technical-workflows.md +150 -0
  254. package/skills/dev/frontend-design/references/visual-analysis-overview.md +95 -0
  255. package/skills/dev/frontend-design/references/workflow-3d.md +102 -0
  256. package/skills/dev/frontend-design/references/workflow-describe.md +87 -0
  257. package/skills/dev/frontend-design/references/workflow-immersive.md +87 -0
  258. package/skills/dev/frontend-design/references/workflow-quick.md +57 -0
  259. package/skills/dev/frontend-design/references/workflow-screenshot.md +63 -0
  260. package/skills/dev/frontend-design/references/workflow-video.md +74 -0
  261. package/skills/dev/frontend-dev/SKILL.md +400 -0
  262. package/skills/dev/frontend-dev/resources/common-patterns.md +331 -0
  263. package/skills/dev/frontend-dev/resources/complete-examples.md +872 -0
  264. package/skills/dev/frontend-dev/resources/component-patterns.md +502 -0
  265. package/skills/dev/frontend-dev/resources/data-fetching.md +767 -0
  266. package/skills/dev/frontend-dev/resources/file-organization.md +502 -0
  267. package/skills/dev/frontend-dev/resources/loading-and-error-states.md +501 -0
  268. package/skills/dev/frontend-dev/resources/performance.md +406 -0
  269. package/skills/dev/frontend-dev/resources/routing-guide.md +364 -0
  270. package/skills/dev/frontend-dev/resources/styling-guide.md +428 -0
  271. package/skills/dev/frontend-dev/resources/typescript-standards.md +418 -0
  272. package/skills/dev/git/SKILL.md +114 -0
  273. package/skills/dev/git/references/branch-management.md +88 -0
  274. package/skills/dev/git/references/commit-standards.md +46 -0
  275. package/skills/dev/git/references/gh-cli-guide.md +109 -0
  276. package/skills/dev/git/references/safety-protocols.md +69 -0
  277. package/skills/dev/git/references/workflow-commit.md +58 -0
  278. package/skills/dev/git/references/workflow-merge.md +48 -0
  279. package/skills/dev/git/references/workflow-pr.md +58 -0
  280. package/skills/dev/git/references/workflow-push.md +52 -0
  281. package/skills/dev/git-worktree/SKILL.md +218 -0
  282. package/skills/utils/ask/SKILL.md +58 -0
  283. package/skills/utils/bootstrap/SKILL.md +101 -0
  284. package/skills/utils/bootstrap/references/shared-phases.md +59 -0
  285. package/skills/utils/bootstrap/references/workflow-auto.md +52 -0
  286. package/skills/utils/bootstrap/references/workflow-fast.md +50 -0
  287. package/skills/utils/bootstrap/references/workflow-full.md +60 -0
  288. package/skills/utils/bootstrap/references/workflow-parallel.md +59 -0
  289. package/skills/utils/ck-help/SKILL.md +102 -0
  290. package/skills/utils/ck-help/scripts/ck-help.py +1321 -0
  291. package/skills/utils/ck-help/scripts/commands_data.yaml +3 -0
  292. package/skills/utils/ck-help/scripts/skills_data.yaml +593 -0
  293. package/skills/utils/copywriting/SKILL.md +94 -0
  294. package/skills/utils/copywriting/references/copy-formulas.md +150 -0
  295. package/skills/utils/copywriting/references/cta-patterns.md +168 -0
  296. package/skills/utils/copywriting/references/email-copy.md +193 -0
  297. package/skills/utils/copywriting/references/headline-templates.md +140 -0
  298. package/skills/utils/copywriting/references/landing-page-copy.md +175 -0
  299. package/skills/utils/copywriting/references/power-words.md +189 -0
  300. package/skills/utils/copywriting/references/social-media-copy.md +222 -0
  301. package/skills/utils/copywriting/references/workflow-cro.md +83 -0
  302. package/skills/utils/copywriting/references/workflow-enhance.md +32 -0
  303. package/skills/utils/copywriting/references/workflow-fast.md +29 -0
  304. package/skills/utils/copywriting/references/workflow-good.md +39 -0
  305. package/skills/utils/copywriting/references/writing-styles.md +247 -0
  306. package/skills/utils/copywriting/scripts/extract-writing-styles.py +308 -0
  307. package/skills/utils/copywriting/templates/copy-brief.md +49 -0
  308. package/skills/utils/docs/SKILL.md +55 -0
  309. package/skills/utils/docs/references/init-workflow.md +32 -0
  310. package/skills/utils/docs/references/summarize-workflow.md +18 -0
  311. package/skills/utils/docs/references/update-workflow.md +59 -0
  312. package/skills/utils/journal/SKILL.md +11 -0
  313. package/skills/utils/kanban/SKILL.md +99 -0
  314. package/skills/utils/preview/SKILL.md +75 -0
  315. package/skills/utils/preview/references/generation-modes.md +95 -0
  316. package/skills/utils/preview/references/view-mode.md +42 -0
  317. package/skills/utils/repomix/SKILL.md +248 -0
  318. package/skills/utils/repomix/references/configuration.md +211 -0
  319. package/skills/utils/repomix/references/usage-patterns.md +232 -0
  320. package/skills/utils/repomix/scripts/.coverage +0 -0
  321. package/skills/utils/repomix/scripts/README.md +179 -0
  322. package/skills/utils/repomix/scripts/repomix_batch.py +455 -0
  323. package/skills/utils/repomix/scripts/repos.example.json +15 -0
  324. package/skills/utils/repomix/scripts/requirements.txt +15 -0
  325. package/skills/utils/repomix/scripts/tests/test_repomix_batch.py +531 -0
  326. package/skills/utils/research/SKILL.md +171 -0
  327. package/skills/utils/scout/SKILL.md +89 -0
  328. package/skills/utils/scout/references/external-scouting.md +140 -0
  329. package/skills/utils/scout/references/internal-scouting.md +119 -0
  330. package/skills/utils/scout/references/task-management-scouting.md +125 -0
  331. package/skills/utils/sequential-thinking/.env.example +8 -0
  332. package/skills/utils/sequential-thinking/README.md +183 -0
  333. package/skills/utils/sequential-thinking/SKILL.md +95 -0
  334. package/skills/utils/sequential-thinking/package.json +31 -0
  335. package/skills/utils/sequential-thinking/references/advanced-strategies.md +79 -0
  336. package/skills/utils/sequential-thinking/references/advanced-techniques.md +76 -0
  337. package/skills/utils/sequential-thinking/references/core-patterns.md +95 -0
  338. package/skills/utils/sequential-thinking/references/examples-api.md +88 -0
  339. package/skills/utils/sequential-thinking/references/examples-architecture.md +94 -0
  340. package/skills/utils/sequential-thinking/references/examples-debug.md +90 -0
  341. package/skills/utils/sequential-thinking/scripts/format-thought.js +159 -0
  342. package/skills/utils/sequential-thinking/scripts/process-thought.js +236 -0
  343. package/skills/utils/sequential-thinking/tests/format-thought.test.js +133 -0
  344. package/skills/utils/sequential-thinking/tests/process-thought.test.js +215 -0
  345. package/skills/utils/write-skill/SKILL.md +655 -0
  346. package/skills/utils/write-skill/anthropic-best-practices.md +1150 -0
  347. package/skills/utils/write-skill/examples/CLAUDE_MD_TESTING.md +189 -0
  348. package/skills/utils/write-skill/graphviz-conventions.dot +172 -0
  349. package/skills/utils/write-skill/persuasion-principles.md +187 -0
  350. package/skills/utils/write-skill/render-graphs.js +168 -0
  351. package/skills/utils/write-skill/testing-skills-with-subagents.md +384 -0
  352. package/src/commands/init.js +238 -0
@@ -0,0 +1,426 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Database migration tool for MongoDB and PostgreSQL.
4
+ Generates and applies schema migrations with rollback support.
5
+ """
6
+
7
+ import argparse
8
+ import json
9
+ import os
10
+ import sys
11
+ from dataclasses import dataclass
12
+ from datetime import datetime
13
+ from pathlib import Path
14
+ from typing import Any, Dict, List, Optional
15
+
16
+ # Windows UTF-8 compatibility (works for both local and global installs)
17
+ CLAUDE_ROOT = Path(__file__).parent.parent.parent.parent
18
+ sys.path.insert(0, str(CLAUDE_ROOT / 'scripts'))
19
+ try:
20
+ from win_compat import ensure_utf8_stdout
21
+ ensure_utf8_stdout()
22
+ except ImportError:
23
+ if sys.platform == 'win32':
24
+ import io
25
+ if hasattr(sys.stdout, 'buffer'):
26
+ sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
27
+
28
+ try:
29
+ from pymongo import MongoClient
30
+ MONGO_AVAILABLE = True
31
+ except ImportError:
32
+ MONGO_AVAILABLE = False
33
+
34
+ try:
35
+ import psycopg2
36
+ from psycopg2 import sql
37
+ POSTGRES_AVAILABLE = True
38
+ except ImportError:
39
+ POSTGRES_AVAILABLE = False
40
+
41
+
42
+ @dataclass
43
+ class Migration:
44
+ """Represents a database migration."""
45
+
46
+ id: str
47
+ name: str
48
+ timestamp: datetime
49
+ database_type: str
50
+ up_sql: Optional[str] = None
51
+ down_sql: Optional[str] = None
52
+ mongodb_operations: Optional[List[Dict[str, Any]]] = None
53
+ applied: bool = False
54
+
55
+
56
+ class MigrationManager:
57
+ """Manages database migrations for MongoDB and PostgreSQL."""
58
+
59
+ def __init__(self, db_type: str, connection_string: str, migrations_dir: str = "./migrations"):
60
+ """
61
+ Initialize migration manager.
62
+
63
+ Args:
64
+ db_type: Database type ('mongodb' or 'postgres')
65
+ connection_string: Database connection string
66
+ migrations_dir: Directory to store migration files
67
+ """
68
+ self.db_type = db_type.lower()
69
+ self.connection_string = connection_string
70
+ self.migrations_dir = Path(migrations_dir)
71
+ self.migrations_dir.mkdir(exist_ok=True)
72
+
73
+ self.client = None
74
+ self.db = None
75
+ self.conn = None
76
+
77
+ def connect(self) -> bool:
78
+ """
79
+ Connect to database.
80
+
81
+ Returns:
82
+ True if connection successful, False otherwise
83
+ """
84
+ try:
85
+ if self.db_type == "mongodb":
86
+ if not MONGO_AVAILABLE:
87
+ print("Error: pymongo not installed")
88
+ return False
89
+ self.client = MongoClient(self.connection_string)
90
+ self.db = self.client.get_default_database()
91
+ # Test connection
92
+ self.client.server_info()
93
+ return True
94
+
95
+ elif self.db_type == "postgres":
96
+ if not POSTGRES_AVAILABLE:
97
+ print("Error: psycopg2 not installed")
98
+ return False
99
+ self.conn = psycopg2.connect(self.connection_string)
100
+ return True
101
+
102
+ else:
103
+ print(f"Error: Unsupported database type: {self.db_type}")
104
+ return False
105
+
106
+ except Exception as e:
107
+ print(f"Connection error: {e}")
108
+ return False
109
+
110
+ def disconnect(self):
111
+ """Disconnect from database."""
112
+ try:
113
+ if self.client:
114
+ self.client.close()
115
+ if self.conn:
116
+ self.conn.close()
117
+ except Exception as e:
118
+ print(f"Disconnect error: {e}")
119
+
120
+ def _ensure_migrations_table(self):
121
+ """Create migrations tracking table/collection if not exists."""
122
+ if self.db_type == "mongodb":
123
+ # MongoDB creates collection automatically
124
+ pass
125
+ elif self.db_type == "postgres":
126
+ with self.conn.cursor() as cur:
127
+ cur.execute("""
128
+ CREATE TABLE IF NOT EXISTS migrations (
129
+ id VARCHAR(255) PRIMARY KEY,
130
+ name VARCHAR(255) NOT NULL,
131
+ applied_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
132
+ )
133
+ """)
134
+ self.conn.commit()
135
+
136
+ def generate_migration(self, name: str, dry_run: bool = False) -> Optional[Migration]:
137
+ """
138
+ Generate new migration file.
139
+
140
+ Args:
141
+ name: Migration name
142
+ dry_run: If True, only show what would be generated
143
+
144
+ Returns:
145
+ Migration object if successful, None otherwise
146
+ """
147
+ timestamp = datetime.now()
148
+ migration_id = timestamp.strftime("%Y%m%d%H%M%S")
149
+ filename = f"{migration_id}_{name}.json"
150
+ filepath = self.migrations_dir / filename
151
+
152
+ migration = Migration(
153
+ id=migration_id,
154
+ name=name,
155
+ timestamp=timestamp,
156
+ database_type=self.db_type
157
+ )
158
+
159
+ if self.db_type == "mongodb":
160
+ migration.mongodb_operations = [
161
+ {
162
+ "operation": "createIndex",
163
+ "collection": "example_collection",
164
+ "index": {"field": 1},
165
+ "options": {}
166
+ }
167
+ ]
168
+ elif self.db_type == "postgres":
169
+ migration.up_sql = "-- Add your SQL here\n"
170
+ migration.down_sql = "-- Add rollback SQL here\n"
171
+
172
+ migration_data = {
173
+ "id": migration.id,
174
+ "name": migration.name,
175
+ "timestamp": migration.timestamp.isoformat(),
176
+ "database_type": migration.database_type,
177
+ "up_sql": migration.up_sql,
178
+ "down_sql": migration.down_sql,
179
+ "mongodb_operations": migration.mongodb_operations
180
+ }
181
+
182
+ if dry_run:
183
+ print(f"Would create: {filepath}")
184
+ print(json.dumps(migration_data, indent=2))
185
+ return migration
186
+
187
+ try:
188
+ with open(filepath, "w") as f:
189
+ json.dump(migration_data, f, indent=2)
190
+ print(f"Created migration: {filepath}")
191
+ return migration
192
+ except Exception as e:
193
+ print(f"Error creating migration: {e}")
194
+ return None
195
+
196
+ def get_pending_migrations(self) -> List[Migration]:
197
+ """
198
+ Get list of pending migrations.
199
+
200
+ Returns:
201
+ List of pending Migration objects
202
+ """
203
+ # Get applied migrations
204
+ applied_ids = set()
205
+
206
+ try:
207
+ if self.db_type == "mongodb":
208
+ applied_ids = {
209
+ doc["id"] for doc in self.db.migrations.find({}, {"id": 1})
210
+ }
211
+ elif self.db_type == "postgres":
212
+ with self.conn.cursor() as cur:
213
+ cur.execute("SELECT id FROM migrations")
214
+ applied_ids = {row[0] for row in cur.fetchall()}
215
+ except Exception as e:
216
+ print(f"Error reading applied migrations: {e}")
217
+
218
+ # Get all migration files
219
+ pending = []
220
+ for filepath in sorted(self.migrations_dir.glob("*.json")):
221
+ try:
222
+ with open(filepath) as f:
223
+ data = json.load(f)
224
+
225
+ if data["id"] not in applied_ids:
226
+ migration = Migration(
227
+ id=data["id"],
228
+ name=data["name"],
229
+ timestamp=datetime.fromisoformat(data["timestamp"]),
230
+ database_type=data["database_type"],
231
+ up_sql=data.get("up_sql"),
232
+ down_sql=data.get("down_sql"),
233
+ mongodb_operations=data.get("mongodb_operations")
234
+ )
235
+ pending.append(migration)
236
+ except Exception as e:
237
+ print(f"Error reading {filepath}: {e}")
238
+
239
+ return pending
240
+
241
+ def apply_migration(self, migration: Migration, dry_run: bool = False) -> bool:
242
+ """
243
+ Apply migration.
244
+
245
+ Args:
246
+ migration: Migration to apply
247
+ dry_run: If True, only show what would be executed
248
+
249
+ Returns:
250
+ True if successful, False otherwise
251
+ """
252
+ print(f"Applying migration: {migration.id} - {migration.name}")
253
+
254
+ if dry_run:
255
+ if self.db_type == "mongodb":
256
+ print("MongoDB operations:")
257
+ print(json.dumps(migration.mongodb_operations, indent=2))
258
+ elif self.db_type == "postgres":
259
+ print("SQL to execute:")
260
+ print(migration.up_sql)
261
+ return True
262
+
263
+ try:
264
+ if self.db_type == "mongodb":
265
+ for op in migration.mongodb_operations or []:
266
+ if op["operation"] == "createIndex":
267
+ self.db[op["collection"]].create_index(
268
+ list(op["index"].items()),
269
+ **op.get("options", {})
270
+ )
271
+
272
+ # Record migration
273
+ self.db.migrations.insert_one({
274
+ "id": migration.id,
275
+ "name": migration.name,
276
+ "applied_at": datetime.now()
277
+ })
278
+
279
+ elif self.db_type == "postgres":
280
+ with self.conn.cursor() as cur:
281
+ cur.execute(migration.up_sql)
282
+
283
+ # Record migration
284
+ cur.execute(
285
+ "INSERT INTO migrations (id, name) VALUES (%s, %s)",
286
+ (migration.id, migration.name)
287
+ )
288
+ self.conn.commit()
289
+
290
+ print(f"✓ Applied: {migration.id}")
291
+ return True
292
+
293
+ except Exception as e:
294
+ print(f"✗ Error applying migration: {e}")
295
+ if self.conn:
296
+ self.conn.rollback()
297
+ return False
298
+
299
+ def rollback_migration(self, migration_id: str, dry_run: bool = False) -> bool:
300
+ """
301
+ Rollback migration.
302
+
303
+ Args:
304
+ migration_id: Migration ID to rollback
305
+ dry_run: If True, only show what would be executed
306
+
307
+ Returns:
308
+ True if successful, False otherwise
309
+ """
310
+ # Find migration file
311
+ migration_file = None
312
+ for filepath in self.migrations_dir.glob(f"{migration_id}_*.json"):
313
+ migration_file = filepath
314
+ break
315
+
316
+ if not migration_file:
317
+ print(f"Migration not found: {migration_id}")
318
+ return False
319
+
320
+ try:
321
+ with open(migration_file) as f:
322
+ data = json.load(f)
323
+
324
+ print(f"Rolling back: {migration_id} - {data['name']}")
325
+
326
+ if dry_run:
327
+ if self.db_type == "postgres":
328
+ print("SQL to execute:")
329
+ print(data.get("down_sql", "-- No rollback defined"))
330
+ return True
331
+
332
+ if self.db_type == "postgres" and data.get("down_sql"):
333
+ with self.conn.cursor() as cur:
334
+ cur.execute(data["down_sql"])
335
+ cur.execute("DELETE FROM migrations WHERE id = %s", (migration_id,))
336
+ self.conn.commit()
337
+ elif self.db_type == "mongodb":
338
+ self.db.migrations.delete_one({"id": migration_id})
339
+
340
+ print(f"✓ Rolled back: {migration_id}")
341
+ return True
342
+
343
+ except Exception as e:
344
+ print(f"✗ Error rolling back: {e}")
345
+ if self.conn:
346
+ self.conn.rollback()
347
+ return False
348
+
349
+
350
+ def main():
351
+ """Main entry point."""
352
+ parser = argparse.ArgumentParser(description="Database migration tool")
353
+ parser.add_argument("--db", required=True, choices=["mongodb", "postgres"],
354
+ help="Database type")
355
+ parser.add_argument("--uri", help="Database connection string")
356
+ parser.add_argument("--migrations-dir", default="./migrations",
357
+ help="Migrations directory")
358
+
359
+ subparsers = parser.add_subparsers(dest="command", required=True)
360
+
361
+ # Generate command
362
+ gen_parser = subparsers.add_parser("generate", help="Generate new migration")
363
+ gen_parser.add_argument("name", help="Migration name")
364
+ gen_parser.add_argument("--dry-run", action="store_true",
365
+ help="Show what would be generated")
366
+
367
+ # Apply command
368
+ apply_parser = subparsers.add_parser("apply", help="Apply pending migrations")
369
+ apply_parser.add_argument("--dry-run", action="store_true",
370
+ help="Show what would be executed")
371
+
372
+ # Rollback command
373
+ rollback_parser = subparsers.add_parser("rollback", help="Rollback migration")
374
+ rollback_parser.add_argument("id", help="Migration ID to rollback")
375
+ rollback_parser.add_argument("--dry-run", action="store_true",
376
+ help="Show what would be executed")
377
+
378
+ # Status command
379
+ subparsers.add_parser("status", help="Show migration status")
380
+
381
+ args = parser.parse_args()
382
+
383
+ # For generate, we don't need connection
384
+ if args.command == "generate":
385
+ manager = MigrationManager(args.db, "", args.migrations_dir)
386
+ migration = manager.generate_migration(args.name, args.dry_run)
387
+ sys.exit(0 if migration else 1)
388
+
389
+ # Other commands need connection
390
+ if not args.uri:
391
+ print("Error: --uri required for this command")
392
+ sys.exit(1)
393
+
394
+ manager = MigrationManager(args.db, args.uri, args.migrations_dir)
395
+
396
+ if not manager.connect():
397
+ sys.exit(1)
398
+
399
+ try:
400
+ manager._ensure_migrations_table()
401
+
402
+ if args.command == "status":
403
+ pending = manager.get_pending_migrations()
404
+ print(f"Pending migrations: {len(pending)}")
405
+ for migration in pending:
406
+ print(f" {migration.id} - {migration.name}")
407
+
408
+ elif args.command == "apply":
409
+ pending = manager.get_pending_migrations()
410
+ if not pending:
411
+ print("No pending migrations")
412
+ else:
413
+ for migration in pending:
414
+ if not manager.apply_migration(migration, args.dry_run):
415
+ sys.exit(1)
416
+
417
+ elif args.command == "rollback":
418
+ if not manager.rollback_migration(args.id, args.dry_run):
419
+ sys.exit(1)
420
+
421
+ finally:
422
+ manager.disconnect()
423
+
424
+
425
+ if __name__ == "__main__":
426
+ main()