javi-forge 0.1.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 (500) hide show
  1. package/.gitignore.template +105 -0
  2. package/.releaserc +44 -0
  3. package/README.md +45 -0
  4. package/ai-config/.skillignore +15 -0
  5. package/ai-config/AUTO_INVOKE.md +300 -0
  6. package/ai-config/agents/_TEMPLATE.md +93 -0
  7. package/ai-config/agents/business/api-designer.md +1657 -0
  8. package/ai-config/agents/business/business-analyst.md +1331 -0
  9. package/ai-config/agents/business/product-strategist.md +206 -0
  10. package/ai-config/agents/business/project-manager.md +178 -0
  11. package/ai-config/agents/business/requirements-analyst.md +1277 -0
  12. package/ai-config/agents/business/technical-writer.md +1679 -0
  13. package/ai-config/agents/creative/ux-designer.md +205 -0
  14. package/ai-config/agents/data-ai/ai-engineer.md +487 -0
  15. package/ai-config/agents/data-ai/analytics-engineer.md +953 -0
  16. package/ai-config/agents/data-ai/data-engineer.md +173 -0
  17. package/ai-config/agents/data-ai/data-scientist.md +672 -0
  18. package/ai-config/agents/data-ai/mlops-engineer.md +814 -0
  19. package/ai-config/agents/data-ai/prompt-engineer.md +772 -0
  20. package/ai-config/agents/development/angular-expert.md +620 -0
  21. package/ai-config/agents/development/backend-architect.md +795 -0
  22. package/ai-config/agents/development/database-specialist.md +212 -0
  23. package/ai-config/agents/development/frontend-specialist.md +686 -0
  24. package/ai-config/agents/development/fullstack-engineer.md +668 -0
  25. package/ai-config/agents/development/golang-pro.md +338 -0
  26. package/ai-config/agents/development/java-enterprise.md +400 -0
  27. package/ai-config/agents/development/javascript-pro.md +422 -0
  28. package/ai-config/agents/development/nextjs-pro.md +474 -0
  29. package/ai-config/agents/development/python-pro.md +570 -0
  30. package/ai-config/agents/development/react-pro.md +487 -0
  31. package/ai-config/agents/development/rust-pro.md +246 -0
  32. package/ai-config/agents/development/spring-boot-4-expert.md +326 -0
  33. package/ai-config/agents/development/typescript-pro.md +336 -0
  34. package/ai-config/agents/development/vue-specialist.md +605 -0
  35. package/ai-config/agents/infrastructure/cloud-architect.md +472 -0
  36. package/ai-config/agents/infrastructure/deployment-manager.md +358 -0
  37. package/ai-config/agents/infrastructure/devops-engineer.md +455 -0
  38. package/ai-config/agents/infrastructure/incident-responder.md +519 -0
  39. package/ai-config/agents/infrastructure/kubernetes-expert.md +705 -0
  40. package/ai-config/agents/infrastructure/monitoring-specialist.md +674 -0
  41. package/ai-config/agents/infrastructure/performance-engineer.md +658 -0
  42. package/ai-config/agents/orchestrator.md +241 -0
  43. package/ai-config/agents/quality/accessibility-auditor.md +1204 -0
  44. package/ai-config/agents/quality/code-reviewer-compact.md +123 -0
  45. package/ai-config/agents/quality/code-reviewer.md +363 -0
  46. package/ai-config/agents/quality/dependency-manager.md +743 -0
  47. package/ai-config/agents/quality/e2e-test-specialist.md +1005 -0
  48. package/ai-config/agents/quality/performance-tester.md +1086 -0
  49. package/ai-config/agents/quality/security-auditor.md +133 -0
  50. package/ai-config/agents/quality/test-engineer.md +453 -0
  51. package/ai-config/agents/specialists/api-designer.md +87 -0
  52. package/ai-config/agents/specialists/backend-architect.md +73 -0
  53. package/ai-config/agents/specialists/code-reviewer.md +77 -0
  54. package/ai-config/agents/specialists/db-optimizer.md +75 -0
  55. package/ai-config/agents/specialists/devops-engineer.md +83 -0
  56. package/ai-config/agents/specialists/documentation-writer.md +78 -0
  57. package/ai-config/agents/specialists/frontend-developer.md +75 -0
  58. package/ai-config/agents/specialists/performance-analyst.md +82 -0
  59. package/ai-config/agents/specialists/refactor-specialist.md +74 -0
  60. package/ai-config/agents/specialists/security-auditor.md +74 -0
  61. package/ai-config/agents/specialists/test-engineer.md +81 -0
  62. package/ai-config/agents/specialists/ux-consultant.md +76 -0
  63. package/ai-config/agents/specialized/agent-generator.md +1190 -0
  64. package/ai-config/agents/specialized/blockchain-developer.md +149 -0
  65. package/ai-config/agents/specialized/code-migrator.md +892 -0
  66. package/ai-config/agents/specialized/context-manager.md +978 -0
  67. package/ai-config/agents/specialized/documentation-writer.md +1078 -0
  68. package/ai-config/agents/specialized/ecommerce-expert.md +1756 -0
  69. package/ai-config/agents/specialized/embedded-engineer.md +1714 -0
  70. package/ai-config/agents/specialized/error-detective.md +1034 -0
  71. package/ai-config/agents/specialized/fintech-specialist.md +1659 -0
  72. package/ai-config/agents/specialized/freelance-project-planner-v2.md +1988 -0
  73. package/ai-config/agents/specialized/freelance-project-planner-v3.md +2136 -0
  74. package/ai-config/agents/specialized/freelance-project-planner-v4.md +4503 -0
  75. package/ai-config/agents/specialized/freelance-project-planner.md +722 -0
  76. package/ai-config/agents/specialized/game-developer.md +1963 -0
  77. package/ai-config/agents/specialized/healthcare-dev.md +1620 -0
  78. package/ai-config/agents/specialized/mobile-developer.md +188 -0
  79. package/ai-config/agents/specialized/parallel-plan-executor.md +506 -0
  80. package/ai-config/agents/specialized/plan-executor.md +485 -0
  81. package/ai-config/agents/specialized/solo-dev-planner-modular/00-INDEX.md +485 -0
  82. package/ai-config/agents/specialized/solo-dev-planner-modular/01-CORE.md +3493 -0
  83. package/ai-config/agents/specialized/solo-dev-planner-modular/02-SELF-CORRECTION.md +778 -0
  84. package/ai-config/agents/specialized/solo-dev-planner-modular/03-PROGRESSIVE-SETUP.md +918 -0
  85. package/ai-config/agents/specialized/solo-dev-planner-modular/04-DEPLOYMENT.md +1537 -0
  86. package/ai-config/agents/specialized/solo-dev-planner-modular/05-TESTING.md +2633 -0
  87. package/ai-config/agents/specialized/solo-dev-planner-modular/06-OPERATIONS.md +5610 -0
  88. package/ai-config/agents/specialized/solo-dev-planner-modular/INSTALL.md +335 -0
  89. package/ai-config/agents/specialized/solo-dev-planner-modular/QUICK-REFERENCE.txt +215 -0
  90. package/ai-config/agents/specialized/solo-dev-planner-modular/README.md +260 -0
  91. package/ai-config/agents/specialized/solo-dev-planner-modular/START-HERE.md +379 -0
  92. package/ai-config/agents/specialized/solo-dev-planner-modular/WORKFLOW-DIAGRAM.md +355 -0
  93. package/ai-config/agents/specialized/solo-dev-planner-modular/solo-dev-planner.md +279 -0
  94. package/ai-config/agents/specialized/template-writer.md +347 -0
  95. package/ai-config/agents/specialized/test-runner.md +99 -0
  96. package/ai-config/agents/specialized/vibekanban-smart-worker.md +244 -0
  97. package/ai-config/agents/specialized/wave-executor.md +138 -0
  98. package/ai-config/agents/specialized/workflow-optimizer.md +1114 -0
  99. package/ai-config/commands/git/changelog.md +32 -0
  100. package/ai-config/commands/git/ci-local.md +70 -0
  101. package/ai-config/commands/git/commit.md +35 -0
  102. package/ai-config/commands/git/fix-issue.md +23 -0
  103. package/ai-config/commands/git/pr-create.md +42 -0
  104. package/ai-config/commands/git/pr-review.md +50 -0
  105. package/ai-config/commands/git/worktree.md +39 -0
  106. package/ai-config/commands/refactoring/cleanup.md +24 -0
  107. package/ai-config/commands/refactoring/dead-code.md +40 -0
  108. package/ai-config/commands/refactoring/extract.md +31 -0
  109. package/ai-config/commands/testing/e2e.md +30 -0
  110. package/ai-config/commands/testing/tdd.md +36 -0
  111. package/ai-config/commands/testing/test-coverage.md +30 -0
  112. package/ai-config/commands/testing/test-fix.md +24 -0
  113. package/ai-config/commands/workflow/generate-agents-md.md +85 -0
  114. package/ai-config/commands/workflow/planning.md +47 -0
  115. package/ai-config/commands/workflows/compound.md +89 -0
  116. package/ai-config/commands/workflows/plan.md +77 -0
  117. package/ai-config/commands/workflows/review.md +78 -0
  118. package/ai-config/commands/workflows/work.md +75 -0
  119. package/ai-config/config.yaml +18 -0
  120. package/ai-config/hooks/_TEMPLATE.md +96 -0
  121. package/ai-config/hooks/block-dangerous-commands.md +75 -0
  122. package/ai-config/hooks/commit-guard.md +90 -0
  123. package/ai-config/hooks/context-loader.md +73 -0
  124. package/ai-config/hooks/improve-prompt.md +91 -0
  125. package/ai-config/hooks/learning-log.md +72 -0
  126. package/ai-config/hooks/model-router.md +86 -0
  127. package/ai-config/hooks/secret-scanner.md +64 -0
  128. package/ai-config/hooks/skill-validator.md +102 -0
  129. package/ai-config/hooks/task-artifact.md +114 -0
  130. package/ai-config/hooks/validate-workflow.md +100 -0
  131. package/ai-config/prompts/base.md +71 -0
  132. package/ai-config/prompts/modes/debug.md +34 -0
  133. package/ai-config/prompts/modes/deploy.md +40 -0
  134. package/ai-config/prompts/modes/research.md +32 -0
  135. package/ai-config/prompts/modes/review.md +33 -0
  136. package/ai-config/prompts/review-policy.md +79 -0
  137. package/ai-config/skills/_TEMPLATE.md +157 -0
  138. package/ai-config/skills/backend/api-gateway/SKILL.md +254 -0
  139. package/ai-config/skills/backend/bff-concepts/SKILL.md +239 -0
  140. package/ai-config/skills/backend/bff-spring/SKILL.md +364 -0
  141. package/ai-config/skills/backend/chi-router/SKILL.md +396 -0
  142. package/ai-config/skills/backend/error-handling/SKILL.md +255 -0
  143. package/ai-config/skills/backend/exceptions-spring/SKILL.md +323 -0
  144. package/ai-config/skills/backend/fastapi/SKILL.md +302 -0
  145. package/ai-config/skills/backend/gateway-spring/SKILL.md +390 -0
  146. package/ai-config/skills/backend/go-backend/SKILL.md +457 -0
  147. package/ai-config/skills/backend/gradle-multimodule/SKILL.md +274 -0
  148. package/ai-config/skills/backend/graphql-concepts/SKILL.md +352 -0
  149. package/ai-config/skills/backend/graphql-spring/SKILL.md +398 -0
  150. package/ai-config/skills/backend/grpc-concepts/SKILL.md +283 -0
  151. package/ai-config/skills/backend/grpc-spring/SKILL.md +445 -0
  152. package/ai-config/skills/backend/jwt-auth/SKILL.md +412 -0
  153. package/ai-config/skills/backend/notifications-concepts/SKILL.md +259 -0
  154. package/ai-config/skills/backend/recommendations-concepts/SKILL.md +261 -0
  155. package/ai-config/skills/backend/search-concepts/SKILL.md +263 -0
  156. package/ai-config/skills/backend/search-spring/SKILL.md +375 -0
  157. package/ai-config/skills/backend/spring-boot-4/SKILL.md +172 -0
  158. package/ai-config/skills/backend/websockets/SKILL.md +532 -0
  159. package/ai-config/skills/data-ai/ai-ml/SKILL.md +423 -0
  160. package/ai-config/skills/data-ai/analytics-concepts/SKILL.md +195 -0
  161. package/ai-config/skills/data-ai/analytics-spring/SKILL.md +340 -0
  162. package/ai-config/skills/data-ai/duckdb-analytics/SKILL.md +440 -0
  163. package/ai-config/skills/data-ai/langchain/SKILL.md +238 -0
  164. package/ai-config/skills/data-ai/mlflow/SKILL.md +302 -0
  165. package/ai-config/skills/data-ai/onnx-inference/SKILL.md +290 -0
  166. package/ai-config/skills/data-ai/powerbi/SKILL.md +352 -0
  167. package/ai-config/skills/data-ai/pytorch/SKILL.md +274 -0
  168. package/ai-config/skills/data-ai/scikit-learn/SKILL.md +321 -0
  169. package/ai-config/skills/data-ai/vector-db/SKILL.md +301 -0
  170. package/ai-config/skills/database/graph-databases/SKILL.md +218 -0
  171. package/ai-config/skills/database/graph-spring/SKILL.md +361 -0
  172. package/ai-config/skills/database/pgx-postgres/SKILL.md +512 -0
  173. package/ai-config/skills/database/redis-cache/SKILL.md +343 -0
  174. package/ai-config/skills/database/sqlite-embedded/SKILL.md +388 -0
  175. package/ai-config/skills/database/timescaledb/SKILL.md +320 -0
  176. package/ai-config/skills/docs/api-documentation/SKILL.md +293 -0
  177. package/ai-config/skills/docs/docs-spring/SKILL.md +377 -0
  178. package/ai-config/skills/docs/mustache-templates/SKILL.md +190 -0
  179. package/ai-config/skills/docs/technical-docs/SKILL.md +447 -0
  180. package/ai-config/skills/frontend/astro-ssr/SKILL.md +441 -0
  181. package/ai-config/skills/frontend/frontend-design/SKILL.md +54 -0
  182. package/ai-config/skills/frontend/frontend-web/SKILL.md +368 -0
  183. package/ai-config/skills/frontend/mantine-ui/SKILL.md +396 -0
  184. package/ai-config/skills/frontend/tanstack-query/SKILL.md +439 -0
  185. package/ai-config/skills/frontend/zod-validation/SKILL.md +417 -0
  186. package/ai-config/skills/frontend/zustand-state/SKILL.md +350 -0
  187. package/ai-config/skills/infrastructure/chaos-engineering/SKILL.md +244 -0
  188. package/ai-config/skills/infrastructure/chaos-spring/SKILL.md +378 -0
  189. package/ai-config/skills/infrastructure/devops-infra/SKILL.md +435 -0
  190. package/ai-config/skills/infrastructure/docker-containers/SKILL.md +420 -0
  191. package/ai-config/skills/infrastructure/kubernetes/SKILL.md +456 -0
  192. package/ai-config/skills/infrastructure/opentelemetry/SKILL.md +546 -0
  193. package/ai-config/skills/infrastructure/traefik-proxy/SKILL.md +474 -0
  194. package/ai-config/skills/infrastructure/woodpecker-ci/SKILL.md +315 -0
  195. package/ai-config/skills/mobile/ionic-capacitor/SKILL.md +504 -0
  196. package/ai-config/skills/mobile/mobile-ionic/SKILL.md +448 -0
  197. package/ai-config/skills/prompt-improver/SKILL.md +125 -0
  198. package/ai-config/skills/quality/ghagga-review/SKILL.md +216 -0
  199. package/ai-config/skills/references/hooks-patterns/SKILL.md +238 -0
  200. package/ai-config/skills/references/mcp-servers/SKILL.md +275 -0
  201. package/ai-config/skills/references/plugins-reference/SKILL.md +110 -0
  202. package/ai-config/skills/references/skills-reference/SKILL.md +420 -0
  203. package/ai-config/skills/references/subagent-templates/SKILL.md +193 -0
  204. package/ai-config/skills/systems-iot/modbus-protocol/SKILL.md +410 -0
  205. package/ai-config/skills/systems-iot/mqtt-rumqttc/SKILL.md +408 -0
  206. package/ai-config/skills/systems-iot/rust-systems/SKILL.md +386 -0
  207. package/ai-config/skills/systems-iot/tokio-async/SKILL.md +324 -0
  208. package/ai-config/skills/testing/playwright-e2e/SKILL.md +289 -0
  209. package/ai-config/skills/testing/testcontainers/SKILL.md +299 -0
  210. package/ai-config/skills/testing/vitest-testing/SKILL.md +381 -0
  211. package/ai-config/skills/workflow/ci-local-guide/SKILL.md +118 -0
  212. package/ai-config/skills/workflow/claude-automation-recommender/SKILL.md +299 -0
  213. package/ai-config/skills/workflow/claude-md-improver/SKILL.md +158 -0
  214. package/ai-config/skills/workflow/finishing-a-development-branch/SKILL.md +117 -0
  215. package/ai-config/skills/workflow/git-github/SKILL.md +334 -0
  216. package/ai-config/skills/workflow/git-github/references/examples.md +160 -0
  217. package/ai-config/skills/workflow/git-workflow/SKILL.md +214 -0
  218. package/ai-config/skills/workflow/ide-plugins/SKILL.md +277 -0
  219. package/ai-config/skills/workflow/ide-plugins-intellij/SKILL.md +401 -0
  220. package/ai-config/skills/workflow/obsidian-brain-workflow/SKILL.md +199 -0
  221. package/ai-config/skills/workflow/using-git-worktrees/SKILL.md +100 -0
  222. package/ai-config/skills/workflow/verification-before-completion/SKILL.md +73 -0
  223. package/ai-config/skills/workflow/wave-workflow/SKILL.md +178 -0
  224. package/ci-local/README.md +170 -0
  225. package/ci-local/ci-local.sh +297 -0
  226. package/ci-local/hooks/commit-msg +74 -0
  227. package/ci-local/hooks/pre-commit +162 -0
  228. package/ci-local/hooks/pre-push +41 -0
  229. package/ci-local/install.sh +49 -0
  230. package/ci-local/semgrep.yml +214 -0
  231. package/dist/commands/analyze.d.ts +9 -0
  232. package/dist/commands/analyze.d.ts.map +1 -0
  233. package/dist/commands/analyze.js +55 -0
  234. package/dist/commands/analyze.js.map +1 -0
  235. package/dist/commands/analyze.test.d.ts +2 -0
  236. package/dist/commands/analyze.test.d.ts.map +1 -0
  237. package/dist/commands/analyze.test.js +145 -0
  238. package/dist/commands/analyze.test.js.map +1 -0
  239. package/dist/commands/doctor.d.ts +7 -0
  240. package/dist/commands/doctor.d.ts.map +1 -0
  241. package/dist/commands/doctor.js +158 -0
  242. package/dist/commands/doctor.js.map +1 -0
  243. package/dist/commands/doctor.test.d.ts +2 -0
  244. package/dist/commands/doctor.test.d.ts.map +1 -0
  245. package/dist/commands/doctor.test.js +200 -0
  246. package/dist/commands/doctor.test.js.map +1 -0
  247. package/dist/commands/init.d.ts +9 -0
  248. package/dist/commands/init.d.ts.map +1 -0
  249. package/dist/commands/init.js +283 -0
  250. package/dist/commands/init.js.map +1 -0
  251. package/dist/commands/init.test.d.ts +2 -0
  252. package/dist/commands/init.test.d.ts.map +1 -0
  253. package/dist/commands/init.test.js +271 -0
  254. package/dist/commands/init.test.js.map +1 -0
  255. package/dist/commands/sync.d.ts +8 -0
  256. package/dist/commands/sync.d.ts.map +1 -0
  257. package/dist/commands/sync.js +201 -0
  258. package/dist/commands/sync.js.map +1 -0
  259. package/dist/constants.d.ts +21 -0
  260. package/dist/constants.d.ts.map +1 -0
  261. package/dist/constants.js +57 -0
  262. package/dist/constants.js.map +1 -0
  263. package/dist/e2e/aggressive.e2e.test.d.ts +2 -0
  264. package/dist/e2e/aggressive.e2e.test.d.ts.map +1 -0
  265. package/dist/e2e/aggressive.e2e.test.js +350 -0
  266. package/dist/e2e/aggressive.e2e.test.js.map +1 -0
  267. package/dist/e2e/commands.e2e.test.d.ts +2 -0
  268. package/dist/e2e/commands.e2e.test.d.ts.map +1 -0
  269. package/dist/e2e/commands.e2e.test.js +213 -0
  270. package/dist/e2e/commands.e2e.test.js.map +1 -0
  271. package/dist/index.d.ts +3 -0
  272. package/dist/index.d.ts.map +1 -0
  273. package/dist/index.js +82 -0
  274. package/dist/index.js.map +1 -0
  275. package/dist/lib/common.d.ts +17 -0
  276. package/dist/lib/common.d.ts.map +1 -0
  277. package/dist/lib/common.js +111 -0
  278. package/dist/lib/common.js.map +1 -0
  279. package/dist/lib/common.test.d.ts +2 -0
  280. package/dist/lib/common.test.d.ts.map +1 -0
  281. package/dist/lib/common.test.js +316 -0
  282. package/dist/lib/common.test.js.map +1 -0
  283. package/dist/lib/frontmatter.d.ts +18 -0
  284. package/dist/lib/frontmatter.d.ts.map +1 -0
  285. package/dist/lib/frontmatter.js +61 -0
  286. package/dist/lib/frontmatter.js.map +1 -0
  287. package/dist/lib/frontmatter.test.d.ts +2 -0
  288. package/dist/lib/frontmatter.test.d.ts.map +1 -0
  289. package/dist/lib/frontmatter.test.js +257 -0
  290. package/dist/lib/frontmatter.test.js.map +1 -0
  291. package/dist/lib/template.d.ts +24 -0
  292. package/dist/lib/template.d.ts.map +1 -0
  293. package/dist/lib/template.js +78 -0
  294. package/dist/lib/template.js.map +1 -0
  295. package/dist/lib/template.test.d.ts +2 -0
  296. package/dist/lib/template.test.d.ts.map +1 -0
  297. package/dist/lib/template.test.js +201 -0
  298. package/dist/lib/template.test.js.map +1 -0
  299. package/dist/types/index.d.ts +48 -0
  300. package/dist/types/index.d.ts.map +1 -0
  301. package/dist/types/index.js +2 -0
  302. package/dist/types/index.js.map +1 -0
  303. package/dist/ui/AnalyzeUI.d.ts +7 -0
  304. package/dist/ui/AnalyzeUI.d.ts.map +1 -0
  305. package/dist/ui/AnalyzeUI.js +100 -0
  306. package/dist/ui/AnalyzeUI.js.map +1 -0
  307. package/dist/ui/App.d.ts +13 -0
  308. package/dist/ui/App.d.ts.map +1 -0
  309. package/dist/ui/App.js +100 -0
  310. package/dist/ui/App.js.map +1 -0
  311. package/dist/ui/CIContext.d.ts +9 -0
  312. package/dist/ui/CIContext.d.ts.map +1 -0
  313. package/dist/ui/CIContext.js +9 -0
  314. package/dist/ui/CIContext.js.map +1 -0
  315. package/dist/ui/CISelector.d.ts +8 -0
  316. package/dist/ui/CISelector.d.ts.map +1 -0
  317. package/dist/ui/CISelector.js +45 -0
  318. package/dist/ui/CISelector.js.map +1 -0
  319. package/dist/ui/Doctor.d.ts +3 -0
  320. package/dist/ui/Doctor.d.ts.map +1 -0
  321. package/dist/ui/Doctor.js +89 -0
  322. package/dist/ui/Doctor.js.map +1 -0
  323. package/dist/ui/Header.d.ts +8 -0
  324. package/dist/ui/Header.d.ts.map +1 -0
  325. package/dist/ui/Header.js +30 -0
  326. package/dist/ui/Header.js.map +1 -0
  327. package/dist/ui/MemorySelector.d.ts +8 -0
  328. package/dist/ui/MemorySelector.d.ts.map +1 -0
  329. package/dist/ui/MemorySelector.js +46 -0
  330. package/dist/ui/MemorySelector.js.map +1 -0
  331. package/dist/ui/NameInput.d.ts +8 -0
  332. package/dist/ui/NameInput.d.ts.map +1 -0
  333. package/dist/ui/NameInput.js +69 -0
  334. package/dist/ui/NameInput.js.map +1 -0
  335. package/dist/ui/OptionSelector.d.ts +12 -0
  336. package/dist/ui/OptionSelector.d.ts.map +1 -0
  337. package/dist/ui/OptionSelector.js +69 -0
  338. package/dist/ui/OptionSelector.js.map +1 -0
  339. package/dist/ui/Progress.d.ts +11 -0
  340. package/dist/ui/Progress.d.ts.map +1 -0
  341. package/dist/ui/Progress.js +58 -0
  342. package/dist/ui/Progress.js.map +1 -0
  343. package/dist/ui/StackSelector.d.ts +9 -0
  344. package/dist/ui/StackSelector.d.ts.map +1 -0
  345. package/dist/ui/StackSelector.js +65 -0
  346. package/dist/ui/StackSelector.js.map +1 -0
  347. package/dist/ui/Summary.d.ts +12 -0
  348. package/dist/ui/Summary.d.ts.map +1 -0
  349. package/dist/ui/Summary.js +114 -0
  350. package/dist/ui/Summary.js.map +1 -0
  351. package/dist/ui/SyncUI.d.ts +10 -0
  352. package/dist/ui/SyncUI.d.ts.map +1 -0
  353. package/dist/ui/SyncUI.js +64 -0
  354. package/dist/ui/SyncUI.js.map +1 -0
  355. package/dist/ui/Welcome.d.ts +7 -0
  356. package/dist/ui/Welcome.d.ts.map +1 -0
  357. package/dist/ui/Welcome.js +45 -0
  358. package/dist/ui/Welcome.js.map +1 -0
  359. package/dist/ui/theme.d.ts +10 -0
  360. package/dist/ui/theme.d.ts.map +1 -0
  361. package/dist/ui/theme.js +9 -0
  362. package/dist/ui/theme.js.map +1 -0
  363. package/modules/engram/.gitignore-snippet.txt +6 -0
  364. package/modules/engram/.mcp-config-snippet.json +11 -0
  365. package/modules/engram/README.md +146 -0
  366. package/modules/engram/install-engram.sh +216 -0
  367. package/modules/ghagga/.env.example +43 -0
  368. package/modules/ghagga/README.md +153 -0
  369. package/modules/ghagga/docker-compose.yml +80 -0
  370. package/modules/ghagga/setup-ghagga.sh +139 -0
  371. package/modules/memory-simple/.project/NOTES.md +22 -0
  372. package/modules/memory-simple/README.md +23 -0
  373. package/modules/obsidian-brain/.obsidian/app.json +23 -0
  374. package/modules/obsidian-brain/.obsidian/appearance.json +5 -0
  375. package/modules/obsidian-brain/.obsidian/bookmarks.json +34 -0
  376. package/modules/obsidian-brain/.obsidian/community-plugins.json +1 -0
  377. package/modules/obsidian-brain/.obsidian/core-plugins-migration.json +21 -0
  378. package/modules/obsidian-brain/.obsidian/core-plugins.json +18 -0
  379. package/modules/obsidian-brain/.obsidian/daily-notes.json +5 -0
  380. package/modules/obsidian-brain/.obsidian/graph.json +37 -0
  381. package/modules/obsidian-brain/.obsidian/hotkeys.json +14 -0
  382. package/modules/obsidian-brain/.obsidian/plugins/dataview/data.json +25 -0
  383. package/modules/obsidian-brain/.obsidian/plugins/obsidian-kanban/data.json +29 -0
  384. package/modules/obsidian-brain/.obsidian/plugins/templater-obsidian/data.json +18 -0
  385. package/modules/obsidian-brain/.obsidian/snippets/project-memory.css +71 -0
  386. package/modules/obsidian-brain/.obsidian-gitignore-snippet.txt +8 -0
  387. package/modules/obsidian-brain/.project/Attachments/.gitkeep +0 -0
  388. package/modules/obsidian-brain/.project/Memory/BLOCKERS.md +78 -0
  389. package/modules/obsidian-brain/.project/Memory/CONTEXT.md +102 -0
  390. package/modules/obsidian-brain/.project/Memory/DASHBOARD.md +73 -0
  391. package/modules/obsidian-brain/.project/Memory/DECISIONS.md +87 -0
  392. package/modules/obsidian-brain/.project/Memory/KANBAN.md +15 -0
  393. package/modules/obsidian-brain/.project/Memory/README.md +61 -0
  394. package/modules/obsidian-brain/.project/Memory/WAVES.md +78 -0
  395. package/modules/obsidian-brain/.project/Sessions/TEMPLATE.md +99 -0
  396. package/modules/obsidian-brain/.project/Templates/ADR.md +33 -0
  397. package/modules/obsidian-brain/.project/Templates/Blocker.md +21 -0
  398. package/modules/obsidian-brain/.project/Templates/Session.md +88 -0
  399. package/modules/obsidian-brain/README.md +268 -0
  400. package/modules/obsidian-brain/new-wave.sh +182 -0
  401. package/package.json +51 -0
  402. package/schemas/agent.schema.json +34 -0
  403. package/schemas/ai-config.schema.json +28 -0
  404. package/schemas/skill.schema.json +44 -0
  405. package/src/commands/analyze.test.ts +145 -0
  406. package/src/commands/analyze.ts +69 -0
  407. package/src/commands/doctor.test.ts +208 -0
  408. package/src/commands/doctor.ts +163 -0
  409. package/src/commands/init.test.ts +298 -0
  410. package/src/commands/init.ts +285 -0
  411. package/src/constants.ts +69 -0
  412. package/src/e2e/aggressive.e2e.test.ts +557 -0
  413. package/src/e2e/commands.e2e.test.ts +298 -0
  414. package/src/index.tsx +106 -0
  415. package/src/lib/common.test.ts +318 -0
  416. package/src/lib/common.ts +127 -0
  417. package/src/lib/frontmatter.test.ts +291 -0
  418. package/src/lib/frontmatter.ts +77 -0
  419. package/src/lib/template.test.ts +226 -0
  420. package/src/lib/template.ts +99 -0
  421. package/src/types/index.ts +53 -0
  422. package/src/ui/AnalyzeUI.tsx +133 -0
  423. package/src/ui/App.tsx +175 -0
  424. package/src/ui/CIContext.tsx +25 -0
  425. package/src/ui/CISelector.tsx +72 -0
  426. package/src/ui/Doctor.tsx +122 -0
  427. package/src/ui/Header.tsx +48 -0
  428. package/src/ui/MemorySelector.tsx +73 -0
  429. package/src/ui/NameInput.tsx +82 -0
  430. package/src/ui/OptionSelector.tsx +100 -0
  431. package/src/ui/Progress.tsx +88 -0
  432. package/src/ui/StackSelector.tsx +101 -0
  433. package/src/ui/Summary.tsx +134 -0
  434. package/src/ui/Welcome.tsx +54 -0
  435. package/src/ui/theme.ts +10 -0
  436. package/stryker.config.json +19 -0
  437. package/tasks/_TEMPLATE/files-edited.md +3 -0
  438. package/tasks/_TEMPLATE/plan.md +3 -0
  439. package/tasks/_TEMPLATE/research.md +3 -0
  440. package/tasks/_TEMPLATE/verification.md +5 -0
  441. package/templates/common/dependabot/cargo.yml +11 -0
  442. package/templates/common/dependabot/github-actions.yml +16 -0
  443. package/templates/common/dependabot/gomod.yml +15 -0
  444. package/templates/common/dependabot/gradle.yml +15 -0
  445. package/templates/common/dependabot/header.yml +3 -0
  446. package/templates/common/dependabot/maven.yml +15 -0
  447. package/templates/common/dependabot/npm.yml +20 -0
  448. package/templates/common/dependabot/pip.yml +11 -0
  449. package/templates/dependabot.yml +162 -0
  450. package/templates/github/ci-go.yml +41 -0
  451. package/templates/github/ci-java.yml +45 -0
  452. package/templates/github/ci-monorepo.yml +150 -0
  453. package/templates/github/ci-node.yml +42 -0
  454. package/templates/github/ci-python.yml +42 -0
  455. package/templates/github/ci-rust.yml +42 -0
  456. package/templates/github/dependabot-automerge.yml +40 -0
  457. package/templates/gitlab/gitlab-ci-go.yml +88 -0
  458. package/templates/gitlab/gitlab-ci-java.yml +79 -0
  459. package/templates/gitlab/gitlab-ci-monorepo.yml +126 -0
  460. package/templates/gitlab/gitlab-ci-node.yml +63 -0
  461. package/templates/gitlab/gitlab-ci-python.yml +147 -0
  462. package/templates/gitlab/gitlab-ci-rust.yml +67 -0
  463. package/templates/global/claude-settings.json +98 -0
  464. package/templates/global/codex-config.toml +8 -0
  465. package/templates/global/copilot-instructions/base-rules.instructions.md +13 -0
  466. package/templates/global/copilot-instructions/sdd-orchestrator.instructions.md +37 -0
  467. package/templates/global/gemini-commands/cleanup.toml +20 -0
  468. package/templates/global/gemini-commands/commit.toml +15 -0
  469. package/templates/global/gemini-commands/dead-code.toml +22 -0
  470. package/templates/global/gemini-commands/plan.toml +30 -0
  471. package/templates/global/gemini-commands/review.toml +17 -0
  472. package/templates/global/gemini-commands/sdd-apply.toml +22 -0
  473. package/templates/global/gemini-commands/sdd-ff.toml +14 -0
  474. package/templates/global/gemini-commands/sdd-new.toml +21 -0
  475. package/templates/global/gemini-commands/sdd-verify.toml +21 -0
  476. package/templates/global/gemini-commands/tdd.toml +26 -0
  477. package/templates/global/gemini-settings.json +8 -0
  478. package/templates/global/opencode-config.json +44 -0
  479. package/templates/global/sdd-instructions.md +47 -0
  480. package/templates/global/sdd-orchestrator-claude.md +46 -0
  481. package/templates/global/sdd-orchestrator-copilot.md +34 -0
  482. package/templates/renovate.json +69 -0
  483. package/templates/woodpecker/monorepo/backend.yml +34 -0
  484. package/templates/woodpecker/monorepo/frontend.yml +34 -0
  485. package/templates/woodpecker/monorepo/summary.yml +25 -0
  486. package/templates/woodpecker/woodpecker-go.yml +51 -0
  487. package/templates/woodpecker/woodpecker-java.yml +67 -0
  488. package/templates/woodpecker/woodpecker-node.yml +47 -0
  489. package/templates/woodpecker/woodpecker-python.yml +108 -0
  490. package/templates/woodpecker/woodpecker-rust.yml +57 -0
  491. package/tsconfig.json +19 -0
  492. package/vitest.config.ts +16 -0
  493. package/workflows/reusable-build-go.yml +111 -0
  494. package/workflows/reusable-build-java.yml +120 -0
  495. package/workflows/reusable-build-node.yml +145 -0
  496. package/workflows/reusable-build-python.yml +159 -0
  497. package/workflows/reusable-build-rust.yml +135 -0
  498. package/workflows/reusable-docker.yml +120 -0
  499. package/workflows/reusable-ghagga-review.yml +165 -0
  500. package/workflows/reusable-release.yml +91 -0
