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