thanh-kit 2.5.0 → 2.5.2

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 (886) hide show
  1. package/dist/index.js +20 -61
  2. package/dist/index.js.map +1 -1
  3. package/package.json +1 -1
  4. package/templates/.ck.json +60 -0
  5. package/templates/.ckignore +27 -0
  6. package/templates/.mcp.json.example +23 -0
  7. package/templates/agents/brainstormer.md +18 -2
  8. package/templates/agents/code-reviewer.md +122 -142
  9. package/templates/agents/code-simplifier.md +50 -100
  10. package/templates/agents/debugger.md +27 -11
  11. package/templates/agents/docs-manager.md +100 -38
  12. package/templates/agents/fullstack-developer.md +15 -3
  13. package/templates/agents/git-manager.md +11 -386
  14. package/templates/agents/journal-writer.md +13 -8
  15. package/templates/agents/mcp-manager.md +21 -6
  16. package/templates/agents/planner.md +24 -8
  17. package/templates/agents/project-manager.md +17 -121
  18. package/templates/agents/researcher.md +22 -7
  19. package/templates/agents/tester.md +23 -7
  20. package/templates/agents/ui-ux-designer.md +23 -14
  21. package/templates/{commands → command-archive}/ask.md +5 -5
  22. package/templates/{commands → command-archive}/ck-help.md +18 -2
  23. package/templates/command-archive/docs/init.md +38 -0
  24. package/templates/command-archive/docs/summarize.md +22 -0
  25. package/templates/command-archive/docs/update.md +76 -0
  26. package/templates/command-archive/journal.md +18 -0
  27. package/templates/{commands → command-archive}/kanban.md +5 -7
  28. package/templates/{commands → command-archive}/plan/archive.md +2 -2
  29. package/templates/command-archive/plan/red-team.md +200 -0
  30. package/templates/command-archive/plan/validate.md +188 -0
  31. package/templates/command-archive/preview.md +283 -0
  32. package/templates/command-archive/review/codebase/parallel.md +122 -0
  33. package/templates/{commands → command-archive}/test/ui.md +3 -3
  34. package/templates/{commands → command-archive}/use-mcp.md +6 -2
  35. package/templates/command-archive/worktree.md +109 -0
  36. package/templates/hooks/__tests__/ck-config-utils.test.cjs +557 -0
  37. package/templates/hooks/__tests__/descriptive-name.test.cjs +292 -0
  38. package/templates/hooks/__tests__/dev-rules-reminder.test.cjs +336 -0
  39. package/templates/hooks/__tests__/integration/path-resolution.test.cjs +319 -0
  40. package/templates/hooks/__tests__/privacy-block.test.cjs +273 -0
  41. package/templates/hooks/__tests__/session-init.test.cjs +308 -0
  42. package/templates/hooks/__tests__/skill-dedup.test.cjs +527 -0
  43. package/templates/hooks/__tests__/subagent-init.test.cjs +622 -0
  44. package/templates/hooks/__tests__/task-completed-handler.test.cjs +246 -0
  45. package/templates/hooks/__tests__/team-context-inject.test.cjs +804 -0
  46. package/templates/hooks/__tests__/teammate-idle-handler.test.cjs +254 -0
  47. package/templates/hooks/cook-after-plan-reminder.cjs +72 -0
  48. package/templates/hooks/descriptive-name.cjs +47 -0
  49. package/templates/hooks/dev-rules-reminder.cjs +37 -214
  50. package/templates/hooks/lib/__tests__/README.md +240 -0
  51. package/templates/hooks/lib/__tests__/ck-config-utils.test.cjs +613 -1
  52. package/templates/hooks/lib/__tests__/context-builder.test.cjs +468 -0
  53. package/templates/hooks/lib/__tests__/project-detector.test.cjs +754 -0
  54. package/templates/hooks/lib/__tests__/statusline-integration.test.cjs +678 -0
  55. package/templates/hooks/lib/__tests__/statusline.test.cjs +689 -0
  56. package/templates/hooks/lib/ck-config-utils.cjs +146 -21
  57. package/templates/hooks/lib/colors.cjs +95 -0
  58. package/templates/hooks/lib/config-counter.cjs +103 -0
  59. package/templates/hooks/lib/context-builder.cjs +616 -0
  60. package/templates/hooks/lib/git-info-cache.cjs +143 -0
  61. package/templates/hooks/lib/hook-logger.cjs +92 -0
  62. package/templates/hooks/lib/privacy-checker.cjs +297 -0
  63. package/templates/hooks/lib/project-detector.cjs +474 -0
  64. package/templates/hooks/lib/scout-checker.cjs +263 -0
  65. package/templates/hooks/lib/transcript-parser.cjs +181 -0
  66. package/templates/hooks/notifications/discord_notify.sh +17 -4
  67. package/templates/hooks/notifications/docs/discord-hook-setup.md +26 -10
  68. package/templates/hooks/notifications/docs/telegram-hook-setup.md +24 -6
  69. package/templates/hooks/notifications/notify.cjs +0 -0
  70. package/templates/hooks/notifications/send-discord.sh +0 -0
  71. package/templates/hooks/notifications/telegram_notify.sh +17 -4
  72. package/templates/hooks/post-edit-simplify-reminder.cjs +156 -0
  73. package/templates/hooks/privacy-block.cjs +97 -188
  74. package/templates/hooks/scout-block/broad-pattern-detector.cjs +4 -6
  75. package/templates/hooks/scout-block/error-formatter.cjs +0 -0
  76. package/templates/hooks/scout-block/path-extractor.cjs +102 -13
  77. package/templates/hooks/scout-block/pattern-matcher.cjs +16 -1
  78. package/templates/hooks/scout-block/tests/{test-broad-pattern-detector.js → test-broad-pattern-detector.cjs} +1 -61
  79. package/templates/hooks/scout-block/tests/{test-build-command-allowlist.js → test-build-command-allowlist.cjs} +1 -1
  80. package/templates/hooks/scout-block/tests/{test-error-formatter.js → test-error-formatter.cjs} +1 -1
  81. package/templates/hooks/scout-block/tests/{test-full-flow-edge-cases.js → test-full-flow-edge-cases.cjs} +1 -1
  82. package/templates/hooks/scout-block/tests/{test-monorepo-scenarios.js → test-monorepo-scenarios.cjs} +1 -1
  83. package/templates/hooks/scout-block/tests/{test-path-extractor.js → test-path-extractor.cjs} +1 -1
  84. package/templates/hooks/scout-block/tests/{test-pattern-matcher.js → test-pattern-matcher.cjs} +1 -1
  85. package/templates/hooks/scout-block.cjs +100 -87
  86. package/templates/hooks/session-init.cjs +197 -330
  87. package/templates/hooks/skill-dedup.cjs +268 -0
  88. package/templates/hooks/subagent-init.cjs +75 -22
  89. package/templates/hooks/task-completed-handler.cjs +118 -0
  90. package/templates/hooks/team-context-inject.cjs +176 -0
  91. package/templates/hooks/teammate-idle-handler.cjs +121 -0
  92. package/templates/hooks/tests/scout-block/broad-pattern-detector.test.cjs +231 -0
  93. package/templates/hooks/tests/scout-block/fixtures/ckignore-custom.txt +6 -0
  94. package/templates/hooks/tests/scout-block/fixtures/ckignore-default.txt +13 -0
  95. package/templates/hooks/tests/scout-block/fixtures/ckignore-negation.txt +8 -0
  96. package/templates/hooks/tests/scout-block/path-extractor.test.cjs +527 -0
  97. package/templates/hooks/tests/scout-block/pattern-matcher.test.cjs +293 -0
  98. package/templates/hooks/tests/scout-block/scout-checker.test.cjs +741 -0
  99. package/templates/hooks/tests/{test-ckignore.js → test-ckignore.cjs} +0 -0
  100. package/templates/hooks/tests/{test-modularization-hook.js → test-modularization-hook.cjs} +0 -0
  101. package/templates/hooks/tests/{test-privacy-block.js → test-privacy-block.cjs} +1 -1
  102. package/templates/hooks/tests/test-scout-block.cjs +315 -0
  103. package/templates/hooks/usage-context-awareness.cjs +179 -0
  104. package/templates/metadata.json +104 -0
  105. package/templates/{workflows → rules}/development-rules.md +12 -53
  106. package/templates/rules/orchestration-protocol.md +43 -0
  107. package/templates/{workflows → rules}/primary-workflow.md +16 -4
  108. package/templates/rules/team-coordination-rules.md +90 -0
  109. package/templates/schemas/ck-config.schema.json +381 -0
  110. package/templates/scripts/README.md +94 -198
  111. package/templates/scripts/ck-help.py +19 -855
  112. package/templates/scripts/commands_data.yaml +3 -621
  113. package/templates/scripts/fix-shebang-permissions.sh +50 -0
  114. package/templates/scripts/generate_catalogs.py +37 -8
  115. package/templates/scripts/resolve_env.py +0 -0
  116. package/templates/scripts/scan_commands.py +14 -96
  117. package/templates/scripts/scan_skills.py +59 -19
  118. package/templates/scripts/set-active-plan.cjs +8 -3
  119. package/templates/scripts/skills_data.yaml +2 -596
  120. package/templates/scripts/test-ck-help.py +15 -0
  121. package/templates/scripts/test_ck_help.py +139 -0
  122. package/templates/scripts/test_ck_help_integration.py +72 -0
  123. package/templates/scripts/validate-docs.cjs +342 -0
  124. package/templates/scripts/win_compat.py +0 -0
  125. package/templates/scripts/worktree.cjs +4 -652
  126. package/templates/scripts/worktree.test.cjs +5 -330
  127. package/templates/settings.json +104 -239
  128. package/templates/skills/README.md +95 -255
  129. package/templates/skills/THIRD_PARTY_NOTICES.md +405 -0
  130. package/templates/skills/agent-browser/SKILL.md +294 -0
  131. package/templates/skills/agent-browser/references/.gitkeep +0 -0
  132. package/templates/skills/agent-browser/references/agent-browser-vs-chrome-devtools.md +112 -0
  133. package/templates/skills/agent-browser/references/browserbase-cloud-setup.md +161 -0
  134. package/templates/skills/ai-artist/SKILL.md +103 -56
  135. package/templates/skills/ai-artist/data/awesome-prompts.csv +3592 -0
  136. package/templates/skills/ai-artist/data/lighting.csv +19 -0
  137. package/templates/skills/ai-artist/data/nano-banana-templates.csv +17 -0
  138. package/templates/skills/ai-artist/data/platforms.csv +11 -0
  139. package/templates/skills/ai-artist/data/styles.csv +26 -0
  140. package/templates/skills/ai-artist/data/techniques.csv +19 -0
  141. package/templates/skills/ai-artist/data/use-cases.csv +16 -0
  142. package/templates/skills/ai-artist/references/awesome-nano-banana-pro-prompts.md +8575 -0
  143. package/templates/skills/ai-artist/references/nano-banana.md +78 -1
  144. package/templates/skills/ai-artist/references/validation-workflow.md +117 -0
  145. package/templates/skills/ai-artist/scripts/core.py +197 -0
  146. package/templates/skills/ai-artist/scripts/extract_prompts.py +102 -0
  147. package/templates/skills/ai-artist/scripts/generate.py +370 -0
  148. package/templates/skills/ai-artist/scripts/search.py +147 -0
  149. package/templates/skills/ai-multimodal/SKILL.md +4 -3
  150. package/templates/skills/ai-multimodal/scripts/check_setup.py +12 -2
  151. package/templates/skills/ai-multimodal/scripts/document_converter.py +0 -0
  152. package/templates/skills/ai-multimodal/scripts/gemini_batch_process.py +3 -2
  153. package/templates/skills/ai-multimodal/scripts/media_optimizer.py +0 -0
  154. package/templates/skills/ask/SKILL.md +58 -0
  155. package/templates/skills/backend-development/SKILL.md +3 -2
  156. package/templates/skills/better-auth/SKILL.md +3 -2
  157. package/templates/skills/better-auth/scripts/better_auth_init.py +3 -3
  158. package/templates/skills/bootstrap/SKILL.md +101 -0
  159. package/templates/skills/bootstrap/references/shared-phases.md +59 -0
  160. package/templates/skills/bootstrap/references/workflow-auto.md +52 -0
  161. package/templates/skills/bootstrap/references/workflow-fast.md +50 -0
  162. package/templates/skills/bootstrap/references/workflow-full.md +60 -0
  163. package/templates/skills/bootstrap/references/workflow-parallel.md +59 -0
  164. package/templates/{commands/brainstorm.md → skills/brainstorm/SKILL.md} +21 -18
  165. package/templates/skills/chrome-devtools/SKILL.md +221 -68
  166. package/templates/skills/chrome-devtools/scripts/README.md +18 -0
  167. package/templates/skills/chrome-devtools/scripts/__tests__/error-handling.test.js +102 -0
  168. package/templates/skills/chrome-devtools/scripts/aria-snapshot.js +2 -1
  169. package/templates/skills/chrome-devtools/scripts/click.js +2 -1
  170. package/templates/skills/chrome-devtools/scripts/connect-chrome.js +146 -0
  171. package/templates/skills/chrome-devtools/scripts/console.js +3 -1
  172. package/templates/skills/chrome-devtools/scripts/evaluate.js +6 -3
  173. package/templates/skills/chrome-devtools/scripts/fill.js +2 -1
  174. package/templates/skills/chrome-devtools/scripts/import-cookies.js +205 -0
  175. package/templates/skills/chrome-devtools/scripts/inject-auth.js +2 -1
  176. package/templates/skills/chrome-devtools/scripts/install-deps.sh +0 -0
  177. package/templates/skills/chrome-devtools/scripts/install.sh +0 -0
  178. package/templates/skills/chrome-devtools/scripts/lib/browser.js +60 -4
  179. package/templates/skills/chrome-devtools/scripts/navigate.js +86 -2
  180. package/templates/skills/chrome-devtools/scripts/network.js +3 -1
  181. package/templates/skills/chrome-devtools/scripts/performance.js +3 -1
  182. package/templates/skills/chrome-devtools/scripts/screenshot.js +2 -1
  183. package/templates/skills/chrome-devtools/scripts/select-ref.js +2 -1
  184. package/templates/skills/chrome-devtools/scripts/snapshot.js +2 -1
  185. package/templates/skills/chrome-devtools/scripts/ws-debug.js +44 -0
  186. package/templates/skills/chrome-devtools/scripts/ws-full-debug.js +107 -0
  187. package/templates/skills/ck-help/SKILL.md +102 -0
  188. package/templates/skills/ck-help/scripts/ck-help.py +1321 -0
  189. package/templates/skills/ck-help/scripts/commands_data.yaml +3 -0
  190. package/templates/skills/ck-help/scripts/skills_data.yaml +593 -0
  191. package/templates/skills/code-review/SKILL.md +97 -93
  192. package/templates/skills/code-review/references/code-review-reception.md +113 -209
  193. package/templates/skills/code-review/references/codebase-scan-workflow.md +29 -0
  194. package/templates/skills/code-review/references/edge-case-scouting.md +119 -0
  195. package/templates/skills/code-review/references/parallel-review-workflow.md +69 -0
  196. package/templates/skills/code-review/references/requesting-code-review.md +115 -104
  197. package/templates/skills/code-review/references/task-management-reviews.md +140 -0
  198. package/templates/skills/code-review/references/verification-before-completion.md +138 -138
  199. package/templates/skills/coding-level/SKILL.md +56 -0
  200. package/templates/skills/common/README.md +120 -0
  201. package/templates/skills/common/api_key_helper.py +411 -0
  202. package/templates/skills/common/api_key_rotator.py +248 -0
  203. package/templates/skills/context-engineering/SKILL.md +108 -0
  204. package/templates/skills/context-engineering/references/context-compression.md +84 -0
  205. package/templates/skills/context-engineering/references/context-degradation.md +93 -0
  206. package/templates/skills/context-engineering/references/context-fundamentals.md +75 -0
  207. package/templates/skills/context-engineering/references/context-optimization.md +82 -0
  208. package/templates/skills/context-engineering/references/evaluation.md +89 -0
  209. package/templates/skills/context-engineering/references/memory-systems.md +88 -0
  210. package/templates/skills/context-engineering/references/multi-agent-patterns.md +90 -0
  211. package/templates/skills/context-engineering/references/project-development.md +97 -0
  212. package/templates/skills/context-engineering/references/runtime-awareness.md +202 -0
  213. package/templates/skills/context-engineering/references/tool-design.md +86 -0
  214. package/templates/skills/context-engineering/scripts/compression_evaluator.py +349 -0
  215. package/templates/skills/context-engineering/scripts/context_analyzer.py +317 -0
  216. package/templates/skills/context-engineering/scripts/tests/test_edge_cases.py +246 -0
  217. package/templates/skills/cook/README.md +86 -0
  218. package/templates/skills/cook/SKILL.md +113 -0
  219. package/templates/skills/cook/references/intent-detection.md +101 -0
  220. package/templates/skills/cook/references/review-cycle.md +75 -0
  221. package/templates/skills/cook/references/subagent-patterns.md +75 -0
  222. package/templates/skills/cook/references/workflow-steps.md +172 -0
  223. package/templates/skills/copywriting/SKILL.md +94 -0
  224. package/templates/skills/copywriting/references/copy-formulas.md +150 -0
  225. package/templates/skills/copywriting/references/cta-patterns.md +168 -0
  226. package/templates/skills/copywriting/references/email-copy.md +193 -0
  227. package/templates/skills/copywriting/references/headline-templates.md +140 -0
  228. package/templates/skills/copywriting/references/landing-page-copy.md +175 -0
  229. package/templates/skills/copywriting/references/power-words.md +189 -0
  230. package/templates/skills/copywriting/references/social-media-copy.md +222 -0
  231. package/templates/skills/copywriting/references/workflow-cro.md +83 -0
  232. package/templates/skills/copywriting/references/workflow-enhance.md +32 -0
  233. package/templates/skills/copywriting/references/workflow-fast.md +29 -0
  234. package/templates/skills/copywriting/references/workflow-good.md +39 -0
  235. package/templates/skills/copywriting/references/writing-styles.md +247 -0
  236. package/templates/skills/copywriting/scripts/extract-writing-styles.py +308 -0
  237. package/templates/skills/copywriting/templates/copy-brief.md +49 -0
  238. package/templates/skills/databases/SKILL.md +7 -155
  239. package/templates/skills/databases/analytics.md +198 -0
  240. package/templates/skills/databases/db-design.md +188 -0
  241. package/templates/skills/databases/incremental-etl.md +213 -0
  242. package/templates/skills/databases/scripts/db_backup.py +0 -0
  243. package/templates/skills/databases/scripts/db_migrate.py +3 -2
  244. package/templates/skills/databases/scripts/db_performance_check.py +3 -2
  245. package/templates/skills/databases/stacks/bigquery.md +231 -0
  246. package/templates/skills/databases/stacks/d1_cloudflare.md +137 -0
  247. package/templates/skills/databases/stacks/mysql.md +216 -0
  248. package/templates/skills/databases/stacks/postgres.md +235 -0
  249. package/templates/skills/databases/stacks/sqlite.md +244 -0
  250. package/templates/skills/databases/transactional.md +176 -0
  251. package/templates/skills/debug/SKILL.md +121 -0
  252. package/templates/skills/debug/references/frontend-verification.md +103 -0
  253. package/templates/skills/debug/references/investigation-methodology.md +101 -0
  254. package/templates/skills/debug/references/log-and-ci-analysis.md +97 -0
  255. package/templates/skills/debug/references/performance-diagnostics.md +113 -0
  256. package/templates/skills/debug/references/reporting-standards.md +122 -0
  257. package/templates/skills/debug/references/task-management-debugging.md +155 -0
  258. package/templates/skills/devops/SKILL.md +65 -253
  259. package/templates/skills/devops/references/kubernetes-basics.md +99 -0
  260. package/templates/skills/devops/references/kubernetes-helm-advanced.md +75 -0
  261. package/templates/skills/devops/references/kubernetes-helm.md +81 -0
  262. package/templates/skills/devops/references/kubernetes-kubectl.md +74 -0
  263. package/templates/skills/devops/references/kubernetes-security-advanced.md +98 -0
  264. package/templates/skills/devops/references/kubernetes-security.md +95 -0
  265. package/templates/skills/devops/references/kubernetes-troubleshooting-advanced.md +74 -0
  266. package/templates/skills/devops/references/kubernetes-troubleshooting.md +49 -0
  267. package/templates/skills/devops/references/kubernetes-workflows-advanced.md +75 -0
  268. package/templates/skills/devops/references/kubernetes-workflows.md +78 -0
  269. package/templates/skills/devops/scripts/cloudflare_deploy.py +0 -0
  270. package/templates/skills/devops/scripts/docker_optimize.py +3 -2
  271. package/templates/skills/docs/SKILL.md +55 -0
  272. package/templates/skills/docs/references/init-workflow.md +32 -0
  273. package/templates/skills/docs/references/summarize-workflow.md +18 -0
  274. package/templates/skills/docs/references/update-workflow.md +59 -0
  275. package/templates/skills/docs-seeker/SKILL.md +3 -2
  276. package/templates/skills/docs-seeker/scripts/analyze-llms-txt.js +0 -0
  277. package/templates/skills/docs-seeker/scripts/detect-topic.js +0 -0
  278. package/templates/skills/docs-seeker/scripts/fetch-docs.js +0 -0
  279. package/templates/skills/docs-seeker/scripts/tests/run-tests.js +0 -0
  280. package/templates/skills/docs-seeker/scripts/tests/test-analyze-llms.js +0 -0
  281. package/templates/skills/docs-seeker/scripts/tests/test-detect-topic.js +0 -0
  282. package/templates/skills/docs-seeker/scripts/tests/test-fetch-docs.js +0 -0
  283. package/templates/skills/docs-seeker/scripts/utils/env-loader.js +0 -0
  284. package/templates/skills/document-skills/docx/SKILL.md +2 -2
  285. package/templates/skills/document-skills/docx/ooxml/scripts/pack.py +0 -0
  286. package/templates/skills/document-skills/docx/ooxml/scripts/unpack.py +0 -0
  287. package/templates/skills/document-skills/docx/ooxml/scripts/validate.py +0 -0
  288. package/templates/skills/document-skills/docx/scripts/document.py +0 -0
  289. package/templates/skills/document-skills/docx/scripts/utilities.py +0 -0
  290. package/templates/skills/document-skills/pdf/SKILL.md +2 -2
  291. package/templates/skills/document-skills/pptx/SKILL.md +2 -2
  292. package/templates/skills/document-skills/pptx/ooxml/scripts/pack.py +0 -0
  293. package/templates/skills/document-skills/pptx/ooxml/scripts/unpack.py +0 -0
  294. package/templates/skills/document-skills/pptx/ooxml/scripts/validate.py +0 -0
  295. package/templates/skills/document-skills/pptx/scripts/inventory.py +0 -0
  296. package/templates/skills/document-skills/pptx/scripts/rearrange.py +0 -0
  297. package/templates/skills/document-skills/pptx/scripts/replace.py +0 -0
  298. package/templates/skills/document-skills/pptx/scripts/thumbnail.py +0 -0
  299. package/templates/skills/document-skills/xlsx/SKILL.md +2 -2
  300. package/templates/skills/document-skills/xlsx/recalc.py +3 -2
  301. package/templates/skills/find-skills/SKILL.md +134 -0
  302. package/templates/skills/fix/SKILL.md +111 -0
  303. package/templates/skills/fix/references/complexity-assessment.md +72 -0
  304. package/templates/skills/fix/references/mode-selection.md +46 -0
  305. package/templates/skills/fix/references/parallel-exploration.md +100 -0
  306. package/templates/skills/fix/references/review-cycle.md +77 -0
  307. package/templates/skills/fix/references/skill-activation-matrix.md +78 -0
  308. package/templates/skills/fix/references/task-orchestration.md +103 -0
  309. package/templates/skills/fix/references/workflow-ci.md +28 -0
  310. package/templates/skills/fix/references/workflow-deep.md +122 -0
  311. package/templates/skills/fix/references/workflow-logs.md +72 -0
  312. package/templates/skills/fix/references/workflow-quick.md +59 -0
  313. package/templates/skills/fix/references/workflow-standard.md +111 -0
  314. package/templates/skills/fix/references/workflow-test.md +75 -0
  315. package/templates/skills/fix/references/workflow-types.md +33 -0
  316. package/templates/skills/fix/references/workflow-ui.md +75 -0
  317. package/templates/skills/frontend-design/SKILL.md +78 -91
  318. package/templates/skills/frontend-design/references/ai-multimodal-overview.md +6 -6
  319. package/templates/skills/frontend-design/references/animejs.md +395 -395
  320. package/templates/skills/frontend-design/references/asset-generation.md +4 -4
  321. package/templates/skills/frontend-design/references/visual-analysis-overview.md +1 -1
  322. package/templates/skills/frontend-design/references/workflow-3d.md +102 -0
  323. package/templates/skills/frontend-design/references/workflow-describe.md +87 -0
  324. package/templates/skills/frontend-design/references/workflow-immersive.md +87 -0
  325. package/templates/skills/frontend-design/references/workflow-quick.md +57 -0
  326. package/templates/skills/frontend-design/references/workflow-screenshot.md +63 -0
  327. package/templates/skills/frontend-design/references/workflow-video.md +74 -0
  328. package/templates/skills/frontend-development/SKILL.md +4 -3
  329. package/templates/skills/git/SKILL.md +114 -0
  330. package/templates/skills/git/references/branch-management.md +88 -0
  331. package/templates/skills/git/references/commit-standards.md +46 -0
  332. package/templates/skills/git/references/gh-cli-guide.md +109 -0
  333. package/templates/skills/git/references/safety-protocols.md +69 -0
  334. package/templates/skills/git/references/workflow-commit.md +58 -0
  335. package/templates/skills/git/references/workflow-merge.md +48 -0
  336. package/templates/skills/git/references/workflow-pr.md +58 -0
  337. package/templates/skills/git/references/workflow-push.md +52 -0
  338. package/templates/skills/gkg/SKILL.md +91 -0
  339. package/templates/skills/gkg/references/cli-commands.md +106 -0
  340. package/templates/skills/gkg/references/http-api.md +102 -0
  341. package/templates/skills/gkg/references/language-support.md +57 -0
  342. package/templates/skills/gkg/references/mcp-tools.md +99 -0
  343. package/templates/skills/google-adk-python/SKILL.md +91 -195
  344. package/templates/skills/google-adk-python/references/agent-types-and-architecture.md +128 -0
  345. package/templates/skills/google-adk-python/references/callbacks-plugins-observability.md +117 -0
  346. package/templates/skills/google-adk-python/references/deployment-cloud-run-vertex-gke.md +138 -0
  347. package/templates/skills/google-adk-python/references/evaluation-testing-cli.md +112 -0
  348. package/templates/skills/google-adk-python/references/multi-agent-and-a2a-protocol.md +145 -0
  349. package/templates/skills/google-adk-python/references/sessions-state-memory-artifacts.md +131 -0
  350. package/templates/skills/google-adk-python/references/tools-and-mcp-integration.md +146 -0
  351. package/templates/skills/install.ps1 +130 -26
  352. package/templates/skills/install.sh +383 -63
  353. package/templates/{commands/journal.md → skills/journal/SKILL.md} +5 -1
  354. package/templates/skills/kanban/SKILL.md +99 -0
  355. package/templates/skills/markdown-novel-viewer/SKILL.md +314 -0
  356. package/templates/skills/markdown-novel-viewer/assets/directory-browser.css +215 -0
  357. package/templates/skills/markdown-novel-viewer/assets/favicon.png +0 -0
  358. package/templates/skills/markdown-novel-viewer/assets/novel-theme.css +16 -0
  359. package/templates/skills/markdown-novel-viewer/assets/reader.js +838 -0
  360. package/templates/skills/markdown-novel-viewer/assets/styles/novel-theme-base.css +54 -0
  361. package/templates/skills/markdown-novel-viewer/assets/styles/novel-theme-components.css +180 -0
  362. package/templates/skills/markdown-novel-viewer/assets/styles/novel-theme-content.css +176 -0
  363. package/templates/skills/markdown-novel-viewer/assets/styles/novel-theme-header.css +217 -0
  364. package/templates/skills/markdown-novel-viewer/assets/styles/novel-theme-mermaid.css +153 -0
  365. package/templates/skills/markdown-novel-viewer/assets/styles/novel-theme-overlays.css +202 -0
  366. package/templates/skills/markdown-novel-viewer/assets/styles/novel-theme-responsive.css +285 -0
  367. package/templates/skills/markdown-novel-viewer/assets/styles/novel-theme-sidebar.css +359 -0
  368. package/templates/skills/markdown-novel-viewer/assets/styles/novel-theme-variables.css +56 -0
  369. package/templates/skills/markdown-novel-viewer/assets/template.html +149 -0
  370. package/templates/skills/markdown-novel-viewer/bun.lock +38 -0
  371. package/templates/skills/markdown-novel-viewer/package.json +15 -0
  372. package/templates/skills/markdown-novel-viewer/scripts/lib/http-server.cjs +434 -0
  373. package/templates/skills/markdown-novel-viewer/scripts/lib/markdown-renderer.cjs +335 -0
  374. package/templates/skills/markdown-novel-viewer/scripts/lib/plan-navigator.cjs +571 -0
  375. package/templates/skills/markdown-novel-viewer/scripts/lib/port-finder.cjs +48 -0
  376. package/templates/skills/markdown-novel-viewer/scripts/lib/process-mgr.cjs +150 -0
  377. package/templates/skills/markdown-novel-viewer/scripts/server.cjs +411 -0
  378. package/templates/skills/markdown-novel-viewer/scripts/tests/server.test.cjs +283 -0
  379. package/templates/skills/markdown-novel-viewer/tests/dashboard-assets.test.cjs +340 -0
  380. package/templates/skills/markdown-novel-viewer/tests/dashboard-renderer.test.cjs +404 -0
  381. package/templates/skills/markdown-novel-viewer/tests/http-server.test.cjs +271 -0
  382. package/templates/skills/markdown-novel-viewer/tests/run-tests.cjs +51 -0
  383. package/templates/skills/markdown-novel-viewer/tests/test-framework.cjs +154 -0
  384. package/templates/skills/markdown-novel-viewer/tests/verify-xss.cjs +90 -0
  385. package/templates/skills/mcp-builder/SKILL.md +3 -2
  386. package/templates/skills/mcp-builder/scripts/evaluation.py +9 -1
  387. package/templates/skills/mcp-management/SKILL.md +8 -7
  388. package/templates/skills/mcp-management/references/gemini-cli-integration.md +16 -10
  389. package/templates/skills/mcp-management/scripts/cli.ts +0 -0
  390. package/templates/skills/mcp-management/scripts/dist/analyze-tools.js +0 -0
  391. package/templates/skills/mcp-management/scripts/dist/cli.js +0 -0
  392. package/templates/skills/mcp-management/scripts/dist/mcp-client.js +0 -0
  393. package/templates/skills/mcp-management/scripts/mcp-client.ts +0 -0
  394. package/templates/skills/media-processing/SKILL.md +3 -2
  395. package/templates/skills/media-processing/scripts/batch-remove-background.sh +0 -0
  396. package/templates/skills/media-processing/scripts/batch_resize.py +0 -0
  397. package/templates/skills/media-processing/scripts/media_convert.py +0 -0
  398. package/templates/skills/media-processing/scripts/remove-background.sh +0 -0
  399. package/templates/skills/media-processing/scripts/remove-bg-node.js +0 -0
  400. package/templates/skills/media-processing/scripts/tests/test_batch_resize.py +0 -0
  401. package/templates/skills/media-processing/scripts/tests/test_media_convert.py +0 -0
  402. package/templates/skills/media-processing/scripts/tests/test_video_optimize.py +0 -0
  403. package/templates/skills/media-processing/scripts/video_optimize.py +0 -0
  404. package/templates/skills/mermaidjs-v11/SKILL.md +116 -0
  405. package/templates/skills/mermaidjs-v11/references/cli-usage.md +228 -0
  406. package/templates/skills/mermaidjs-v11/references/configuration.md +232 -0
  407. package/templates/skills/mermaidjs-v11/references/diagram-types.md +315 -0
  408. package/templates/skills/mermaidjs-v11/references/examples.md +344 -0
  409. package/templates/skills/mermaidjs-v11/references/integration.md +310 -0
  410. package/templates/skills/mintlify/SKILL.md +121 -0
  411. package/templates/skills/mintlify/references/ai-features-and-integrations-reference.md +756 -0
  412. package/templates/skills/mintlify/references/api-documentation-components-reference.md +873 -0
  413. package/templates/skills/mintlify/references/deployment-and-continuous-integration-reference.md +674 -0
  414. package/templates/skills/mintlify/references/docs-json-configuration-reference.md +724 -0
  415. package/templates/skills/mintlify/references/mdx-components-reference.md +551 -0
  416. package/templates/skills/mintlify/references/navigation-structure-and-organization-reference.md +775 -0
  417. package/templates/skills/mobile-development/SKILL.md +3 -2
  418. package/templates/skills/payment-integration/README.md +44 -12
  419. package/templates/skills/payment-integration/SKILL.md +82 -97
  420. package/templates/skills/payment-integration/references/creem/api.md +139 -0
  421. package/templates/skills/payment-integration/references/creem/checkouts.md +99 -0
  422. package/templates/skills/payment-integration/references/creem/licensing.md +136 -0
  423. package/templates/skills/payment-integration/references/creem/overview.md +65 -0
  424. package/templates/skills/payment-integration/references/creem/sdk.md +161 -0
  425. package/templates/skills/payment-integration/references/creem/subscriptions.md +129 -0
  426. package/templates/skills/payment-integration/references/creem/webhooks.md +120 -0
  427. package/templates/skills/payment-integration/references/implementation-workflows.md +43 -0
  428. package/templates/skills/payment-integration/references/multi-provider-order-management-patterns.md +821 -0
  429. package/templates/skills/payment-integration/references/paddle/api.md +116 -0
  430. package/templates/skills/payment-integration/references/paddle/best-practices.md +130 -0
  431. package/templates/skills/payment-integration/references/paddle/overview.md +57 -0
  432. package/templates/skills/payment-integration/references/paddle/paddle-js.md +106 -0
  433. package/templates/skills/payment-integration/references/paddle/sdk.md +131 -0
  434. package/templates/skills/payment-integration/references/paddle/subscriptions.md +118 -0
  435. package/templates/skills/payment-integration/references/paddle/webhooks.md +112 -0
  436. package/templates/skills/payment-integration/references/polar/best-practices.md +781 -361
  437. package/templates/skills/payment-integration/references/sepay/best-practices.md +870 -268
  438. package/templates/skills/payment-integration/references/stripe/stripe-best-practices.md +32 -0
  439. package/templates/skills/payment-integration/references/stripe/stripe-cli.md +148 -0
  440. package/templates/skills/payment-integration/references/stripe/stripe-js.md +116 -0
  441. package/templates/skills/payment-integration/references/stripe/stripe-sdks.md +84 -0
  442. package/templates/skills/payment-integration/references/stripe/stripe-upgrade.md +175 -0
  443. package/templates/skills/payment-integration/scripts/checkout-helper.js +0 -0
  444. package/templates/skills/payment-integration/scripts/polar-webhook-verify.js +0 -0
  445. package/templates/skills/payment-integration/scripts/sepay-webhook-verify.js +0 -0
  446. package/templates/skills/payment-integration/scripts/test-scripts.js +0 -0
  447. package/templates/skills/plan/SKILL.md +137 -0
  448. package/templates/skills/plan/references/archive-workflow.md +53 -0
  449. package/templates/skills/{planning → plan}/references/codebase-understanding.md +1 -1
  450. package/templates/skills/{planning → plan}/references/output-standards.md +15 -1
  451. package/templates/skills/{planning → plan}/references/plan-organization.md +12 -19
  452. package/templates/skills/plan/references/red-team-personas.md +69 -0
  453. package/templates/skills/plan/references/red-team-workflow.md +77 -0
  454. package/templates/skills/{planning → plan}/references/research-phase.md +2 -2
  455. package/templates/skills/plan/references/task-management.md +132 -0
  456. package/templates/skills/plan/references/validate-question-framework.md +80 -0
  457. package/templates/skills/plan/references/validate-workflow.md +65 -0
  458. package/templates/skills/plan/references/workflow-modes.md +145 -0
  459. package/templates/skills/plans-kanban/SKILL.md +167 -0
  460. package/templates/skills/plans-kanban/assets/dashboard-template.html +119 -0
  461. package/templates/skills/plans-kanban/assets/dashboard.css +1594 -0
  462. package/templates/skills/plans-kanban/assets/dashboard.js +596 -0
  463. package/templates/skills/plans-kanban/assets/favicon.png +0 -0
  464. package/templates/skills/plans-kanban/package.json +13 -0
  465. package/templates/skills/plans-kanban/scripts/lib/dashboard-renderer.cjs +884 -0
  466. package/templates/skills/plans-kanban/scripts/lib/http-server.cjs +310 -0
  467. package/templates/skills/plans-kanban/scripts/lib/plan-metadata-extractor.cjs +489 -0
  468. package/templates/skills/plans-kanban/scripts/lib/plan-parser.cjs +175 -0
  469. package/templates/skills/plans-kanban/scripts/lib/plan-scanner.cjs +272 -0
  470. package/templates/skills/plans-kanban/scripts/lib/port-finder.cjs +48 -0
  471. package/templates/skills/plans-kanban/scripts/lib/process-mgr.cjs +128 -0
  472. package/templates/skills/plans-kanban/scripts/server.cjs +260 -0
  473. package/templates/skills/preview/SKILL.md +75 -0
  474. package/templates/skills/preview/references/generation-modes.md +95 -0
  475. package/templates/skills/preview/references/view-mode.md +42 -0
  476. package/templates/skills/problem-solving/SKILL.md +3 -2
  477. package/templates/skills/project-management/SKILL.md +122 -0
  478. package/templates/skills/project-management/references/documentation-triggers.md +60 -0
  479. package/templates/skills/project-management/references/hydration-workflow.md +85 -0
  480. package/templates/skills/project-management/references/progress-tracking.md +96 -0
  481. package/templates/skills/project-management/references/reporting-patterns.md +94 -0
  482. package/templates/skills/project-management/references/task-operations.md +85 -0
  483. package/templates/skills/react-best-practices/AGENTS.md +2249 -0
  484. package/templates/skills/react-best-practices/README.md +123 -0
  485. package/templates/skills/react-best-practices/SKILL.md +122 -0
  486. package/templates/skills/react-best-practices/metadata.json +15 -0
  487. package/templates/skills/react-best-practices/rules/_sections.md +46 -0
  488. package/templates/skills/react-best-practices/rules/_template.md +28 -0
  489. package/templates/skills/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  490. package/templates/skills/react-best-practices/rules/advanced-use-latest.md +49 -0
  491. package/templates/skills/react-best-practices/rules/async-api-routes.md +38 -0
  492. package/templates/skills/react-best-practices/rules/async-defer-await.md +80 -0
  493. package/templates/skills/react-best-practices/rules/async-dependencies.md +36 -0
  494. package/templates/skills/react-best-practices/rules/async-parallel.md +28 -0
  495. package/templates/skills/react-best-practices/rules/async-suspense-boundaries.md +99 -0
  496. package/templates/skills/react-best-practices/rules/bundle-barrel-imports.md +59 -0
  497. package/templates/skills/react-best-practices/rules/bundle-conditional.md +31 -0
  498. package/templates/skills/react-best-practices/rules/bundle-defer-third-party.md +49 -0
  499. package/templates/skills/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  500. package/templates/skills/react-best-practices/rules/bundle-preload.md +50 -0
  501. package/templates/skills/react-best-practices/rules/client-event-listeners.md +74 -0
  502. package/templates/skills/react-best-practices/rules/client-swr-dedup.md +56 -0
  503. package/templates/skills/react-best-practices/rules/js-batch-dom-css.md +82 -0
  504. package/templates/skills/react-best-practices/rules/js-cache-function-results.md +80 -0
  505. package/templates/skills/react-best-practices/rules/js-cache-property-access.md +28 -0
  506. package/templates/skills/react-best-practices/rules/js-cache-storage.md +70 -0
  507. package/templates/skills/react-best-practices/rules/js-combine-iterations.md +32 -0
  508. package/templates/skills/react-best-practices/rules/js-early-exit.md +50 -0
  509. package/templates/skills/react-best-practices/rules/js-hoist-regexp.md +45 -0
  510. package/templates/skills/react-best-practices/rules/js-index-maps.md +37 -0
  511. package/templates/skills/react-best-practices/rules/js-length-check-first.md +49 -0
  512. package/templates/skills/react-best-practices/rules/js-min-max-loop.md +82 -0
  513. package/templates/skills/react-best-practices/rules/js-set-map-lookups.md +24 -0
  514. package/templates/skills/react-best-practices/rules/js-tosorted-immutable.md +57 -0
  515. package/templates/skills/react-best-practices/rules/rendering-activity.md +26 -0
  516. package/templates/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  517. package/templates/skills/react-best-practices/rules/rendering-conditional-render.md +40 -0
  518. package/templates/skills/react-best-practices/rules/rendering-content-visibility.md +38 -0
  519. package/templates/skills/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  520. package/templates/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  521. package/templates/skills/react-best-practices/rules/rendering-svg-precision.md +28 -0
  522. package/templates/skills/react-best-practices/rules/rerender-defer-reads.md +39 -0
  523. package/templates/skills/react-best-practices/rules/rerender-dependencies.md +45 -0
  524. package/templates/skills/react-best-practices/rules/rerender-derived-state.md +29 -0
  525. package/templates/skills/react-best-practices/rules/rerender-functional-setstate.md +74 -0
  526. package/templates/skills/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  527. package/templates/skills/react-best-practices/rules/rerender-memo.md +44 -0
  528. package/templates/skills/react-best-practices/rules/rerender-transitions.md +40 -0
  529. package/templates/skills/react-best-practices/rules/server-after-nonblocking.md +73 -0
  530. package/templates/skills/react-best-practices/rules/server-cache-lru.md +41 -0
  531. package/templates/skills/react-best-practices/rules/server-cache-react.md +26 -0
  532. package/templates/skills/react-best-practices/rules/server-parallel-fetching.md +79 -0
  533. package/templates/skills/react-best-practices/rules/server-serialization.md +38 -0
  534. package/templates/skills/remotion/SKILL.md +44 -0
  535. package/templates/skills/remotion/rules/3d.md +86 -0
  536. package/templates/skills/remotion/rules/animations.md +29 -0
  537. package/templates/skills/remotion/rules/assets/charts-bar-chart.tsx +173 -0
  538. package/templates/skills/remotion/rules/assets/text-animations-typewriter.tsx +100 -0
  539. package/templates/skills/remotion/rules/assets/text-animations-word-highlight.tsx +108 -0
  540. package/templates/skills/remotion/rules/assets.md +78 -0
  541. package/templates/skills/remotion/rules/audio.md +172 -0
  542. package/templates/skills/remotion/rules/calculate-metadata.md +104 -0
  543. package/templates/skills/remotion/rules/can-decode.md +75 -0
  544. package/templates/skills/remotion/rules/charts.md +58 -0
  545. package/templates/skills/remotion/rules/compositions.md +146 -0
  546. package/templates/skills/remotion/rules/display-captions.md +126 -0
  547. package/templates/skills/remotion/rules/extract-frames.md +229 -0
  548. package/templates/skills/remotion/rules/fonts.md +152 -0
  549. package/templates/skills/remotion/rules/get-audio-duration.md +58 -0
  550. package/templates/skills/remotion/rules/get-video-dimensions.md +68 -0
  551. package/templates/skills/remotion/rules/get-video-duration.md +58 -0
  552. package/templates/skills/remotion/rules/gifs.md +138 -0
  553. package/templates/skills/remotion/rules/images.md +130 -0
  554. package/templates/skills/remotion/rules/import-srt-captions.md +67 -0
  555. package/templates/skills/remotion/rules/lottie.md +68 -0
  556. package/templates/skills/remotion/rules/measuring-dom-nodes.md +35 -0
  557. package/templates/skills/remotion/rules/measuring-text.md +143 -0
  558. package/templates/skills/remotion/rules/sequencing.md +106 -0
  559. package/templates/skills/remotion/rules/tailwind.md +11 -0
  560. package/templates/skills/remotion/rules/text-animations.md +20 -0
  561. package/templates/skills/remotion/rules/timing.md +179 -0
  562. package/templates/skills/remotion/rules/transcribe-captions.md +19 -0
  563. package/templates/skills/remotion/rules/transitions.md +122 -0
  564. package/templates/skills/remotion/rules/trimming.md +53 -0
  565. package/templates/skills/remotion/rules/videos.md +171 -0
  566. package/templates/skills/repomix/SKILL.md +3 -2
  567. package/templates/skills/repomix/scripts/repomix_batch.py +0 -0
  568. package/templates/skills/research/SKILL.md +9 -6
  569. package/templates/skills/scout/SKILL.md +89 -0
  570. package/templates/skills/scout/references/external-scouting.md +140 -0
  571. package/templates/skills/scout/references/internal-scouting.md +119 -0
  572. package/templates/skills/scout/references/task-management-scouting.md +125 -0
  573. package/templates/skills/sequential-thinking/SKILL.md +3 -2
  574. package/templates/skills/sequential-thinking/scripts/format-thought.js +0 -0
  575. package/templates/skills/sequential-thinking/scripts/process-thought.js +0 -0
  576. package/templates/skills/shader/SKILL.md +113 -0
  577. package/templates/skills/shader/references/glsl-cellular-voronoi-worley-noise-patterns.md +142 -0
  578. package/templates/skills/shader/references/glsl-colors-rgb-hsb-gradients-mixing-color-spaces.md +143 -0
  579. package/templates/skills/shader/references/glsl-fbm-fractional-brownian-motion-turbulence-octaves.md +146 -0
  580. package/templates/skills/shader/references/glsl-fundamentals-data-types-vectors-precision-coordinates.md +104 -0
  581. package/templates/skills/shader/references/glsl-noise-random-perlin-simplex-cellular-voronoi.md +115 -0
  582. package/templates/skills/shader/references/glsl-pattern-symmetry-truchet-domain-warping.md +134 -0
  583. package/templates/skills/shader/references/glsl-patterns-tiling-fract-matrices-transformations.md +133 -0
  584. package/templates/skills/shader/references/glsl-procedural-textures-clouds-marble-wood-terrain.md +144 -0
  585. package/templates/skills/shader/references/glsl-shader-builtin-functions-complete-api-reference.md +112 -0
  586. package/templates/skills/shader/references/glsl-shapes-polygon-star-polar-sdf-combinations.md +124 -0
  587. package/templates/skills/shader/references/glsl-shapes-sdf-circles-rectangles-polar-distance-fields.md +106 -0
  588. package/templates/skills/shader/references/glsl-shaping-functions-step-smoothstep-curves-interpolation.md +141 -0
  589. package/templates/skills/shopify/SKILL.md +3 -2
  590. package/templates/skills/shopify/scripts/shopify_init.py +5 -5
  591. package/templates/skills/skill-creator/SKILL.md +91 -238
  592. package/templates/skills/skill-creator/references/benchmark-optimization-guide.md +86 -0
  593. package/templates/skills/skill-creator/references/distribution-guide.md +79 -0
  594. package/templates/skills/skill-creator/references/mcp-skills-integration.md +71 -0
  595. package/templates/skills/skill-creator/references/metadata-quality-criteria.md +76 -0
  596. package/templates/skills/skill-creator/references/plugin-marketplace-hosting.md +104 -0
  597. package/templates/skills/skill-creator/references/plugin-marketplace-overview.md +89 -0
  598. package/templates/skills/skill-creator/references/plugin-marketplace-schema.md +93 -0
  599. package/templates/skills/skill-creator/references/plugin-marketplace-sources.md +103 -0
  600. package/templates/skills/skill-creator/references/plugin-marketplace-troubleshooting.md +76 -0
  601. package/templates/skills/skill-creator/references/script-quality-criteria.md +106 -0
  602. package/templates/skills/skill-creator/references/skill-anatomy-and-requirements.md +76 -0
  603. package/templates/skills/skill-creator/references/skill-creation-workflow.md +95 -0
  604. package/templates/skills/skill-creator/references/skill-design-patterns.md +75 -0
  605. package/templates/skills/skill-creator/references/skillmark-benchmark-criteria.md +102 -0
  606. package/templates/skills/skill-creator/references/structure-organization-criteria.md +114 -0
  607. package/templates/skills/skill-creator/references/testing-and-iteration.md +78 -0
  608. package/templates/skills/skill-creator/references/token-efficiency-criteria.md +74 -0
  609. package/templates/skills/skill-creator/references/troubleshooting-guide.md +80 -0
  610. package/templates/skills/skill-creator/references/validation-checklist.md +83 -0
  611. package/templates/skills/skill-creator/references/writing-effective-instructions.md +88 -0
  612. package/templates/skills/skill-creator/references/yaml-frontmatter-reference.md +91 -0
  613. package/templates/skills/skill-creator/scripts/debug.zip +0 -0
  614. package/templates/skills/skill-creator/scripts/encoding_utils.py +36 -0
  615. package/templates/skills/skill-creator/scripts/init_skill.py +9 -4
  616. package/templates/skills/skill-creator/scripts/package_skill.py +5 -0
  617. package/templates/skills/skill-creator/scripts/quick_validate.py +6 -2
  618. package/templates/skills/tanstack/SKILL.md +141 -0
  619. package/templates/skills/tanstack/references/tanstack-ai.md +97 -0
  620. package/templates/skills/tanstack/references/tanstack-form.md +125 -0
  621. package/templates/skills/tanstack/references/tanstack-start.md +100 -0
  622. package/templates/skills/team/SKILL.md +285 -0
  623. package/templates/skills/team/references/agent-teams-controls-and-modes.md +107 -0
  624. package/templates/skills/team/references/agent-teams-examples-and-best-practices.md +182 -0
  625. package/templates/skills/team/references/agent-teams-official-docs.md +175 -0
  626. package/templates/skills/template-skill/SKILL.md +1 -1
  627. package/templates/skills/test/SKILL.md +109 -0
  628. package/templates/skills/test/references/report-format.md +58 -0
  629. package/templates/skills/test/references/test-execution-workflow.md +103 -0
  630. package/templates/skills/test/references/ui-testing-workflow.md +65 -0
  631. package/templates/skills/threejs/SKILL.md +106 -53
  632. package/templates/skills/threejs/data/api-reference.csv +61 -0
  633. package/templates/skills/threejs/data/categories.csv +14 -0
  634. package/templates/skills/threejs/data/examples-all.csv +557 -0
  635. package/templates/skills/threejs/data/use-cases.csv +21 -0
  636. package/templates/skills/threejs/references/00-fundamentals.md +487 -0
  637. package/templates/skills/threejs/references/11-materials-advanced.md +1 -1
  638. package/templates/skills/threejs/references/11-materials.md +519 -0
  639. package/templates/skills/threejs/references/17-shader.md +641 -0
  640. package/templates/skills/threejs/references/18-geometry.md +547 -0
  641. package/templates/skills/threejs/scripts/core.py +236 -0
  642. package/templates/skills/threejs/scripts/extract_examples.py +688 -0
  643. package/templates/skills/threejs/scripts/generate_csv_from_json.py +135 -0
  644. package/templates/skills/threejs/scripts/search.py +77 -0
  645. package/templates/skills/ui-styling/SKILL.md +3 -2
  646. package/templates/skills/ui-styling/scripts/shadcn_add.py +0 -0
  647. package/templates/skills/ui-styling/scripts/tailwind_config_gen.py +1 -1
  648. package/templates/skills/ui-ux-pro-max/SKILL.md +69 -32
  649. package/templates/skills/ui-ux-pro-max/data/charts.csv +25 -25
  650. package/templates/skills/ui-ux-pro-max/data/colors.csv +96 -96
  651. package/templates/skills/ui-ux-pro-max/data/landing.csv +30 -30
  652. package/templates/skills/ui-ux-pro-max/data/products.csv +96 -96
  653. package/templates/skills/ui-ux-pro-max/data/prompts.csv +20 -20
  654. package/templates/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -53
  655. package/templates/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -56
  656. package/templates/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -53
  657. package/templates/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -52
  658. package/templates/skills/ui-ux-pro-max/data/stacks/react.csv +54 -54
  659. package/templates/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -54
  660. package/templates/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -51
  661. package/templates/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -50
  662. package/templates/skills/ui-ux-pro-max/data/styles.csv +58 -58
  663. package/templates/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  664. package/templates/skills/ui-ux-pro-max/data/ux-guidelines.csv +99 -99
  665. package/templates/skills/ui-ux-pro-max/scripts/design_system.py +494 -0
  666. package/templates/skills/ui-ux-pro-max/scripts/search.py +84 -61
  667. package/templates/skills/use-mcp/SKILL.md +42 -0
  668. package/templates/skills/watzup/SKILL.md +12 -0
  669. package/templates/skills/web-design-guidelines/SKILL.md +36 -0
  670. package/templates/skills/web-frameworks/SKILL.md +4 -3
  671. package/templates/skills/web-frameworks/scripts/nextjs_init.py +13 -13
  672. package/templates/skills/web-frameworks/scripts/turborepo_migrate.py +0 -0
  673. package/templates/skills/web-testing/SKILL.md +97 -0
  674. package/templates/skills/web-testing/references/accessibility-testing.md +84 -0
  675. package/templates/skills/web-testing/references/api-testing.md +78 -0
  676. package/templates/skills/web-testing/references/ci-cd-testing-workflows.md +121 -0
  677. package/templates/skills/web-testing/references/component-testing.md +94 -0
  678. package/templates/skills/web-testing/references/contract-testing.md +146 -0
  679. package/templates/skills/web-testing/references/cross-browser-checklist.md +72 -0
  680. package/templates/skills/web-testing/references/database-testing.md +139 -0
  681. package/templates/skills/web-testing/references/e2e-testing-playwright.md +119 -0
  682. package/templates/skills/web-testing/references/functional-testing-checklist.md +88 -0
  683. package/templates/skills/web-testing/references/interactive-testing-patterns.md +89 -0
  684. package/templates/skills/web-testing/references/load-testing-k6.md +93 -0
  685. package/templates/skills/web-testing/references/mobile-gesture-testing.md +85 -0
  686. package/templates/skills/web-testing/references/performance-core-web-vitals.md +124 -0
  687. package/templates/skills/web-testing/references/playwright-component-testing.md +115 -0
  688. package/templates/skills/web-testing/references/pre-release-checklist.md +75 -0
  689. package/templates/skills/web-testing/references/security-checklists.md +81 -0
  690. package/templates/skills/web-testing/references/security-testing-overview.md +92 -0
  691. package/templates/skills/web-testing/references/shadow-dom-testing.md +70 -0
  692. package/templates/skills/web-testing/references/test-data-management.md +131 -0
  693. package/templates/skills/web-testing/references/test-flakiness-mitigation.md +86 -0
  694. package/templates/skills/web-testing/references/testing-pyramid-strategy.md +76 -0
  695. package/templates/skills/web-testing/references/unit-integration-testing.md +138 -0
  696. package/templates/skills/web-testing/references/visual-regression.md +92 -0
  697. package/templates/skills/web-testing/references/vulnerability-payloads.md +93 -0
  698. package/templates/skills/web-testing/scripts/analyze-test-results.js +280 -0
  699. package/templates/skills/web-testing/scripts/init-playwright.js +233 -0
  700. package/templates/skills/worktree/SKILL.md +96 -0
  701. package/templates/skills/worktree/scripts/worktree.cjs +916 -0
  702. package/templates/skills/worktree/scripts/worktree.test.cjs +792 -0
  703. package/templates/statusline.cjs +477 -244
  704. package/templates/statusline.ps1 +0 -1
  705. package/templates/statusline.sh +0 -1
  706. package/templates/agents/README.md +0 -172
  707. package/templates/agents/copywriter.md +0 -113
  708. package/templates/agents/database-admin.md +0 -97
  709. package/templates/agents/scout-external.md +0 -146
  710. package/templates/agents/scout.md +0 -260
  711. package/templates/commands/README.md +0 -251
  712. package/templates/commands/bootstrap/auto/fast.md +0 -111
  713. package/templates/commands/bootstrap/auto/parallel.md +0 -66
  714. package/templates/commands/bootstrap/auto.md +0 -115
  715. package/templates/commands/bootstrap.md +0 -137
  716. package/templates/commands/build.md +0 -39
  717. package/templates/commands/checkpoint.md +0 -156
  718. package/templates/commands/code/auto.md +0 -170
  719. package/templates/commands/code/no-test.md +0 -158
  720. package/templates/commands/code/parallel.md +0 -55
  721. package/templates/commands/code-simplifier.md +0 -71
  722. package/templates/commands/code.md +0 -176
  723. package/templates/commands/compact.md +0 -57
  724. package/templates/commands/content/cro.md +0 -43
  725. package/templates/commands/content/enhance.md +0 -14
  726. package/templates/commands/content/fast.md +0 -13
  727. package/templates/commands/content/good.md +0 -16
  728. package/templates/commands/context.md +0 -48
  729. package/templates/commands/cook/auto/fast.md +0 -26
  730. package/templates/commands/cook/auto/parallel.md +0 -49
  731. package/templates/commands/cook/auto.md +0 -15
  732. package/templates/commands/cook/fast.md +0 -47
  733. package/templates/commands/cook/hard.md +0 -80
  734. package/templates/commands/cook/parallel.md +0 -90
  735. package/templates/commands/cook.md +0 -105
  736. package/templates/commands/create-feature.md +0 -48
  737. package/templates/commands/db-migrate.md +0 -52
  738. package/templates/commands/debug.md +0 -13
  739. package/templates/commands/design/3d.md +0 -83
  740. package/templates/commands/design/describe.md +0 -23
  741. package/templates/commands/design/fast.md +0 -31
  742. package/templates/commands/design/good.md +0 -35
  743. package/templates/commands/design/screenshot.md +0 -34
  744. package/templates/commands/design/video.md +0 -34
  745. package/templates/commands/docs/init.md +0 -39
  746. package/templates/commands/docs/summarize.md +0 -31
  747. package/templates/commands/docs/update.md +0 -57
  748. package/templates/commands/feature.md +0 -62
  749. package/templates/commands/fix/ci.md +0 -17
  750. package/templates/commands/fix/fast.md +0 -19
  751. package/templates/commands/fix/hard.md +0 -39
  752. package/templates/commands/fix/logs.md +0 -26
  753. package/templates/commands/fix/parallel.md +0 -54
  754. package/templates/commands/fix/test.md +0 -20
  755. package/templates/commands/fix/types.md +0 -9
  756. package/templates/commands/fix/ui.md +0 -48
  757. package/templates/commands/fix-issue.md +0 -177
  758. package/templates/commands/fix.md +0 -43
  759. package/templates/commands/generate-dto.md +0 -67
  760. package/templates/commands/git/cm.md +0 -5
  761. package/templates/commands/git/cp.md +0 -4
  762. package/templates/commands/git/merge.md +0 -40
  763. package/templates/commands/git/pr.md +0 -48
  764. package/templates/commands/integrate/polar.md +0 -28
  765. package/templates/commands/integrate/sepay.md +0 -28
  766. package/templates/commands/investigate.md +0 -324
  767. package/templates/commands/lint.md +0 -47
  768. package/templates/commands/migration.md +0 -111
  769. package/templates/commands/performance.md +0 -110
  770. package/templates/commands/plan/ci.md +0 -33
  771. package/templates/commands/plan/cro.md +0 -69
  772. package/templates/commands/plan/fast.md +0 -86
  773. package/templates/commands/plan/hard.md +0 -103
  774. package/templates/commands/plan/parallel.md +0 -152
  775. package/templates/commands/plan/preview.md +0 -40
  776. package/templates/commands/plan/two.md +0 -52
  777. package/templates/commands/plan/validate.md +0 -132
  778. package/templates/commands/plan.md +0 -36
  779. package/templates/commands/pr.md +0 -49
  780. package/templates/commands/preview.md +0 -87
  781. package/templates/commands/release-notes.md +0 -144
  782. package/templates/commands/review/post-task.md +0 -157
  783. package/templates/commands/review-changes.md +0 -46
  784. package/templates/commands/review.md +0 -56
  785. package/templates/commands/scout/ext.md +0 -35
  786. package/templates/commands/scout.md +0 -283
  787. package/templates/commands/security.md +0 -119
  788. package/templates/commands/skill/add.md +0 -36
  789. package/templates/commands/skill/create.md +0 -29
  790. package/templates/commands/skill/fix-logs.md +0 -22
  791. package/templates/commands/skill/optimize/auto.md +0 -25
  792. package/templates/commands/skill/optimize.md +0 -34
  793. package/templates/commands/skill/plan.md +0 -45
  794. package/templates/commands/worktree.md +0 -126
  795. package/templates/hooks/.python-cache.json +0 -1
  796. package/templates/hooks/README.md +0 -246
  797. package/templates/hooks/backend-csharp-context.cjs +0 -223
  798. package/templates/hooks/design-system-context.cjs +0 -185
  799. package/templates/hooks/frontend-typescript-context.cjs +0 -233
  800. package/templates/hooks/lib/ck-paths.cjs +0 -110
  801. package/templates/hooks/lib/context-tracker.cjs +0 -335
  802. package/templates/hooks/notify-waiting.js +0 -117
  803. package/templates/hooks/post-edit-prettier.cjs +0 -189
  804. package/templates/hooks/post-task-review.cjs +0 -142
  805. package/templates/hooks/scss-styling-context.cjs +0 -213
  806. package/templates/hooks/session-end.cjs +0 -35
  807. package/templates/hooks/tests/test-context-tracker.cjs +0 -454
  808. package/templates/hooks/tests/test-scout-block.js +0 -163
  809. package/templates/hooks/workflow-router.cjs +0 -326
  810. package/templates/hooks/write-compact-marker.cjs +0 -159
  811. package/templates/memory/session-log.md +0 -186
  812. package/templates/router/README.md +0 -294
  813. package/templates/router/agents-guide.md +0 -38
  814. package/templates/router/commands-guide.md +0 -122
  815. package/templates/router/decision-flow.md +0 -92
  816. package/templates/router/skills-guide.md +0 -127
  817. package/templates/router/workflows-guide.md +0 -68
  818. package/templates/scripts/__pycache__/win_compat.cpython-312.pyc +0 -0
  819. package/templates/scripts/plan-preview.cjs +0 -921
  820. package/templates/skills/arch-cross-service-integration/SKILL.md +0 -48
  821. package/templates/skills/arch-performance-optimization/SKILL.md +0 -306
  822. package/templates/skills/arch-security-review/SKILL.md +0 -344
  823. package/templates/skills/branch-comparison/SKILL.md +0 -150
  824. package/templates/skills/bug-diagnosis/SKILL.md +0 -309
  825. package/templates/skills/claude-code/references/advanced-features.md +0 -399
  826. package/templates/skills/claude-code/references/agent-skills.md +0 -399
  827. package/templates/skills/claude-code/references/api-reference.md +0 -498
  828. package/templates/skills/claude-code/references/best-practices.md +0 -447
  829. package/templates/skills/claude-code/references/cicd-integration.md +0 -428
  830. package/templates/skills/claude-code/references/common-workflows.md +0 -119
  831. package/templates/skills/claude-code/references/configuration.md +0 -480
  832. package/templates/skills/claude-code/references/enterprise-features.md +0 -472
  833. package/templates/skills/claude-code/references/getting-started.md +0 -252
  834. package/templates/skills/claude-code/references/hooks-and-plugins.md +0 -444
  835. package/templates/skills/claude-code/references/hooks-comprehensive.md +0 -622
  836. package/templates/skills/claude-code/references/ide-integration.md +0 -316
  837. package/templates/skills/claude-code/references/mcp-integration.md +0 -386
  838. package/templates/skills/claude-code/references/slash-commands.md +0 -489
  839. package/templates/skills/claude-code/references/troubleshooting.md +0 -456
  840. package/templates/skills/claude-code/skill.md +0 -60
  841. package/templates/skills/debugging/SKILL.md +0 -84
  842. package/templates/skills/developer-growth-analysis/SKILL.md +0 -322
  843. package/templates/skills/documentation/SKILL.md +0 -134
  844. package/templates/skills/domain-name-brainstormer/SKILL.md +0 -212
  845. package/templates/skills/dual-pass-review/SKILL.md +0 -249
  846. package/templates/skills/feature-docs/SKILL.md +0 -294
  847. package/templates/skills/feature-implementation/SKILL.md +0 -262
  848. package/templates/skills/feature-investigation/SKILL.md +0 -346
  849. package/templates/skills/frontend-design-pro/SKILL.md +0 -58
  850. package/templates/skills/package-upgrade/SKILL.md +0 -189
  851. package/templates/skills/plan-analysis/SKILL.md +0 -191
  852. package/templates/skills/planning/SKILL.md +0 -115
  853. package/templates/skills/planning-with-files/SKILL.md +0 -160
  854. package/templates/skills/planning-with-files/examples.md +0 -202
  855. package/templates/skills/planning-with-files/reference.md +0 -110
  856. package/templates/skills/project-index/SKILL.md +0 -97
  857. package/templates/skills/project-index/scripts/scan-structure.js +0 -417
  858. package/templates/skills/project-index/scripts/scan_structure.py +0 -450
  859. package/templates/skills/readme-improvement/SKILL.md +0 -177
  860. package/templates/skills/skill-share/SKILL.md +0 -80
  861. package/templates/skills/tasks-code-review/SKILL.md +0 -298
  862. package/templates/skills/tasks-documentation/SKILL.md +0 -328
  863. package/templates/skills/tasks-spec-update/SKILL.md +0 -318
  864. package/templates/skills/tasks-test-generation/SKILL.md +0 -433
  865. package/templates/skills/test-generation/SKILL.md +0 -203
  866. package/templates/skills/webapp-testing/LICENSE.txt +0 -202
  867. package/templates/skills/webapp-testing/SKILL.md +0 -96
  868. package/templates/skills/webapp-testing/examples/console_logging.py +0 -35
  869. package/templates/skills/webapp-testing/examples/element_discovery.py +0 -40
  870. package/templates/skills/webapp-testing/examples/static_html_automation.py +0 -33
  871. package/templates/skills/webapp-testing/scripts/with_server.py +0 -106
  872. package/templates/workflows/README.md +0 -241
  873. package/templates/workflows/orchestration-protocol.md +0 -16
  874. /package/templates/{commands → command-archive}/coding-level.md +0 -0
  875. /package/templates/{commands → command-archive}/review/codebase.md +0 -0
  876. /package/templates/{commands → command-archive}/test.md +0 -0
  877. /package/templates/{commands → command-archive}/watzup.md +0 -0
  878. /package/templates/hooks/scout-block/vendor/{ignore.js → ignore.cjs} +0 -0
  879. /package/templates/{workflows → rules}/documentation-management.md +0 -0
  880. /package/templates/skills/{debugging → debug}/references/defense-in-depth.md +0 -0
  881. /package/templates/skills/{debugging → debug}/references/root-cause-tracing.md +0 -0
  882. /package/templates/skills/{debugging → debug}/references/systematic-debugging.md +0 -0
  883. /package/templates/skills/{debugging → debug}/references/verification.md +0 -0
  884. /package/templates/skills/{debugging → debug}/scripts/find-polluter.sh +0 -0
  885. /package/templates/skills/{debugging → debug}/scripts/find-polluter.test.md +0 -0
  886. /package/templates/skills/{planning → plan}/references/solution-design.md +0 -0
