elsabro 2.2.0 → 3.7.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 (88) hide show
  1. package/README.md +668 -20
  2. package/agents/elsabro-orchestrator.md +113 -0
  3. package/bin/install.js +0 -0
  4. package/commands/elsabro/execute.md +223 -46
  5. package/commands/elsabro/start.md +34 -0
  6. package/commands/elsabro/verify-work.md +29 -0
  7. package/flows/development-flow.json +452 -0
  8. package/flows/quick-flow.json +118 -0
  9. package/hooks/confirm-destructive.sh +145 -0
  10. package/hooks/hooks-config.json +81 -0
  11. package/hooks/lint-check.sh +238 -0
  12. package/hooks/post-edit-test.sh +189 -0
  13. package/package.json +5 -3
  14. package/references/SYSTEM_INDEX.md +379 -5
  15. package/references/agent-marketplace.md +2274 -0
  16. package/references/agent-protocol.md +1126 -0
  17. package/references/ai-code-suggestions.md +2413 -0
  18. package/references/checkpointing.md +595 -0
  19. package/references/collaboration-patterns.md +851 -0
  20. package/references/collaborative-sessions.md +1081 -0
  21. package/references/configuration-management.md +1810 -0
  22. package/references/cost-tracking.md +1095 -0
  23. package/references/enterprise-sso.md +2001 -0
  24. package/references/error-contracts-tests.md +1171 -0
  25. package/references/error-contracts-v2.md +968 -0
  26. package/references/error-contracts.md +3102 -0
  27. package/references/event-driven.md +1031 -0
  28. package/references/flow-orchestration.md +940 -0
  29. package/references/flow-visualization.md +1557 -0
  30. package/references/ide-integrations.md +3513 -0
  31. package/references/interrupt-system.md +681 -0
  32. package/references/kubernetes-deployment.md +3099 -0
  33. package/references/memory-system.md +683 -0
  34. package/references/mobile-companion.md +3236 -0
  35. package/references/multi-llm-providers.md +2494 -0
  36. package/references/multi-project-memory.md +1182 -0
  37. package/references/observability.md +793 -0
  38. package/references/output-schemas.md +858 -0
  39. package/references/parallel-worktrees.md +293 -0
  40. package/references/performance-profiler.md +955 -0
  41. package/references/plugin-system.md +1526 -0
  42. package/references/prompt-management.md +292 -0
  43. package/references/sandbox-execution.md +303 -0
  44. package/references/security-system.md +1253 -0
  45. package/references/streaming.md +696 -0
  46. package/references/testing-framework.md +1151 -0
  47. package/references/time-travel.md +802 -0
  48. package/references/tool-registry.md +886 -0
  49. package/references/voice-commands.md +3296 -0
  50. package/scripts/setup-parallel-worktrees.sh +319 -0
  51. package/skills/memory-update.md +207 -0
  52. package/skills/review.md +331 -0
  53. package/skills/techdebt.md +289 -0
  54. package/skills/tutor.md +219 -0
  55. package/templates/.planning/notes/.gitkeep +0 -0
  56. package/templates/CLAUDE.md.template +48 -0
  57. package/templates/agent-marketplace-config.json +220 -0
  58. package/templates/agent-protocol-config.json +136 -0
  59. package/templates/ai-suggestions-config.json +100 -0
  60. package/templates/checkpoint-state.json +61 -0
  61. package/templates/collaboration-config.json +157 -0
  62. package/templates/collaborative-sessions-config.json +153 -0
  63. package/templates/configuration-config.json +245 -0
  64. package/templates/cost-tracking-config.json +148 -0
  65. package/templates/enterprise-sso-config.json +438 -0
  66. package/templates/error-handling-config.json +79 -2
  67. package/templates/events-config.json +148 -0
  68. package/templates/flow-visualization-config.json +196 -0
  69. package/templates/ide-integrations-config.json +442 -0
  70. package/templates/kubernetes-config.json +764 -0
  71. package/templates/memory-state.json +84 -0
  72. package/templates/mistakes.md.template +52 -0
  73. package/templates/mobile-companion-config.json +600 -0
  74. package/templates/multi-llm-config.json +544 -0
  75. package/templates/multi-project-memory-config.json +145 -0
  76. package/templates/observability-config.json +109 -0
  77. package/templates/patterns.md.template +114 -0
  78. package/templates/performance-profiler-config.json +125 -0
  79. package/templates/plugin-config.json +170 -0
  80. package/templates/prompt-management-config.json +86 -0
  81. package/templates/sandbox-config.json +185 -0
  82. package/templates/schemas-config.json +65 -0
  83. package/templates/security-config.json +120 -0
  84. package/templates/streaming-config.json +72 -0
  85. package/templates/testing-config.json +81 -0
  86. package/templates/timetravel-config.json +62 -0
  87. package/templates/tool-registry-config.json +109 -0
  88. package/templates/voice-commands-config.json +658 -0
