nemonix-cli 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (281) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +186 -0
  3. package/dist/cli.js +6870 -0
  4. package/package.json +48 -0
  5. package/src/config/claude-code-config/.claude/commands/setup-tmux.md +0 -0
  6. package/src/config/claude-code-config/CHANGELOG.md +261 -0
  7. package/src/config/claude-code-config/README.md +1 -0
  8. package/src/config/claude-code-config/agents/action.md +36 -0
  9. package/src/config/claude-code-config/agents/clean-code-runner.md +61 -0
  10. package/src/config/claude-code-config/agents/code-reviewer.md +172 -0
  11. package/src/config/claude-code-config/agents/code-simplifier.md +49 -0
  12. package/src/config/claude-code-config/agents/explore-codebase.md +65 -0
  13. package/src/config/claude-code-config/agents/explore-docs.md +65 -0
  14. package/src/config/claude-code-config/agents/explore-fast.md +22 -0
  15. package/src/config/claude-code-config/agents/implementer.md +181 -0
  16. package/src/config/claude-code-config/agents/snipper.md +36 -0
  17. package/src/config/claude-code-config/agents/websearch.md +42 -0
  18. package/src/config/claude-code-config/commands/prompts/create-vitejs-app.md +272 -0
  19. package/src/config/claude-code-config/commands/prompts/nextjs-add-prisma-db.md +136 -0
  20. package/src/config/claude-code-config/commands/prompts/nextjs-setup-better-auth.md +173 -0
  21. package/src/config/claude-code-config/commands/prompts/nextjs-setup-project.md +200 -0
  22. package/src/config/claude-code-config/commands/prompts/prompt.md +55 -0
  23. package/src/config/claude-code-config/commands/prompts/saas-challenge-idea.md +135 -0
  24. package/src/config/claude-code-config/commands/prompts/saas-create-architecture.md +242 -0
  25. package/src/config/claude-code-config/commands/prompts/saas-create-headline.md +132 -0
  26. package/src/config/claude-code-config/commands/prompts/saas-create-landing-copywritting.md +267 -0
  27. package/src/config/claude-code-config/commands/prompts/saas-create-legals-docs.md +176 -0
  28. package/src/config/claude-code-config/commands/prompts/saas-create-logos.md +240 -0
  29. package/src/config/claude-code-config/commands/prompts/saas-create-prd.md +195 -0
  30. package/src/config/claude-code-config/commands/prompts/saas-create-tasks.md +240 -0
  31. package/src/config/claude-code-config/commands/prompts/saas-define-pricing.md +293 -0
  32. package/src/config/claude-code-config/commands/prompts/saas-find-domain-name.md +190 -0
  33. package/src/config/claude-code-config/commands/prompts/saas-implement-landing-page.md +257 -0
  34. package/src/config/claude-code-config/commands/prompts/setup-tmux.md +160 -0
  35. package/src/config/claude-code-config/commands/prompts/tools.md +148 -0
  36. package/src/config/claude-code-config/hooks/hook-post-file.ts +162 -0
  37. package/src/config/claude-code-config/scripts/.claude/skills/fix-on-my-computer/SKILL.md +81 -0
  38. package/src/config/claude-code-config/scripts/CLAUDE.md +50 -0
  39. package/src/config/claude-code-config/scripts/auto-rename-session/CLAUDE.md +59 -0
  40. package/src/config/claude-code-config/scripts/auto-rename-session/__tests__/shared.test.ts +185 -0
  41. package/src/config/claude-code-config/scripts/auto-rename-session/__tests__/title-generation.test.ts +44 -0
  42. package/src/config/claude-code-config/scripts/auto-rename-session/fixtures/sample-transcript.jsonl +3 -0
  43. package/src/config/claude-code-config/scripts/auto-rename-session/fixtures/transcript-short-message.jsonl +2 -0
  44. package/src/config/claude-code-config/scripts/auto-rename-session/fixtures/transcript-with-title.jsonl +3 -0
  45. package/src/config/claude-code-config/scripts/auto-rename-session/src/index.ts +113 -0
  46. package/src/config/claude-code-config/scripts/auto-rename-session/src/rename-all.ts +148 -0
  47. package/src/config/claude-code-config/scripts/auto-rename-session/src/shared.ts +157 -0
  48. package/src/config/claude-code-config/scripts/auto-rename-session/src/worker.ts +58 -0
  49. package/src/config/claude-code-config/scripts/biome.json +37 -0
  50. package/src/config/claude-code-config/scripts/claude-code-ai/CLAUDE.md +84 -0
  51. package/src/config/claude-code-config/scripts/claude-code-ai/__tests__/claude.test.ts +19 -0
  52. package/src/config/claude-code-config/scripts/claude-code-ai/__tests__/paths.test.ts +68 -0
  53. package/src/config/claude-code-config/scripts/claude-code-ai/claude.ts +56 -0
  54. package/src/config/claude-code-config/scripts/claude-code-ai/cli.ts +46 -0
  55. package/src/config/claude-code-config/scripts/claude-code-ai/helper/credentials.ts +76 -0
  56. package/src/config/claude-code-config/scripts/claude-code-ai/helper/index.ts +9 -0
  57. package/src/config/claude-code-config/scripts/claude-code-ai/helper/paths.ts +51 -0
  58. package/src/config/claude-code-config/scripts/command-validator/CLAUDE.md +112 -0
  59. package/src/config/claude-code-config/scripts/command-validator/README.md +147 -0
  60. package/src/config/claude-code-config/scripts/command-validator/src/__tests__/validator.test.ts +99 -0
  61. package/src/config/claude-code-config/scripts/command-validator/src/cli.ts +121 -0
  62. package/src/config/claude-code-config/scripts/command-validator/src/lib/security-rules.ts +174 -0
  63. package/src/config/claude-code-config/scripts/command-validator/src/lib/types.ts +34 -0
  64. package/src/config/claude-code-config/scripts/command-validator/src/lib/validator.ts +90 -0
  65. package/src/config/claude-code-config/scripts/package.json +43 -0
  66. package/src/config/claude-code-config/scripts/statusline/CLAUDE.md +205 -0
  67. package/src/config/claude-code-config/scripts/statusline/README.md +193 -0
  68. package/src/config/claude-code-config/scripts/statusline/__tests__/context.test.ts +229 -0
  69. package/src/config/claude-code-config/scripts/statusline/__tests__/formatters.test.ts +108 -0
  70. package/src/config/claude-code-config/scripts/statusline/__tests__/statusline.test.ts +309 -0
  71. package/src/config/claude-code-config/scripts/statusline/data/.gitkeep +0 -0
  72. package/src/config/claude-code-config/scripts/statusline/defaults.json +82 -0
  73. package/src/config/claude-code-config/scripts/statusline/docs/ARCHITECTURE.md +166 -0
  74. package/src/config/claude-code-config/scripts/statusline/fixtures/mock-transcript.jsonl +4 -0
  75. package/src/config/claude-code-config/scripts/statusline/fixtures/test-input.json +35 -0
  76. package/src/config/claude-code-config/scripts/statusline/src/analyze-daily-usage.ts +151 -0
  77. package/src/config/claude-code-config/scripts/statusline/src/commands/interactive-config.ts +515 -0
  78. package/src/config/claude-code-config/scripts/statusline/src/debug-payloads.ts +195 -0
  79. package/src/config/claude-code-config/scripts/statusline/src/index.ts +224 -0
  80. package/src/config/claude-code-config/scripts/statusline/src/lib/config-types.ts +110 -0
  81. package/src/config/claude-code-config/scripts/statusline/src/lib/config.ts +21 -0
  82. package/src/config/claude-code-config/scripts/statusline/src/lib/context.ts +103 -0
  83. package/src/config/claude-code-config/scripts/statusline/src/lib/features/limits/commands/weekly-analysis.ts +108 -0
  84. package/src/config/claude-code-config/scripts/statusline/src/lib/features/limits/index.ts +111 -0
  85. package/src/config/claude-code-config/scripts/statusline/src/lib/features/limits/types.ts +15 -0
  86. package/src/config/claude-code-config/scripts/statusline/src/lib/features/spend/commands/migrate-to-sqlite.ts +136 -0
  87. package/src/config/claude-code-config/scripts/statusline/src/lib/features/spend/commands/spend-day.ts +79 -0
  88. package/src/config/claude-code-config/scripts/statusline/src/lib/features/spend/commands/spend-month.ts +66 -0
  89. package/src/config/claude-code-config/scripts/statusline/src/lib/features/spend/commands/spend-project.ts +85 -0
  90. package/src/config/claude-code-config/scripts/statusline/src/lib/features/spend/database.ts +395 -0
  91. package/src/config/claude-code-config/scripts/statusline/src/lib/features/spend/index.ts +178 -0
  92. package/src/config/claude-code-config/scripts/statusline/src/lib/features/spend/payload-logger.ts +161 -0
  93. package/src/config/claude-code-config/scripts/statusline/src/lib/features/spend/types.ts +37 -0
  94. package/src/config/claude-code-config/scripts/statusline/src/lib/formatters.ts +426 -0
  95. package/src/config/claude-code-config/scripts/statusline/src/lib/git.ts +100 -0
  96. package/src/config/claude-code-config/scripts/statusline/src/lib/menu-factories.ts +224 -0
  97. package/src/config/claude-code-config/scripts/statusline/src/lib/presets.ts +177 -0
  98. package/src/config/claude-code-config/scripts/statusline/src/lib/render-pure.ts +516 -0
  99. package/src/config/claude-code-config/scripts/statusline/src/lib/types.ts +36 -0
  100. package/src/config/claude-code-config/scripts/statusline/src/lib/utils.ts +15 -0
  101. package/src/config/claude-code-config/scripts/statusline/src/stats.ts +119 -0
  102. package/src/config/claude-code-config/scripts/statusline/src/tests/spend-v2.test.ts +377 -0
  103. package/src/config/claude-code-config/scripts/statusline/src/tools/fixed-cost-calc.ts +317 -0
  104. package/src/config/claude-code-config/scripts/statusline/statusline.config.free.json +79 -0
  105. package/src/config/claude-code-config/scripts/statusline/statusline.config.json +100 -0
  106. package/src/config/claude-code-config/scripts/statusline/test-with-fixtures.ts +37 -0
  107. package/src/config/claude-code-config/scripts/statusline/test.ts +20 -0
  108. package/src/config/claude-code-config/scripts/statusline/tsconfig.json +27 -0
  109. package/src/config/claude-code-config/scripts/tsconfig.json +27 -0
  110. package/src/config/claude-code-config/settings.json +92 -0
  111. package/src/config/claude-code-config/skills/aibuilder-create-saas/SKILL.md +176 -0
  112. package/src/config/claude-code-config/skills/aibuilder-create-saas/references/architecture-template.md +436 -0
  113. package/src/config/claude-code-config/skills/aibuilder-create-saas/references/challenge-framework.md +289 -0
  114. package/src/config/claude-code-config/skills/aibuilder-create-saas/references/discovery-framework.md +338 -0
  115. package/src/config/claude-code-config/skills/aibuilder-create-saas/references/prd-template.md +452 -0
  116. package/src/config/claude-code-config/skills/aibuilder-create-saas/references/task-template.md +263 -0
  117. package/src/config/claude-code-config/skills/aibuilder-create-saas/references/tools.md +132 -0
  118. package/src/config/claude-code-config/skills/aibuilder-create-saas/scripts/rename-project.sh +42 -0
  119. package/src/config/claude-code-config/skills/aibuilder-create-saas/scripts/setup.sh +104 -0
  120. package/src/config/claude-code-config/skills/aibuilder-create-saas/steps/step-00-init.md +174 -0
  121. package/src/config/claude-code-config/skills/aibuilder-create-saas/steps/step-01-discovery.md +342 -0
  122. package/src/config/claude-code-config/skills/aibuilder-create-saas/steps/step-02-brainstorm.md +230 -0
  123. package/src/config/claude-code-config/skills/aibuilder-create-saas/steps/step-03-validate.md +372 -0
  124. package/src/config/claude-code-config/skills/aibuilder-create-saas/steps/step-04-prd.md +364 -0
  125. package/src/config/claude-code-config/skills/aibuilder-create-saas/steps/step-05-architecture.md +904 -0
  126. package/src/config/claude-code-config/skills/aibuilder-create-saas/steps/step-06-tasks.md +446 -0
  127. package/src/config/claude-code-config/skills/explore/SKILL.md +119 -0
  128. package/src/config/claude-code-config/skills/frontend-design/LICENSE.txt +177 -0
  129. package/src/config/claude-code-config/skills/frontend-design/SKILL.md +42 -0
  130. package/src/config/claude-code-config/skills/git-commit/SKILL.md +42 -0
  131. package/src/config/claude-code-config/skills/git-create-pr/SKILL.md +53 -0
  132. package/src/config/claude-code-config/skills/git-fix-pr-comments/SKILL.md +51 -0
  133. package/src/config/claude-code-config/skills/git-merge/SKILL.md +68 -0
  134. package/src/config/claude-code-config/skills/marketing-copywriting/SKILL.md +72 -0
  135. package/src/config/claude-code-config/skills/meta-claude-memory/SKILL.md +694 -0
  136. package/src/config/claude-code-config/skills/meta-claude-memory/references/comprehensive-example.md +175 -0
  137. package/src/config/claude-code-config/skills/meta-claude-memory/references/project-patterns.md +334 -0
  138. package/src/config/claude-code-config/skills/meta-claude-memory/references/prompting-techniques.md +411 -0
  139. package/src/config/claude-code-config/skills/meta-claude-memory/references/rules-directory-guide.md +298 -0
  140. package/src/config/claude-code-config/skills/meta-claude-memory/references/section-templates.md +347 -0
  141. package/src/config/claude-code-config/skills/meta-hooks-creator/SKILL.md +357 -0
  142. package/src/config/claude-code-config/skills/meta-hooks-creator/references/command-vs-prompt.md +287 -0
  143. package/src/config/claude-code-config/skills/meta-hooks-creator/references/examples.md +689 -0
  144. package/src/config/claude-code-config/skills/meta-hooks-creator/references/hook-types.md +495 -0
  145. package/src/config/claude-code-config/skills/meta-hooks-creator/references/input-output-schemas.md +503 -0
  146. package/src/config/claude-code-config/skills/meta-hooks-creator/references/matchers.md +517 -0
  147. package/src/config/claude-code-config/skills/meta-hooks-creator/references/troubleshooting.md +653 -0
  148. package/src/config/claude-code-config/skills/meta-prompt-creator/SKILL.md +285 -0
  149. package/src/config/claude-code-config/skills/meta-prompt-creator/references/anthropic-best-practices.md +126 -0
  150. package/src/config/claude-code-config/skills/meta-prompt-creator/references/anti-patterns.md +57 -0
  151. package/src/config/claude-code-config/skills/meta-prompt-creator/references/clarity-principles.md +54 -0
  152. package/src/config/claude-code-config/skills/meta-prompt-creator/references/context-management.md +389 -0
  153. package/src/config/claude-code-config/skills/meta-prompt-creator/references/few-shot-patterns.md +47 -0
  154. package/src/config/claude-code-config/skills/meta-prompt-creator/references/openai-best-practices.md +50 -0
  155. package/src/config/claude-code-config/skills/meta-prompt-creator/references/prompt-templates.md +110 -0
  156. package/src/config/claude-code-config/skills/meta-prompt-creator/references/reasoning-techniques.md +52 -0
  157. package/src/config/claude-code-config/skills/meta-prompt-creator/references/system-prompt-patterns.md +48 -0
  158. package/src/config/claude-code-config/skills/meta-prompt-creator/references/xml-structure.md +36 -0
  159. package/src/config/claude-code-config/skills/meta-skill-creator/LICENSE.txt +202 -0
  160. package/src/config/claude-code-config/skills/meta-skill-creator/SKILL.md +421 -0
  161. package/src/config/claude-code-config/skills/meta-skill-creator/package.json +5 -0
  162. package/src/config/claude-code-config/skills/meta-skill-creator/references/output-patterns.md +82 -0
  163. package/src/config/claude-code-config/skills/meta-skill-creator/references/progressive-disclosure-patterns.md +374 -0
  164. package/src/config/claude-code-config/skills/meta-skill-creator/references/prompting-integration.md +363 -0
  165. package/src/config/claude-code-config/skills/meta-skill-creator/references/real-world-examples.md +513 -0
  166. package/src/config/claude-code-config/skills/meta-skill-creator/references/script-patterns.md +385 -0
  167. package/src/config/claude-code-config/skills/meta-skill-creator/references/workflows.md +28 -0
  168. package/src/config/claude-code-config/skills/meta-skill-creator/references/xml-tag-guide.md +606 -0
  169. package/src/config/claude-code-config/skills/meta-skill-creator/scripts/init-skill.ts +214 -0
  170. package/src/config/claude-code-config/skills/meta-skill-creator/scripts/package-skill.ts +146 -0
  171. package/src/config/claude-code-config/skills/meta-skill-creator/scripts/validate.ts +138 -0
  172. package/src/config/claude-code-config/skills/meta-skill-workflow-creator/SKILL.md +390 -0
  173. package/src/config/claude-code-config/skills/meta-skill-workflow-creator/references/ask-patterns.md +225 -0
  174. package/src/config/claude-code-config/skills/meta-skill-workflow-creator/references/prompt-engineering.md +377 -0
  175. package/src/config/claude-code-config/skills/meta-skill-workflow-creator/references/state-management.md +275 -0
  176. package/src/config/claude-code-config/skills/meta-skill-workflow-creator/references/step-template.md +334 -0
  177. package/src/config/claude-code-config/skills/meta-skill-workflow-creator/references/workflow-patterns.md +300 -0
  178. package/src/config/claude-code-config/skills/meta-subagent-creator/SKILL.md +451 -0
  179. package/src/config/claude-code-config/skills/meta-subagent-creator/references/context-management.md +567 -0
  180. package/src/config/claude-code-config/skills/meta-subagent-creator/references/debugging-agents.md +714 -0
  181. package/src/config/claude-code-config/skills/meta-subagent-creator/references/error-handling-and-recovery.md +502 -0
  182. package/src/config/claude-code-config/skills/meta-subagent-creator/references/evaluation-and-testing.md +374 -0
  183. package/src/config/claude-code-config/skills/meta-subagent-creator/references/orchestration-patterns.md +591 -0
  184. package/src/config/claude-code-config/skills/meta-subagent-creator/references/subagents.md +599 -0
  185. package/src/config/claude-code-config/skills/meta-subagent-creator/references/writing-subagent-prompts.md +513 -0
  186. package/src/config/claude-code-config/skills/ralph-loop/SKILL.md +117 -0
  187. package/src/config/claude-code-config/skills/ralph-loop/scripts/setup.sh +278 -0
  188. package/src/config/claude-code-config/skills/ralph-loop/steps/step-00-init.md +215 -0
  189. package/src/config/claude-code-config/skills/ralph-loop/steps/step-01-interactive-prd.md +366 -0
  190. package/src/config/claude-code-config/skills/ralph-loop/steps/step-02-create-stories.md +273 -0
  191. package/src/config/claude-code-config/skills/ralph-loop/steps/step-03-finish.md +245 -0
  192. package/src/config/claude-code-config/skills/ralph-tasks/SKILL.md +88 -0
  193. package/src/config/claude-code-config/skills/ralph-tasks/scripts/add-task.sh +36 -0
  194. package/src/config/claude-code-config/skills/ralph-tasks/scripts/list-tasks.sh +66 -0
  195. package/src/config/claude-code-config/skills/ralph-tasks/scripts/remove-task.sh +47 -0
  196. package/src/config/claude-code-config/skills/ralph-tasks/scripts/setup.sh +201 -0
  197. package/src/config/claude-code-config/skills/ralph-tasks/steps/action-add-search.md +131 -0
  198. package/src/config/claude-code-config/skills/ralph-tasks/steps/action-add.md +46 -0
  199. package/src/config/claude-code-config/skills/ralph-tasks/steps/action-init.md +123 -0
  200. package/src/config/claude-code-config/skills/ralph-tasks/steps/action-list.md +58 -0
  201. package/src/config/claude-code-config/skills/ralph-tasks/steps/action-remove.md +48 -0
  202. package/src/config/claude-code-config/skills/ralph-tasks/steps/action-setup.md +46 -0
  203. package/src/config/claude-code-config/skills/ralph-tasks/steps/action-wake-up.md +62 -0
  204. package/src/config/claude-code-config/skills/utils-fix-errors/SKILL.md +61 -0
  205. package/src/config/claude-code-config/skills/utils-fix-grammar/SKILL.md +59 -0
  206. package/src/config/claude-code-config/skills/utils-oneshot/SKILL.md +56 -0
  207. package/src/config/claude-code-config/skills/utils-refactor/SKILL.md +89 -0
  208. package/src/config/claude-code-config/skills/utils-save-docs/SKILL.md +74 -0
  209. package/src/config/claude-code-config/skills/utils-ultrathink/SKILL.md +42 -0
  210. package/src/config/claude-code-config/skills/workflow-apex/SKILL.md +116 -0
  211. package/src/config/claude-code-config/skills/workflow-apex/scripts/setup-templates.sh +144 -0
  212. package/src/config/claude-code-config/skills/workflow-apex/scripts/update-progress.sh +80 -0
  213. package/src/config/claude-code-config/skills/workflow-apex/steps/step-00-init.md +273 -0
  214. package/src/config/claude-code-config/skills/workflow-apex/steps/step-00b-branch.md +126 -0
  215. package/src/config/claude-code-config/skills/workflow-apex/steps/step-00b-economy.md +244 -0
  216. package/src/config/claude-code-config/skills/workflow-apex/steps/step-00b-interactive.md +165 -0
  217. package/src/config/claude-code-config/skills/workflow-apex/steps/step-00b-save.md +123 -0
  218. package/src/config/claude-code-config/skills/workflow-apex/steps/step-01-analyze.md +361 -0
  219. package/src/config/claude-code-config/skills/workflow-apex/steps/step-02-plan.md +422 -0
  220. package/src/config/claude-code-config/skills/workflow-apex/steps/step-02b-tasks.md +301 -0
  221. package/src/config/claude-code-config/skills/workflow-apex/steps/step-03-execute-teams.md +297 -0
  222. package/src/config/claude-code-config/skills/workflow-apex/steps/step-03-execute.md +239 -0
  223. package/src/config/claude-code-config/skills/workflow-apex/steps/step-04-validate.md +264 -0
  224. package/src/config/claude-code-config/skills/workflow-apex/steps/step-05-examine.md +294 -0
  225. package/src/config/claude-code-config/skills/workflow-apex/steps/step-06-resolve.md +237 -0
  226. package/src/config/claude-code-config/skills/workflow-apex/steps/step-07-tests.md +250 -0
  227. package/src/config/claude-code-config/skills/workflow-apex/steps/step-08-run-tests.md +308 -0
  228. package/src/config/claude-code-config/skills/workflow-apex/steps/step-09-finish.md +193 -0
  229. package/src/config/claude-code-config/skills/workflow-apex/templates/00-context.md +53 -0
  230. package/src/config/claude-code-config/skills/workflow-apex/templates/01-analyze.md +10 -0
  231. package/src/config/claude-code-config/skills/workflow-apex/templates/02-plan.md +10 -0
  232. package/src/config/claude-code-config/skills/workflow-apex/templates/03-execute.md +10 -0
  233. package/src/config/claude-code-config/skills/workflow-apex/templates/04-validate.md +10 -0
  234. package/src/config/claude-code-config/skills/workflow-apex/templates/05-examine.md +10 -0
  235. package/src/config/claude-code-config/skills/workflow-apex/templates/06-resolve.md +10 -0
  236. package/src/config/claude-code-config/skills/workflow-apex/templates/07-tests.md +10 -0
  237. package/src/config/claude-code-config/skills/workflow-apex/templates/08-run-tests.md +10 -0
  238. package/src/config/claude-code-config/skills/workflow-apex/templates/09-finish.md +10 -0
  239. package/src/config/claude-code-config/skills/workflow-apex/templates/README.md +195 -0
  240. package/src/config/claude-code-config/skills/workflow-apex/templates/step-complete.md +7 -0
  241. package/src/config/claude-code-config/skills/workflow-brainstorm/SKILL.md +127 -0
  242. package/src/config/claude-code-config/skills/workflow-brainstorm/steps/step-01-explore.md +230 -0
  243. package/src/config/claude-code-config/skills/workflow-brainstorm/steps/step-02-challenge.md +238 -0
  244. package/src/config/claude-code-config/skills/workflow-brainstorm/steps/step-03-synthesize.md +337 -0
  245. package/src/config/claude-code-config/skills/workflow-brainstorm/steps/step-04-action.md +285 -0
  246. package/src/config/claude-code-config/skills/workflow-ci-fixer/SKILL.md +150 -0
  247. package/src/config/claude-code-config/skills/workflow-ci-fixer/references/cli-commands.md +122 -0
  248. package/src/config/claude-code-config/skills/workflow-ci-fixer/references/github-cli.md +243 -0
  249. package/src/config/claude-code-config/skills/workflow-ci-fixer/references/troubleshooting.md +362 -0
  250. package/src/config/claude-code-config/skills/workflow-ci-fixer/references/vercel-cli.md +192 -0
  251. package/src/config/claude-code-config/skills/workflow-ci-fixer/steps/step-00-init.md +157 -0
  252. package/src/config/claude-code-config/skills/workflow-ci-fixer/steps/step-01-watch-ci.md +192 -0
  253. package/src/config/claude-code-config/skills/workflow-ci-fixer/steps/step-02-analyze-errors.md +263 -0
  254. package/src/config/claude-code-config/skills/workflow-ci-fixer/steps/step-03-fix-locally.md +312 -0
  255. package/src/config/claude-code-config/skills/workflow-ci-fixer/steps/step-04-commit-push.md +206 -0
  256. package/src/config/claude-code-config/skills/workflow-ci-fixer/steps/step-05-cleanup.md +196 -0
  257. package/src/config/claude-code-config/skills/workflow-clean-code/SKILL.md +129 -0
  258. package/src/config/claude-code-config/skills/workflow-clean-code/references/general-clean-code.md +347 -0
  259. package/src/config/claude-code-config/skills/workflow-clean-code/references/nextjs-clean-code.md +458 -0
  260. package/src/config/claude-code-config/skills/workflow-clean-code/references/react-clean-code.md +406 -0
  261. package/src/config/claude-code-config/skills/workflow-clean-code/references/tanstack-query-best-practices.md +516 -0
  262. package/src/config/claude-code-config/skills/workflow-clean-code/references/zustand-best-practices.md +491 -0
  263. package/src/config/claude-code-config/skills/workflow-clean-code/steps/step-01-scan.md +137 -0
  264. package/src/config/claude-code-config/skills/workflow-clean-code/steps/step-02-apply.md +152 -0
  265. package/src/config/claude-code-config/skills/workflow-clean-code/steps/step-03-verify.md +143 -0
  266. package/src/config/claude-code-config/skills/workflow-debug/SKILL.md +126 -0
  267. package/src/config/claude-code-config/skills/workflow-debug/references/log-technique.md +285 -0
  268. package/src/config/claude-code-config/skills/workflow-debug/steps/step-00-init.md +94 -0
  269. package/src/config/claude-code-config/skills/workflow-debug/steps/step-01-analyze.md +180 -0
  270. package/src/config/claude-code-config/skills/workflow-debug/steps/step-01b-log-instrumentation.md +271 -0
  271. package/src/config/claude-code-config/skills/workflow-debug/steps/step-02-find-solutions.md +141 -0
  272. package/src/config/claude-code-config/skills/workflow-debug/steps/step-03-propose.md +142 -0
  273. package/src/config/claude-code-config/skills/workflow-debug/steps/step-04-fix.md +176 -0
  274. package/src/config/claude-code-config/skills/workflow-debug/steps/step-05-verify.md +279 -0
  275. package/src/config/claude-code-config/skills/workflow-review-code/SKILL.md +219 -0
  276. package/src/config/claude-code-config/skills/workflow-review-code/references/clean-code-principles.md +140 -0
  277. package/src/config/claude-code-config/skills/workflow-review-code/references/code-quality-metrics.md +174 -0
  278. package/src/config/claude-code-config/skills/workflow-review-code/references/feedback-patterns.md +149 -0
  279. package/src/config/claude-code-config/skills/workflow-review-code/references/security-checklist.md +127 -0
  280. package/src/config/claude-code-config/song/finish.mp3 +0 -0
  281. package/src/config/claude-code-config/song/need-human.mp3 +0 -0