@@ -1,921 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Plan Preview Server with Edit Support
4
- *
5
- * Usage: node .claude/scripts/plan-preview.cjs <plan-path> [--port=3456]
6
- *
7
- * Opens a local web server to preview and edit plans with:
8
- * - Rendered markdown with syntax highlighting
9
- * - Navigation sidebar for phases
10
- * - Edit mode with live preview
11
- * - Auto-save functionality
12
- */
13
-
14
- const http = require('http');
15
- const fs = require('fs');
16
- const path = require('path');
17
- const { exec } = require('child_process');
18
-
19
- const planPath = process.argv[2];
20
- const portArg = process.argv.find(arg => arg.startsWith('--port='));
21
- const PORT = portArg ? parseInt(portArg.split('=')[1]) : 3456;
22
-
23
- if (!planPath) {
24
- console.error('Error: Plan path required');
25
- console.log('Usage: node .claude/scripts/plan-preview.cjs <plan-path>');
26
- console.log('Example: node .claude/scripts/plan-preview.cjs plans/251207-feature');
27
- process.exit(1);
28
- }
29
-
30
- const fullPlanPath = path.resolve(process.cwd(), planPath);
31
- if (!fs.existsSync(fullPlanPath)) {
32
- console.error(`Error: Plan directory not found: ${fullPlanPath}`);
33
- process.exit(1);
34
- }
35
-
36
- // Markdown to HTML - Uses marked.js on client-side for full GFM support
37
- // Server just passes raw markdown, client renders with marked.js
38
- function markdownToHtml(md, forEditor = false) {
39
- // For editor preview pane, we'll render client-side with marked.js
40
- // For static preview, we embed raw markdown and render on page load
41
- const encodedMd = encodeURIComponent(md);
42
- return `<div class="markdown-body" data-markdown="${encodedMd}"><noscript>${escapeHtml(md)}</noscript><div class="loading">Loading...</div></div>`;
43
- }
44
-
45
- function escapeHtml(text) {
46
- return text
47
- .replace(/&/g, '&amp;')
48
- .replace(/</g, '&lt;')
49
- .replace(/>/g, '&gt;')
50
- .replace(/"/g, '&quot;');
51
- }
52
-
53
- // Get all markdown files in plan directory
54
- function getPlanFiles(dir) {
55
- const files = [];
56
- const items = fs.readdirSync(dir, { withFileTypes: true });
57
-
58
- for (const item of items) {
59
- if (item.isFile() && item.name.endsWith('.md')) {
60
- files.push({
61
- name: item.name,
62
- path: path.join(dir, item.name),
63
- isMain: item.name === 'plan.md',
64
- isPhase: item.name.startsWith('phase-')
65
- });
66
- } else if (item.isDirectory()) {
67
- // Include reports, research, scout subdirs
68
- const subFiles = getPlanFiles(path.join(dir, item.name));
69
- files.push(...subFiles.map(f => ({
70
- ...f,
71
- name: `${item.name}/${f.name}`,
72
- category: item.name
73
- })));
74
- }
75
- }
76
-
77
- return files.sort((a, b) => {
78
- if (a.isMain) return -1;
79
- if (b.isMain) return 1;
80
- if (a.isPhase && !b.isPhase) return -1;
81
- if (!a.isPhase && b.isPhase) return 1;
82
- return a.name.localeCompare(b.name);
83
- });
84
- }
85
-
86
- // Generate HTML page with edit support
87
- function generatePage(files, currentFile, mode = 'preview') {
88
- const file = files.find(f => f.name === currentFile) || files[0];
89
- const content = file ? fs.readFileSync(file.path, 'utf-8') : '# No plan found';
90
- const htmlContent = markdownToHtml(content);
91
- const isEditMode = mode === 'edit';
92
- const currentFileName = currentFile || files[0]?.name || '';
93
-
94
- const nav = files.map(f => {
95
- const isActive = f.name === (currentFile || files[0]?.name);
96
- const icon = f.isMain ? '📋' : f.isPhase ? '📌' : f.category === 'research' ? '🔬' : f.category === 'reports' ? '📄' : '📝';
97
- return `<a href="?file=${encodeURIComponent(f.name)}&mode=${mode}" class="${isActive ? 'active' : ''}">${icon} ${f.name}</a>`;
98
- }).join('\n');
99
-
100
- return `<!DOCTYPE html>
101
- <html lang="en">
102
- <head>
103
- <meta charset="UTF-8">
104
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
105
- <title>Plan Preview - ${path.basename(fullPlanPath)}</title>
106
-
107
- <!-- marked.js - Markdown Parser -->
108
- <script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
109
-
110
- <!-- Prism.js - Syntax Highlighting -->
111
- <link href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism-tomorrow.min.css" rel="stylesheet" />
112
- <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js"></script>
113
- <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-javascript.min.js"></script>
114
- <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-typescript.min.js"></script>
115
- <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-python.min.js"></script>
116
- <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-bash.min.js"></script>
117
- <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-json.min.js"></script>
118
- <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-yaml.min.js"></script>
119
- <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-css.min.js"></script>
120
- <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-markdown.min.js"></script>
121
-
122
- <style>
123
- :root {
124
- --bg: #0d1117;
125
- --bg-secondary: #161b22;
126
- --bg-tertiary: #21262d;
127
- --text: #c9d1d9;
128
- --text-muted: #8b949e;
129
- --accent: #58a6ff;
130
- --border: #30363d;
131
- --code-bg: #1f2428;
132
- --success: #3fb950;
133
- --warning: #d29922;
134
- --error: #f85149;
135
- --gradient-1: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
136
- --gradient-2: linear-gradient(135deg, #3fb950 0%, #2ea043 100%);
137
- }
138
-
139
- * { box-sizing: border-box; margin: 0; padding: 0; }
140
-
141
- body {
142
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
143
- background: var(--bg);
144
- color: var(--text);
145
- line-height: 1.6;
146
- display: flex;
147
- min-height: 100vh;
148
- }
149
-
150
- /* Sidebar */
151
- .sidebar {
152
- width: 280px;
153
- background: var(--bg-secondary);
154
- border-right: 1px solid var(--border);
155
- padding: 20px;
156
- position: fixed;
157
- height: 100vh;
158
- overflow-y: auto;
159
- }
160
-
161
- .sidebar h2 {
162
- color: var(--text);
163
- font-size: 14px;
164
- text-transform: uppercase;
165
- letter-spacing: 0.5px;
166
- margin-bottom: 16px;
167
- padding-bottom: 8px;
168
- border-bottom: 1px solid var(--border);
169
- }
170
-
171
- .sidebar a {
172
- display: block;
173
- color: var(--text-muted);
174
- text-decoration: none;
175
- padding: 8px 12px;
176
- border-radius: 6px;
177
- font-size: 13px;
178
- margin-bottom: 4px;
179
- transition: all 0.2s;
180
- }
181
-
182
- .sidebar a:hover {
183
- background: var(--border);
184
- color: var(--text);
185
- }
186
-
187
- .sidebar a.active {
188
- background: rgba(88, 166, 255, 0.15);
189
- color: var(--accent);
190
- }
191
-
192
- /* Mode Toggle */
193
- .mode-toggle {
194
- display: flex;
195
- background: var(--bg-tertiary);
196
- border-radius: 20px;
197
- padding: 4px;
198
- margin-bottom: 20px;
199
- }
200
-
201
- .mode-toggle a {
202
- flex: 1;
203
- text-align: center;
204
- padding: 8px 16px;
205
- border-radius: 16px;
206
- font-size: 13px;
207
- font-weight: 500;
208
- transition: all 0.3s ease;
209
- margin: 0;
210
- }
211
-
212
- .mode-toggle a.active {
213
- background: var(--gradient-1);
214
- color: white;
215
- box-shadow: 0 2px 8px rgba(102, 126, 234, 0.4);
216
- }
217
-
218
- .mode-toggle a:not(.active) {
219
- background: transparent;
220
- color: var(--text-muted);
221
- }
222
-
223
- .mode-toggle a:not(.active):hover {
224
- color: var(--text);
225
- background: var(--border);
226
- }
227
-
228
- /* Main content */
229
- .main {
230
- flex: 1;
231
- margin-left: 280px;
232
- padding: 40px 60px;
233
- max-width: 100%;
234
- }
235
-
236
- .main h1 {
237
- font-size: 32px;
238
- margin-bottom: 24px;
239
- padding-bottom: 16px;
240
- border-bottom: 1px solid var(--border);
241
- }
242
-
243
- .main h2 {
244
- font-size: 24px;
245
- margin: 32px 0 16px;
246
- color: var(--text);
247
- }
248
-
249
- .main h3 {
250
- font-size: 18px;
251
- margin: 24px 0 12px;
252
- color: var(--text);
253
- }
254
-
255
- .main p {
256
- margin-bottom: 16px;
257
- }
258
-
259
- .main ul, .main ol {
260
- margin: 16px 0;
261
- padding-left: 24px;
262
- }
263
-
264
- .main li {
265
- margin-bottom: 8px;
266
- }
267
-
268
- .main a {
269
- color: var(--accent);
270
- }
271
-
272
- .main blockquote {
273
- border-left: 4px solid var(--accent);
274
- padding-left: 16px;
275
- margin: 16px 0;
276
- color: var(--text-muted);
277
- }
278
-
279
- .main hr {
280
- border: none;
281
- border-top: 1px solid var(--border);
282
- margin: 32px 0;
283
- }
284
-
285
- /* Code */
286
- pre {
287
- background: var(--code-bg);
288
- padding: 16px;
289
- border-radius: 8px;
290
- overflow-x: auto;
291
- margin: 16px 0;
292
- border: 1px solid var(--border);
293
- }
294
-
295
- code {
296
- font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;
297
- font-size: 13px;
298
- }
299
-
300
- code.inline {
301
- background: var(--code-bg);
302
- padding: 2px 6px;
303
- border-radius: 4px;
304
- color: var(--accent);
305
- }
306
-
307
- /* Tables */
308
- table {
309
- width: 100%;
310
- border-collapse: collapse;
311
- margin: 16px 0;
312
- }
313
-
314
- th, td {
315
- padding: 12px;
316
- border: 1px solid var(--border);
317
- text-align: left;
318
- }
319
-
320
- th {
321
- background: var(--bg-secondary);
322
- }
323
-
324
- /* Editor */
325
- .editor-container {
326
- display: ${isEditMode ? 'flex' : 'none'};
327
- gap: 20px;
328
- height: calc(100vh - 200px);
329
- }
330
-
331
- .editor-pane {
332
- flex: 1;
333
- display: flex;
334
- flex-direction: column;
335
- }
336
-
337
- .editor-pane h3 {
338
- margin: 0 0 12px 0;
339
- font-size: 14px;
340
- color: var(--text-muted);
341
- text-transform: uppercase;
342
- letter-spacing: 0.5px;
343
- }
344
-
345
- .editor {
346
- flex: 1;
347
- width: 100%;
348
- background: var(--code-bg);
349
- border: 1px solid var(--border);
350
- border-radius: 8px;
351
- padding: 16px;
352
- color: var(--text);
353
- font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;
354
- font-size: 14px;
355
- line-height: 1.6;
356
- resize: none;
357
- outline: none;
358
- }
359
-
360
- .editor:focus {
361
- border-color: var(--accent);
362
- box-shadow: 0 0 0 3px rgba(88, 166, 255, 0.1);
363
- }
364
-
365
- .preview-pane {
366
- flex: 1;
367
- background: var(--bg-secondary);
368
- border: 1px solid var(--border);
369
- border-radius: 8px;
370
- padding: 20px;
371
- overflow-y: auto;
372
- }
373
-
374
- .preview-content {
375
- display: ${isEditMode ? 'none' : 'block'};
376
- }
377
-
378
- /* Toolbar */
379
- .toolbar {
380
- display: flex;
381
- gap: 10px;
382
- margin-bottom: 20px;
383
- align-items: center;
384
- }
385
-
386
- .save-btn {
387
- background: var(--gradient-2);
388
- color: white;
389
- border: none;
390
- padding: 10px 24px;
391
- border-radius: 8px;
392
- font-size: 14px;
393
- font-weight: 500;
394
- cursor: pointer;
395
- transition: all 0.2s;
396
- display: flex;
397
- align-items: center;
398
- gap: 8px;
399
- }
400
-
401
- .save-btn:hover {
402
- transform: translateY(-1px);
403
- box-shadow: 0 4px 12px rgba(63, 185, 80, 0.3);
404
- }
405
-
406
- .save-btn:active {
407
- transform: translateY(0);
408
- }
409
-
410
- .save-btn:disabled {
411
- opacity: 0.5;
412
- cursor: not-allowed;
413
- transform: none;
414
- }
415
-
416
- .status {
417
- font-size: 13px;
418
- color: var(--text-muted);
419
- margin-left: auto;
420
- }
421
-
422
- .status.saved {
423
- color: var(--success);
424
- }
425
-
426
- .status.saving {
427
- color: var(--warning);
428
- }
429
-
430
- .status.error {
431
- color: var(--error);
432
- }
433
-
434
- /* Keyboard shortcut hint */
435
- .shortcut {
436
- font-size: 11px;
437
- color: var(--text-muted);
438
- background: var(--bg-tertiary);
439
- padding: 2px 6px;
440
- border-radius: 4px;
441
- margin-left: 8px;
442
- }
443
-
444
- /* Footer */
445
- .footer {
446
- margin-top: 48px;
447
- padding-top: 24px;
448
- border-top: 1px solid var(--border);
449
- color: var(--text-muted);
450
- font-size: 12px;
451
- display: flex;
452
- justify-content: space-between;
453
- }
454
-
455
- /* GitHub-style Markdown Body */
456
- .markdown-body {
457
- line-height: 1.7;
458
- }
459
-
460
- .markdown-body .loading {
461
- color: var(--text-muted);
462
- font-style: italic;
463
- }
464
-
465
- .markdown-body h1 {
466
- font-size: 2em;
467
- border-bottom: 1px solid var(--border);
468
- padding-bottom: 0.3em;
469
- margin: 24px 0 16px;
470
- }
471
-
472
- .markdown-body h2 {
473
- font-size: 1.5em;
474
- border-bottom: 1px solid var(--border);
475
- padding-bottom: 0.3em;
476
- margin: 24px 0 16px;
477
- }
478
-
479
- .markdown-body h3 {
480
- font-size: 1.25em;
481
- margin: 24px 0 16px;
482
- }
483
-
484
- .markdown-body h4 {
485
- font-size: 1em;
486
- margin: 24px 0 16px;
487
- }
488
-
489
- .markdown-body p {
490
- margin: 0 0 16px;
491
- }
492
-
493
- .markdown-body ul, .markdown-body ol {
494
- margin: 0 0 16px;
495
- padding-left: 2em;
496
- }
497
-
498
- .markdown-body li {
499
- margin: 4px 0;
500
- }
501
-
502
- .markdown-body li > p {
503
- margin: 0;
504
- }
505
-
506
- /* Task Lists */
507
- .markdown-body input[type="checkbox"] {
508
- margin-right: 8px;
509
- vertical-align: middle;
510
- }
511
-
512
- .markdown-body li.task-list-item {
513
- list-style: none;
514
- margin-left: -1.5em;
515
- }
516
-
517
- /* Tables - GitHub style */
518
- .markdown-body table {
519
- width: 100%;
520
- border-collapse: collapse;
521
- margin: 16px 0;
522
- display: block;
523
- overflow-x: auto;
524
- }
525
-
526
- .markdown-body thead {
527
- background: var(--bg-tertiary);
528
- }
529
-
530
- .markdown-body th, .markdown-body td {
531
- padding: 12px 16px;
532
- border: 1px solid var(--border);
533
- text-align: left;
534
- }
535
-
536
- .markdown-body th {
537
- font-weight: 600;
538
- }
539
-
540
- .markdown-body tbody tr:nth-child(even) {
541
- background: var(--bg-secondary);
542
- }
543
-
544
- .markdown-body tbody tr:hover {
545
- background: rgba(88, 166, 255, 0.05);
546
- }
547
-
548
- /* Code blocks with Prism */
549
- .markdown-body pre {
550
- background: var(--code-bg);
551
- border: 1px solid var(--border);
552
- border-radius: 8px;
553
- padding: 16px;
554
- overflow-x: auto;
555
- margin: 16px 0;
556
- }
557
-
558
- .markdown-body pre code {
559
- background: none;
560
- padding: 0;
561
- border-radius: 0;
562
- font-size: 13px;
563
- color: var(--text);
564
- }
565
-
566
- .markdown-body code {
567
- font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;
568
- font-size: 85%;
569
- background: var(--code-bg);
570
- padding: 0.2em 0.4em;
571
- border-radius: 4px;
572
- color: var(--accent);
573
- }
574
-
575
- /* Blockquotes */
576
- .markdown-body blockquote {
577
- border-left: 4px solid var(--accent);
578
- padding: 0 16px;
579
- margin: 16px 0;
580
- color: var(--text-muted);
581
- }
582
-
583
- .markdown-body blockquote > :first-child {
584
- margin-top: 0;
585
- }
586
-
587
- .markdown-body blockquote > :last-child {
588
- margin-bottom: 0;
589
- }
590
-
591
- /* Images */
592
- .markdown-body img {
593
- max-width: 100%;
594
- height: auto;
595
- border-radius: 8px;
596
- }
597
-
598
- /* Horizontal Rule */
599
- .markdown-body hr {
600
- border: none;
601
- border-top: 2px solid var(--border);
602
- margin: 32px 0;
603
- }
604
-
605
- /* Links */
606
- .markdown-body a {
607
- color: var(--accent);
608
- text-decoration: none;
609
- }
610
-
611
- .markdown-body a:hover {
612
- text-decoration: underline;
613
- }
614
-
615
- /* Strikethrough */
616
- .markdown-body del {
617
- color: var(--text-muted);
618
- }
619
-
620
- /* Responsive */
621
- @media (max-width: 768px) {
622
- .sidebar { width: 100%; height: auto; position: relative; }
623
- .main { margin-left: 0; padding: 20px; }
624
- body { flex-direction: column; }
625
- .editor-container { flex-direction: column; height: auto; }
626
- .editor { min-height: 300px; }
627
- .preview-pane { min-height: 300px; }
628
- }
629
-
630
- /* Print styles */
631
- @media print {
632
- .sidebar, .toolbar, .mode-toggle, .footer { display: none !important; }
633
- .main { margin-left: 0; padding: 20px; }
634
- body { background: white; color: black; }
635
- .markdown-body pre { border: 1px solid #ddd; background: #f5f5f5; }
636
- .markdown-body code { background: #f5f5f5; color: #333; }
637
- .markdown-body a { color: #0366d6; }
638
- }
639
- </style>
640
- </head>
641
- <body>
642
- <nav class="sidebar">
643
- <h2>📁 ${path.basename(fullPlanPath)}</h2>
644
-
645
- <div class="mode-toggle">
646
- <a href="?file=${encodeURIComponent(currentFileName)}&mode=preview" class="${!isEditMode ? 'active' : ''}">👁️ Preview</a>
647
- <a href="?file=${encodeURIComponent(currentFileName)}&mode=edit" class="${isEditMode ? 'active' : ''}">✏️ Edit</a>
648
- </div>
649
-
650
- ${nav}
651
- </nav>
652
-
653
- <main class="main">
654
- ${isEditMode ? `
655
- <div class="toolbar">
656
- <button class="save-btn" onclick="saveFile()" id="saveBtn">
657
- 💾 Save
658
- <span class="shortcut">⌘S</span>
659
- </button>
660
- <span class="status" id="status">Ready to edit</span>
661
- </div>
662
-
663
- <div class="editor-container">
664
- <div class="editor-pane">
665
- <h3>📝 Markdown Editor</h3>
666
- <textarea class="editor" id="editor" spellcheck="false">${escapeHtml(content)}</textarea>
667
- </div>
668
- <div class="editor-pane">
669
- <h3>👁️ Live Preview</h3>
670
- <div class="preview-pane" id="preview">${htmlContent}</div>
671
- </div>
672
- </div>
673
- ` : `
674
- <article class="preview-content">
675
- ${htmlContent}
676
- </article>
677
- `}
678
-
679
- <footer class="footer">
680
- <span>Plan Preview Server • Press <kbd>Ctrl+C</kbd> in terminal to stop</span>
681
- <span><a href="javascript:location.reload()">↻ Refresh</a></span>
682
- </footer>
683
- </main>
684
-
685
- <script>
686
- const currentFile = '${escapeHtml(currentFileName)}';
687
- let originalContent = '';
688
- let hasChanges = false;
689
-
690
- ${isEditMode ? `
691
- const editor = document.getElementById('editor');
692
- const preview = document.getElementById('preview');
693
- const status = document.getElementById('status');
694
- const saveBtn = document.getElementById('saveBtn');
695
-
696
- originalContent = editor.value;
697
-
698
- // Configure marked.js for GitHub Flavored Markdown
699
- marked.setOptions({
700
- gfm: true,
701
- breaks: true,
702
- headerIds: true,
703
- mangle: false
704
- });
705
-
706
- // Custom renderer for syntax highlighting with Prism
707
- const renderer = new marked.Renderer();
708
- renderer.code = function(code, language) {
709
- const lang = language || '';
710
- const validLang = Prism.languages[lang] ? lang : 'plaintext';
711
- let highlighted;
712
- try {
713
- highlighted = Prism.languages[validLang]
714
- ? Prism.highlight(code, Prism.languages[validLang], validLang)
715
- : code;
716
- } catch (e) {
717
- highlighted = code;
718
- }
719
- return '<pre class="language-' + validLang + '"><code class="language-' + validLang + '">' + highlighted + '</code></pre>';
720
- };
721
- marked.setOptions({ renderer });
722
-
723
- // Render markdown with marked.js
724
- function renderMarkdown(md) {
725
- return marked.parse(md);
726
- }
727
-
728
- // Live preview update
729
- let updateTimeout;
730
- editor.addEventListener('input', () => {
731
- hasChanges = editor.value !== originalContent;
732
- updateStatus();
733
-
734
- clearTimeout(updateTimeout);
735
- updateTimeout = setTimeout(() => {
736
- preview.innerHTML = renderMarkdown(editor.value);
737
- // Re-run Prism highlighting for any code blocks
738
- Prism.highlightAllUnder(preview);
739
- }, 150);
740
- });
741
-
742
- // Initial render
743
- preview.innerHTML = renderMarkdown(editor.value);
744
- Prism.highlightAllUnder(preview);
745
-
746
- // Update status indicator
747
- function updateStatus() {
748
- if (hasChanges) {
749
- status.textContent = '● Unsaved changes';
750
- status.className = 'status';
751
- } else {
752
- status.textContent = '✓ Saved';
753
- status.className = 'status saved';
754
- }
755
- }
756
-
757
- // Save file
758
- async function saveFile() {
759
- if (!hasChanges) return;
760
-
761
- saveBtn.disabled = true;
762
- status.textContent = 'Saving...';
763
- status.className = 'status saving';
764
-
765
- try {
766
- const response = await fetch('/save', {
767
- method: 'POST',
768
- headers: { 'Content-Type': 'application/json' },
769
- body: JSON.stringify({
770
- file: currentFile,
771
- content: editor.value
772
- })
773
- });
774
-
775
- const result = await response.json();
776
-
777
- if (result.success) {
778
- originalContent = editor.value;
779
- hasChanges = false;
780
- status.textContent = '✓ Saved successfully';
781
- status.className = 'status saved';
782
-
783
- setTimeout(() => {
784
- if (!hasChanges) {
785
- status.textContent = '✓ Saved';
786
- }
787
- }, 2000);
788
- } else {
789
- throw new Error(result.error || 'Save failed');
790
- }
791
- } catch (err) {
792
- status.textContent = '✗ ' + err.message;
793
- status.className = 'status error';
794
- } finally {
795
- saveBtn.disabled = false;
796
- }
797
- }
798
-
799
- // Keyboard shortcut: Cmd/Ctrl + S to save
800
- document.addEventListener('keydown', (e) => {
801
- if ((e.metaKey || e.ctrlKey) && e.key === 's') {
802
- e.preventDefault();
803
- saveFile();
804
- }
805
- });
806
-
807
- // Warn before leaving with unsaved changes
808
- window.addEventListener('beforeunload', (e) => {
809
- if (hasChanges) {
810
- e.preventDefault();
811
- e.returnValue = '';
812
- }
813
- });
814
- ` : `
815
- // Preview mode: Render markdown on page load
816
- document.addEventListener('DOMContentLoaded', () => {
817
- // Configure marked.js
818
- marked.setOptions({
819
- gfm: true,
820
- breaks: true,
821
- headerIds: true,
822
- mangle: false
823
- });
824
-
825
- // Custom renderer for syntax highlighting with Prism
826
- const renderer = new marked.Renderer();
827
- renderer.code = function(code, language) {
828
- const lang = language || '';
829
- const validLang = Prism.languages[lang] ? lang : 'plaintext';
830
- let highlighted;
831
- try {
832
- highlighted = Prism.languages[validLang]
833
- ? Prism.highlight(code, Prism.languages[validLang], validLang)
834
- : code;
835
- } catch (e) {
836
- highlighted = code;
837
- }
838
- return '<pre class="language-' + validLang + '"><code class="language-' + validLang + '">' + highlighted + '</code></pre>';
839
- };
840
- marked.setOptions({ renderer });
841
-
842
- // Find all markdown bodies and render them
843
- document.querySelectorAll('.markdown-body[data-markdown]').forEach(el => {
844
- const rawMd = decodeURIComponent(el.dataset.markdown);
845
- el.innerHTML = marked.parse(rawMd);
846
- Prism.highlightAllUnder(el);
847
- });
848
- });
849
- `}
850
- </script>
851
- </body>
852
- </html>`;
853
- }
854
-
855
- // Create HTTP server with save endpoint
856
- const server = http.createServer((req, res) => {
857
- const url = new URL(req.url, `http://localhost:${PORT}`);
858
-
859
- // Handle save endpoint
860
- if (req.method === 'POST' && url.pathname === '/save') {
861
- let body = '';
862
- req.on('data', chunk => { body += chunk; });
863
- req.on('end', () => {
864
- try {
865
- const { file, content } = JSON.parse(body);
866
- const files = getPlanFiles(fullPlanPath);
867
- const targetFile = files.find(f => f.name === file);
868
-
869
- if (!targetFile) {
870
- res.writeHead(404, { 'Content-Type': 'application/json' });
871
- res.end(JSON.stringify({ success: false, error: 'File not found' }));
872
- return;
873
- }
874
-
875
- // Write file
876
- fs.writeFileSync(targetFile.path, content, 'utf-8');
877
- console.log(`💾 Saved: ${file}`);
878
-
879
- res.writeHead(200, { 'Content-Type': 'application/json' });
880
- res.end(JSON.stringify({ success: true }));
881
- } catch (err) {
882
- res.writeHead(500, { 'Content-Type': 'application/json' });
883
- res.end(JSON.stringify({ success: false, error: err.message }));
884
- }
885
- });
886
- return;
887
- }
888
-
889
- // Handle GET requests
890
- const currentFile = url.searchParams.get('file');
891
- const mode = url.searchParams.get('mode') || 'preview';
892
-
893
- const files = getPlanFiles(fullPlanPath);
894
- const html = generatePage(files, currentFile, mode);
895
-
896
- res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
897
- res.end(html);
898
- });
899
-
900
- server.listen(PORT, () => {
901
- const url = `http://localhost:${PORT}`;
902
- console.log(`\n📋 Plan Preview Server (with Edit Support)`);
903
- console.log(` Plan: ${planPath}`);
904
- console.log(` URL: ${url}`);
905
- console.log(`\n Features:`);
906
- console.log(` • Preview mode: View rendered markdown`);
907
- console.log(` • Edit mode: Edit with live preview`);
908
- console.log(` • Save: Cmd/Ctrl+S or click Save button`);
909
- console.log(`\n Press Ctrl+C to stop\n`);
910
-
911
- // Open browser
912
- const openCommand = process.platform === 'darwin' ? 'open' :
913
- process.platform === 'win32' ? 'start' : 'xdg-open';
914
- exec(`${openCommand} ${url}`);
915
- });
916
-
917
- // Handle shutdown
918
- process.on('SIGINT', () => {
919
- console.log('\n👋 Server stopped');
920
- process.exit(0);
921
- });