@@ -0,0 +1,778 @@
1
+ ---
2
+ name: solo-dev-planner-self-correction
3
+ description: "Módulo 2: Auto-fix y context management"
4
+ ---
5
+
6
+ # 🔄 Solo Dev Planner - Self-Correction & Context Management
7
+
8
+ > Módulo 2 de 6: Autonomía del agente con auto-fix y context optimizado
9
+
10
+ ## 📚 Relacionado con:
11
+ - 01-CORE.md (Filosofía base)
12
+ - 03-PROGRESSIVE-SETUP.md (Usa estos scripts en setup)
13
+ - 06-OPERATIONS.md (Mise tasks)
14
+
15
+ ---
16
+
17
+ ## 🔄 Self-Correction Protocol (Autonomía del Agente)
18
+
19
+ ### Filosofía: El Agente Como Solucionador Autónomo
20
+
21
+ **Problema tradicional:**
22
+ ```typescript
23
+ ❌ Test falla → Agente se detiene → Espera humano
24
+ ❌ Lint error → Agente pide ayuda → Pierde contexto
25
+ ❌ Build falla → Agente confused → Workflow bloqueado
26
+ ```
27
+
28
+ **Con Self-Correction:**
29
+ ```typescript
30
+ ✅ Error detectado → Lee error → Analiza causa → Aplica fix → Re-ejecuta
31
+ ✅ Hasta 3 intentos automáticos antes de pedir ayuda humana
32
+ ✅ Aprende de errores comunes y los evita
33
+ ```
34
+
35
+ ### Script Completo de Auto-Fix
36
+
37
+ ```bash
38
+ #!/bin/bash
39
+ # scripts/auto-fix.sh - Auto-corrección inteligente completa
40
+
41
+ set -e
42
+
43
+ ERROR_TYPE=$1
44
+ MAX_ATTEMPTS=3
45
+ ATTEMPT=0
46
+
47
+ # Colores para output
48
+ RED='\033[0;31m'
49
+ GREEN='\033[0;32m'
50
+ YELLOW='\033[1;33m'
51
+ NC='\033[0m' # No Color
52
+
53
+ log_attempt() {
54
+ echo "$(date -Iseconds)|$ATTEMPT|$ERROR_TYPE|$1" >> .auto-fix-log.txt
55
+ }
56
+
57
+ auto_fix_lint() {
58
+ echo -e "${YELLOW}🔧 Auto-fixing lint errors...${NC}"
59
+
60
+ mise run format
61
+ mise run lint --fix
62
+
63
+ if mise run lint; then
64
+ echo -e "${GREEN}✅ Lint fixed${NC}"
65
+ return 0
66
+ else
67
+ echo -e "${RED}❌ Lint still failing${NC}"
68
+ return 1
69
+ fi
70
+ }
71
+
72
+ auto_fix_imports() {
73
+ echo -e "${YELLOW}🔧 Auto-fixing import errors...${NC}"
74
+
75
+ if [ -f "package.json" ]; then
76
+ bun install
77
+ elif [ -f "pyproject.toml" ]; then
78
+ uv sync
79
+ elif [ -f "go.mod" ]; then
80
+ go mod tidy
81
+ elif [ -f "Cargo.toml" ]; then
82
+ cargo fetch
83
+ fi
84
+
85
+ return 0
86
+ }
87
+
88
+ auto_fix_database() {
89
+ echo -e "${YELLOW}🔧 Auto-fixing database errors...${NC}"
90
+
91
+ mise run docker:up
92
+ echo "⏳ Waiting for database..."
93
+ sleep 5
94
+
95
+ mise run db:migrate
96
+
97
+ if psql "$DATABASE_URL" -c "SELECT 1" > /dev/null 2>&1; then
98
+ echo -e "${GREEN}✅ Database fixed${NC}"
99
+ return 0
100
+ else
101
+ echo -e "${RED}❌ Database still not responding${NC}"
102
+ return 1
103
+ fi
104
+ }
105
+
106
+ auto_fix_tests() {
107
+ echo -e "${YELLOW}🔧 Auto-fixing test errors...${NC}"
108
+
109
+ rm -rf .cache coverage .pytest_cache
110
+
111
+ if [ "$NODE_ENV" != "production" ]; then
112
+ mise run db:reset
113
+ fi
114
+
115
+ if mise run test:unit; then
116
+ echo -e "${GREEN}✅ Tests fixed${NC}"
117
+ return 0
118
+ else
119
+ echo -e "${RED}❌ Tests still failing${NC}"
120
+ return 1
121
+ fi
122
+ }
123
+
124
+ auto_fix_types() {
125
+ echo -e "${YELLOW}🔧 Attempting to fix type errors...${NC}"
126
+
127
+ if [ -f "tsconfig.json" ]; then
128
+ bun run build || true
129
+ elif [ -f "pyproject.toml" ]; then
130
+ pyright --createstub || true
131
+ fi
132
+
133
+ return 0
134
+ }
135
+
136
+ # Main loop con retry logic
137
+ while [ $ATTEMPT -lt $MAX_ATTEMPTS ]; do
138
+ ATTEMPT=$((ATTEMPT + 1))
139
+ echo -e "\n${YELLOW}🔄 Fix attempt $ATTEMPT/$MAX_ATTEMPTS${NC}"
140
+
141
+ if case "$ERROR_TYPE" in
142
+ lint) auto_fix_lint ;;
143
+ imports) auto_fix_imports ;;
144
+ database) auto_fix_database ;;
145
+ tests) auto_fix_tests ;;
146
+ types) auto_fix_types ;;
147
+ *) echo -e "${RED}❌ Unknown error type: $ERROR_TYPE${NC}"; exit 1 ;;
148
+ esac; then
149
+ log_attempt "SUCCESS"
150
+ echo -e "${GREEN}✅ Fixed after $ATTEMPT attempts${NC}"
151
+ exit 0
152
+ fi
153
+
154
+ log_attempt "FAILED"
155
+
156
+ if [ $ATTEMPT -lt $MAX_ATTEMPTS ]; then
157
+ echo "⏳ Waiting 2 seconds before retry..."
158
+ sleep 2
159
+ fi
160
+ done
161
+
162
+ echo -e "\n${RED}⛔ BLOCKED: Could not auto-fix after $MAX_ATTEMPTS attempts${NC}"
163
+ echo -e "${YELLOW}🙋 Human intervention required${NC}"
164
+ log_attempt "BLOCKED"
165
+ exit 1
166
+ ```
167
+
168
+ ### Mise Tasks con Auto-Recovery
169
+
170
+ ```toml
171
+ # .mise.toml - Tasks mejorados con auto-recovery
172
+
173
+ [tasks."fix:auto"]
174
+ description = "Auto-detect and fix common errors"
175
+ run = """
176
+ #!/usr/bin/env bash
177
+
178
+ LAST_ERROR=$(cat .last-error 2>/dev/null || echo "")
179
+
180
+ if echo "$LAST_ERROR" | grep -qi "lint\|format\|prettier"; then
181
+ bash scripts/auto-fix.sh lint
182
+ elif echo "$LAST_ERROR" | grep -qi "import\|module\|cannot find"; then
183
+ bash scripts/auto-fix.sh imports
184
+ elif echo "$LAST_ERROR" | grep -qi "database\|postgres\|connection"; then
185
+ bash scripts/auto-fix.sh database
186
+ elif echo "$LAST_ERROR" | grep -qi "test.*failed\|assertion"; then
187
+ bash scripts/auto-fix.sh tests
188
+ elif echo "$LAST_ERROR" | grep -qi "type.*error"; then
189
+ bash scripts/auto-fix.sh types
190
+ else
191
+ echo "❓ No auto-fix available for this error"
192
+ exit 1
193
+ fi
194
+ """
195
+
196
+ [tasks.test]
197
+ description = "Run tests with auto-recovery"
198
+ run = """
199
+ #!/usr/bin/env bash
200
+
201
+ ATTEMPT=0
202
+ MAX_ATTEMPTS=2
203
+
204
+ while [ $ATTEMPT -lt $MAX_ATTEMPTS ]; do
205
+ ATTEMPT=$((ATTEMPT + 1))
206
+
207
+ if mise run test:unit 2>&1 | tee .last-error; then
208
+ echo "✅ Tests passed"
209
+ exit 0
210
+ fi
211
+
212
+ echo "⚠️ Tests failed, attempt $ATTEMPT/$MAX_ATTEMPTS"
213
+
214
+ if [ $ATTEMPT -lt $MAX_ATTEMPTS ]; then
215
+ echo "Attempting auto-fix..."
216
+ bash scripts/auto-fix.sh tests || true
217
+ fi
218
+ done
219
+
220
+ echo "❌ Tests still failing after auto-fix"
221
+ exit 1
222
+ """
223
+ ```
224
+
225
+ ### Git Hooks con Recovery Automático
226
+
227
+ ```toml
228
+ # .mise.toml - Hooks con auto-fix
229
+
230
+ [hooks.pre-commit]
231
+ run = """
232
+ #!/usr/bin/env bash
233
+ set -e
234
+
235
+ echo "🎣 Running pre-commit hooks..."
236
+
237
+ # Lint con auto-fix automático
238
+ if ! mise run lint 2>&1 | tee .last-error; then
239
+ echo "⚠️ Lint failed, attempting auto-fix..."
240
+
241
+ if bash scripts/auto-fix.sh lint; then
242
+ echo "✅ Auto-fixed and re-staged"
243
+ git add -u
244
+ else
245
+ echo "❌ Could not auto-fix. Please fix manually."
246
+ exit 1
247
+ fi
248
+ fi
249
+
250
+ # Tests con auto-recovery (2 intentos)
251
+ ATTEMPT=0
252
+ while [ $ATTEMPT -lt 2 ]; do
253
+ if mise run test:changed; then
254
+ echo "✅ Tests passed"
255
+ break
256
+ fi
257
+
258
+ ATTEMPT=$((ATTEMPT + 1))
259
+ if [ $ATTEMPT -lt 2 ]; then
260
+ echo "Attempting test auto-fix..."
261
+ bash scripts/auto-fix.sh tests || true
262
+ else
263
+ echo "❌ Tests failing after auto-fix"
264
+ exit 1
265
+ fi
266
+ done
267
+
268
+ echo "✅ Pre-commit checks passed!"
269
+ """
270
+ ```
271
+
272
+ ---
273
+
274
+ ## 📊 Context Script (Para Claude Code)
275
+
276
+ ### Problema: Context Window Pollution
277
+
278
+ **Sin Context Script:**
279
+ ```
280
+ Claude Code debe leer:
281
+ ❌ 50+ archivos para entender estado
282
+ ❌ 10,000+ tokens consumidos
283
+ ❌ Lento y costoso
284
+ ❌ Pierde contexto entre turnos
285
+ ```
286
+
287
+ **Con Context Script:**
288
+ ```
289
+ Claude Code ejecuta:
290
+ ✅ 1 comando → Estado completo
291
+ ✅ < 500 tokens
292
+ ✅ JSON parseable
293
+ ✅ Rápido y barato
294
+ ```
295
+
296
+ ### Implementación Completa
297
+
298
+ ```bash
299
+ #!/bin/bash
300
+ # scripts/agent-context.sh
301
+ # Proporciona estado completo del proyecto en < 500 tokens
302
+
303
+ cat << EOF
304
+ {
305
+ "timestamp": "$(date -Iseconds)",
306
+ "git": {
307
+ "branch": "$(git branch --show-current)",
308
+ "status": "$(git status -s | wc -l) files changed",
309
+ "last_commit": "$(git log -1 --pretty=format:'%h - %s (%ar)')",
310
+ "unpushed": $(git log origin/$(git branch --show-current)..HEAD --oneline 2>/dev/null | wc -l)
311
+ },
312
+ "tools": {
313
+ "node": "$(mise current node 2>/dev/null || echo 'not installed')",
314
+ "python": "$(mise current python 2>/dev/null || echo 'not installed')",
315
+ "go": "$(mise current go 2>/dev/null || echo 'not installed')"
316
+ },
317
+ "tests": {
318
+ "status": "$(mise run test:unit >/dev/null 2>&1 && echo 'passing' || echo 'failing')",
319
+ "coverage": "$(grep -oP '\d+%' coverage.txt 2>/dev/null | head -1 || echo 'unknown')",
320
+ "last_run": "$(stat -f '%Sm' -t '%Y-%m-%d %H:%M' .last-test 2>/dev/null || echo 'never')"
321
+ },
322
+ "database": {
323
+ "migrations": $(ls migrations/*.sql 2>/dev/null | wc -l),
324
+ "pending": $(mise run db:status 2>/dev/null | grep -c 'pending' || echo 0),
325
+ "connection": "$(psql "$DATABASE_URL" -c 'SELECT 1' >/dev/null 2>&1 && echo 'ok' || echo 'failed')"
326
+ },
327
+ "build": {
328
+ "lint": "$(mise run lint >/dev/null 2>&1 && echo 'passing' || echo 'failing')",
329
+ "last_error": "$(tail -n 3 .last-error 2>/dev/null || echo 'none')"
330
+ },
331
+ "todos": [
332
+ $(grep -r "TODO\|FIXME" src/ 2>/dev/null | head -n 5 | sed 's/"/\\"/g' | awk '{print " \"" $0 "\""}' | paste -sd,)
333
+ ],
334
+ "phase": "$([ -f docker-compose.yml ] && echo 'alpha' || echo 'mvp')",
335
+ "health": {
336
+ "api_running": $(curl -s http://localhost:8080/health >/dev/null 2>&1 && echo 'true' || echo 'false'),
337
+ "db_running": $(docker ps | grep -q postgres && echo 'true' || echo 'false')
338
+ }
339
+ }
340
+ EOF
341
+ ```
342
+
343
+ ### Mise Integration
344
+
345
+ ```toml
346
+ # .mise.toml
347
+
348
+ [tasks.context]
349
+ description = "Show complete project context (for AI agents)"
350
+ run = "bash scripts/agent-context.sh"
351
+ alias = "ctx"
352
+
353
+ [tasks."context:watch"]
354
+ description = "Watch context changes in real-time"
355
+ run = "watch -n 2 'bash scripts/agent-context.sh | jq'"
356
+
357
+ [tasks."context:save"]
358
+ description = "Save context snapshot"
359
+ run = "bash scripts/agent-context.sh > .context-snapshot-$(date +%s).json"
360
+ ```
361
+
362
+ ### Workflow para Claude Code
363
+
364
+ ```markdown
365
+ # En cada turno, Claude Code ejecuta:
366
+
367
+ ```bash
368
+ mise run context
369
+ ```
370
+
371
+ # Output (< 500 tokens):
372
+ ```json
373
+ {
374
+ "timestamp": "2025-12-23T15:30:00Z",
375
+ "git": {
376
+ "branch": "feat/01-user-auth",
377
+ "status": "3 files changed",
378
+ "last_commit": "abc123 - add User model (2 minutes ago)"
379
+ },
380
+ "tests": { "status": "failing", "coverage": "75%" },
381
+ "database": { "migrations": 3, "pending": 0 },
382
+ "build": { "lint": "passing" },
383
+ "phase": "mvp",
384
+ "health": { "api_running": false, "db_running": true }
385
+ }
386
+ ```
387
+
388
+ **El agente ahora sabe TODO sin leer archivos!** ✨
389
+ ```
390
+
391
+ ---
392
+
393
+ ##
394
+ imports) auto_fix_imports && exit 0 ;;
395
+ database) auto_fix_database && exit 0 ;;
396
+ tests) auto_fix_tests && exit 0 ;;
397
+ esac
398
+
399
+ sleep 2
400
+ done
401
+
402
+ echo "⛔ BLOCKED: Could not auto-fix after $MAX_ATTEMPTS attempts"
403
+ echo "🙋 Human intervention required"
404
+ exit 1
405
+ ```
406
+
407
+ ### Categorías de Errores y Fixes Automáticos
408
+
409
+ **1. Errores de Linting:**
410
+ ```bash
411
+ ❌ ESLint: Unexpected token
412
+ → mise run format && mise run lint --fix
413
+ ```
414
+
415
+ **2. Errores de Imports:**
416
+ ```bash
417
+ ❌ Cannot find module '@/models/User'
418
+ → bun install (o uv sync, go mod tidy)
419
+ ```
420
+
421
+ **3. Errores de Database:**
422
+ ```bash
423
+ ❌ Connection refused
424
+ → mise run docker:up && mise run db:migrate
425
+ ```
426
+
427
+ **4. Errores de Tests:**
428
+ ```bash
429
+ ❌ Test failed
430
+ → rm -rf .cache && mise run test:unit
431
+ ```
432
+
433
+ ### Mise Tasks con Auto-Recovery
434
+
435
+ ```toml
436
+ # .mise.toml
437
+
438
+ [tasks."fix:auto"]
439
+ description = "Auto-detect and fix common errors"
440
+ run = """
441
+ #!/usr/bin/env bash
442
+ LAST_ERROR=$(cat .last-error 2>/dev/null || echo "")
443
+
444
+ if echo "$LAST_ERROR" | grep -qi "lint"; then
445
+ bash scripts/auto-fix.sh lint
446
+ elif echo "$LAST_ERROR" | grep -qi "import"; then
447
+ bash scripts/auto-fix.sh imports
448
+ elif echo "$LAST_ERROR" | grep -qi "database"; then
449
+ bash scripts/auto-fix.sh database
450
+ elif echo "$LAST_ERROR" | grep -qi "test"; then
451
+ bash scripts/auto-fix.sh tests
452
+ fi
453
+ """
454
+
455
+ [tasks.test]
456
+ description = "Run tests with auto-recovery"
457
+ run = """
458
+ #!/usr/bin/env bash
459
+ ATTEMPT=0
460
+ MAX_ATTEMPTS=2
461
+
462
+ while [ $ATTEMPT -lt $MAX_ATTEMPTS ]; do
463
+ ATTEMPT=$((ATTEMPT + 1))
464
+
465
+ if mise run test:unit; then
466
+ echo "✅ Tests passed"
467
+ exit 0
468
+ fi
469
+
470
+ if [ $ATTEMPT -lt $MAX_ATTEMPTS ]; then
471
+ echo "⚠️ Attempting auto-fix..."
472
+ bash scripts/auto-fix.sh tests
473
+ fi
474
+ done
475
+
476
+ echo "❌ Tests still failing"
477
+ exit 1
478
+ """
479
+ ```
480
+
481
+ ### Git Hooks con Recovery
482
+
483
+ ```toml
484
+ [hooks.pre-commit]
485
+ run = """
486
+ #!/usr/bin/env bash
487
+ set -e
488
+
489
+ # Lint con auto-fix
490
+ if ! mise run lint; then
491
+ echo "⚠️ Lint failed, attempting auto-fix..."
492
+ bash scripts/auto-fix.sh lint && git add -u
493
+ fi
494
+
495
+ # Tests con retry
496
+ ATTEMPT=0
497
+ while [ $ATTEMPT -lt 2 ]; do
498
+ if mise run test:changed; then
499
+ break
500
+ fi
501
+ ATTEMPT=$((ATTEMPT + 1))
502
+ [ $ATTEMPT -lt 2 ] && bash scripts/auto-fix.sh tests
503
+ done
504
+
505
+ echo "✅ Pre-commit checks passed!"
506
+ """
507
+ ```
508
+
509
+ ---
510
+
511
+ ## 🎯 Progressive Disclosure (Setup en Fases)
512
+
513
+ ### Filosofía: No Abrumar al Inicio
514
+
515
+ **Antes:**
516
+ ```
517
+ Día 1: Instalar 15 herramientas → 3 horas ❌
518
+ ```
519
+
520
+ **Ahora:**
521
+ ```
522
+ MVP (15 min): mise + SQLite → Código funcionando ✅
523
+ Alpha (1h): PostgreSQL + CI
524
+ Beta (2-3h): Monitoring + Deploy
525
+ ```
526
+
527
+ ### Fase 1: MVP (5-15 minutos)
528
+
529
+ ```bash
530
+ #!/bin/bash
531
+ # scripts/setup-mvp.sh
532
+
533
+ echo "🚀 Setting up MVP (5-15 minutes)"
534
+
535
+ # Instalar Mise
536
+ if ! command -v mise &> /dev/null; then
537
+ curl https://mise.run | sh
538
+ fi
539
+
540
+ # Instalar herramientas
541
+ mise install
542
+
543
+ # Crear .env mínimo (SQLite, sin Docker)
544
+ cat > .env << EOF
545
+ DATABASE_URL=sqlite:///dev.db
546
+ NODE_ENV=development
547
+ EOF
548
+
549
+ # Setup git hooks
550
+ mise hook-env
551
+
552
+ echo "✅ MVP Setup Complete!"
553
+ echo "🎉 Ready to code! Run: mise run dev"
554
+ ```
555
+
556
+ ### Fase 2: Alpha (1 hora)
557
+
558
+ ```bash
559
+ #!/bin/bash
560
+ # scripts/setup-alpha.sh
561
+
562
+ echo "🚀 Upgrading to Alpha (1 hour)"
563
+
564
+ # Docker Compose
565
+ cat > docker-compose.yml << EOF
566
+ version: '3.8'
567
+ services:
568
+ db:
569
+ image: postgres:16-alpine
570
+ environment:
571
+ POSTGRES_DB: mydb
572
+ POSTGRES_USER: postgres
573
+ POSTGRES_PASSWORD: postgres
574
+ ports:
575
+ - "5432:5432"
576
+ EOF
577
+
578
+ # Iniciar PostgreSQL
579
+ mise run docker:up
580
+
581
+ # Actualizar .env
582
+ sed -i 's|sqlite|postgresql://postgres:postgres@localhost:5432/mydb|' .env
583
+
584
+ # Migraciones
585
+ mise run db:migrate
586
+
587
+ # Setup CI básico
588
+ mkdir -p .github/workflows
589
+ # Copiar CI template...
590
+
591
+ echo "✅ Alpha Complete!"
592
+ ```
593
+
594
+ ### Fase 3: Beta (2-3 horas)
595
+
596
+ ```bash
597
+ #!/bin/bash
598
+ # scripts/setup-beta.sh
599
+
600
+ echo "🚀 Upgrading to Beta (2-3 hours)"
601
+
602
+ # Monitoring, deployment, secrets
603
+ echo "Choose deployment platform:"
604
+ echo " 1) Railway"
605
+ echo " 2) Koyeb"
606
+ echo " 3) Coolify"
607
+ read -p "Choice: " choice
608
+
609
+ # Setup según elección...
610
+
611
+ echo "✅ Beta Complete - Production ready!"
612
+ ```
613
+
614
+ ### Mise Tasks para Fases
615
+
616
+ ```toml
617
+ [tasks."setup:mvp"]
618
+ description = "Phase 1: MVP (5-15 min)"
619
+ run = "bash scripts/setup-mvp.sh"
620
+
621
+ [tasks."setup:alpha"]
622
+ description = "Phase 2: Alpha (1 hour)"
623
+ run = "bash scripts/setup-alpha.sh"
624
+
625
+ [tasks."setup:beta"]
626
+ description = "Phase 3: Beta (2-3 hours)"
627
+ run = "bash scripts/setup-beta.sh"
628
+
629
+ [tasks.setup]
630
+ description = "Interactive setup wizard"
631
+ run = """
632
+ echo "Choose phase:"
633
+ echo " 1) MVP - Quick start (15 min)"
634
+ echo " 2) Alpha - Full dev (1 hour)"
635
+ echo " 3) Beta - Production (2-3 hours)"
636
+ read -p "Choice [1-3]: " choice
637
+
638
+ case $choice in
639
+ 1) mise run setup:mvp ;;
640
+ 2) mise run setup:alpha ;;
641
+ 3) mise run setup:beta ;;
642
+ esac
643
+ """
644
+ ```
645
+
646
+ ---
647
+
648
+ ## 📊 Context Script (para Claude Code)
649
+
650
+ ### Problema: Context Window Pollution
651
+
652
+ **Sin Context Script:**
653
+ ```
654
+ ❌ Claude lee 50+ archivos → 10,000 tokens
655
+ ❌ Lento y costoso
656
+ ```
657
+
658
+ **Con Context Script:**
659
+ ```
660
+ ✅ 1 comando → Estado completo → < 500 tokens
661
+ ✅ JSON parseable
662
+ ```
663
+
664
+ ### Implementación
665
+
666
+ ```bash
667
+ #!/bin/bash
668
+ # scripts/agent-context.sh
669
+
670
+ cat << EOF
671
+ {
672
+ "timestamp": "$(date -Iseconds)",
673
+ "git": {
674
+ "branch": "$(git branch --show-current)",
675
+ "status": "$(git status -s | wc -l) files changed",
676
+ "last_commit": "$(git log -1 --pretty=format:'%h - %s')"
677
+ },
678
+ "tools": {
679
+ "node": "$(mise current node 2>/dev/null || echo 'N/A')",
680
+ "python": "$(mise current python 2>/dev/null || echo 'N/A')",
681
+ "go": "$(mise current go 2>/dev/null || echo 'N/A')"
682
+ },
683
+ "tests": {
684
+ "status": "$(mise run test:unit >/dev/null 2>&1 && echo 'passing' || echo 'failing')",
685
+ "coverage": "$(grep -oP '\d+%' coverage.txt 2>/dev/null || echo 'unknown')"
686
+ },
687
+ "database": {
688
+ "migrations": $(ls migrations/*.sql 2>/dev/null | wc -l),
689
+ "pending": $(mise run db:status 2>/dev/null | grep -c 'pending' || echo 0),
690
+ "connection": "$(psql "$DATABASE_URL" -c 'SELECT 1' >/dev/null 2>&1 && echo 'ok' || echo 'failed')"
691
+ },
692
+ "build": {
693
+ "lint": "$(mise run lint >/dev/null 2>&1 && echo 'passing' || echo 'failing')",
694
+ "last_error": "$(tail -n 3 .last-error 2>/dev/null || echo 'none')"
695
+ },
696
+ "todos": [
697
+ $(grep -r "TODO\|FIXME" src/ 2>/dev/null | head -n 5 | awk '{print "\"" $0 "\""}' | paste -sd,)
698
+ ],
699
+ "phase": "$([ -f docker-compose.yml ] && echo 'alpha' || echo 'mvp')",
700
+ "health": {
701
+ "api_running": $(curl -s http://localhost:8080/health >/dev/null 2>&1 && echo 'true' || echo 'false'),
702
+ "db_running": $(docker ps | grep -q postgres && echo 'true' || echo 'false')
703
+ }
704
+ }
705
+ EOF
706
+ ```
707
+
708
+ ### Mise Integration
709
+
710
+ ```toml
711
+ [tasks.context]
712
+ description = "Show complete project context (for AI agents)"
713
+ run = "bash scripts/agent-context.sh"
714
+ alias = "ctx"
715
+
716
+ [tasks."context:watch"]
717
+ description = "Watch context in real-time"
718
+ run = "watch -n 2 'bash scripts/agent-context.sh | jq'"
719
+ ```
720
+
721
+ ### Uso en Claude Code
722
+
723
+ ```bash
724
+ # Al inicio de cada turno
725
+ mise run context
726
+
727
+ # Claude obtiene TODO el estado en < 500 tokens:
728
+ # - Qué rama está activa
729
+ # - Tests passing/failing
730
+ # - Migraciones pendientes
731
+ # - TODOs pendientes
732
+ # - Health checks
733
+ # - Fase del proyecto (mvp/alpha/beta)
734
+ ```
735
+
736
+ ---
737
+
738
+ ## 🔄 Atomic Sequential Merges (El Corazón del Agente)
739
+
740
+ ### ⚠️ Aclaración Importante: NO es "1 rama = 1 commit"
741
+
742
+ ```
743
+ ❌ MODELO INCORRECTO (lo que NO debes hacer):
744
+
745
+ feat/01-add-model → 1 commit → merge
746
+ feat/02-add-migration → 1 commit → merge
747
+ feat/03-add-tests → 1 commit → merge
748
+
749
+ Problema: Crear una rama nueva por cada commit es una locura
750
+ ```
751
+
752
+ ```
753
+ ✅ MODELO CORRECTO (Atomic Sequential Merges):
754
+
755
+ feat/01-database-schema (UNA SOLA RAMA)
756
+ ├─ commit: "add User model"
757
+ ├─ commit: "add Post model"
758
+ ├─ commit: "add migration script"
759
+ ├─ commit: "add tests"
760
+ └─ SQUASH MERGE → develop (4 commits → 1 commit limpio)
761
+
762
+ feat/02-api-endpoints (siguiente rama)
763
+ ├─ commit: "add GET /users endpoint"
764
+ ├─ commit: "add POST /users endpoint"
765
+ ├─ commit: "add validation middleware"
766
+ ├─ commit: "add error handling"
767
+ ├─ commit: "add tests"
768
+ └─ SQUASH MERGE → develop (5 commits → 1 commit limpio)
769
+
770
+ Ventaja:
771
+ ✅ Una rama = un paso completo
772
+ ✅ Múltiples commits durante desarrollo
773
+ ✅ Historia limpia en develop (1 commit por paso)
774
+ ```
775
+
776
+ ### El Problema con Stacked PRs para Solo Devs
777
+
778
+ ```