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,245 @@
1
+ ---
2
+ name: step-03-finish
3
+ description: Show run command and instructions
4
+ prev_step: steps/step-02-create-stories.md
5
+ next_step: null
6
+ ---
7
+
8
+ # Step 3: Ready to Run Ralph
9
+
10
+ ## MANDATORY EXECUTION RULES (READ FIRST):
11
+
12
+ - 🛑 NEVER skip showing the run command
13
+ - 🛑 NEVER run ralph.sh - user runs it themselves
14
+ - ✅ ALWAYS verify prd.json exists and has stories
15
+ - ✅ ALWAYS show the complete run command for user to copy
16
+ - ✅ ALWAYS let user decide when to run
17
+ - 📋 YOU ARE a helper providing clear instructions
18
+ - 💬 FOCUS on making it easy for user to start Ralph
19
+ - 🚫 FORBIDDEN to run Ralph automatically
20
+ - 🚫 FORBIDDEN to execute any ralph.sh commands
21
+
22
+ ## EXECUTION PROTOCOLS:
23
+
24
+ - 🎯 Verify all files are in place
25
+ - 💾 Show summary of what was created
26
+ - 📖 Provide clear run instructions
27
+ - 🚫 FORBIDDEN to modify any files in this step
28
+
29
+ ## CONTEXT BOUNDARIES:
30
+
31
+ **Available from previous steps:**
32
+ - `{project_path}` - Absolute path to project
33
+ - `{ralph_dir}` - Path to .claude/ralph
34
+ - `{feature_name}` - Feature folder name
35
+ - `{feature_dir}` - Path to feature folder
36
+ - prd.json exists with user stories
37
+
38
+ ## YOUR TASK:
39
+
40
+ Verify setup is complete and provide clear instructions for running Ralph.
41
+
42
+ ---
43
+
44
+ ## EXECUTION SEQUENCE:
45
+
46
+ ### 1. Verify Files Exist
47
+
48
+ Check all required files:
49
+
50
+ ```bash
51
+ # Check ralph.sh
52
+ ls -la {ralph_dir}/ralph.sh
53
+
54
+ # Check prompt.md
55
+ ls -la {ralph_dir}/prompt.md
56
+
57
+ # Check feature files
58
+ ls -la {feature_dir}/PRD.md
59
+ ls -la {feature_dir}/prd.json
60
+ ls -la {feature_dir}/progress.txt
61
+ ```
62
+
63
+ ### 2. Get Story Count
64
+
65
+ ```bash
66
+ # Count stories
67
+ jq '.userStories | length' {feature_dir}/prd.json
68
+ ```
69
+
70
+ ### 3. Show Summary
71
+
72
+ Display a comprehensive summary:
73
+
74
+ ```
75
+ ╔════════════════════════════════════════════════════════════════╗
76
+ ║ ✅ RALPH READY TO RUN ║
77
+ ╠════════════════════════════════════════════════════════════════╣
78
+ ║ ║
79
+ ║ 📁 Project: {project_path} ║
80
+ ║ 📁 Ralph: {ralph_dir} ║
81
+ ║ 📁 Feature: {feature_name} ║
82
+ ║ ║
83
+ ║ 📋 User Stories: {count} stories ready ║
84
+ ║ 🌿 Branch: {branchName} ║
85
+ ║ ║
86
+ ╚════════════════════════════════════════════════════════════════╝
87
+ ```
88
+
89
+ ### 4. Show Files Created
90
+
91
+ ```
92
+ 📁 Files Created:
93
+
94
+ {ralph_dir}/
95
+ ├── ralph.sh # Main loop script
96
+ ├── prompt.md # Agent instructions
97
+ └── tasks/
98
+ └── {feature_name}/
99
+ ├── PRD.md # Feature requirements
100
+ ├── prd.json # User stories ({count})
101
+ └── progress.txt # Learning log
102
+ ```
103
+
104
+ ### 5. Provide Run Command
105
+
106
+ **Primary command:**
107
+
108
+ ```bash
109
+ # Navigate to project
110
+ cd {project_path}
111
+
112
+ # Run Ralph (recommended: start with low iterations to test)
113
+ bun run {ralph_dir}/ralph.sh -f {feature_name} -n 5
114
+
115
+ # Or with bash
116
+ bash {ralph_dir}/ralph.sh -f {feature_name} -n 5
117
+
118
+ # Full run (up to 20 iterations)
119
+ bun run {ralph_dir}/ralph.sh -f {feature_name} -n 20
120
+ ```
121
+
122
+ ### 6. Show Quick Reference
123
+
124
+ ```
125
+ 📖 Quick Reference:
126
+
127
+ # Check progress
128
+ jq '.userStories[] | {id, title, passes}' {feature_dir}/prd.json
129
+
130
+ # See completed stories
131
+ jq '[.userStories[] | select(.passes == true)] | length' {feature_dir}/prd.json
132
+
133
+ # View learnings
134
+ cat {feature_dir}/progress.txt
135
+
136
+ # Resume after interruption (just run again)
137
+ bun run {ralph_dir}/ralph.sh -f {feature_name}
138
+ ```
139
+
140
+ ### 7. Important Tips
141
+
142
+ ```
143
+ 💡 Tips for Success:
144
+
145
+ 1. Start with -n 5 to test the first few iterations
146
+ 2. Watch the first 2-3 stories to verify they work correctly
147
+ 3. Ralph accumulates learnings - later iterations are smarter
148
+ 4. If a story fails, it will retry in the next iteration
149
+ 5. You can stop anytime with Ctrl+C and resume later
150
+
151
+ ⚠️ Before Running:
152
+
153
+ 1. Make sure you're on a clean git branch
154
+ 2. The branch will be: {branchName}
155
+ 3. Consider using Docker sandbox for isolation:
156
+ docker sandbox run claude ./ralph.sh -f {feature_name}
157
+ ```
158
+
159
+ ### 8. Final Confirmation
160
+
161
+ **Use AskUserQuestion:**
162
+ ```yaml
163
+ questions:
164
+ - header: "Ready"
165
+ question: "All set! Would you like me to explain anything else?"
166
+ options:
167
+ - label: "I'm ready to run Ralph"
168
+ description: "Thanks, I'll run the command myself"
169
+ - label: "Show me the first few stories"
170
+ description: "Let me preview what Ralph will implement"
171
+ - label: "How do I monitor progress?"
172
+ description: "Explain how to track what Ralph is doing"
173
+ - label: "What if something fails?"
174
+ description: "Explain error recovery"
175
+ multiSelect: false
176
+ ```
177
+
178
+ **Handle responses:**
179
+
180
+ **"Show first few stories":**
181
+ ```bash
182
+ jq '.userStories[:5]' {feature_dir}/prd.json
183
+ ```
184
+
185
+ **"How do I monitor progress":**
186
+ ```
187
+ 📊 Monitoring Ralph:
188
+
189
+ 1. Watch the terminal - Ralph shows iteration progress
190
+ 2. Check completed stories:
191
+ jq '[.userStories[] | select(.passes == true)] | length' {feature_dir}/prd.json
192
+
193
+ 3. View learnings (grows each iteration):
194
+ tail -50 {feature_dir}/progress.txt
195
+
196
+ 4. Check git log:
197
+ git log --oneline -10
198
+ ```
199
+
200
+ **"What if something fails":**
201
+ ```
202
+ 🔧 Error Recovery:
203
+
204
+ 1. If a story fails, Ralph will skip it and try the next
205
+ 2. Run Ralph again - it picks up incomplete stories
206
+ 3. If stuck, manually set "passes": true in prd.json to skip
207
+ 4. Check progress.txt for learnings about what went wrong
208
+ 5. Edit prd.json to break large stories into smaller ones
209
+ ```
210
+
211
+ ---
212
+
213
+ ## SUCCESS METRICS:
214
+
215
+ ✅ All files verified to exist
216
+ ✅ Story count shown
217
+ ✅ Run command provided
218
+ ✅ Quick reference shown
219
+ ✅ Tips explained
220
+ ✅ User questions answered
221
+
222
+ ## FAILURE MODES:
223
+
224
+ ❌ Missing files (ralph.sh, prd.json, etc.)
225
+ ❌ Empty prd.json (no stories)
226
+ ❌ Invalid JSON in prd.json
227
+
228
+ ## FINISH PROTOCOLS:
229
+
230
+ - Never run Ralph automatically
231
+ - Always let user decide when to start
232
+ - Provide complete run command they can copy
233
+ - Explain monitoring and recovery
234
+
235
+ ## WORKFLOW COMPLETE:
236
+
237
+ This is the final step. The user now has everything they need to run Ralph.
238
+
239
+ <critical>
240
+ Remember: Ralph runs autonomously. Make sure the user understands:
241
+ 1. How to start it
242
+ 2. How to monitor it
243
+ 3. How to stop/resume it
244
+ 4. How to handle failures
245
+ </critical>
@@ -0,0 +1,88 @@
1
+ ---
2
+ name: ralph-tasks
3
+ description: This skill should be used when the user asks to "add a task for Ralph", "list Ralph tasks", "remove Ralph task", "setup Ralph tasks", or mentions ralph-tasks, task queue for AI agent, or autonomous task management. Manages a JSON-based task queue for Ralph autonomous loop.
4
+ argument-hint: "<command> [args]"
5
+ ---
6
+
7
+ <objective>
8
+ Manage a task queue for the Ralph autonomous AI coding loop. Provides commands to add, list, remove tasks, and run a continuous execution loop that processes tasks one by one until completion.
9
+ </objective>
10
+
11
+ <quick_start>
12
+ ```bash
13
+ /ralph-tasks setup # Initialize in project
14
+ /ralph-tasks add Add authentication # Add task (quotes optional)
15
+ /ralph-tasks add Add dark mode -s # Add with context search
16
+ /ralph-tasks add Fix bug --search # Same with --search
17
+ /ralph-tasks list # List all tasks
18
+ /ralph-tasks remove 1 # Remove task #1
19
+ /ralph-tasks wake-up # Show loop command
20
+ ```
21
+
22
+ **Multi-task:** Add multiple tasks in one message - they're processed in parallel.
23
+ </quick_start>
24
+
25
+ <commands>
26
+ | Command | Description |
27
+ |---------|-------------|
28
+ | `setup` | Initialize .claude/ralph-tasks/ with all files |
29
+ | `add <task>` | Add a task (quotes optional) |
30
+ | `add <task> -s` | Add with codebase context search |
31
+ | `list` | Show all tasks with status |
32
+ | `remove <id>` | Remove task by ID |
33
+ | `wake-up` | Show command to start loop |
34
+
35
+ **Aliases:** `add tasks`, `add task`, `list tasks`, `remove task`
36
+ </commands>
37
+
38
+ <file_structure>
39
+ ```
40
+ {project}/.claude/ralph-tasks/
41
+ ├── tasks.json # Task queue
42
+ ├── wake-up.sh # Main loop script
43
+ ├── prompt.md # Agent instructions
44
+ └── progress.txt # Accumulated learnings
45
+ ```
46
+ </file_structure>
47
+
48
+ <entry_point>
49
+ **FIRST ACTION:** Load `steps/action-init.md`
50
+
51
+ This step parses the command and routes to the appropriate action file.
52
+ </entry_point>
53
+
54
+ <action_files>
55
+ | Action | File | Purpose |
56
+ |--------|------|---------|
57
+ | init | `steps/action-init.md` | Parse command and route |
58
+ | setup | `steps/action-setup.md` | Initialize ralph-tasks |
59
+ | add | `steps/action-add.md` | Add task to queue |
60
+ | add-search | `steps/action-add-search.md` | Add task with context |
61
+ | list | `steps/action-list.md` | Display tasks |
62
+ | remove | `steps/action-remove.md` | Remove task by ID |
63
+ | wake-up | `steps/action-wake-up.md` | Show loop instructions |
64
+ </action_files>
65
+
66
+ <state_variables>
67
+ | Variable | Type | Description |
68
+ |----------|------|-------------|
69
+ | `{command}` | string | Parsed command (setup, add, list, remove, wake-up) |
70
+ | `{task_description}` | string | Task description (for add) |
71
+ | `{task_id}` | number | Task ID (for remove) |
72
+ | `{search_mode}` | boolean | Whether --search/-s flag is set |
73
+ | `{project_path}` | string | Current project path |
74
+ | `{tasks_dir}` | string | Path to .claude/ralph-tasks/ |
75
+ </state_variables>
76
+
77
+ <critical_rules>
78
+ 🛑 NEVER run wake-up.sh automatically - user must run it themselves
79
+ 🛑 NEVER modify tasks.json without proper JSON handling (use jq)
80
+ ✅ ALWAYS use atomic file updates (write to tmp, then mv)
81
+ ✅ ALWAYS load only the current action file (progressive disclosure)
82
+ </critical_rules>
83
+
84
+ <success_criteria>
85
+ ✅ Commands parsed correctly and routed to action files
86
+ ✅ Each action executes its specific task
87
+ ✅ Progressive loading minimizes context usage
88
+ </success_criteria>
@@ -0,0 +1,36 @@
1
+ #!/bin/bash
2
+ # Add a task to the Ralph Tasks queue
3
+ # Usage: ./add-task.sh <project-path> "<task description>"
4
+
5
+ set -e
6
+
7
+ PROJECT_PATH="${1:-.}"
8
+ TASK_DESC="$2"
9
+
10
+ if [ -z "$TASK_DESC" ]; then
11
+ echo "❌ Error: Task description required"
12
+ echo "Usage: ./add-task.sh <project-path> \"<task description>\""
13
+ exit 1
14
+ fi
15
+
16
+ # Resolve absolute path
17
+ PROJECT_PATH=$(cd "$PROJECT_PATH" && pwd)
18
+ TASKS_FILE="$PROJECT_PATH/.claude/ralph-tasks/tasks.json"
19
+
20
+ if [ ! -f "$TASKS_FILE" ]; then
21
+ echo "❌ Error: tasks.json not found at $TASKS_FILE"
22
+ echo "Run /ralph-tasks setup first"
23
+ exit 1
24
+ fi
25
+
26
+ # Add task using jq
27
+ DATE=$(date -u +%Y-%m-%dT%H:%M:%SZ)
28
+
29
+ jq --arg desc "$TASK_DESC" --arg date "$DATE" \
30
+ '.lastId += 1 | .tasks += [{"id": .lastId, "description": $desc, "status": "pending", "createdAt": $date}]' \
31
+ "$TASKS_FILE" > "$TASKS_FILE.tmp" && mv "$TASKS_FILE.tmp" "$TASKS_FILE"
32
+
33
+ # Get the new task ID
34
+ NEW_ID=$(jq '.lastId' "$TASKS_FILE")
35
+
36
+ echo "✅ Task #$NEW_ID added: $TASK_DESC"
@@ -0,0 +1,66 @@
1
+ #!/bin/bash
2
+ # List all tasks in the Ralph Tasks queue
3
+ # Usage: ./list-tasks.sh <project-path>
4
+
5
+ set -e
6
+
7
+ PROJECT_PATH="${1:-.}"
8
+
9
+ # Resolve absolute path
10
+ PROJECT_PATH=$(cd "$PROJECT_PATH" && pwd)
11
+ TASKS_FILE="$PROJECT_PATH/.claude/ralph-tasks/tasks.json"
12
+
13
+ if [ ! -f "$TASKS_FILE" ]; then
14
+ echo "❌ Error: tasks.json not found at $TASKS_FILE"
15
+ echo "Run /ralph-tasks setup first"
16
+ exit 1
17
+ fi
18
+
19
+ # Get counts
20
+ PENDING=$(jq '[.tasks[] | select(.status == "pending")] | length' "$TASKS_FILE")
21
+ IN_PROGRESS=$(jq '[.tasks[] | select(.status == "in_progress")] | length' "$TASKS_FILE")
22
+ COMPLETED=$(jq '[.tasks[] | select(.status == "completed")] | length' "$TASKS_FILE")
23
+ TOTAL=$(jq '.tasks | length' "$TASKS_FILE")
24
+
25
+ echo ""
26
+ echo "╔════════════════════════════════════════════════════════════╗"
27
+ echo "║ 📋 RALPH TASKS ║"
28
+ echo "╚════════════════════════════════════════════════════════════╝"
29
+ echo ""
30
+
31
+ if [ "$TOTAL" -eq 0 ]; then
32
+ echo " No tasks found. Add one with:"
33
+ echo " /ralph-tasks add \"your task description\""
34
+ echo ""
35
+ exit 0
36
+ fi
37
+
38
+ # Print each task
39
+ jq -r '.tasks[] | "\(.id)|\(.status)|\(.description)"' "$TASKS_FILE" | while IFS='|' read -r id status desc; do
40
+ case $status in
41
+ "pending")
42
+ icon="⏳"
43
+ ;;
44
+ "in_progress")
45
+ icon="🔄"
46
+ ;;
47
+ "completed")
48
+ icon="✅"
49
+ ;;
50
+ *)
51
+ icon="❓"
52
+ ;;
53
+ esac
54
+
55
+ # Truncate description if too long
56
+ if [ ${#desc} -gt 50 ]; then
57
+ desc="${desc:0:47}..."
58
+ fi
59
+
60
+ printf " %s #%-3s %-12s %s\n" "$icon" "$id" "[$status]" "$desc"
61
+ done
62
+
63
+ echo ""
64
+ echo "─────────────────────────────────────────────────────────────"
65
+ echo " Summary: $PENDING pending | $IN_PROGRESS in progress | $COMPLETED completed"
66
+ echo ""
@@ -0,0 +1,47 @@
1
+ #!/bin/bash
2
+ # Remove a task from the Ralph Tasks queue
3
+ # Usage: ./remove-task.sh <project-path> <task-id>
4
+
5
+ set -e
6
+
7
+ PROJECT_PATH="${1:-.}"
8
+ TASK_ID="$2"
9
+
10
+ if [ -z "$TASK_ID" ]; then
11
+ echo "❌ Error: Task ID required"
12
+ echo "Usage: ./remove-task.sh <project-path> <task-id>"
13
+ exit 1
14
+ fi
15
+
16
+ # Validate task ID is a number
17
+ if ! [[ "$TASK_ID" =~ ^[0-9]+$ ]]; then
18
+ echo "❌ Error: Task ID must be a number"
19
+ exit 1
20
+ fi
21
+
22
+ # Resolve absolute path
23
+ PROJECT_PATH=$(cd "$PROJECT_PATH" && pwd)
24
+ TASKS_FILE="$PROJECT_PATH/.claude/ralph-tasks/tasks.json"
25
+
26
+ if [ ! -f "$TASKS_FILE" ]; then
27
+ echo "❌ Error: tasks.json not found at $TASKS_FILE"
28
+ echo "Run /ralph-tasks setup first"
29
+ exit 1
30
+ fi
31
+
32
+ # Check if task exists
33
+ TASK_EXISTS=$(jq --argjson id "$TASK_ID" '[.tasks[] | select(.id == $id)] | length' "$TASKS_FILE")
34
+
35
+ if [ "$TASK_EXISTS" -eq 0 ]; then
36
+ echo "❌ Error: Task #$TASK_ID not found"
37
+ exit 1
38
+ fi
39
+
40
+ # Get task description for confirmation
41
+ TASK_DESC=$(jq -r --argjson id "$TASK_ID" '.tasks[] | select(.id == $id) | .description' "$TASKS_FILE")
42
+
43
+ # Remove task using jq
44
+ jq --argjson id "$TASK_ID" '.tasks = [.tasks[] | select(.id != $id)]' \
45
+ "$TASKS_FILE" > "$TASKS_FILE.tmp" && mv "$TASKS_FILE.tmp" "$TASKS_FILE"
46
+
47
+ echo "✅ Task #$TASK_ID removed: $TASK_DESC"
@@ -0,0 +1,201 @@
1
+ #!/bin/bash
2
+ # Ralph Tasks Setup Script - Creates task queue infrastructure
3
+ # Usage: ./setup.sh <project-path>
4
+
5
+ set -e
6
+
7
+ PROJECT_PATH="${1:-.}"
8
+
9
+ # Resolve absolute path
10
+ PROJECT_PATH=$(cd "$PROJECT_PATH" && pwd)
11
+ RALPH_TASKS_DIR="$PROJECT_PATH/.claude/ralph-tasks"
12
+
13
+ echo "🚀 Setting up Ralph Tasks in: $PROJECT_PATH"
14
+
15
+ # Create directory structure
16
+ mkdir -p "$RALPH_TASKS_DIR"
17
+
18
+ # Create tasks.json
19
+ cat > "$RALPH_TASKS_DIR/tasks.json" << 'TASKS_JSON'
20
+ {
21
+ "tasks": [],
22
+ "lastId": 0
23
+ }
24
+ TASKS_JSON
25
+
26
+ echo "✅ Created tasks.json"
27
+
28
+ # Create wake-up.sh (main loop script)
29
+ cat > "$RALPH_TASKS_DIR/wake-up.sh" << 'WAKEUP_SH'
30
+ #!/bin/bash
31
+ # Ralph Tasks - Continuous Execution Loop
32
+ # Usage: ./wake-up.sh
33
+
34
+ set -e
35
+
36
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
37
+ PROJECT_DIR="$(dirname "$(dirname "$SCRIPT_DIR")")"
38
+ TASKS_FILE="$SCRIPT_DIR/tasks.json"
39
+ PROMPT_FILE="$SCRIPT_DIR/prompt.md"
40
+ PROGRESS_FILE="$SCRIPT_DIR/progress.txt"
41
+ WAIT_SECONDS=60
42
+
43
+ echo "╔════════════════════════════════════════════════════════════╗"
44
+ echo "║ 🤖 RALPH TASKS STARTING ║"
45
+ echo "╠════════════════════════════════════════════════════════════╣"
46
+ echo "║ Project: $PROJECT_DIR"
47
+ echo "║ Tasks file: $TASKS_FILE"
48
+ echo "║ Wait interval: ${WAIT_SECONDS}s when no tasks"
49
+ echo "╚════════════════════════════════════════════════════════════╝"
50
+ echo ""
51
+ echo "Press Ctrl+C to stop"
52
+ echo ""
53
+
54
+ cd "$PROJECT_DIR"
55
+
56
+ ITERATION=0
57
+
58
+ while true; do
59
+ ITERATION=$((ITERATION + 1))
60
+
61
+ # Get pending tasks count
62
+ PENDING=$(jq '[.tasks[] | select(.status == "pending")] | length' "$TASKS_FILE")
63
+ IN_PROGRESS=$(jq '[.tasks[] | select(.status == "in_progress")] | length' "$TASKS_FILE")
64
+ COMPLETED=$(jq '[.tasks[] | select(.status == "completed")] | length' "$TASKS_FILE")
65
+ TOTAL=$(jq '.tasks | length' "$TASKS_FILE")
66
+
67
+ echo ""
68
+ echo "═══════════════════════════════════════════════════════════════"
69
+ echo "📍 Iteration $ITERATION | Pending: $PENDING | In Progress: $IN_PROGRESS | Completed: $COMPLETED / $TOTAL"
70
+ echo "═══════════════════════════════════════════════════════════════"
71
+
72
+ if [ "$PENDING" -eq 0 ] && [ "$IN_PROGRESS" -eq 0 ]; then
73
+ echo ""
74
+ echo "💤 No pending tasks. Waiting ${WAIT_SECONDS} seconds..."
75
+ echo " (Add tasks with: /ralph-tasks add \"your task\")"
76
+ sleep "$WAIT_SECONDS"
77
+ continue
78
+ fi
79
+
80
+ # Run Claude with the prompt
81
+ echo ""
82
+ echo "🚀 Starting Claude agent..."
83
+ echo ""
84
+
85
+ OUTPUT=$(claude -p --dangerously-skip-permissions \
86
+ "@$TASKS_FILE @$PROGRESS_FILE @$PROMPT_FILE" 2>&1 \
87
+ | tee /dev/stderr) || true
88
+
89
+ # Brief pause between iterations
90
+ sleep 2
91
+ done
92
+ WAKEUP_SH
93
+
94
+ chmod +x "$RALPH_TASKS_DIR/wake-up.sh"
95
+ echo "✅ Created wake-up.sh"
96
+
97
+ # Create prompt.md (agent instructions)
98
+ cat > "$RALPH_TASKS_DIR/prompt.md" << 'PROMPT_MD'
99
+ # Ralph Tasks Agent Instructions
100
+
101
+ ## Your Task
102
+
103
+ You are an autonomous AI coding agent. Each iteration, you implement ONE task from the task queue.
104
+
105
+ ## Execution Sequence
106
+
107
+ 1. **Read Task Queue**
108
+ - Read tasks.json to see all tasks
109
+ - Find the first task with `status: "pending"` (lowest ID first)
110
+ - If a task has `status: "in_progress"`, continue that one instead
111
+ - If no pending/in_progress tasks, output `<no-tasks>` and stop
112
+
113
+ 2. **Mark Task In Progress**
114
+ - Update tasks.json to set the task's status to `"in_progress"`
115
+ - Use jq for atomic updates:
116
+ ```bash
117
+ jq --argjson id TASK_ID '.tasks = [.tasks[] | if .id == $id then .status = "in_progress" else . end]' tasks.json > tmp.json && mv tmp.json tasks.json
118
+ ```
119
+
120
+ 3. **Implement the Task**
121
+ - Read progress.txt for patterns and learnings
122
+ - Implement the task completely
123
+ - Make minimal changes to achieve the goal
124
+
125
+ 4. **Verify Quality**
126
+ - Run typecheck: `pnpm tsc --noEmit` or `npm run typecheck`
127
+ - Run tests: `pnpm test` or `npm test`
128
+ - Run build: `pnpm build` or `npm run build`
129
+ - Fix any issues before proceeding
130
+
131
+ 5. **Commit Changes**
132
+ - Stage changes: `git add .`
133
+ - Commit with format: `feat: [Task ID] - [Description]`
134
+ - Example: `feat: #1 - Add user authentication`
135
+
136
+ 6. **Mark Task Completed**
137
+ - Update tasks.json to set status to `"completed"` and add `completedAt`
138
+ ```bash
139
+ jq --argjson id TASK_ID --arg date "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
140
+ '.tasks = [.tasks[] | if .id == $id then .status = "completed" | .completedAt = $date else . end]' \
141
+ tasks.json > tmp.json && mv tmp.json tasks.json
142
+ ```
143
+
144
+ 7. **Log Learnings**
145
+ - Append to progress.txt:
146
+ ```
147
+ ## [Date] - Task #[ID]: [Description]
148
+ - What was implemented
149
+ - Files changed
150
+ - **Learnings:**
151
+ - Patterns discovered
152
+ - Gotchas encountered
153
+ ---
154
+ ```
155
+
156
+ ## Stop Condition
157
+
158
+ If no tasks have `status: "pending"` or `status: "in_progress"`, output:
159
+
160
+ <no-tasks>
161
+
162
+ This tells the loop to wait before checking again.
163
+
164
+ ## Critical Rules
165
+
166
+ - 🛑 NEVER implement more than ONE task per iteration
167
+ - 🛑 NEVER skip verification (typecheck/tests/build)
168
+ - 🛑 NEVER commit if tests are failing
169
+ - ✅ ALWAYS mark task as in_progress before starting
170
+ - ✅ ALWAYS mark task as completed after finishing
171
+ - ✅ ALWAYS append learnings to progress.txt
172
+ - ✅ ALWAYS use jq for JSON updates (atomic operations)
173
+ PROMPT_MD
174
+
175
+ echo "✅ Created prompt.md"
176
+
177
+ # Create progress.txt template
178
+ cat > "$RALPH_TASKS_DIR/progress.txt" << PROGRESS_TXT
179
+ # Ralph Tasks Progress Log
180
+ Started: $(date +%Y-%m-%d)
181
+
182
+ ## Codebase Patterns
183
+ (Add discovered patterns here - Ralph will read these each iteration)
184
+
185
+ ---
186
+
187
+ PROGRESS_TXT
188
+
189
+ echo "✅ Created progress.txt"
190
+
191
+ echo ""
192
+ echo "╔════════════════════════════════════════════════════════════╗"
193
+ echo "║ ✅ RALPH TASKS SETUP COMPLETE ║"
194
+ echo "╠════════════════════════════════════════════════════════════╣"
195
+ echo "║ Created: $RALPH_TASKS_DIR"
196
+ echo "╠════════════════════════════════════════════════════════════╣"
197
+ echo "║ Next steps:"
198
+ echo "║ 1. Add tasks: /ralph-tasks add \"your task description\""
199
+ echo "║ 2. List tasks: /ralph-tasks list"
200
+ echo "║ 3. Start loop: sh $RALPH_TASKS_DIR/wake-up.sh"
201
+ echo "╚════════════════════════════════════════════════════════════╝"