elsabro 2.1.0 → 2.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 (64) hide show
  1. package/agents/elsabro-orchestrator.md +113 -0
  2. package/commands/elsabro/add-phase.md +17 -0
  3. package/commands/elsabro/add-todo.md +111 -53
  4. package/commands/elsabro/audit-milestone.md +19 -0
  5. package/commands/elsabro/check-todos.md +210 -31
  6. package/commands/elsabro/complete-milestone.md +20 -1
  7. package/commands/elsabro/debug.md +19 -0
  8. package/commands/elsabro/discuss-phase.md +18 -1
  9. package/commands/elsabro/execute.md +511 -58
  10. package/commands/elsabro/insert-phase.md +18 -1
  11. package/commands/elsabro/list-phase-assumptions.md +17 -0
  12. package/commands/elsabro/new-milestone.md +19 -0
  13. package/commands/elsabro/new.md +19 -0
  14. package/commands/elsabro/pause-work.md +19 -0
  15. package/commands/elsabro/plan-milestone-gaps.md +20 -1
  16. package/commands/elsabro/plan.md +264 -36
  17. package/commands/elsabro/progress.md +203 -79
  18. package/commands/elsabro/quick.md +19 -0
  19. package/commands/elsabro/remove-phase.md +17 -0
  20. package/commands/elsabro/research-phase.md +18 -1
  21. package/commands/elsabro/resume-work.md +19 -0
  22. package/commands/elsabro/start.md +399 -98
  23. package/commands/elsabro/verify-work.md +138 -5
  24. package/hooks/confirm-destructive.sh +145 -0
  25. package/hooks/hooks-config.json +81 -0
  26. package/hooks/lint-check.sh +238 -0
  27. package/hooks/post-edit-test.sh +189 -0
  28. package/package.json +3 -2
  29. package/references/SYSTEM_INDEX.md +241 -0
  30. package/references/command-flow.md +352 -0
  31. package/references/enforcement-rules.md +331 -0
  32. package/references/error-contracts-tests.md +1171 -0
  33. package/references/error-contracts.md +3102 -0
  34. package/references/error-handling-instructions.md +26 -12
  35. package/references/parallel-worktrees.md +293 -0
  36. package/references/state-sync.md +381 -0
  37. package/references/task-dispatcher.md +388 -0
  38. package/references/tasks-integration.md +380 -0
  39. package/scripts/setup-parallel-worktrees.sh +319 -0
  40. package/skills/api-microservice.md +765 -0
  41. package/skills/api-setup.md +76 -3
  42. package/skills/auth-setup.md +46 -6
  43. package/skills/chrome-extension.md +584 -0
  44. package/skills/cicd-setup.md +1206 -0
  45. package/skills/cli-tool.md +884 -0
  46. package/skills/database-setup.md +41 -5
  47. package/skills/desktop-app.md +1351 -0
  48. package/skills/expo-app.md +35 -2
  49. package/skills/full-stack-app.md +543 -0
  50. package/skills/memory-update.md +207 -0
  51. package/skills/mobile-app.md +813 -0
  52. package/skills/nextjs-app.md +33 -2
  53. package/skills/payments-setup.md +76 -1
  54. package/skills/review.md +331 -0
  55. package/skills/saas-starter.md +639 -0
  56. package/skills/sentry-setup.md +41 -7
  57. package/skills/techdebt.md +289 -0
  58. package/skills/testing-setup.md +1218 -0
  59. package/skills/tutor.md +219 -0
  60. package/templates/.planning/notes/.gitkeep +0 -0
  61. package/templates/CLAUDE.md.template +48 -0
  62. package/templates/error-handling-config.json +79 -2
  63. package/templates/mistakes.md.template +52 -0
  64. package/templates/patterns.md.template +114 -0
@@ -1,6 +1,15 @@
1
1
  ---
2
2
  name: nextjs-app
3
- description: Skill para crear aplicaciones web con Next.js. Usa este skill cuando el usuario quiere crear una página web, dashboard, o aplicación web.
3
+ description: Skill para crear aplicaciones web con Next.js. Usa este skill cuando el usuario quiere crear una pagina web, dashboard, o aplicacion web.
4
+ tags:
5
+ - web
6
+ - nextjs
7
+ - react
8
+ - typescript
9
+ - tailwind
10
+ - fullstack
11
+ difficulty: intermediate
12
+ estimated_time: 20-30 min
4
13
  ---