@@ -0,0 +1,452 @@
1
+ {
2
+ "id": "development_flow",
3
+ "name": "Standard Development Flow",
4
+ "version": "3.0.0",
5
+ "description": "Workflow completo para desarrollar features con quality gates",
6
+
7
+ "config": {
8
+ "timeout": 3600000,
9
+ "maxRetries": 3,
10
+ "checkpointEnabled": true,
11
+ "interruptEnabled": true,
12
+ "errorPolicy": "quorum"
13
+ },
14
+
15
+ "inputs": {
16
+ "task": { "type": "string", "required": true, "description": "Descripción de la tarea" },
17
+ "complexity": { "type": "enum", "values": ["low", "medium", "high"], "default": "medium" },
18
+ "profile": { "type": "enum", "values": ["default", "yolo", "careful"], "default": "default" }
19
+ },
20
+
21
+ "outputs": {
22
+ "filesCreated": { "type": "array" },
23
+ "filesModified": { "type": "array" },
24
+ "testsCreated": { "type": "array" },
25
+ "testsPassed": { "type": "boolean" },
26
+ "reviewApproved": { "type": "boolean" },
27
+ "success": { "type": "boolean" }
28
+ },
29
+
30
+ "nodes": [
31
+ {
32
+ "id": "start",
33
+ "type": "entry",
34
+ "next": "load_context"
35
+ },
36
+
37
+ {
38
+ "id": "load_context",
39
+ "type": "sequence",
40
+ "description": "Cargar contexto del proyecto",
41
+ "steps": [
42
+ {
43
+ "action": "read_files",
44
+ "files": ["CLAUDE.md", ".planning/patterns.md", ".planning/mistakes.md"],
45
+ "optional": true
46
+ },
47
+ {
48
+ "action": "load_memory",
49
+ "types": ["longTerm", "entity"]
50
+ }
51
+ ],
52
+ "next": "profile_router"
53
+ },
54
+
55
+ {
56
+ "id": "profile_router",
57
+ "type": "router",
58
+ "description": "Enrutar según perfil seleccionado",
59
+ "condition": "{{inputs.profile}}",
60
+ "routes": {
61
+ "yolo": "yolo_execute",
62
+ "careful": "careful_analyze",
63
+ "default": "standard_analyze"
64
+ },
65
+ "default": "standard_analyze"
66
+ },
67
+
68
+ {
69
+ "id": "yolo_execute",
70
+ "type": "agent",
71
+ "description": "Ejecución rápida sin ceremony",
72
+ "agent": "elsabro-yolo-dev",
73
+ "config": { "model": "opus", "timeout": 600000 },
74
+ "inputs": {
75
+ "task": "{{inputs.task}}",
76
+ "context": "{{state.loadedContext}}"
77
+ },
78
+ "next": "quick_verify"
79
+ },
80
+
81
+ {
82
+ "id": "quick_verify",
83
+ "type": "agent",
84
+ "agent": "elsabro-verifier",
85
+ "config": { "model": "haiku", "timeout": 120000 },
86
+ "next": "verify_check"
87
+ },
88
+
89
+ {
90
+ "id": "careful_analyze",
91
+ "type": "sequence",
92
+ "description": "Análisis exhaustivo para modo careful",
93
+ "steps": [
94
+ { "agent": "elsabro-analyst", "as": "requirements", "model": "opus" },
95
+ { "agent": "elsabro-analyst", "as": "risks", "model": "opus" },
96
+ { "agent": "elsabro-planner", "as": "detailed_plan", "model": "opus" }
97
+ ],
98
+ "next": "interrupt_plan_approval"
99
+ },
100
+
101
+ {
102
+ "id": "interrupt_plan_approval",
103
+ "type": "interrupt",
104
+ "reason": "Plan requires approval in careful mode",
105
+ "display": {
106
+ "title": "📋 Plan de Implementación",
107
+ "content": "{{nodes.careful_analyze.outputs.detailed_plan}}",
108
+ "risks": "{{nodes.careful_analyze.outputs.risks}}",
109
+ "options": [
110
+ { "id": "approve", "label": "✓ Aprobar y continuar" },
111
+ { "id": "modify", "label": "✎ Modificar plan" },
112
+ { "id": "reject", "label": "✗ Cancelar" }
113
+ ]
114
+ },
115
+ "routes": {
116
+ "approve": "parallel_implementation",
117
+ "modify": "careful_analyze",
118
+ "reject": "end_cancelled"
119
+ }
120
+ },
121
+
122
+ {
123
+ "id": "standard_analyze",
124
+ "type": "parallel",
125
+ "description": "Análisis paralelo estándar (4 agentes)",
126
+ "branches": [
127
+ {
128
+ "id": "explore",
129
+ "agent": "Explore",
130
+ "config": { "model": "haiku" },
131
+ "inputs": { "task": "Explorar estructura del codebase relevante para: {{inputs.task}}" }
132
+ },
133
+ {
134
+ "id": "code_explore",
135
+ "agent": "feature-dev:code-explorer",
136
+ "config": { "model": "haiku" },
137
+ "inputs": { "task": "Analizar código existente relacionado con: {{inputs.task}}" }
138
+ },
139
+ {
140
+ "id": "plan",
141
+ "agent": "Plan",
142
+ "config": { "model": "haiku" },
143
+ "inputs": { "task": "Diseñar plan de implementación para: {{inputs.task}}" }
144
+ },
145
+ {
146
+ "id": "tech_debt",
147
+ "agent": "general-purpose",
148
+ "config": { "model": "haiku" },
149
+ "inputs": { "task": "Escanear tech debt y patrones existentes relevantes para: {{inputs.task}}" }
150
+ }
151
+ ],
152
+ "joinType": "all",
153
+ "timeout": 300000,
154
+ "next": "merge_analysis"
155
+ },
156
+
157
+ {
158
+ "id": "merge_analysis",
159
+ "type": "agent",
160
+ "description": "Consolidar análisis de los 4 agentes",
161
+ "agent": "elsabro-analyst",
162
+ "config": { "model": "opus" },
163
+ "inputs": {
164
+ "exploration": "{{nodes.standard_analyze.outputs.branches.explore}}",
165
+ "codeAnalysis": "{{nodes.standard_analyze.outputs.branches.code_explore}}",
166
+ "plan": "{{nodes.standard_analyze.outputs.branches.plan}}",
167
+ "techDebt": "{{nodes.standard_analyze.outputs.branches.tech_debt}}",
168
+ "task": "Consolidar estos análisis en un plan unificado"
169
+ },
170
+ "next": "parallel_implementation"
171
+ },
172
+
173
+ {
174
+ "id": "parallel_implementation",
175
+ "type": "parallel",
176
+ "description": "Implementación paralela (2 agentes opus)",
177
+ "branches": [
178
+ {
179
+ "id": "implementation",
180
+ "agent": "elsabro-executor",
181
+ "config": { "model": "opus", "timeout": 900000 },
182
+ "inputs": {
183
+ "task": "{{inputs.task}}",
184
+ "plan": "{{nodes.merge_analysis.outputs.plan || nodes.careful_analyze.outputs.detailed_plan}}",
185
+ "patterns": "{{state.patterns}}",
186
+ "mistakes": "{{state.mistakes}}"
187
+ }
188
+ },
189
+ {
190
+ "id": "testing",
191
+ "agent": "elsabro-qa",
192
+ "config": { "model": "opus", "timeout": 600000 },
193
+ "inputs": {
194
+ "task": "Crear tests para: {{inputs.task}}",
195
+ "plan": "{{nodes.merge_analysis.outputs.plan || nodes.careful_analyze.outputs.detailed_plan}}"
196
+ }
197
+ }
198
+ ],
199
+ "joinType": "all",
200
+ "timeout": 1200000,
201
+ "next": "quality_gate"
202
+ },
203
+
204
+ {
205
+ "id": "quality_gate",
206
+ "type": "sequence",
207
+ "description": "Quality gate: tests, types, lint",
208
+ "steps": [
209
+ {
210
+ "action": "bash",
211
+ "command": "npm test 2>&1 || true",
212
+ "as": "tests",
213
+ "timeout": 120000
214
+ },
215
+ {
216
+ "action": "bash",
217
+ "command": "npx tsc --noEmit 2>&1 || true",
218
+ "as": "typescript",
219
+ "timeout": 60000
220
+ },
221
+ {
222
+ "action": "bash",
223
+ "command": "npm run lint 2>&1 || true",
224
+ "as": "lint",
225
+ "timeout": 60000
226
+ }
227
+ ],
228
+ "next": "quality_check"
229
+ },
230
+
231
+ {
232
+ "id": "quality_check",
233
+ "type": "condition",
234
+ "description": "Verificar si pasó quality gate",
235
+ "condition": "{{nodes.quality_gate.outputs.tests.exitCode === 0 && nodes.quality_gate.outputs.typescript.exitCode === 0}}",
236
+ "true": "parallel_review",
237
+ "false": "fix_issues"
238
+ },
239
+
240
+ {
241
+ "id": "fix_issues",
242
+ "type": "parallel",
243
+ "description": "Corregir problemas detectados (3 agentes)",
244
+ "branches": [
245
+ {
246
+ "id": "debugger",
247
+ "agent": "elsabro-debugger",
248
+ "config": { "model": "opus" },
249
+ "inputs": { "errors": "{{nodes.quality_gate.outputs}}" }
250
+ },
251
+ {
252
+ "id": "error_detective",
253
+ "agent": "error-detective",
254
+ "config": { "model": "opus" },
255
+ "inputs": { "errors": "{{nodes.quality_gate.outputs}}" }
256
+ },
257
+ {
258
+ "id": "refactor",
259
+ "agent": "refactoring-specialist",
260
+ "config": { "model": "opus" },
261
+ "inputs": { "issues": "{{nodes.quality_gate.outputs.lint}}" }
262
+ }
263
+ ],
264
+ "joinType": "all",
265
+ "next": "quality_gate",
266
+ "maxIterations": 3,
267
+ "onMaxIterations": "interrupt_manual_fix"
268
+ },
269
+
270
+ {
271
+ "id": "interrupt_manual_fix",
272
+ "type": "interrupt",
273
+ "reason": "Auto-fix failed after 3 attempts",
274
+ "display": {
275
+ "title": "⚠️ Corrección Manual Requerida",
276
+ "errors": "{{nodes.quality_gate.outputs}}",
277
+ "attempts": "3",
278
+ "options": [
279
+ { "id": "retry", "label": "Reintentar auto-fix" },
280
+ { "id": "skip", "label": "Continuar sin fix" },
281
+ { "id": "manual", "label": "Corregiré manualmente" }
282
+ ]
283
+ },
284
+ "routes": {
285
+ "retry": "fix_issues",
286
+ "skip": "parallel_review",
287
+ "manual": "wait_manual_fix"
288
+ }
289
+ },
290
+
291
+ {
292
+ "id": "wait_manual_fix",
293
+ "type": "interrupt",
294
+ "reason": "Waiting for manual fix",
295
+ "display": {
296
+ "title": "Esperando corrección manual",
297
+ "content": "Avísame cuando hayas corregido los errores",
298
+ "options": [
299
+ { "id": "done", "label": "Ya corregí los errores" }
300
+ ]
301
+ },
302
+ "routes": {
303
+ "done": "quality_gate"
304
+ }
305
+ },
306
+
307
+ {
308
+ "id": "parallel_review",
309
+ "type": "parallel",
310
+ "description": "Code review paralelo (3 agentes opus)",
311
+ "branches": [
312
+ {
313
+ "id": "code_reviewer",
314
+ "agent": "pr-review-toolkit:code-reviewer",
315
+ "config": { "model": "opus" },
316
+ "inputs": {
317
+ "changes": "{{collectOutputs('filesModified')}}",
318
+ "focus": "code quality, patterns, maintainability"
319
+ }
320
+ },
321
+ {
322
+ "id": "silent_failure_hunter",
323
+ "agent": "pr-review-toolkit:silent-failure-hunter",
324
+ "config": { "model": "opus" },
325
+ "inputs": {
326
+ "changes": "{{collectOutputs('filesModified')}}",
327
+ "focus": "error handling, edge cases, silent failures"
328
+ }
329
+ },
330
+ {
331
+ "id": "staff_review",
332
+ "agent": "code-reviewer",
333
+ "config": { "model": "opus" },
334
+ "inputs": {
335
+ "changes": "{{collectOutputs('filesModified')}}",
336
+ "focus": "Staff Engineer review: architecture, scalability, security"
337
+ }
338
+ }
339
+ ],
340
+ "joinType": "all",
341
+ "timeout": 600000,
342
+ "next": "review_check"
343
+ },
344
+
345
+ {
346
+ "id": "review_check",
347
+ "type": "condition",
348
+ "description": "Verificar si hay issues críticos en review",
349
+ "condition": "{{!hasCriticalIssues(nodes.parallel_review.outputs)}}",
350
+ "true": "verify_final",
351
+ "false": "fix_review_issues"
352
+ },
353
+
354
+ {
355
+ "id": "fix_review_issues",
356
+ "type": "agent",
357
+ "description": "Corregir issues del code review",
358
+ "agent": "elsabro-executor",
359
+ "config": { "model": "opus" },
360
+ "inputs": {
361
+ "task": "Corregir issues del code review",
362
+ "issues": "{{nodes.parallel_review.outputs}}"
363
+ },
364
+ "next": "parallel_review",
365
+ "maxIterations": 2,
366
+ "onMaxIterations": "verify_final"
367
+ },
368
+
369
+ {
370
+ "id": "verify_final",
371
+ "type": "agent",
372
+ "description": "Verificación final",
373
+ "agent": "elsabro-verifier",
374
+ "config": { "model": "opus" },
375
+ "next": "verify_check"
376
+ },
377
+
378
+ {
379
+ "id": "verify_check",
380
+ "type": "condition",
381
+ "condition": "{{nodes.verify_final.outputs.passed || nodes.quick_verify.outputs.passed}}",
382
+ "true": "post_mortem",
383
+ "false": "interrupt_verification_failed"
384
+ },
385
+
386
+ {
387
+ "id": "interrupt_verification_failed",
388
+ "type": "interrupt",
389
+ "reason": "Final verification failed",
390
+ "display": {
391
+ "title": "❌ Verificación Final Fallida",
392
+ "errors": "{{nodes.verify_final.outputs.errors}}",
393
+ "options": [
394
+ { "id": "retry", "label": "Reintentar desde implementación" },
395
+ { "id": "accept", "label": "Aceptar con errores" },
396
+ { "id": "cancel", "label": "Cancelar" }
397
+ ]
398
+ },
399
+ "routes": {
400
+ "retry": "parallel_implementation",
401
+ "accept": "post_mortem",
402
+ "cancel": "end_cancelled"
403
+ }
404
+ },
405
+
406
+ {
407
+ "id": "post_mortem",
408
+ "type": "sequence",
409
+ "description": "Post-mortem: guardar aprendizajes",
410
+ "steps": [
411
+ {
412
+ "action": "learn_patterns",
413
+ "from": "{{collectDecisions()}}"
414
+ },
415
+ {
416
+ "action": "learn_mistakes",
417
+ "from": "{{collectErrors()}}"
418
+ },
419
+ {
420
+ "action": "update_entity_memory",
421
+ "files": "{{collectOutputs('filesModified')}}"
422
+ }
423
+ ],
424
+ "next": "end_success"
425
+ },
426
+
427
+ {
428
+ "id": "end_success",
429
+ "type": "exit",
430
+ "status": "success",
431
+ "outputs": {
432
+ "filesCreated": "{{collectOutputs('filesCreated')}}",
433
+ "filesModified": "{{collectOutputs('filesModified')}}",
434
+ "testsCreated": "{{collectOutputs('testsCreated')}}",
435
+ "testsPassed": true,
436
+ "reviewApproved": true,
437
+ "success": true,
438
+ "summary": "{{generateSummary()}}"
439
+ }
440
+ },
441
+
442
+ {
443
+ "id": "end_cancelled",
444
+ "type": "exit",
445
+ "status": "cancelled",
446
+ "outputs": {
447
+ "success": false,
448
+ "reason": "Cancelled by user"
449
+ }
450
+ }
451
+ ]
452
+ }
@@ -0,0 +1,118 @@
1
+ {
2
+ "id": "quick_flow",
3
+ "name": "Quick Development Flow",
4
+ "version": "3.0.0",
5
+ "description": "Workflow simplificado para tareas rápidas con mínima ceremonia",
6
+
7
+ "config": {
8
+ "timeout": 900000,
9
+ "maxRetries": 2,
10
+ "checkpointEnabled": true,
11
+ "interruptEnabled": false,
12
+ "errorPolicy": "continue_all"
13
+ },
14
+
15
+ "inputs": {
16
+ "task": { "type": "string", "required": true }
17
+ },
18
+
19
+ "outputs": {
20
+ "filesModified": { "type": "array" },
21
+ "success": { "type": "boolean" }
22
+ },
23
+
24
+ "nodes": [
25
+ {
26
+ "id": "start",
27
+ "type": "entry",
28
+ "next": "quick_analyze"
29
+ },
30
+
31
+ {
32
+ "id": "quick_analyze",
33
+ "type": "agent",
34
+ "agent": "elsabro-quick-dev",
35
+ "config": { "model": "opus", "timeout": 300000 },
36
+ "inputs": {
37
+ "task": "{{inputs.task}}",
38
+ "mode": "analyze_and_plan"
39
+ },
40
+ "next": "quick_implement"
41
+ },
42
+
43
+ {
44
+ "id": "quick_implement",
45
+ "type": "agent",
46
+ "agent": "elsabro-quick-dev",
47
+ "config": { "model": "opus", "timeout": 600000 },
48
+ "inputs": {
49
+ "task": "{{inputs.task}}",
50
+ "plan": "{{nodes.quick_analyze.outputs.plan}}",
51
+ "mode": "implement"
52
+ },
53
+ "next": "quick_verify"
54
+ },
55
+
56
+ {
57
+ "id": "quick_verify",
58
+ "type": "sequence",
59
+ "steps": [
60
+ {
61
+ "action": "bash",
62
+ "command": "npm test -- --passWithNoTests 2>&1 || true",
63
+ "as": "tests",
64
+ "timeout": 60000
65
+ },
66
+ {
67
+ "action": "bash",
68
+ "command": "npx tsc --noEmit 2>&1 || true",
69
+ "as": "typescript",
70
+ "timeout": 30000
71
+ }
72
+ ],
73
+ "next": "verify_result"
74
+ },
75
+
76
+ {
77
+ "id": "verify_result",
78
+ "type": "condition",
79
+ "condition": "{{nodes.quick_verify.outputs.typescript.exitCode === 0}}",
80
+ "true": "end_success",
81
+ "false": "quick_fix"
82
+ },
83
+
84
+ {
85
+ "id": "quick_fix",
86
+ "type": "agent",
87
+ "agent": "elsabro-debugger",
88
+ "config": { "model": "haiku", "timeout": 180000 },
89
+ "inputs": {
90
+ "errors": "{{nodes.quick_verify.outputs}}"
91
+ },
92
+ "next": "quick_verify",
93
+ "maxIterations": 2,
94
+ "onMaxIterations": "end_with_warnings"
95
+ },
96
+
97
+ {
98
+ "id": "end_success",
99
+ "type": "exit",
100
+ "status": "success",
101
+ "outputs": {
102
+ "filesModified": "{{collectOutputs('filesModified')}}",
103
+ "success": true
104
+ }
105
+ },
106
+
107
+ {
108
+ "id": "end_with_warnings",
109
+ "type": "exit",
110
+ "status": "partial",
111
+ "outputs": {
112
+ "filesModified": "{{collectOutputs('filesModified')}}",
113
+ "success": true,
114
+ "warnings": "{{nodes.quick_verify.outputs}}"
115
+ }
116
+ }
117
+ ]
118
+ }