@@ -0,0 +1,491 @@
1
+ # Zustand v5 Best Practices
2
+
3
+ ## Store Creation (v5 Syntax)
4
+
5
+ ### Basic Store with TypeScript
6
+
7
+ ```typescript
8
+ import { create } from 'zustand';
9
+
10
+ interface BearState {
11
+ bears: number;
12
+ increase: () => void;
13
+ decrease: () => void;
14
+ reset: () => void;
15
+ }
16
+
17
+ // Use curried syntax for TypeScript
18
+ const useBearStore = create<BearState>()((set) => ({
19
+ bears: 0,
20
+ increase: () => set((state) => ({ bears: state.bears + 1 })),
21
+ decrease: () => set((state) => ({ bears: state.bears - 1 })),
22
+ reset: () => set({ bears: 0 }),
23
+ }));
24
+ ```
25
+
26
+ ### Usage in Components
27
+
28
+ ```typescript
29
+ function BearCounter() {
30
+ const bears = useBearStore((state) => state.bears);
31
+ return <h1>{bears} bears</h1>;
32
+ }
33
+
34
+ function Controls() {
35
+ const increase = useBearStore((state) => state.increase);
36
+ return <button onClick={increase}>Add bear</button>;
37
+ }
38
+ ```
39
+
40
+ ### External Access (Outside React)
41
+
42
+ ```typescript
43
+ // Get current state
44
+ const bears = useBearStore.getState().bears;
45
+
46
+ // Update state
47
+ useBearStore.setState({ bears: 10 });
48
+
49
+ // Subscribe to changes
50
+ const unsub = useBearStore.subscribe((state) => console.log(state));
51
+ unsub(); // Unsubscribe
52
+ ```
53
+
54
+ ---
55
+
56
+ ## Slices Pattern
57
+
58
+ Split large stores into composable slices:
59
+
60
+ ```typescript
61
+ import { create, StateCreator } from 'zustand';
62
+
63
+ interface UserSlice {
64
+ user: User | null;
65
+ setUser: (user: User) => void;
66
+ logout: () => void;
67
+ }
68
+
69
+ interface CartSlice {
70
+ items: CartItem[];
71
+ addItem: (item: CartItem) => void;
72
+ clearCart: () => void;
73
+ }
74
+
75
+ const createUserSlice: StateCreator<UserSlice & CartSlice, [], [], UserSlice> = (set) => ({
76
+ user: null,
77
+ setUser: (user) => set({ user }),
78
+ logout: () => set({ user: null }),
79
+ });
80
+
81
+ const createCartSlice: StateCreator<UserSlice & CartSlice, [], [], CartSlice> = (set) => ({
82
+ items: [],
83
+ addItem: (item) => set((state) => ({ items: [...state.items, item] })),
84
+ clearCart: () => set({ items: [] }),
85
+ });
86
+
87
+ // Combine slices
88
+ const useStore = create<UserSlice & CartSlice>()((...args) => ({
89
+ ...createUserSlice(...args),
90
+ ...createCartSlice(...args),
91
+ }));
92
+ ```
93
+
94
+ ---
95
+
96
+ ## Selectors & Performance
97
+
98
+ ### Always Use Selectors
99
+
100
+ ```typescript
101
+ // ❌ BAD - Re-renders on ANY store change
102
+ function UserName() {
103
+ const store = useUserStore();
104
+ return <span>{store.user?.name}</span>;
105
+ }
106
+
107
+ // ✅ GOOD - Only re-renders when user.name changes
108
+ function UserName() {
109
+ const name = useUserStore((state) => state.user?.name);
110
+ return <span>{name}</span>;
111
+ }
112
+ ```
113
+
114
+ ### useShallow for Multiple Values
115
+
116
+ ```typescript
117
+ import { useShallow } from 'zustand/react/shallow';
118
+
119
+ function UserInfo() {
120
+ // Only re-renders when these specific values change
121
+ const { name, email } = useUserStore(
122
+ useShallow((state) => ({
123
+ name: state.user?.name,
124
+ email: state.user?.email
125
+ }))
126
+ );
127
+
128
+ return <div>{name} - {email}</div>;
129
+ }
130
+
131
+ // Array destructuring
132
+ function BearFood() {
133
+ const [nuts, honey] = useBearStore(
134
+ useShallow((state) => [state.nuts, state.honey])
135
+ );
136
+ return <div>Nuts: {nuts}, Honey: {honey}</div>;
137
+ }
138
+ ```
139
+
140
+ ---
141
+
142
+ ## Persist Middleware
143
+
144
+ ### Basic Persistence
145
+
146
+ ```typescript
147
+ import { create } from 'zustand';
148
+ import { persist, createJSONStorage } from 'zustand/middleware';
149
+
150
+ interface SettingsStore {
151
+ theme: 'light' | 'dark';
152
+ setTheme: (theme: 'light' | 'dark') => void;
153
+ }
154
+
155
+ const useSettingsStore = create<SettingsStore>()(
156
+ persist(
157
+ (set) => ({
158
+ theme: 'light',
159
+ setTheme: (theme) => set({ theme }),
160
+ }),
161
+ {
162
+ name: 'settings-storage', // localStorage key
163
+ }
164
+ )
165
+ );
166
+ ```
167
+
168
+ ### Selective Persistence
169
+
170
+ ```typescript
171
+ const useStore = create(
172
+ persist(
173
+ (set) => ({
174
+ user: null,
175
+ tempData: 'not persisted',
176
+ setUser: (user) => set({ user }),
177
+ }),
178
+ {
179
+ name: 'app-storage',
180
+ partialize: (state) => ({ user: state.user }), // Only persist user
181
+ }
182
+ )
183
+ );
184
+ ```
185
+
186
+ ### Migration Between Versions
187
+
188
+ ```typescript
189
+ const useStore = create(
190
+ persist(
191
+ (set) => ({
192
+ version: 2,
193
+ data: {},
194
+ }),
195
+ {
196
+ name: 'app-storage',
197
+ version: 2,
198
+ migrate: (persistedState, version) => {
199
+ if (version === 1) {
200
+ // Migrate from v1 to v2
201
+ return { ...persistedState, newField: 'default' };
202
+ }
203
+ return persistedState;
204
+ },
205
+ }
206
+ )
207
+ );
208
+ ```
209
+
210
+ ---
211
+
212
+ ## Devtools Integration
213
+
214
+ ```typescript
215
+ import { create } from 'zustand';
216
+ import { devtools } from 'zustand/middleware';
217
+
218
+ const useBearStore = create<BearState>()(
219
+ devtools(
220
+ (set) => ({
221
+ bears: 0,
222
+ increase: () => set(
223
+ (state) => ({ bears: state.bears + 1 }),
224
+ undefined,
225
+ 'bears/increase' // Action name in devtools
226
+ ),
227
+ }),
228
+ {
229
+ name: 'BearStore',
230
+ enabled: process.env.NODE_ENV !== 'production',
231
+ }
232
+ )
233
+ );
234
+ ```
235
+
236
+ ---
237
+
238
+ ## Immer Middleware
239
+
240
+ For easy nested state updates:
241
+
242
+ ```typescript
243
+ import { create } from 'zustand';
244
+ import { immer } from 'zustand/middleware/immer';
245
+
246
+ interface TodoStore {
247
+ todos: Record<string, Todo>;
248
+ toggleTodo: (id: string) => void;
249
+ updateTitle: (id: string, title: string) => void;
250
+ }
251
+
252
+ const useTodoStore = create<TodoStore>()(
253
+ immer((set) => ({
254
+ todos: {},
255
+ toggleTodo: (id) => set((state) => {
256
+ state.todos[id].done = !state.todos[id].done;
257
+ }),
258
+ updateTitle: (id, title) => set((state) => {
259
+ state.todos[id].title = title;
260
+ }),
261
+ }))
262
+ );
263
+ ```
264
+
265
+ ---
266
+
267
+ ## Combining Middleware
268
+
269
+ ```typescript
270
+ import { create } from 'zustand';
271
+ import { devtools, persist, subscribeWithSelector } from 'zustand/middleware';
272
+ import { immer } from 'zustand/middleware/immer';
273
+
274
+ const useStore = create<State>()(
275
+ devtools(
276
+ persist(
277
+ subscribeWithSelector(
278
+ immer((set) => ({
279
+ // Store definition
280
+ }))
281
+ ),
282
+ { name: 'app-storage' }
283
+ ),
284
+ { name: 'AppStore' }
285
+ )
286
+ );
287
+ ```
288
+
289
+ ---
290
+
291
+ ## Subscribe to Specific Changes
292
+
293
+ ```typescript
294
+ import { create } from 'zustand';
295
+ import { subscribeWithSelector } from 'zustand/middleware';
296
+ import { shallow } from 'zustand/vanilla/shallow';
297
+
298
+ const useStore = create(
299
+ subscribeWithSelector((set) => ({
300
+ paw: true,
301
+ fur: 'brown',
302
+ age: 5,
303
+ }))
304
+ );
305
+
306
+ // Subscribe to specific property
307
+ useStore.subscribe(
308
+ (state) => state.age,
309
+ (age, prevAge) => console.log('Age changed:', prevAge, '->', age)
310
+ );
311
+
312
+ // Subscribe with shallow comparison
313
+ useStore.subscribe(
314
+ (state) => ({ paw: state.paw, fur: state.fur }),
315
+ (current, prev) => console.log('Changed'),
316
+ { equalityFn: shallow }
317
+ );
318
+
319
+ // Fire immediately on subscribe
320
+ useStore.subscribe(
321
+ (state) => state.age,
322
+ (age) => console.log('Current age:', age),
323
+ { fireImmediately: true }
324
+ );
325
+ ```
326
+
327
+ ---
328
+
329
+ ## When to Use Zustand vs TanStack Query
330
+
331
+ | Use Case | Zustand | TanStack Query |
332
+ |----------|---------|----------------|
333
+ | API data | ❌ | ✅ |
334
+ | UI state | ✅ | ❌ |
335
+ | Theme/preferences | ✅ | ❌ |
336
+ | Shopping cart | ✅ | ❌ |
337
+ | Auth token | ✅ | ❌ |
338
+ | User profile (API) | ❌ | ✅ |
339
+ | WebSocket data | ✅ | ❌ |
340
+ | Form state | ❌ | ❌ (use React) |
341
+
342
+ ### Hybrid Pattern
343
+
344
+ ```typescript
345
+ // TanStack Query for server state
346
+ function useUser(id: string) {
347
+ return useQuery({
348
+ queryKey: ['user', id],
349
+ queryFn: () => api.getUser(id),
350
+ });
351
+ }
352
+
353
+ // Zustand for UI state
354
+ const useUIStore = create<UIStore>()((set) => ({
355
+ selectedUserId: null,
356
+ setSelectedUser: (id) => set({ selectedUserId: id }),
357
+ sidebarOpen: false,
358
+ toggleSidebar: () => set((s) => ({ sidebarOpen: !s.sidebarOpen })),
359
+ }));
360
+
361
+ // Use both together
362
+ function UserList() {
363
+ const { data: users } = useUsers();
364
+ const { selectedUserId, setSelectedUser } = useUIStore();
365
+
366
+ return (
367
+ <ul>
368
+ {users?.map((user) => (
369
+ <li
370
+ key={user.id}
371
+ onClick={() => setSelectedUser(user.id)}
372
+ className={selectedUserId === user.id ? 'selected' : ''}
373
+ >
374
+ {user.name}
375
+ </li>
376
+ ))}
377
+ </ul>
378
+ );
379
+ }
380
+ ```
381
+
382
+ ---
383
+
384
+ ## React 19 / Next.js Compatibility
385
+
386
+ ### Client Components Only
387
+
388
+ ```typescript
389
+ // ❌ Won't work in Server Components
390
+ import { useBearStore } from './store';
391
+
392
+ export default async function ServerComponent() {
393
+ const bears = useBearStore((state) => state.bears); // Error!
394
+ }
395
+
396
+ // ✅ Use in Client Components
397
+ 'use client';
398
+
399
+ import { useBearStore } from './store';
400
+
401
+ export default function ClientComponent() {
402
+ const bears = useBearStore((state) => state.bears);
403
+ return <div>{bears}</div>;
404
+ }
405
+ ```
406
+
407
+ ### SSR Hydration Safety
408
+
409
+ ```typescript
410
+ import { useState, useEffect } from 'react';
411
+
412
+ function useHydratedStore<T, R>(
413
+ store: (selector: (state: T) => R) => R,
414
+ selector: (state: T) => R
415
+ ): R | undefined {
416
+ const value = store(selector);
417
+ const [hydrated, setHydrated] = useState(false);
418
+
419
+ useEffect(() => {
420
+ setHydrated(true);
421
+ }, []);
422
+
423
+ return hydrated ? value : undefined;
424
+ }
425
+
426
+ // Usage - prevents hydration mismatch
427
+ function ThemeToggle() {
428
+ const theme = useHydratedStore(useSettingsStore, (s) => s.theme);
429
+
430
+ if (!theme) return null; // SSR placeholder
431
+ return <button>{theme}</button>;
432
+ }
433
+ ```
434
+
435
+ ---
436
+
437
+ ## Testing
438
+
439
+ ### Jest/Vitest Mock Setup
440
+
441
+ ```typescript
442
+ // __mocks__/zustand.ts
443
+ import { act } from '@testing-library/react';
444
+ import * as zustand from 'zustand';
445
+
446
+ const storeResetFns = new Set<() => void>();
447
+
448
+ const createMock = (createState) => {
449
+ const store = zustand.create(createState);
450
+ const initialState = store.getState();
451
+ storeResetFns.add(() => store.setState(initialState, true));
452
+ return store;
453
+ };
454
+
455
+ afterEach(() => {
456
+ act(() => storeResetFns.forEach((reset) => reset()));
457
+ });
458
+
459
+ export const create = createMock;
460
+ ```
461
+
462
+ ### Reset Pattern
463
+
464
+ ```typescript
465
+ const initialState = { bears: 0 };
466
+
467
+ const useBearStore = create<BearState>()((set, get, store) => ({
468
+ ...initialState,
469
+ increase: () => set((s) => ({ bears: s.bears + 1 })),
470
+ reset: () => set(store.getInitialState()),
471
+ }));
472
+ ```
473
+
474
+ ---
475
+
476
+ ## Best Practices Summary
477
+
478
+ ### Do's ✅
479
+ - Use separate stores for different domains
480
+ - Always use selectors to prevent re-renders
481
+ - Use `useShallow` for multiple values
482
+ - Use Zustand for client/UI state only
483
+ - Use TanStack Query for server state
484
+ - Mark stores with `'use client'` in Next.js
485
+
486
+ ### Don'ts ❌
487
+ - Don't store server data in Zustand
488
+ - Don't subscribe to entire store
489
+ - Don't create one giant store
490
+ - Don't mutate state directly
491
+ - Don't use in React Server Components
@@ -0,0 +1,137 @@
1
+ ---
2
+ name: step-01-scan
3
+ description: Initialize and scan codebase for technologies and issues
4
+ prev_step: null
5
+ next_step: steps/step-02-apply.md
6
+ ---
7
+
8
+ # Step 1: SCAN
9
+
10
+ ## MANDATORY EXECUTION RULES (READ FIRST):
11
+
12
+ - 🛑 NEVER modify files in this step - scan only
13
+ - ✅ ALWAYS parse flags before anything else
14
+ - 📋 YOU ARE A SCANNER, not a fixer
15
+ - 💬 FOCUS on detection and analysis only
16
+ - 🚫 FORBIDDEN to apply any changes
17
+
18
+ ## EXECUTION PROTOCOLS:
19
+
20
+ - 🎯 Parse flags first, then analyze
21
+ - 💾 Save results if `{save_mode}` = true
22
+ - 📖 Complete scan before moving to step-02
23
+ - 🚫 FORBIDDEN to load step-02 until scan complete
24
+
25
+ ## CONTEXT BOUNDARIES:
26
+
27
+ - This is the first step - no previous context
28
+ - Flags parsed from user input
29
+ - Results passed to step-02 via memory
30
+
31
+ ## YOUR TASK:
32
+
33
+ Parse flags, detect technologies, and find anti-patterns in the codebase.
34
+
35
+ ---
36
+
37
+ ## EXECUTION SEQUENCE:
38
+
39
+ ### 1. Parse Flags
40
+
41
+ ```yaml
42
+ defaults:
43
+ auto_mode: false # -a
44
+ economy_mode: false # -e
45
+ save_mode: false # -s
46
+ force_react: false # --react
47
+ force_nextjs: false # --nextjs
48
+ force_zustand: false # --zustand
49
+ force_query: false # --query
50
+ ```
51
+
52
+ Parse input: flags → state variables, remainder → `{task_description}`
53
+ Generate `{task_id}` (kebab-case from description)
54
+
55
+ ### 2. Check Resume (-r)
56
+
57
+ **If `-r {id}` provided:**
58
+ → Find `.claude/output/clean-code/{id}*/`
59
+ → Restore state from `00-context.md`
60
+ → Load appropriate step
61
+ → **STOP**
62
+
63
+ ### 3. Create Output (if save_mode)
64
+
65
+ ```bash
66
+ mkdir -p .claude/output/clean-code/{task_id}
67
+ ```
68
+
69
+ ### 4. Scan Codebase
70
+
71
+ **If `{economy_mode}` = true:**
72
+ → Direct tools only (Read, Grep, Glob)
73
+
74
+ **If `{economy_mode}` = false:**
75
+ → Launch 3 agents in parallel (single message):
76
+
77
+ | Agent | Type | Task |
78
+ |-------|------|------|
79
+ | 1 | explore-codebase | Detect technologies from package.json |
80
+ | 2 | explore-codebase | Find anti-patterns in `{task_description}` |
81
+ | 3 | explore-codebase | Find good patterns to preserve |
82
+
83
+ ### 5. Summarize Findings
84
+
85
+ ```markdown
86
+ ## Detected Technologies
87
+ | Category | Found |
88
+ |----------|-------|
89
+ | Framework | Next.js 15 |
90
+ | State | Zustand |
91
+ | ...
92
+
93
+ ## Issues Found
94
+ | File:Line | Issue | Priority |
95
+ |-----------|-------|----------|
96
+ | Auth.tsx:45 | useEffect fetching | 🔴 |
97
+ | ...
98
+ ```
99
+
100
+ ### 6. Confirm
101
+
102
+ **If `{auto_mode}` = true:**
103
+ → Proceed to step-02
104
+
105
+ **If `{auto_mode}` = false:**
106
+ → Use AskUserQuestion to confirm
107
+
108
+ ---
109
+
110
+ ## SUCCESS METRICS:
111
+
112
+ ✅ Flags parsed correctly
113
+ ✅ Technologies detected
114
+ ✅ Issues cataloged with file:line
115
+ ✅ Good patterns identified
116
+
117
+ ## FAILURE MODES:
118
+
119
+ ❌ Modifying files during scan
120
+ ❌ Skipping package.json analysis
121
+ ❌ Not using parallel agents (when economy_mode = false)
122
+
123
+ ## SCAN PROTOCOLS:
124
+
125
+ - Always read package.json first
126
+ - Report issues with file:line format
127
+ - Distinguish "missing" from "incorrectly used"
128
+
129
+ ---
130
+
131
+ ## NEXT STEP:
132
+
133
+ After scan complete, load `./step-02-apply.md`
134
+
135
+ <critical>
136
+ SCAN ONLY - don't fix anything!
137
+ </critical>