5
14
 
6
15
  # Skill: Crear App Next.js
@@ -17,6 +26,28 @@ Usar cuando el usuario menciona:
17
26
  - "blog"
18
27
  </when_to_use>
19
28
 
29
+ <pre_requisites>
30
+ ## Pre-requisitos
31
+
32
+ ### Conocimientos
33
+ - JavaScript/TypeScript basico
34
+ - React fundamentals (components, hooks, state)
35
+ - HTML/CSS basico
36
+ - Terminal/CLI basico
37
+
38
+ ### Software
39
+ - Node.js 20+ LTS
40
+ - npm, yarn, o pnpm
41
+ - Editor de codigo (VS Code recomendado)
42
+ - Navegador moderno (Chrome, Firefox, Safari, Edge)
43
+
44
+ ### Extensiones recomendadas (VS Code)
45
+ - ES7+ React/Redux/React-Native snippets
46
+ - Tailwind CSS IntelliSense
47
+ - Prettier
48
+ - ESLint
49
+ </pre_requisites>
50
+
20
51
  <before_starting>
21
52
  ## Investigación Obligatoria
22
53
 
@@ -43,7 +74,7 @@ Usar cuando el usuario menciona:
43
74
 
44
75
  | Tecnología | Propósito | Verificar |
45
76
  |------------|-----------|-----------|
46
- | Next.js 15+ | Framework React | Context7 |
77
+ | Next.js 15.x | Framework React | Context7 |
47
78
  | TypeScript | Type safety | Context7 |
48
79
  | Tailwind CSS 4 | Estilos | Context7 |
49
80
  | App Router | Routing | Context7 |
@@ -1,6 +1,15 @@
1
1
  ---
2
2
  name: payments-setup
3
3
  description: Skill para integrar pagos en cualquier proyecto. Usa este skill cuando el usuario quiere cobrar, vender, suscripciones, o Stripe.
4
+ tags:
5
+ - payments
6
+ - stripe
7
+ - billing
8
+ - subscriptions
9
+ - e-commerce
10
+ - checkout
11
+ difficulty: advanced
12
+ estimated_time: 45-60 min
4
13
  ---
5
14
 
6
15
  # Skill: Setup de Pagos
@@ -17,6 +26,30 @@ Usar cuando el usuario menciona:
17
26
  - "e-commerce"
18
27
  </when_to_use>
19
28
 
29
+ <pre_requisites>
30
+ ## Pre-requisitos
31
+
32
+ ### Conocimientos
33
+ - JavaScript/TypeScript intermedio
34
+ - Conceptos de API REST
35
+ - Async/await y Promises
36
+ - Conceptos basicos de seguridad web (HTTPS, tokens)
37
+
38
+ ### Software
39
+ - Node.js 20+ LTS
40
+ - Proyecto existente (Next.js, Hono, o similar)
41
+ - Stripe CLI (para desarrollo local)
42
+
43
+ ### Cuentas requeridas
44
+ - Cuenta de Stripe (gratis para test mode)
45
+ - Stripe CLI instalado: `brew install stripe/stripe-cli/stripe`
46
+
47
+ ### Antes de produccion
48
+ - Cuenta bancaria verificada en Stripe
49
+ - Documentacion de negocio completada
50
+ - Politicas de reembolso definidas
51
+ </pre_requisites>
52
+
20
53
  <before_starting>
21
54
  ## Investigación Obligatoria
22
55
 
@@ -59,6 +92,48 @@ Usar cuando el usuario menciona:
59
92
  | PayPal | Audiencia que lo prefiere |
60
93
  </recommended_stack>
61
94
 
