elsabro 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +268 -0
- package/agents/elsabro-analyst.md +176 -0
- package/agents/elsabro-debugger.md +293 -0
- package/agents/elsabro-executor.md +477 -0
- package/agents/elsabro-orchestrator.md +426 -0
- package/agents/elsabro-planner.md +278 -0
- package/agents/elsabro-qa.md +273 -0
- package/agents/elsabro-quick-dev.md +309 -0
- package/agents/elsabro-scrum-master.md +217 -0
- package/agents/elsabro-tech-writer.md +347 -0
- package/agents/elsabro-ux-designer.md +278 -0
- package/agents/elsabro-verifier.md +295 -0
- package/agents/elsabro-yolo-dev.md +322 -0
- package/bin/install.js +497 -0
- package/commands/elsabro/add-phase.md +114 -0
- package/commands/elsabro/add-todo.md +158 -0
- package/commands/elsabro/audit-milestone.md +147 -0
- package/commands/elsabro/check-todos.md +192 -0
- package/commands/elsabro/complete-milestone.md +138 -0
- package/commands/elsabro/debug.md +153 -0
- package/commands/elsabro/discuss-phase.md +160 -0
- package/commands/elsabro/execute.md +299 -0
- package/commands/elsabro/help.md +102 -0
- package/commands/elsabro/insert-phase.md +117 -0
- package/commands/elsabro/list-phase-assumptions.md +129 -0
- package/commands/elsabro/map-codebase.md +108 -0
- package/commands/elsabro/new-milestone.md +128 -0
- package/commands/elsabro/new.md +230 -0
- package/commands/elsabro/pause-work.md +261 -0
- package/commands/elsabro/plan-milestone-gaps.md +129 -0
- package/commands/elsabro/plan.md +272 -0
- package/commands/elsabro/progress.md +187 -0
- package/commands/elsabro/quick.md +99 -0
- package/commands/elsabro/remove-phase.md +136 -0
- package/commands/elsabro/research-phase.md +174 -0
- package/commands/elsabro/resume-work.md +288 -0
- package/commands/elsabro/set-profile.md +216 -0
- package/commands/elsabro/settings.md +185 -0
- package/commands/elsabro/start.md +204 -0
- package/commands/elsabro/update.md +71 -0
- package/commands/elsabro/verify-work.md +269 -0
- package/commands/elsabro/verify.md +207 -0
- package/hooks/dist/.gitkeep +2 -0
- package/package.json +45 -0
- package/references/error-handling-instructions.md +312 -0
- package/references/source-hierarchy.md +150 -0
- package/references/token-optimization.md +225 -0
- package/skills/api-setup.md +315 -0
- package/skills/auth-setup.md +180 -0
- package/skills/database-setup.md +238 -0
- package/skills/expo-app.md +261 -0
- package/skills/nextjs-app.md +206 -0
- package/skills/payments-setup.md +421 -0
- package/skills/sentry-setup.md +295 -0
- package/templates/error-handling-config.json +138 -0
- package/templates/session-state.json +69 -0
- package/templates/starters/.gitkeep +2 -0
- package/workflows/.gitkeep +2 -0
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pause-work
|
|
3
|
+
description: Pausar trabajo guardando contexto para retomar después
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Read
|
|
6
|
+
- Write
|
|
7
|
+
- Bash
|
|
8
|
+
- Glob
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# /elsabro:pause-work
|
|
12
|
+
|
|
13
|
+
<command-name>pause-work</command-name>
|
|
14
|
+
|
|
15
|
+
## Propósito
|
|
16
|
+
|
|
17
|
+
Guardar el estado actual del trabajo para poder retomarlo fácilmente después. Captura contexto, notas y próximos pasos.
|
|
18
|
+
|
|
19
|
+
## Uso
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# Pausar trabajo actual
|
|
23
|
+
/elsabro:pause-work
|
|
24
|
+
|
|
25
|
+
# Pausar con nota
|
|
26
|
+
/elsabro:pause-work --note="Waiting for API changes"
|
|
27
|
+
|
|
28
|
+
# Pausar con estimación de regreso
|
|
29
|
+
/elsabro:pause-work --return="tomorrow"
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Proceso de Pausa
|
|
33
|
+
|
|
34
|
+
### Paso 1: Capturar Estado
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
Capturing session state...
|
|
38
|
+
|
|
39
|
+
Current work:
|
|
40
|
+
- Task: User profile page
|
|
41
|
+
- Progress: 60% complete
|
|
42
|
+
- Branch: feature/frontend-dashboard
|
|
43
|
+
|
|
44
|
+
Files modified:
|
|
45
|
+
- src/components/Profile.tsx (changed)
|
|
46
|
+
- src/hooks/useProfile.ts (new)
|
|
47
|
+
- src/tests/Profile.test.ts (new)
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Paso 2: Solicitar Notas
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
Add context for when you return:
|
|
54
|
+
|
|
55
|
+
What were you working on?
|
|
56
|
+
> Implementing profile validation with Zod
|
|
57
|
+
|
|
58
|
+
What's the next step?
|
|
59
|
+
> Add avatar upload functionality
|
|
60
|
+
|
|
61
|
+
Any blockers or questions?
|
|
62
|
+
> Need to confirm max file size with product
|
|
63
|
+
|
|
64
|
+
Estimated return time? (optional)
|
|
65
|
+
> tomorrow morning
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Paso 3: Guardar Sesión
|
|
69
|
+
|
|
70
|
+
Crea/actualiza `.planning/SESSION.md`:
|
|
71
|
+
|
|
72
|
+
```markdown
|
|
73
|
+
# Session State
|
|
74
|
+
|
|
75
|
+
## Paused: 2024-01-20 17:30
|
|
76
|
+
## Expected Return: 2024-01-21 morning
|
|
77
|
+
|
|
78
|
+
## Current Context
|
|
79
|
+
|
|
80
|
+
### Active Milestone
|
|
81
|
+
M001 - MVP Launch
|
|
82
|
+
|
|
83
|
+
### Active Phase
|
|
84
|
+
P3 - Frontend (65% complete)
|
|
85
|
+
|
|
86
|
+
### Active Task
|
|
87
|
+
User profile page - validation implementation
|
|
88
|
+
|
|
89
|
+
### Progress Made This Session
|
|
90
|
+
- ✅ Created Profile component structure
|
|
91
|
+
- ✅ Added useProfile hook
|
|
92
|
+
- ✅ Started Zod schema
|
|
93
|
+
- 🟡 Validation integration (in progress)
|
|
94
|
+
|
|
95
|
+
## Where I Stopped
|
|
96
|
+
|
|
97
|
+
### File
|
|
98
|
+
`src/components/Profile.tsx:45`
|
|
99
|
+
|
|
100
|
+
### Last Action
|
|
101
|
+
Adding form validation with Zod
|
|
102
|
+
|
|
103
|
+
### Next Steps
|
|
104
|
+
1. Complete validation schema
|
|
105
|
+
2. Add avatar upload
|
|
106
|
+
3. Handle server-side email uniqueness
|
|
107
|
+
|
|
108
|
+
## Notes
|
|
109
|
+
|
|
110
|
+
### Implementation Notes
|
|
111
|
+
- Using Zod for validation
|
|
112
|
+
- Avatar upload will use presigned URLs
|
|
113
|
+
- Email uniqueness checked via API
|
|
114
|
+
|
|
115
|
+
### Open Questions
|
|
116
|
+
- [ ] Max avatar file size? (ask product)
|
|
117
|
+
- [ ] Supported image formats?
|
|
118
|
+
|
|
119
|
+
### Blockers
|
|
120
|
+
- None
|
|
121
|
+
|
|
122
|
+
## Git State
|
|
123
|
+
|
|
124
|
+
### Branch
|
|
125
|
+
feature/frontend-dashboard
|
|
126
|
+
|
|
127
|
+
### Uncommitted Files
|
|
128
|
+
- src/components/Profile.tsx
|
|
129
|
+
- src/hooks/useProfile.ts
|
|
130
|
+
- src/tests/Profile.test.ts
|
|
131
|
+
|
|
132
|
+
### Recommendation
|
|
133
|
+
Consider committing WIP before extended pause
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Paso 4: Sugerir Commit
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
You have 3 uncommitted files.
|
|
140
|
+
|
|
141
|
+
Options:
|
|
142
|
+
1. Commit WIP now (recommended for long pause)
|
|
143
|
+
2. Stash changes
|
|
144
|
+
3. Leave as-is (for short pause)
|
|
145
|
+
|
|
146
|
+
Choice (1/2/3):
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## Opciones
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
--note, -n # Add context note
|
|
153
|
+
--return, -r # Expected return time
|
|
154
|
+
--commit # Auto-commit WIP
|
|
155
|
+
--stash # Stash changes
|
|
156
|
+
--no-prompt # Skip interactive prompts
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## Output
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
╔══════════════════════════════════════════════════╗
|
|
163
|
+
║ SESSION PAUSED ║
|
|
164
|
+
╠══════════════════════════════════════════════════╣
|
|
165
|
+
║ ║
|
|
166
|
+
║ Saved: .planning/SESSION.md ║
|
|
167
|
+
║ Task: User profile page ║
|
|
168
|
+
║ Progress: 60% ║
|
|
169
|
+
║ Return: Tomorrow morning ║
|
|
170
|
+
║ ║
|
|
171
|
+
║ 3 uncommitted files (consider committing) ║
|
|
172
|
+
║ ║
|
|
173
|
+
╠══════════════════════════════════════════════════╣
|
|
174
|
+
║ To resume: /elsabro:resume-work ║
|
|
175
|
+
╚══════════════════════════════════════════════════╝
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
## Integración
|
|
179
|
+
|
|
180
|
+
- Paired con `/elsabro:resume-work`
|
|
181
|
+
- Optional git integration (commit/stash)
|
|
182
|
+
- Session file tracked in `.planning/`
|
|
183
|
+
|
|
184
|
+
<session_state_management>
|
|
185
|
+
## Gestión de Estado de Sesión
|
|
186
|
+
|
|
187
|
+
### Archivos Generados
|
|
188
|
+
|
|
189
|
+
Al pausar, se crean/actualizan dos archivos:
|
|
190
|
+
|
|
191
|
+
**1. `.planning/SESSION.md`** - Legible por humanos
|
|
192
|
+
```markdown
|
|
193
|
+
# Session State
|
|
194
|
+
## Paused: [timestamp]
|
|
195
|
+
## Expected Return: [time]
|
|
196
|
+
...
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
**2. `.planning/SESSION-STATE.json`** - Procesable por agentes
|
|
200
|
+
```json
|
|
201
|
+
{
|
|
202
|
+
"version": "1.0",
|
|
203
|
+
"createdAt": "2024-01-20T17:30:00Z",
|
|
204
|
+
"lastUpdated": "2024-01-20T17:30:00Z",
|
|
205
|
+
"status": "paused",
|
|
206
|
+
"context": {
|
|
207
|
+
"milestone": "M001",
|
|
208
|
+
"phase": "P3",
|
|
209
|
+
"progress": 65,
|
|
210
|
+
"currentTask": "User profile page"
|
|
211
|
+
},
|
|
212
|
+
"checkpoints": [...],
|
|
213
|
+
"git": {
|
|
214
|
+
"branch": "feature/frontend-dashboard",
|
|
215
|
+
"lastCommit": "abc1234",
|
|
216
|
+
"uncommittedFiles": 3
|
|
217
|
+
},
|
|
218
|
+
"errors": { "count": 0 },
|
|
219
|
+
"recovery": {
|
|
220
|
+
"lastSuccessfulStep": "validation-implementation",
|
|
221
|
+
"resumeFrom": "avatar-upload",
|
|
222
|
+
"notes": "Zod schema completo, falta avatar"
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### Validación Antes de Pausar
|
|
228
|
+
|
|
229
|
+
```
|
|
230
|
+
Checklist pre-pausa:
|
|
231
|
+
- [ ] ¿Hay errores HIGH sin resolver? → Advertir
|
|
232
|
+
- [ ] ¿Hay archivos sin commit? → Sugerir commit/stash
|
|
233
|
+
- [ ] ¿El último commit tiene tests pasando? → Verificar
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### Detección de Staleness
|
|
237
|
+
|
|
238
|
+
Al reanudar, verificar tiempo desde pausa:
|
|
239
|
+
|
|
240
|
+
| Tiempo | Acción |
|
|
241
|
+
|--------|--------|
|
|
242
|
+
| < 7 días | Continuar normal |
|
|
243
|
+
| 7-30 días | 🟡 Warning: Verificar contexto sigue válido |
|
|
244
|
+
| > 30 días | 🟠 Sugerir revisar milestone completo |
|
|
245
|
+
|
|
246
|
+
```
|
|
247
|
+
┌──────────────────────────────────────────────────┐
|
|
248
|
+
│ 🟡 WARNING: SESSION_STALE │
|
|
249
|
+
├──────────────────────────────────────────────────┤
|
|
250
|
+
│ Última actividad: hace 12 días │
|
|
251
|
+
│ │
|
|
252
|
+
│ Recomendación: Verificar que el contexto │
|
|
253
|
+
│ sigue siendo válido antes de continuar. │
|
|
254
|
+
│ │
|
|
255
|
+
│ Opciones: │
|
|
256
|
+
│ [c] Continuar de todas formas │
|
|
257
|
+
│ [r] Revisar milestone primero │
|
|
258
|
+
│ [s] Start fresh │
|
|
259
|
+
└──────────────────────────────────────────────────┘
|
|
260
|
+
```
|
|
261
|
+
</session_state_management>
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: plan-milestone-gaps
|
|
3
|
+
description: Identificar y planificar cómo cerrar gaps en un milestone para alcanzar los objetivos
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /elsabro:plan-milestone-gaps
|
|
7
|
+
|
|
8
|
+
<command-name>plan-milestone-gaps</command-name>
|
|
9
|
+
|
|
10
|
+
## Propósito
|
|
11
|
+
|
|
12
|
+
Analizar qué falta para completar un milestone y generar un plan actionable para cerrar los gaps.
|
|
13
|
+
|
|
14
|
+
## Proceso
|
|
15
|
+
|
|
16
|
+
### Paso 1: Identificar Gaps
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
/elsabro:plan-milestone-gaps M001
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
ELSABRO analiza:
|
|
23
|
+
- Success criteria no cumplidos
|
|
24
|
+
- Fases incompletas
|
|
25
|
+
- Tests faltantes
|
|
26
|
+
- Documentación pendiente
|
|
27
|
+
|
|
28
|
+
### Paso 2: Categorizar Gaps
|
|
29
|
+
|
|
30
|
+
```markdown
|
|
31
|
+
## Gap Analysis: M001
|
|
32
|
+
|
|
33
|
+
### Critical Gaps 🔴
|
|
34
|
+
| Gap | Impact | Effort | Priority |
|
|
35
|
+
|-----|--------|--------|----------|
|
|
36
|
+
| Missing auth tests | Blocks deploy | 4h | P0 |
|
|
37
|
+
| API error handling | User impact | 8h | P0 |
|
|
38
|
+
|
|
39
|
+
### Important Gaps 🟡
|
|
40
|
+
| Gap | Impact | Effort | Priority |
|
|
41
|
+
|-----|--------|--------|----------|
|
|
42
|
+
| Dashboard polish | UX quality | 4h | P1 |
|
|
43
|
+
| Loading states | UX quality | 2h | P1 |
|
|
44
|
+
|
|
45
|
+
### Nice-to-have ⬜
|
|
46
|
+
| Gap | Impact | Effort | Priority |
|
|
47
|
+
|-----|--------|--------|----------|
|
|
48
|
+
| Dark mode | Enhancement | 8h | P2 |
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Paso 3: Generar Plan
|
|
52
|
+
|
|
53
|
+
```markdown
|
|
54
|
+
## Gap Closure Plan
|
|
55
|
+
|
|
56
|
+
### Sprint 1 (This Week)
|
|
57
|
+
Focus: Critical gaps
|
|
58
|
+
|
|
59
|
+
- [ ] Day 1-2: Auth tests
|
|
60
|
+
- Write unit tests for auth service
|
|
61
|
+
- Write integration tests for login flow
|
|
62
|
+
|
|
63
|
+
- [ ] Day 3-4: API error handling
|
|
64
|
+
- Add error middleware
|
|
65
|
+
- Add user-friendly error messages
|
|
66
|
+
- Add error logging
|
|
67
|
+
|
|
68
|
+
### Sprint 2 (Next Week)
|
|
69
|
+
Focus: Important gaps
|
|
70
|
+
|
|
71
|
+
- [ ] Day 1: Dashboard polish
|
|
72
|
+
- [ ] Day 2: Loading states
|
|
73
|
+
|
|
74
|
+
### Deferred (Post-milestone)
|
|
75
|
+
- Dark mode (move to M002)
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Output
|
|
79
|
+
|
|
80
|
+
Genera `.planning/milestones/M001-xxx/GAP-PLAN.md` con:
|
|
81
|
+
|
|
82
|
+
1. **Gap Inventory** - Lista completa de gaps
|
|
83
|
+
2. **Prioritization** - Ordenados por impacto/effort
|
|
84
|
+
3. **Closure Plan** - Plan día a día
|
|
85
|
+
4. **Resource Needs** - Qué se necesita
|
|
86
|
+
5. **Timeline** - Cuándo estará listo
|
|
87
|
+
|
|
88
|
+
## Opciones
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
# Plan gaps para milestone
|
|
92
|
+
/elsabro:plan-milestone-gaps M001
|
|
93
|
+
|
|
94
|
+
# Solo mostrar gaps (sin plan)
|
|
95
|
+
/elsabro:plan-milestone-gaps M001 --analyze-only
|
|
96
|
+
|
|
97
|
+
# Focalizarse en tipo específico
|
|
98
|
+
/elsabro:plan-milestone-gaps M001 --focus=tests
|
|
99
|
+
/elsabro:plan-milestone-gaps M001 --focus=docs
|
|
100
|
+
|
|
101
|
+
# Con constraint de tiempo
|
|
102
|
+
/elsabro:plan-milestone-gaps M001 --deadline=2024-02-01
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Visualización
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
╔══════════════════════════════════════════════╗
|
|
109
|
+
║ GAP ANALYSIS: M001 - MVP Launch ║
|
|
110
|
+
╠══════════════════════════════════════════════╣
|
|
111
|
+
║ ║
|
|
112
|
+
║ Current Progress: ████████░░░░ 65% ║
|
|
113
|
+
║ Gap to Close: ░░░░████░░░░ 35% ║
|
|
114
|
+
║ ║
|
|
115
|
+
║ Critical: 2 gaps (12h effort) ║
|
|
116
|
+
║ Important: 2 gaps (6h effort) ║
|
|
117
|
+
║ Optional: 1 gap (8h effort) ║
|
|
118
|
+
║ ║
|
|
119
|
+
║ Estimated completion: +3 days ║
|
|
120
|
+
║ With optional: +5 days ║
|
|
121
|
+
║ ║
|
|
122
|
+
╚══════════════════════════════════════════════╝
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## Integración
|
|
126
|
+
|
|
127
|
+
- Alimenta sprint planning
|
|
128
|
+
- Conecta con `/elsabro:plan` para detalles
|
|
129
|
+
- Usa `/elsabro:quick` para gaps pequeños
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: plan
|
|
3
|
+
description: Planificar una fase o feature con investigación previa
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Read
|
|
6
|
+
- Write
|
|
7
|
+
- Bash
|
|
8
|
+
- Glob
|
|
9
|
+
- Grep
|
|
10
|
+
- Task
|
|
11
|
+
- WebSearch
|
|
12
|
+
- mcp__plugin_context7_context7__*
|
|
13
|
+
argument-hint: "[número de fase o descripción de feature]"
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# ELSABRO: Plan
|
|
17
|
+
|
|
18
|
+
<objective>
|
|
19
|
+
Crear un plan ejecutable para una fase o feature, con investigación previa usando Context7 y WebSearch.
|
|
20
|
+
</objective>
|
|
21
|
+
|
|
22
|
+
<process>
|
|
23
|
+
## Paso 1: Entender Qué Planificar
|
|
24
|
+
|
|
25
|
+
Si hay argumento numérico → Planificar fase del ROADMAP.md
|
|
26
|
+
Si hay descripción → Planificar feature ad-hoc
|
|
27
|
+
Si no hay argumento → Preguntar qué planificar
|
|
28
|
+
|
|
29
|
+
## Paso 2: Verificar Contexto
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# Verificar que existe .planning/
|
|
33
|
+
ls -la .planning/
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Si no existe → Sugerir `/elsabro:new` primero.
|
|
37
|
+
|
|
38
|
+
## Paso 3: Cargar Contexto Relevante
|
|
39
|
+
|
|
40
|
+
Leer:
|
|
41
|
+
- `.planning/PROJECT.md` (siempre)
|
|
42
|
+
- `.planning/REQUIREMENTS.md` (si existe)
|
|
43
|
+
- `.planning/ROADMAP.md` (si planificando fase)
|
|
44
|
+
- `.planning/config.json` (para preferencias)
|
|
45
|
+
|
|
46
|
+
## Paso 4: Research-Before-Plan
|
|
47
|
+
|
|
48
|
+
**OBLIGATORIO:** Investigar antes de planificar.
|
|
49
|
+
|
|
50
|
+
Spawn agentes en paralelo:
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
Task(elsabro-planner, model: sonnet):
|
|
54
|
+
Fase/Feature: [descripción]
|
|
55
|
+
|
|
56
|
+
Contexto del proyecto:
|
|
57
|
+
[Resumen de PROJECT.md]
|
|
58
|
+
|
|
59
|
+
Tu trabajo:
|
|
60
|
+
1. Identificar tecnologías necesarias
|
|
61
|
+
2. Buscar en Context7 las APIs actuales
|
|
62
|
+
3. Buscar en WebSearch mejores prácticas [año]
|
|
63
|
+
4. Crear RESEARCH.md con hallazgos
|
|
64
|
+
5. Crear PLAN.md con tareas específicas
|
|
65
|
+
|
|
66
|
+
Recuerda:
|
|
67
|
+
- Context7 PRIMERO para cualquier librería
|
|
68
|
+
- Máximo 2-3 tareas por plan
|
|
69
|
+
- Cada tarea debe ser verificable
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Paso 5: Crear Archivos
|
|
73
|
+
|
|
74
|
+
El planner crea:
|
|
75
|
+
- `.planning/{phase}-RESEARCH.md`
|
|
76
|
+
- `.planning/{phase}-{N}-PLAN.md`
|
|
77
|
+
|
|
78
|
+
## Paso 6: Verificar Plan (Opcional)
|
|
79
|
+
|
|
80
|
+
Si `plan_check: true` en config.json:
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
Task(elsabro-verifier, model: haiku):
|
|
84
|
+
Verifica que los planes cumplen:
|
|
85
|
+
- Cada tarea tiene <verify> ejecutable
|
|
86
|
+
- Los must_haves son observables
|
|
87
|
+
- No hay dependencias circulares
|
|
88
|
+
- El scope es razonable (~50% context)
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Paso 7: Presentar al Usuario
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
Plan creado para: [fase/feature]
|
|
95
|
+
|
|
96
|
+
Lo que se va a hacer:
|
|
97
|
+
1. [Tarea 1]
|
|
98
|
+
2. [Tarea 2]
|
|
99
|
+
3. [Tarea 3]
|
|
100
|
+
|
|
101
|
+
Tecnologías verificadas:
|
|
102
|
+
- [Librería] v[versión] (Context7)
|
|
103
|
+
- [Otra] v[versión] (Context7)
|
|
104
|
+
|
|
105
|
+
¿Quieres que lo ejecute? → /elsabro:execute [fase]
|
|
106
|
+
¿Quieres ver el plan completo? → Dime "muéstrame el plan"
|
|
107
|
+
```
|
|
108
|
+
</process>
|
|
109
|
+
|
|
110
|
+
<research_protocol>
|
|
111
|
+
## Protocolo de Investigación
|
|
112
|
+
|
|
113
|
+
### Para Cada Tecnología
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
1. Resolver librería:
|
|
117
|
+
mcp__plugin_context7_context7__resolve-library-id
|
|
118
|
+
Input: nombre de librería
|
|
119
|
+
|
|
120
|
+
2. Buscar setup:
|
|
121
|
+
mcp__plugin_context7_context7__query-docs
|
|
122
|
+
Query: "getting started" o "installation"
|
|
123
|
+
|
|
124
|
+
3. Buscar patrones:
|
|
125
|
+
mcp__plugin_context7_context7__query-docs
|
|
126
|
+
Query: "[feature específica]"
|
|
127
|
+
|
|
128
|
+
4. Verificar actualidad:
|
|
129
|
+
WebSearch: "[librería] [año] changes"
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Documentar en RESEARCH.md
|
|
133
|
+
|
|
134
|
+
```markdown
|
|
135
|
+
# Research: [Fase/Feature]
|
|
136
|
+
|
|
137
|
+
## Stack Verificado
|
|
138
|
+
| Librería | Versión | Fuente | Notas |
|
|
139
|
+
|----------|---------|--------|-------|
|
|
140
|
+
| next.js | 15.0.3 | Context7 | App Router |
|
|
141
|
+
| prisma | 5.20.0 | Context7 | - |
|
|
142
|
+
|
|
143
|
+
## Patrones a Usar
|
|
144
|
+
### [Patrón 1]
|
|
145
|
+
Fuente: Context7
|
|
146
|
+
```typescript
|
|
147
|
+
[código verificado]
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## Pitfalls
|
|
151
|
+
- [Problema conocido] → [Cómo evitarlo]
|
|
152
|
+
```
|
|
153
|
+
</research_protocol>
|
|
154
|
+
|
|
155
|
+
<plan_format>
|
|
156
|
+
## Formato de Plan
|
|
157
|
+
|
|
158
|
+
```markdown
|
|
159
|
+
---
|
|
160
|
+
phase: 1
|
|
161
|
+
plan: 1
|
|
162
|
+
wave: 1
|
|
163
|
+
must_haves:
|
|
164
|
+
truths:
|
|
165
|
+
- "[Comportamiento observable]"
|
|
166
|
+
artifacts:
|
|
167
|
+
- path: "[archivo]"
|
|
168
|
+
contains: "[patrón]"
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
# Plan: [Nombre]
|
|
172
|
+
|
|
173
|
+
## Objetivo
|
|
174
|
+
[Una oración]
|
|
175
|
+
|
|
176
|
+
## Contexto
|
|
177
|
+
@.planning/RESEARCH.md
|
|
178
|
+
|
|
179
|
+
## Tareas
|
|
180
|
+
|
|
181
|
+
<task type="auto">
|
|
182
|
+
<name>[Nombre]</name>
|
|
183
|
+
<files>[Archivos]</files>
|
|
184
|
+
<action>
|
|
185
|
+
[Instrucciones específicas con código de Context7]
|
|
186
|
+
</action>
|
|
187
|
+
<verify>[Comando ejecutable]</verify>
|
|
188
|
+
<done>[Criterio observable]</done>
|
|
189
|
+
</task>
|
|
190
|
+
```
|
|
191
|
+
</plan_format>
|
|
192
|
+
|
|
193
|
+
<parallel_coordination>
|
|
194
|
+
## Coordinación de Ejecución Paralela
|
|
195
|
+
|
|
196
|
+
### Policy por Defecto: quorum
|
|
197
|
+
|
|
198
|
+
Este comando usa `policy: quorum` para agentes paralelos:
|
|
199
|
+
|
|
200
|
+
```
|
|
201
|
+
┌────────────────────────────────────────────────┐
|
|
202
|
+
│ PARALLEL POLICY: quorum │
|
|
203
|
+
├────────────────────────────────────────────────┤
|
|
204
|
+
│ Success threshold: >50% │
|
|
205
|
+
│ Behavior: Continuar si mayoría tiene éxito │
|
|
206
|
+
│ On failure: Reportar pero continuar │
|
|
207
|
+
└────────────────────────────────────────────────┘
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
### Reporte de Ejecución Paralela
|
|
211
|
+
|
|
212
|
+
```
|
|
213
|
+
╔══════════════════════════════════════════════════╗
|
|
214
|
+
║ RESEARCH AGENTS COMPLETE ║
|
|
215
|
+
╠══════════════════════════════════════════════════╣
|
|
216
|
+
║ Policy: quorum ║
|
|
217
|
+
║ Total: 2 agents ║
|
|
218
|
+
║ ║
|
|
219
|
+
║ ✓ elsabro-planner: SUCCESS (35s) ║
|
|
220
|
+
║ └─ Created RESEARCH.md, PLAN.md ║
|
|
221
|
+
║ ✓ elsabro-verifier: SUCCESS (12s) ║
|
|
222
|
+
║ └─ Plan validated, no issues ║
|
|
223
|
+
║ ║
|
|
224
|
+
║ Result: 2/2 (100%) - QUORUM MET ║
|
|
225
|
+
║ Status: CONTINUING ║
|
|
226
|
+
╚══════════════════════════════════════════════════╝
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### Manejo de Fallos en Research
|
|
230
|
+
|
|
231
|
+
Si un agente de research falla:
|
|
232
|
+
|
|
233
|
+
```
|
|
234
|
+
╔══════════════════════════════════════════════════╗
|
|
235
|
+
║ 🟠 RESEARCH AGENT FAILED ║
|
|
236
|
+
╠══════════════════════════════════════════════════╣
|
|
237
|
+
║ ║
|
|
238
|
+
║ ✓ elsabro-planner: SUCCESS ║
|
|
239
|
+
║ ✗ context7-verifier: FAILED (timeout) ║
|
|
240
|
+
║ ║
|
|
241
|
+
║ Result: 1/2 (50%) - QUORUM BORDERLINE ║
|
|
242
|
+
║ ║
|
|
243
|
+
╠══════════════════════════════════════════════════╣
|
|
244
|
+
║ El plan se creó pero sin verificación de ║
|
|
245
|
+
║ Context7. Puedes: ║
|
|
246
|
+
║ ║
|
|
247
|
+
║ [c] Continuar con plan (no verificado) ║
|
|
248
|
+
║ [r] Reintentar research ║
|
|
249
|
+
║ [m] Verificar manualmente con Context7 ║
|
|
250
|
+
╚══════════════════════════════════════════════════╝
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
### Actualizar Estado
|
|
254
|
+
|
|
255
|
+
Al completar planificación:
|
|
256
|
+
|
|
257
|
+
```json
|
|
258
|
+
{
|
|
259
|
+
"parallelExecution": {
|
|
260
|
+
"policy": "quorum",
|
|
261
|
+
"activeAgents": [],
|
|
262
|
+
"completedAgents": ["elsabro-planner", "elsabro-verifier"],
|
|
263
|
+
"failedAgents": [],
|
|
264
|
+
"lastResult": {
|
|
265
|
+
"total": 2,
|
|
266
|
+
"success": 2,
|
|
267
|
+
"quorumMet": true
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
```
|
|
272
|
+
</parallel_coordination>
|