javi-forge 1.1.0 β†’ 1.3.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 (238) hide show
  1. package/ci-local/ci-local.sh +38 -10
  2. package/ci-local/hooks/pre-commit +10 -155
  3. package/ci-local/hooks/pre-push +12 -29
  4. package/dist/commands/ci.d.ts +33 -0
  5. package/dist/commands/ci.js +341 -0
  6. package/dist/commands/init.js +5 -0
  7. package/dist/index.js +39 -5
  8. package/dist/lib/docker.d.ts +43 -0
  9. package/dist/lib/docker.js +223 -0
  10. package/dist/ui/CI.d.ts +9 -0
  11. package/dist/ui/CI.js +91 -0
  12. package/package.json +9 -1
  13. package/ai-config/.skillignore +0 -15
  14. package/ai-config/AUTO_INVOKE.md +0 -300
  15. package/ai-config/agents/_TEMPLATE.md +0 -93
  16. package/ai-config/agents/business/api-designer.md +0 -1657
  17. package/ai-config/agents/business/business-analyst.md +0 -1331
  18. package/ai-config/agents/business/product-strategist.md +0 -206
  19. package/ai-config/agents/business/project-manager.md +0 -178
  20. package/ai-config/agents/business/requirements-analyst.md +0 -1277
  21. package/ai-config/agents/business/technical-writer.md +0 -1679
  22. package/ai-config/agents/creative/ux-designer.md +0 -205
  23. package/ai-config/agents/data-ai/ai-engineer.md +0 -487
  24. package/ai-config/agents/data-ai/analytics-engineer.md +0 -953
  25. package/ai-config/agents/data-ai/data-engineer.md +0 -173
  26. package/ai-config/agents/data-ai/data-scientist.md +0 -672
  27. package/ai-config/agents/data-ai/mlops-engineer.md +0 -814
  28. package/ai-config/agents/data-ai/prompt-engineer.md +0 -772
  29. package/ai-config/agents/development/angular-expert.md +0 -620
  30. package/ai-config/agents/development/backend-architect.md +0 -795
  31. package/ai-config/agents/development/database-specialist.md +0 -212
  32. package/ai-config/agents/development/frontend-specialist.md +0 -686
  33. package/ai-config/agents/development/fullstack-engineer.md +0 -668
  34. package/ai-config/agents/development/golang-pro.md +0 -338
  35. package/ai-config/agents/development/java-enterprise.md +0 -400
  36. package/ai-config/agents/development/javascript-pro.md +0 -422
  37. package/ai-config/agents/development/nextjs-pro.md +0 -474
  38. package/ai-config/agents/development/python-pro.md +0 -570
  39. package/ai-config/agents/development/react-pro.md +0 -487
  40. package/ai-config/agents/development/rust-pro.md +0 -246
  41. package/ai-config/agents/development/spring-boot-4-expert.md +0 -326
  42. package/ai-config/agents/development/typescript-pro.md +0 -336
  43. package/ai-config/agents/development/vue-specialist.md +0 -605
  44. package/ai-config/agents/infrastructure/cloud-architect.md +0 -472
  45. package/ai-config/agents/infrastructure/deployment-manager.md +0 -358
  46. package/ai-config/agents/infrastructure/devops-engineer.md +0 -455
  47. package/ai-config/agents/infrastructure/incident-responder.md +0 -519
  48. package/ai-config/agents/infrastructure/kubernetes-expert.md +0 -705
  49. package/ai-config/agents/infrastructure/monitoring-specialist.md +0 -674
  50. package/ai-config/agents/infrastructure/performance-engineer.md +0 -658
  51. package/ai-config/agents/orchestrator.md +0 -241
  52. package/ai-config/agents/quality/accessibility-auditor.md +0 -1204
  53. package/ai-config/agents/quality/code-reviewer-compact.md +0 -123
  54. package/ai-config/agents/quality/code-reviewer.md +0 -363
  55. package/ai-config/agents/quality/dependency-manager.md +0 -743
  56. package/ai-config/agents/quality/e2e-test-specialist.md +0 -1005
  57. package/ai-config/agents/quality/performance-tester.md +0 -1086
  58. package/ai-config/agents/quality/security-auditor.md +0 -133
  59. package/ai-config/agents/quality/test-engineer.md +0 -453
  60. package/ai-config/agents/specialists/api-designer.md +0 -87
  61. package/ai-config/agents/specialists/backend-architect.md +0 -73
  62. package/ai-config/agents/specialists/code-reviewer.md +0 -77
  63. package/ai-config/agents/specialists/db-optimizer.md +0 -75
  64. package/ai-config/agents/specialists/devops-engineer.md +0 -83
  65. package/ai-config/agents/specialists/documentation-writer.md +0 -78
  66. package/ai-config/agents/specialists/frontend-developer.md +0 -75
  67. package/ai-config/agents/specialists/performance-analyst.md +0 -82
  68. package/ai-config/agents/specialists/refactor-specialist.md +0 -74
  69. package/ai-config/agents/specialists/security-auditor.md +0 -74
  70. package/ai-config/agents/specialists/test-engineer.md +0 -81
  71. package/ai-config/agents/specialists/ux-consultant.md +0 -76
  72. package/ai-config/agents/specialized/agent-generator.md +0 -1190
  73. package/ai-config/agents/specialized/blockchain-developer.md +0 -149
  74. package/ai-config/agents/specialized/code-migrator.md +0 -892
  75. package/ai-config/agents/specialized/context-manager.md +0 -978
  76. package/ai-config/agents/specialized/documentation-writer.md +0 -1078
  77. package/ai-config/agents/specialized/ecommerce-expert.md +0 -1756
  78. package/ai-config/agents/specialized/embedded-engineer.md +0 -1714
  79. package/ai-config/agents/specialized/error-detective.md +0 -1034
  80. package/ai-config/agents/specialized/fintech-specialist.md +0 -1659
  81. package/ai-config/agents/specialized/freelance-project-planner-v2.md +0 -1988
  82. package/ai-config/agents/specialized/freelance-project-planner-v3.md +0 -2136
  83. package/ai-config/agents/specialized/freelance-project-planner-v4.md +0 -4503
  84. package/ai-config/agents/specialized/freelance-project-planner.md +0 -722
  85. package/ai-config/agents/specialized/game-developer.md +0 -1963
  86. package/ai-config/agents/specialized/healthcare-dev.md +0 -1620
  87. package/ai-config/agents/specialized/mobile-developer.md +0 -188
  88. package/ai-config/agents/specialized/parallel-plan-executor.md +0 -506
  89. package/ai-config/agents/specialized/plan-executor.md +0 -485
  90. package/ai-config/agents/specialized/solo-dev-planner-modular/00-INDEX.md +0 -485
  91. package/ai-config/agents/specialized/solo-dev-planner-modular/01-CORE.md +0 -3493
  92. package/ai-config/agents/specialized/solo-dev-planner-modular/02-SELF-CORRECTION.md +0 -778
  93. package/ai-config/agents/specialized/solo-dev-planner-modular/03-PROGRESSIVE-SETUP.md +0 -918
  94. package/ai-config/agents/specialized/solo-dev-planner-modular/04-DEPLOYMENT.md +0 -1537
  95. package/ai-config/agents/specialized/solo-dev-planner-modular/05-TESTING.md +0 -2633
  96. package/ai-config/agents/specialized/solo-dev-planner-modular/06-OPERATIONS.md +0 -5610
  97. package/ai-config/agents/specialized/solo-dev-planner-modular/INSTALL.md +0 -335
  98. package/ai-config/agents/specialized/solo-dev-planner-modular/QUICK-REFERENCE.txt +0 -215
  99. package/ai-config/agents/specialized/solo-dev-planner-modular/README.md +0 -260
  100. package/ai-config/agents/specialized/solo-dev-planner-modular/START-HERE.md +0 -379
  101. package/ai-config/agents/specialized/solo-dev-planner-modular/WORKFLOW-DIAGRAM.md +0 -355
  102. package/ai-config/agents/specialized/solo-dev-planner-modular/solo-dev-planner.md +0 -279
  103. package/ai-config/agents/specialized/template-writer.md +0 -347
  104. package/ai-config/agents/specialized/test-runner.md +0 -99
  105. package/ai-config/agents/specialized/vibekanban-smart-worker.md +0 -244
  106. package/ai-config/agents/specialized/wave-executor.md +0 -138
  107. package/ai-config/agents/specialized/workflow-optimizer.md +0 -1114
  108. package/ai-config/commands/git/changelog.md +0 -32
  109. package/ai-config/commands/git/ci-local.md +0 -70
  110. package/ai-config/commands/git/commit.md +0 -35
  111. package/ai-config/commands/git/fix-issue.md +0 -23
  112. package/ai-config/commands/git/pr-create.md +0 -42
  113. package/ai-config/commands/git/pr-review.md +0 -50
  114. package/ai-config/commands/git/worktree.md +0 -39
  115. package/ai-config/commands/refactoring/cleanup.md +0 -24
  116. package/ai-config/commands/refactoring/dead-code.md +0 -40
  117. package/ai-config/commands/refactoring/extract.md +0 -31
  118. package/ai-config/commands/testing/e2e.md +0 -30
  119. package/ai-config/commands/testing/tdd.md +0 -36
  120. package/ai-config/commands/testing/test-coverage.md +0 -30
  121. package/ai-config/commands/testing/test-fix.md +0 -24
  122. package/ai-config/commands/workflow/generate-agents-md.md +0 -85
  123. package/ai-config/commands/workflow/planning.md +0 -47
  124. package/ai-config/commands/workflows/compound.md +0 -89
  125. package/ai-config/commands/workflows/diagnose.md +0 -70
  126. package/ai-config/commands/workflows/discover.md +0 -86
  127. package/ai-config/commands/workflows/plan.md +0 -77
  128. package/ai-config/commands/workflows/review.md +0 -78
  129. package/ai-config/commands/workflows/work.md +0 -75
  130. package/ai-config/config.yaml +0 -18
  131. package/ai-config/hooks/_TEMPLATE.md +0 -96
  132. package/ai-config/hooks/block-dangerous-commands.md +0 -75
  133. package/ai-config/hooks/commit-guard.md +0 -90
  134. package/ai-config/hooks/context-loader.md +0 -73
  135. package/ai-config/hooks/improve-prompt.md +0 -91
  136. package/ai-config/hooks/learning-log.md +0 -72
  137. package/ai-config/hooks/model-router.md +0 -86
  138. package/ai-config/hooks/secret-scanner.md +0 -64
  139. package/ai-config/hooks/skill-validator.md +0 -102
  140. package/ai-config/hooks/task-artifact.md +0 -114
  141. package/ai-config/hooks/validate-workflow.md +0 -100
  142. package/ai-config/prompts/base.md +0 -71
  143. package/ai-config/prompts/modes/debug.md +0 -34
  144. package/ai-config/prompts/modes/deploy.md +0 -40
  145. package/ai-config/prompts/modes/research.md +0 -32
  146. package/ai-config/prompts/modes/review.md +0 -33
  147. package/ai-config/prompts/review-policy.md +0 -79
  148. package/ai-config/skills/_TEMPLATE.md +0 -157
  149. package/ai-config/skills/backend/api-gateway/SKILL.md +0 -254
  150. package/ai-config/skills/backend/bff-concepts/SKILL.md +0 -239
  151. package/ai-config/skills/backend/bff-spring/SKILL.md +0 -364
  152. package/ai-config/skills/backend/chi-router/SKILL.md +0 -396
  153. package/ai-config/skills/backend/error-handling/SKILL.md +0 -255
  154. package/ai-config/skills/backend/exceptions-spring/SKILL.md +0 -323
  155. package/ai-config/skills/backend/fastapi/SKILL.md +0 -302
  156. package/ai-config/skills/backend/gateway-spring/SKILL.md +0 -390
  157. package/ai-config/skills/backend/go-backend/SKILL.md +0 -457
  158. package/ai-config/skills/backend/gradle-multimodule/SKILL.md +0 -274
  159. package/ai-config/skills/backend/graphql-concepts/SKILL.md +0 -352
  160. package/ai-config/skills/backend/graphql-spring/SKILL.md +0 -398
  161. package/ai-config/skills/backend/grpc-concepts/SKILL.md +0 -283
  162. package/ai-config/skills/backend/grpc-spring/SKILL.md +0 -445
  163. package/ai-config/skills/backend/jwt-auth/SKILL.md +0 -412
  164. package/ai-config/skills/backend/notifications-concepts/SKILL.md +0 -259
  165. package/ai-config/skills/backend/recommendations-concepts/SKILL.md +0 -261
  166. package/ai-config/skills/backend/search-concepts/SKILL.md +0 -263
  167. package/ai-config/skills/backend/search-spring/SKILL.md +0 -375
  168. package/ai-config/skills/backend/spring-boot-4/SKILL.md +0 -172
  169. package/ai-config/skills/backend/websockets/SKILL.md +0 -532
  170. package/ai-config/skills/data-ai/ai-ml/SKILL.md +0 -423
  171. package/ai-config/skills/data-ai/analytics-concepts/SKILL.md +0 -195
  172. package/ai-config/skills/data-ai/analytics-spring/SKILL.md +0 -340
  173. package/ai-config/skills/data-ai/duckdb-analytics/SKILL.md +0 -440
  174. package/ai-config/skills/data-ai/langchain/SKILL.md +0 -238
  175. package/ai-config/skills/data-ai/mlflow/SKILL.md +0 -302
  176. package/ai-config/skills/data-ai/onnx-inference/SKILL.md +0 -290
  177. package/ai-config/skills/data-ai/powerbi/SKILL.md +0 -352
  178. package/ai-config/skills/data-ai/pytorch/SKILL.md +0 -274
  179. package/ai-config/skills/data-ai/scikit-learn/SKILL.md +0 -321
  180. package/ai-config/skills/data-ai/vector-db/SKILL.md +0 -301
  181. package/ai-config/skills/database/graph-databases/SKILL.md +0 -218
  182. package/ai-config/skills/database/graph-spring/SKILL.md +0 -361
  183. package/ai-config/skills/database/pgx-postgres/SKILL.md +0 -512
  184. package/ai-config/skills/database/redis-cache/SKILL.md +0 -343
  185. package/ai-config/skills/database/sqlite-embedded/SKILL.md +0 -388
  186. package/ai-config/skills/database/timescaledb/SKILL.md +0 -320
  187. package/ai-config/skills/docs/api-documentation/SKILL.md +0 -293
  188. package/ai-config/skills/docs/docs-spring/SKILL.md +0 -377
  189. package/ai-config/skills/docs/mustache-templates/SKILL.md +0 -190
  190. package/ai-config/skills/docs/technical-docs/SKILL.md +0 -447
  191. package/ai-config/skills/frontend/astro-ssr/SKILL.md +0 -441
  192. package/ai-config/skills/frontend/frontend-design/SKILL.md +0 -54
  193. package/ai-config/skills/frontend/frontend-web/SKILL.md +0 -368
  194. package/ai-config/skills/frontend/mantine-ui/SKILL.md +0 -396
  195. package/ai-config/skills/frontend/tanstack-query/SKILL.md +0 -439
  196. package/ai-config/skills/frontend/zod-validation/SKILL.md +0 -417
  197. package/ai-config/skills/frontend/zustand-state/SKILL.md +0 -350
  198. package/ai-config/skills/infrastructure/chaos-engineering/SKILL.md +0 -244
  199. package/ai-config/skills/infrastructure/chaos-spring/SKILL.md +0 -378
  200. package/ai-config/skills/infrastructure/devops-infra/SKILL.md +0 -435
  201. package/ai-config/skills/infrastructure/docker-containers/SKILL.md +0 -420
  202. package/ai-config/skills/infrastructure/kubernetes/SKILL.md +0 -456
  203. package/ai-config/skills/infrastructure/opentelemetry/SKILL.md +0 -546
  204. package/ai-config/skills/infrastructure/traefik-proxy/SKILL.md +0 -474
  205. package/ai-config/skills/infrastructure/woodpecker-ci/SKILL.md +0 -315
  206. package/ai-config/skills/mobile/ionic-capacitor/SKILL.md +0 -504
  207. package/ai-config/skills/mobile/mobile-ionic/SKILL.md +0 -448
  208. package/ai-config/skills/prompt-improver/SKILL.md +0 -125
  209. package/ai-config/skills/quality/ghagga-review/SKILL.md +0 -216
  210. package/ai-config/skills/references/hooks-patterns/SKILL.md +0 -238
  211. package/ai-config/skills/references/mcp-servers/SKILL.md +0 -275
  212. package/ai-config/skills/references/plugins-reference/SKILL.md +0 -110
  213. package/ai-config/skills/references/skills-reference/SKILL.md +0 -420
  214. package/ai-config/skills/references/subagent-templates/SKILL.md +0 -193
  215. package/ai-config/skills/systems-iot/modbus-protocol/SKILL.md +0 -410
  216. package/ai-config/skills/systems-iot/mqtt-rumqttc/SKILL.md +0 -408
  217. package/ai-config/skills/systems-iot/rust-systems/SKILL.md +0 -386
  218. package/ai-config/skills/systems-iot/tokio-async/SKILL.md +0 -324
  219. package/ai-config/skills/testing/playwright-e2e/SKILL.md +0 -289
  220. package/ai-config/skills/testing/testcontainers/SKILL.md +0 -299
  221. package/ai-config/skills/testing/vitest-testing/SKILL.md +0 -381
  222. package/ai-config/skills/workflow/ci-local-guide/SKILL.md +0 -118
  223. package/ai-config/skills/workflow/claude-automation-recommender/SKILL.md +0 -299
  224. package/ai-config/skills/workflow/claude-md-improver/SKILL.md +0 -158
  225. package/ai-config/skills/workflow/finishing-a-development-branch/SKILL.md +0 -117
  226. package/ai-config/skills/workflow/git-github/SKILL.md +0 -334
  227. package/ai-config/skills/workflow/git-github/references/examples.md +0 -160
  228. package/ai-config/skills/workflow/git-workflow/SKILL.md +0 -214
  229. package/ai-config/skills/workflow/ide-plugins/SKILL.md +0 -277
  230. package/ai-config/skills/workflow/ide-plugins-intellij/SKILL.md +0 -401
  231. package/ai-config/skills/workflow/obsidian-brain-workflow/SKILL.md +0 -199
  232. package/ai-config/skills/workflow/using-git-worktrees/SKILL.md +0 -100
  233. package/ai-config/skills/workflow/verification-before-completion/SKILL.md +0 -73
  234. package/ai-config/skills/workflow/wave-workflow/SKILL.md +0 -178
  235. package/schemas/agent.schema.json +0 -34
  236. package/schemas/ai-config.schema.json +0 -28
  237. package/schemas/plugin.schema.json +0 -62
  238. package/schemas/skill.schema.json +0 -44
@@ -1,778 +0,0 @@
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
- ```