95
+ <project_structure>
96
+ ## Estructura de Proyecto
97
+
98
+ ### Archivos de Stripe en Next.js
99
+ ```
100
+ src/
101
+ ├── lib/
102
+ │ ├── stripe.ts # Cliente servidor (secret key)
103
+ │ └── stripe-client.ts # Cliente frontend (publishable key)
104
+ ├── app/
105
+ │ ├── api/
106
+ │ │ ├── checkout/
107
+ │ │ │ └── route.ts # Crear sesion de checkout
108
+ │ │ ├── subscribe/
109
+ │ │ │ └── route.ts # Crear suscripcion
110
+ │ │ ├── portal/
111
+ │ │ │ └── route.ts # Customer portal
112
+ │ │ └── webhooks/
113
+ │ │ └── stripe/
114
+ │ │ └── route.ts # Webhook handler
115
+ │ ├── success/
116
+ │ │ └── page.tsx # Pagina post-pago exitoso
117
+ │ ├── cancel/
118
+ │ │ └── page.tsx # Pagina pago cancelado
119
+ │ └── pricing/
120
+ │ └── page.tsx # Pagina de precios
121
+ └── components/
122
+ ├── BuyButton.tsx # Boton de compra
123
+ ├── SubscribeButton.tsx # Boton de suscripcion
124
+ └── ManageSubscription.tsx # Acceso a portal
125
+ ```
126
+
127
+ ### Variables de entorno
128
+ ```bash
129
+ # .env.local
130
+ STRIPE_SECRET_KEY=sk_test_xxx # Solo servidor
131
+ NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_test_xxx # Cliente
132
+ STRIPE_WEBHOOK_SECRET=whsec_xxx # Webhooks
133
+ NEXT_PUBLIC_URL=http://localhost:3000 # URL base
134
+ ```
135
+ </project_structure>
136
+
62
137
  <stripe_setup>
63
138
  ## Setup Stripe (Recomendado)
64
139
 
@@ -98,7 +173,7 @@ STRIPE_WEBHOOK_SECRET=whsec_xxx
98
173
  import Stripe from 'stripe'
99
174
 
100
175
  export const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!, {
101
- apiVersion: '2024-11-20.acacia', // Verificar versión actual
176
+ apiVersion: '2024-12-18.acacia', // API version 2026
102
177
  typescript: true,
103
178
  })
104
179
  ```
@@ -0,0 +1,331 @@
1
+ ---
2
+ name: review
3
+ description: Code review profesional estilo Staff Engineer - correctness, security, performance
4
+ trigger: /elsabro:review
5
+ allowed-tools:
6
+ - Read
7
+ - Grep
8
+ - Glob
9
+ - Bash
10
+ - Task
11
+ argument-hint: "[--staged|--pr|file] - scope del review"
12
+ ---
13
+
14
+ # ELSABRO: Code Review
15
+
16
+ <objective>
17
+ Realizar code review profesional como un Staff Engineer antes de commits o PRs.
18
+ Detectar issues de correctness, security, performance, maintainability y testing.
19
+ Generar reporte estructurado compatible con flujo ELSABRO.
20
+ </objective>
21
+
22
+ <task_integration>
23
+ ## Integracion con Tasks API
24
+
25
+ Al iniciar review:
26
+
27
+ ```
28
+ TaskCreate:
29
+ description: "Code review: [scope]"
30
+ status: in_progress
31
+ ```
32
+
33
+ Actualizar con issues encontrados por categoria.
34
+ Al finalizar, incluir veredicto y checklist.
35
+ </task_integration>
36
+
37
+ <triggers>
38
+ ## Triggers
39
+
40
+ - `/elsabro:review` - Review de cambios actuales (staged + unstaged)
41
+ - `/elsabro:review --staged` - Solo cambios staged
42
+ - `/elsabro:review --pr` - Review completo estilo PR
43
+ - `/elsabro:review [file]` - Review de archivo especifico
44
+ - `/elsabro:review --save` - Guardar reporte en .planning/REVIEW.md
45
+ </triggers>
46
+
47
+ <checklist>
48
+ ## Review Checklist
49
+
50
+ ### 1. Correctness
51
+ - [ ] El codigo hace lo que deberia hacer?
52
+ - [ ] Maneja edge cases?
53
+ - [ ] Hay off-by-one errors?
54
+ - [ ] Las condiciones son correctas (< vs <=)?
55
+ - [ ] Null/undefined handling?
56
+
57
+ ### 2. Security
58
+ - [ ] Hay inputs no sanitizados?
59
+ - [ ] Se exponen datos sensibles?
60
+ - [ ] SQL injection posible?
61
+ - [ ] XSS posible?
62
+ - [ ] Secrets hardcodeados?
63
+ - [ ] Validacion de permisos?
64
+
65
+ ### 3. Performance
66
+ - [ ] Hay N+1 queries?
67
+ - [ ] Renders innecesarios en React?
68
+ - [ ] Loops dentro de loops evitables?
69
+ - [ ] Memory leaks (event listeners, subscriptions)?
70
+ - [ ] Operaciones bloqueantes?
71
+
72
+ ### 4. Maintainability
73
+ - [ ] Codigo legible y auto-documentado?
74
+ - [ ] Nombres descriptivos?
75
+ - [ ] Funciones pequenas y enfocadas?
76
+ - [ ] DRY - no hay duplicacion?
77
+ - [ ] Principio de responsabilidad unica?
78
+
79
+ ### 5. Testing
80
+ - [ ] Hay tests para el nuevo codigo?
81
+ - [ ] Los tests son significativos?
82
+ - [ ] Cubren edge cases?
83
+ - [ ] Mocks apropiados?
84
+
85
+ ### 6. Project Conventions
86
+ - [ ] Sigue el estilo del proyecto?
87
+ - [ ] Respeta patterns de CLAUDE.md?
88
+ - [ ] No repite errores de mistakes.md?
89
+ </checklist>
90
+
91
+ <severity_levels>
92
+ ## Niveles de Severidad
93
+
94
+ | Nivel | Emoji | Accion |
95
+ |-------|-------|--------|
96
+ | CRITICAL | [CRITICAL] | Must fix antes de merge |
97
+ | SUGGESTION | [SUGGESTION] | Should fix, no bloqueante |
98
+ | NITPICK | [NITPICK] | Optional, mejora menor |
99
+ | POSITIVE | [POSITIVE] | Lo que esta bien |
100
+ </severity_levels>
101
+
102
+ <output_format>
103
+ ## Formato de Output
104
+
105
+ ```markdown
106
+ # Code Review - [branch/file]
107
+
108
+ > Fecha: {{DATE}}
109
+ > Reviewer: ELSABRO
110
+ > Scope: {{SCOPE}}
111
+
112
+ ## Summary
113
+
114
+ | Metrica | Valor |
115
+ |---------|-------|
116
+ | Files changed | 5 |
117
+ | Lines added | +127 |
118
+ | Lines removed | -45 |
119
+ | Risk level | MEDIUM |
120
+
121
+ ---
122
+
123
+ ## [CRITICAL] Issues Criticos (must fix)
124
+
125
+ ### Missing null check in user handler
126
+
127
+ **File**: `src/api/users.ts:45`
128
+
129
+ ```typescript
130
+ // Current
131
+ const name = user.profile.name
132
+
133
+ // Suggested
134
+ const name = user?.profile?.name ?? 'Unknown'
135
+ ```
136
+
137
+ **Why**: Will crash if user.profile is undefined
138
+
139
+ ---
140
+
141
+ ## [SUGGESTION] Sugerencias (should fix)
142
+
143
+ ### Consider using early return
144
+
145
+ **File**: `src/utils/validate.ts:23`
146
+
147
+ ```typescript
148
+ // Current
149
+ if (isValid) {
150
+ // 30 lines of code
151
+ }
152
+
153
+ // Suggested
154
+ if (!isValid) return null
155
+ // 30 lines of code (less nesting)
156
+ ```
157
+
158
+ **Why**: Reduce nesting, improve readability
159
+
160
+ ---
161
+
162
+ ## [NITPICK] Nitpicks (optional)
163
+
164
+ ### Variable naming
165
+ **File**: `src/api/users.ts:12`
166
+
167
+ `data` -> `userData` for clarity
168
+
169
+ ---
170
+
171
+ ## [POSITIVE] Positives
172
+
173
+ - Good error handling in API calls
174
+ - Follows existing patterns
175
+ - Tests included
176
+ - Clean separation of concerns
177
+
178
+ ---
179
+
180
+ ## Checklist Summary
181
+
182
+ - [x] Correctness
183
+ - [x] Security
184
+ - [ ] Performance - N+1 query potential in line 67
185
+ - [x] Maintainability
186
+ - [ ] Testing - missing edge case test
187
+ - [x] Conventions
188
+
189
+ ---
190
+
191
+ ## Verdict
192
+
193
+ **MEDIUM RISK** - Approve with suggestions
194
+
195
+ Fix the critical null check before merging.
196
+ Consider addressing the performance issue in a follow-up.
197
+
198
+ ---
199
+
200
+ ## Action Items
201
+
202
+ 1. [ ] Fix null check in users.ts:45
203
+ 2. [ ] Consider early return pattern in validate.ts
204
+ 3. [ ] Add test for empty user profile case
205
+ ```
206
+ </output_format>
207
+
208
+ <interactive_mode>
209
+ ## Modo Interactivo
210
+
211
+ ```
212
+ Usuario: /elsabro:review
213
+
214
+ Claude: "Analizando cambios...
215
+
216
+ Encontre 3 archivos modificados:
217
+ 1. src/api/users.ts (+45, -12) - Risk: HIGH
218
+ 2. src/components/UserCard.tsx (+23, -5) - Risk: LOW
219
+ 3. src/hooks/useUser.ts (+18, -0) - Risk: MEDIUM
220
+
221
+ Opciones:
222
+ 1. Review completo (todos los archivos)
223
+ 2. Solo el mas riesgoso (users.ts)
224
+ 3. Elegir archivos especificos
225
+
226
+ Que prefieres?"
227
+ ```
228
+ </interactive_mode>
229
+
230
+ <challenge_mode>
231
+ ## Challenge Mode
232
+
233
+ Cuando el usuario dice "Grill me" o "Challenge me":
234
+
235
+ ```
236
+ Claude: "Ok, modo dificil activado.
237
+
238
+ Voy a hacer preguntas sobre tus cambios:
239
+
240
+ 1. En users.ts:45, por que elegiste ese approach?
241
+ 2. Que pasa si el API devuelve null aqui?
242
+ 3. Como escala esto con 10,000 usuarios?
243
+ 4. Probaste el caso de error?
244
+ 5. Por que no usaste [alternativa]?
245
+
246
+ No apruebo hasta que respondas satisfactoriamente."
247
+ ```
248
+ </challenge_mode>
249
+
250
+ <diff_analysis>
251
+ ## Analisis de Diff
252
+
253
+ Mostrar before/after cuando sea util:
254
+
255
+ ```diff
256
+ - const data = await fetch(url)
257
+ + const data = await fetch(url, {
258
+ + headers: { 'Content-Type': 'application/json' },
259
+ + timeout: 5000
260
+ + })
261
+ ```
262
+
263
+ Evaluar:
264
+ - Es el cambio necesario?
265
+ - Introduce nuevos riesgos?
266
+ - Rompe compatibilidad?
267
+ </diff_analysis>
268
+
269
+ <save_report>
270
+ ## Guardar Reporte
271
+
272
+ Con flag `--save`, guardar en `.planning/REVIEW.md`:
273
+
274
+ ```markdown
275
+ # Code Review History
276
+
277
+ ## Review: {{DATE}} - {{BRANCH}}
278
+
279
+ [Contenido del review]
280
+
281
+ ---
282
+
283
+ ## Review: {{PREV_DATE}} - {{PREV_BRANCH}}
284
+
285
+ [Review anterior]
286
+ ```
287
+
288
+ Mantener historial de los ultimos 10 reviews.
289
+ </save_report>
290
+
291
+ <integration_memory>
292
+ ## Integracion con Memoria ELSABRO
293
+
294
+ Despues del review:
295
+
296
+ ```
297
+ "Encontre patterns problematicos que se repiten:
298
+ - Falta de null checks (3 ocurrencias)
299
+ - Console.logs en codigo (2 ocurrencias)
300
+
301
+ Quieres que agregue estos a .planning/mistakes.md
302
+ para evitarlos en el futuro?"
303
+ ```
304
+ </integration_memory>
305
+
306
+ <pre_commit_hook>
307
+ ## Pre-commit Hook
308
+
309
+ Sugerir configurar hook para review automatico:
310
+
311
+ ```bash
312
+ # .git/hooks/pre-commit
313
+ #!/bin/bash
314
+
315
+ # Run ELSABRO review on staged files
316
+ claude --skill review --staged --fail-on-critical
317
+ ```
318
+
319
+ Esto previene commits con issues criticos.
320
+ </pre_commit_hook>
321
+
322
+ <verdicts>
323
+ ## Posibles Veredictos
324
+
325
+ | Veredicto | Cuando |
326
+ |-----------|--------|
327
+ | APPROVE | Sin issues criticos, codigo solido |
328
+ | APPROVE WITH SUGGESTIONS | Issues menores, puede mergearse |
329
+ | REQUEST CHANGES | Issues criticos que deben resolverse |
330
+ | NEEDS DISCUSSION | Decisiones arquitectonicas pendientes |
331
+ </verdicts>