@qubiit/lmagent 2.5.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 (155) hide show
  1. package/.editorconfig +18 -0
  2. package/AGENTS.md +169 -0
  3. package/CLAUDE.md +122 -0
  4. package/CONTRIBUTING.md +90 -0
  5. package/LICENSE +21 -0
  6. package/README.md +195 -0
  7. package/config/commands.yaml +194 -0
  8. package/config/levels.yaml +135 -0
  9. package/config/models.yaml +192 -0
  10. package/config/settings.yaml +405 -0
  11. package/config/tools-extended.yaml +534 -0
  12. package/config/tools.yaml +437 -0
  13. package/docs/assets/logo.png +0 -0
  14. package/docs/commands.md +132 -0
  15. package/docs/customization-guide.md +445 -0
  16. package/docs/getting-started.md +154 -0
  17. package/docs/how-to-start.md +242 -0
  18. package/docs/navigation-index.md +227 -0
  19. package/docs/usage-guide.md +113 -0
  20. package/install.js +1044 -0
  21. package/package.json +35 -0
  22. package/pyproject.toml +182 -0
  23. package/rules/_bootstrap.md +138 -0
  24. package/rules/agents-ia.md +607 -0
  25. package/rules/api-design.md +337 -0
  26. package/rules/automations-n8n.md +646 -0
  27. package/rules/code-style.md +570 -0
  28. package/rules/documentation.md +98 -0
  29. package/rules/security.md +316 -0
  30. package/rules/stack.md +395 -0
  31. package/rules/testing.md +326 -0
  32. package/rules/workflow.md +353 -0
  33. package/scripts/create_skill.js +300 -0
  34. package/scripts/validate_skills.js +283 -0
  35. package/skills/ai-agent-engineer/SKILL.md +394 -0
  36. package/skills/ai-agent-engineer/references/agent-patterns.md +149 -0
  37. package/skills/api-designer/SKILL.md +429 -0
  38. package/skills/api-designer/references/api-standards.md +13 -0
  39. package/skills/architect/SKILL.md +285 -0
  40. package/skills/architect/references/c4-model.md +133 -0
  41. package/skills/automation-engineer/SKILL.md +352 -0
  42. package/skills/automation-engineer/references/n8n-patterns.md +127 -0
  43. package/skills/backend-engineer/SKILL.md +261 -0
  44. package/skills/backend-engineer/assets/fastapi-project-structure.yaml +74 -0
  45. package/skills/backend-engineer/references/debugging-guide.md +174 -0
  46. package/skills/backend-engineer/references/design-patterns.md +208 -0
  47. package/skills/backend-engineer/scripts/scaffold_backend.py +313 -0
  48. package/skills/bmad-methodology/SKILL.md +202 -0
  49. package/skills/bmad-methodology/references/scale-adaptive-levels.md +141 -0
  50. package/skills/browser-agent/SKILL.md +502 -0
  51. package/skills/browser-agent/scripts/playwright_setup.ts +16 -0
  52. package/skills/code-reviewer/SKILL.md +306 -0
  53. package/skills/code-reviewer/references/code-review-checklist.md +16 -0
  54. package/skills/data-engineer/SKILL.md +474 -0
  55. package/skills/data-engineer/assets/pg-monitoring-queries.sql +154 -0
  56. package/skills/data-engineer/references/index-strategy.md +128 -0
  57. package/skills/data-engineer/scripts/backup_postgres.py +221 -0
  58. package/skills/devops-engineer/SKILL.md +547 -0
  59. package/skills/devops-engineer/references/ci-cd-patterns.md +265 -0
  60. package/skills/devops-engineer/scripts/docker_healthcheck.py +125 -0
  61. package/skills/document-generator/SKILL.md +746 -0
  62. package/skills/document-generator/references/pdf-generation.md +22 -0
  63. package/skills/frontend-engineer/SKILL.md +532 -0
  64. package/skills/frontend-engineer/references/accessibility-guide.md +146 -0
  65. package/skills/frontend-engineer/scripts/audit_bundle.py +144 -0
  66. package/skills/git-workflow/SKILL.md +374 -0
  67. package/skills/git-workflow/references/git-flow.md +25 -0
  68. package/skills/mcp-builder/SKILL.md +471 -0
  69. package/skills/mcp-builder/references/mcp-server-guide.md +23 -0
  70. package/skills/mobile-engineer/SKILL.md +502 -0
  71. package/skills/mobile-engineer/references/platform-guidelines.md +160 -0
  72. package/skills/orchestrator/SKILL.md +246 -0
  73. package/skills/orchestrator/references/methodology-routing.md +117 -0
  74. package/skills/orchestrator/references/persona-mapping.md +85 -0
  75. package/skills/orchestrator/references/routing-logic.md +110 -0
  76. package/skills/performance-engineer/SKILL.md +549 -0
  77. package/skills/performance-engineer/references/caching-patterns.md +181 -0
  78. package/skills/performance-engineer/scripts/profile_endpoint.py +170 -0
  79. package/skills/product-manager/SKILL.md +488 -0
  80. package/skills/product-manager/references/prioritization-frameworks.md +126 -0
  81. package/skills/prompt-engineer/SKILL.md +433 -0
  82. package/skills/prompt-engineer/references/prompt-patterns.md +158 -0
  83. package/skills/qa-engineer/SKILL.md +441 -0
  84. package/skills/qa-engineer/references/testing-strategy.md +166 -0
  85. package/skills/qa-engineer/scripts/run_coverage.py +147 -0
  86. package/skills/scrum-master/SKILL.md +225 -0
  87. package/skills/scrum-master/references/sprint-ceremonies.md +159 -0
  88. package/skills/security-analyst/SKILL.md +390 -0
  89. package/skills/security-analyst/references/owasp-top10.md +188 -0
  90. package/skills/security-analyst/scripts/audit_security.py +242 -0
  91. package/skills/seo-auditor/SKILL.md +523 -0
  92. package/skills/seo-auditor/references/seo-checklist.md +17 -0
  93. package/skills/spec-driven-dev/SKILL.md +342 -0
  94. package/skills/spec-driven-dev/references/phase-gates.md +107 -0
  95. package/skills/supabase-expert/SKILL.md +602 -0
  96. package/skills/supabase-expert/references/supabase-patterns.md +19 -0
  97. package/skills/swe-agent/SKILL.md +311 -0
  98. package/skills/swe-agent/references/trajectory-format.md +134 -0
  99. package/skills/systematic-debugger/SKILL.md +512 -0
  100. package/skills/systematic-debugger/references/debugging-guide.md +12 -0
  101. package/skills/tech-lead/SKILL.md +409 -0
  102. package/skills/tech-lead/references/code-review-checklist.md +111 -0
  103. package/skills/technical-writer/SKILL.md +631 -0
  104. package/skills/technical-writer/references/doc-templates.md +218 -0
  105. package/skills/testing-strategist/SKILL.md +476 -0
  106. package/skills/testing-strategist/references/testing-pyramid.md +16 -0
  107. package/skills/ux-ui-designer/SKILL.md +419 -0
  108. package/skills/ux-ui-designer/references/design-system-foundation.md +168 -0
  109. package/skills_overview.txt +94 -0
  110. package/templates/PROJECT_KICKOFF.md +284 -0
  111. package/templates/SKILL_TEMPLATE.md +131 -0
  112. package/templates/USAGE.md +95 -0
  113. package/templates/agent-python/README.md +71 -0
  114. package/templates/agent-python/agent.py +272 -0
  115. package/templates/agent-python/config.yaml +76 -0
  116. package/templates/agent-python/prompts/system.md +109 -0
  117. package/templates/agent-python/requirements.txt +7 -0
  118. package/templates/automation-n8n/README.md +14 -0
  119. package/templates/automation-n8n/webhook-handler.json +57 -0
  120. package/templates/backend-node/Dockerfile +12 -0
  121. package/templates/backend-node/README.md +15 -0
  122. package/templates/backend-node/package.json +30 -0
  123. package/templates/backend-node/src/index.ts +19 -0
  124. package/templates/backend-node/src/routes.ts +7 -0
  125. package/templates/backend-node/tsconfig.json +22 -0
  126. package/templates/backend-python/Dockerfile +11 -0
  127. package/templates/backend-python/README.md +78 -0
  128. package/templates/backend-python/app/core/config.py +12 -0
  129. package/templates/backend-python/app/core/database.py +12 -0
  130. package/templates/backend-python/app/main.py +17 -0
  131. package/templates/backend-python/app/routers/__init__.py +1 -0
  132. package/templates/backend-python/app/routers/health.py +7 -0
  133. package/templates/backend-python/requirements-dev.txt +6 -0
  134. package/templates/backend-python/requirements.txt +4 -0
  135. package/templates/backend-python/tests/test_health.py +9 -0
  136. package/templates/checkpoint.yaml +117 -0
  137. package/templates/database/README.md +474 -0
  138. package/templates/frontend-react/README.md +446 -0
  139. package/templates/plan.yaml +320 -0
  140. package/templates/session.yaml +125 -0
  141. package/templates/spec.yaml +229 -0
  142. package/templates/tasks.yaml +330 -0
  143. package/workflows/bugfix-backend.md +380 -0
  144. package/workflows/documentation.md +232 -0
  145. package/workflows/generate-prd.md +320 -0
  146. package/workflows/ideation.md +396 -0
  147. package/workflows/new-agent-ia.md +497 -0
  148. package/workflows/new-automation.md +374 -0
  149. package/workflows/new-feature.md +290 -0
  150. package/workflows/optimize-performance.md +373 -0
  151. package/workflows/resolve-github-issue.md +524 -0
  152. package/workflows/security-review.md +291 -0
  153. package/workflows/spec-driven.md +476 -0
  154. package/workflows/testing-strategy.md +296 -0
  155. package/workflows/third-party-integration.md +277 -0
@@ -0,0 +1,524 @@
1
+ ---
2
+ description: Workflow autónomo para resolver issues de GitHub (inspirado en SWE-agent)
3
+ level: auto-detect
4
+ personas: [backend-engineer, qa-engineer]
5
+ autonomous: true
6
+ ---
7
+
8
+ # Resolve GitHub Issue Workflow
9
+
10
+ Este workflow permite que un agente analice y resuelva issues de GitHub de forma autónoma, inspirado en **SWE-agent**.
11
+
12
+ ## Pre-requisitos
13
+
14
+ 1. Leer [AGENTS.md](../AGENTS.md)
15
+ 2. Leer [rules/workflow.md](../rules/workflow.md)
16
+ 3. Issue con etiqueta `agent-resolvable` o asignado al agente
17
+ 4. `GITHUB_TOKEN` configurado
18
+
19
+ ## Información de Entrada
20
+
21
+ ```yaml
22
+ # Input esperado
23
+ github_issue:
24
+ owner: "org-name"
25
+ repo: "repo-name"
26
+ issue_number: 123
27
+
28
+ options:
29
+ max_cost: 2.00 # USD máximo
30
+ max_iterations: 15 # Pasos máximos
31
+ auto_create_pr: false # Crear PR automáticamente
32
+ require_review: true # Pedir review antes de PR
33
+ ```
34
+
35
+ ---
36
+
37
+ ## Flujo de Resolución
38
+
39
+ ```
40
+ ┌─────────────────────────────────────────────────────────────────┐
41
+ │ RESOLVE GITHUB ISSUE WORKFLOW │
42
+ └─────────────────────────────────────────────────────────────────┘
43
+
44
+ ┌──────────────────────────────────────────────────────────┐
45
+ │ 1. FETCH ISSUE │
46
+ │ • Obtener título, descripción, comentarios │
47
+ │ • Identificar tipo (bug, feature, refactor) │
48
+ │ • Clasificar nivel de complejidad │
49
+ └────────────────────────┬─────────────────────────────────┘
50
+
51
+
52
+ ┌──────────────────────────────────────────────────────────┐
53
+ │ 2. ANALYZE & PLAN │
54
+ │ • Entender el problema │
55
+ │ • Localizar archivos relevantes │
56
+ │ • Proponer solución │
57
+ └────────────────────────┬─────────────────────────────────┘
58
+
59
+
60
+ ┌──────────────────────────────────────────────────────────┐
61
+ │ 3. REPRODUCE (si es bug) │
62
+ │ • Crear script de reproducción │
63
+ │ • Ejecutar en sandbox │
64
+ │ • Confirmar que el error ocurre │
65
+ └────────────────────────┬─────────────────────────────────┘
66
+
67
+
68
+ ┌──────────────────────────────────────────────────────────┐
69
+ │ 4. IMPLEMENT │
70
+ │ • Hacer cambios mínimos necesarios │
71
+ │ • Seguir patrones existentes │
72
+ │ • Agregar/actualizar tests │
73
+ └────────────────────────┬─────────────────────────────────┘
74
+
75
+
76
+ ┌──────────────────────────────────────────────────────────┐
77
+ │ 5. VALIDATE │
78
+ │ • Verificar que reproducción ya no falla │
79
+ │ • Ejecutar test suite completo │
80
+ │ • Verificar linting │
81
+ └────────────────────────┬─────────────────────────────────┘
82
+
83
+
84
+ ┌──────────────────────────────────────────────────────────┐
85
+ │ 6. SUBMIT │
86
+ │ • Crear branch fix/issue-{number} │
87
+ │ • Commit con mensaje descriptivo │
88
+ │ • Crear PR (o pedir review primero) │
89
+ │ • Adjuntar trajectory log │
90
+ └──────────────────────────────────────────────────────────┘
91
+ ```
92
+
93
+ ---
94
+
95
+ ## Paso 1: Fetch Issue
96
+
97
+ ### 1.1 Obtener Información del Issue
98
+
99
+ ```python
100
+ # Pseudocódigo del proceso
101
+ async def fetch_issue(owner: str, repo: str, issue_number: int):
102
+ """Obtiene toda la información del issue."""
103
+
104
+ # Obtener issue principal
105
+ issue = await github.get_issue(owner, repo, issue_number)
106
+
107
+ # Obtener comentarios
108
+ comments = await github.get_issue_comments(owner, repo, issue_number)
109
+
110
+ # Obtener PRs relacionados (si hay)
111
+ related_prs = await github.search_prs(f"fixes #{issue_number}")
112
+
113
+ return {
114
+ "title": issue.title,
115
+ "body": issue.body,
116
+ "labels": issue.labels,
117
+ "comments": comments,
118
+ "related_prs": related_prs,
119
+ "created_at": issue.created_at,
120
+ "author": issue.user.login
121
+ }
122
+ ```
123
+
124
+ ### 1.2 Clasificar Issue
125
+
126
+ ```
127
+ Determinar tipo:
128
+ - bug: Contiene "error", "bug", "fix", "broken"
129
+ - feature: Contiene "add", "new", "implement", "feature"
130
+ - refactor: Contiene "refactor", "improve", "optimize"
131
+ - docs: Contiene "doc", "readme", "typo"
132
+
133
+ Determinar nivel:
134
+ - Level 0: Typos, docs
135
+ - Level 1: Bug fix simple, feature pequeño
136
+ - Level 2: Bug complejo, feature mediano
137
+ - Level 3: Cambio arquitectural, múltiples archivos
138
+ ```
139
+
140
+ ---
141
+
142
+ ## Paso 2: Analyze & Plan
143
+
144
+ ### 2.1 Localizar Código Relevante
145
+
146
+ ```
147
+ Estrategias de búsqueda:
148
+ 1. Buscar keywords del issue en el código
149
+ 2. Buscar archivos mencionados en stacktrace
150
+ 3. Buscar funciones/clases mencionadas
151
+ 4. Analizar imports y dependencias
152
+ ```
153
+
154
+ ### 2.2 Crear Plan de Solución
155
+
156
+ ```markdown
157
+ ## Plan de Resolución: Issue #{number}
158
+
159
+ ### Problema
160
+ [Resumen del problema]
161
+
162
+ ### Causa Raíz (si es bug)
163
+ [Análisis de la causa]
164
+
165
+ ### Archivos a Modificar
166
+ - [ ] `path/to/file1.py` - [Cambio]
167
+ - [ ] `path/to/file2.py` - [Cambio]
168
+
169
+ ### Tests Necesarios
170
+ - [ ] Test que reproduce el issue
171
+ - [ ] Test del fix
172
+
173
+ ### Riesgos
174
+ - [Posible riesgo 1]
175
+ - [Posible riesgo 2]
176
+ ```
177
+
178
+ ---
179
+
180
+ ## Paso 3: Reproduce (para bugs)
181
+
182
+ ### 3.1 Crear Script de Reproducción
183
+
184
+ ```python
185
+ # reproduce_issue_{number}.py
186
+ """
187
+ Script para reproducir Issue #{number}.
188
+
189
+ Issue: {title}
190
+ URL: {url}
191
+
192
+ Comportamiento esperado: {expected}
193
+ Comportamiento actual: {actual}
194
+ """
195
+
196
+ import asyncio
197
+ from app.main import app
198
+ from httpx import AsyncClient
199
+
200
+ async def reproduce():
201
+ """Intenta reproducir el issue."""
202
+ async with AsyncClient(app=app, base_url="http://test") as client:
203
+ # Configurar estado según el issue
204
+
205
+ # Ejecutar acción que causa el problema
206
+ response = await client.post("/endpoint", json={
207
+ # Datos del issue
208
+ })
209
+
210
+ # Verificar si el bug ocurre
211
+ print(f"Status: {response.status_code}")
212
+ print(f"Response: {response.json()}")
213
+
214
+ # Assert que demuestra el bug
215
+ # assert response.status_code == 200 # FALLA antes del fix
216
+
217
+ if __name__ == "__main__":
218
+ asyncio.run(reproduce())
219
+ ```
220
+
221
+ ### 3.2 Ejecutar en Sandbox
222
+
223
+ ```
224
+ Usar sandbox_execute tool:
225
+ - language: python
226
+ - timeout: 30s
227
+ - network: none (aislado)
228
+
229
+ Verificar que el error ocurre como se describe en el issue.
230
+ ```
231
+
232
+ ---
233
+
234
+ ## Paso 4: Implement
235
+
236
+ ### 4.1 Principios de Implementación
237
+
238
+ ```
239
+ ✅ HACER:
240
+ - Cambios mínimos necesarios
241
+ - Seguir patrones existentes en el código
242
+ - Mantener estilo consistente
243
+ - Agregar comentarios donde sea necesario
244
+
245
+ ❌ NO HACER:
246
+ - Refactors no relacionados
247
+ - Cambios de estilo/formato masivos
248
+ - Agregar dependencias innecesarias
249
+ - Cambiar APIs públicas sin necesidad
250
+ ```
251
+
252
+ ### 4.2 Logging de Acciones (Trajectory)
253
+
254
+ Cada paso se registra en formato SWE-agent:
255
+
256
+ ```
257
+ 🤠 INFO ========================= STEP {n} =========================
258
+ 💭 THOUGHT: {razonamiento del agente}
259
+ 🎬 ACTION: {herramienta usada con parámetros}
260
+ 📤 OBSERVATION: {resultado de la acción}
261
+ ```
262
+
263
+ Ejemplo:
264
+ ```
265
+ 🤠 INFO ========================= STEP 3 =========================
266
+ 💭 THOUGHT: El error está en la función validate_email().
267
+ No está manejando el caso cuando el email es None.
268
+ Necesito agregar un check al inicio de la función.
269
+ 🎬 ACTION: file_write(
270
+ path="app/utils/validators.py",
271
+ content="...",
272
+ mode="replace"
273
+ )
274
+ 📤 OBSERVATION: File updated successfully. 5 lines changed.
275
+ ```
276
+
277
+ ---
278
+
279
+ ## Paso 5: Validate
280
+
281
+ ### 5.1 Re-ejecutar Reproducción
282
+
283
+ ```bash
284
+ python reproduce_issue_{number}.py
285
+
286
+ # Debería NO mostrar el error ahora
287
+ ```
288
+
289
+ ### 5.2 Ejecutar Test Suite
290
+
291
+ ```bash
292
+ # Ejecutar todos los tests
293
+ pytest --cov=app
294
+
295
+ # Verificar linting
296
+ ruff check .
297
+ ruff format --check .
298
+
299
+ # Verificar types (si aplica)
300
+ mypy app/
301
+ ```
302
+
303
+ ### 5.3 Criterios de Éxito
304
+
305
+ - [ ] Script de reproducción pasa
306
+ - [ ] Tests existentes pasan
307
+ - [ ] Nuevos tests pasan
308
+ - [ ] Linting pasa
309
+ - [ ] Cobertura no disminuye
310
+
311
+ ---
312
+
313
+ ## Paso 6: Submit
314
+
315
+ ### 6.1 Crear Branch y Commit
316
+
317
+ ```bash
318
+ # Crear branch
319
+ git checkout -b fix/issue-{number}
320
+
321
+ # Stage cambios
322
+ git add -A
323
+
324
+ # Commit con mensaje descriptivo
325
+ git commit -m "fix(module): descripción corta
326
+
327
+ Fixes #{number}
328
+
329
+ - [Cambio 1]
330
+ - [Cambio 2]
331
+
332
+ Root cause: [Explicación breve]
333
+
334
+ 🤖 Resolved by LMAgent
335
+ Trajectory: {trajectory_id}"
336
+ ```
337
+
338
+ ### 6.2 Crear Pull Request
339
+ > 💡 **Tip**: Usa `/prompt` para generar la descripción del PR basada en el Trajectory Log.
340
+
341
+ ```markdown
342
+ ## Fix: {Issue Title}
343
+
344
+ Fixes #{number}
345
+
346
+ ### Problem
347
+ {Descripción del problema}
348
+
349
+ ### Root Cause
350
+ {Análisis de causa raíz}
351
+
352
+ ### Solution
353
+ {Descripción de la solución}
354
+
355
+ ### Testing
356
+ - [x] Created reproduction script
357
+ - [x] Fixed issue verified
358
+ - [x] All existing tests pass
359
+ - [x] Added new tests for fix
360
+
361
+ ### Trajectory
362
+ <details>
363
+ <summary>Agent execution log</summary>
364
+
365
+ {Trajectory completo en formato collapsible}
366
+
367
+ </details>
368
+
369
+ ---
370
+ 🤖 *This PR was created by LMAgent*
371
+ Cost: ${cost}
372
+ Iterations: {iterations}
373
+ Time: {time}
374
+ ```
375
+
376
+ ### 6.3 Limpiar
377
+
378
+ ```bash
379
+ # Eliminar script de reproducción (ya hay test)
380
+ rm reproduce_issue_{number}.py
381
+
382
+ # Guardar trajectory para análisis
383
+ mv trajectory.json trajectories/issue-{number}-{timestamp}.json
384
+ ```
385
+
386
+ ---
387
+
388
+ ## Límites de Seguridad
389
+
390
+ ### Costo
391
+ ```yaml
392
+ max_cost_per_issue: 2.00 # USD
393
+ alert_at: 1.50 # Alertar al 75%
394
+ ```
395
+
396
+ ### Tiempo
397
+ ```yaml
398
+ max_iterations: 15
399
+ max_time_minutes: 30
400
+ ```
401
+
402
+ ### Acceso
403
+ ```yaml
404
+ allowed_operations:
405
+ - file_read
406
+ - file_write (non-protected)
407
+ - file_search
408
+ - sandbox_execute
409
+ - github_comment
410
+ - github_pr_create
411
+
412
+ blocked_operations:
413
+ - deploy
414
+ - database_write (production)
415
+ - secrets_access
416
+ ```
417
+
418
+ ### Archivos Protegidos
419
+ ```yaml
420
+ protected_files:
421
+ - ".env*"
422
+ - "**/secrets/**"
423
+ - "docker-compose.prod.yml"
424
+ - "**/migrations/**" # Requiere review
425
+ ```
426
+
427
+ ---
428
+
429
+ ## Output del Workflow
430
+
431
+ ### Éxito
432
+ ```json
433
+ {
434
+ "success": true,
435
+ "issue_number": 123,
436
+ "resolution": {
437
+ "type": "fix",
438
+ "files_changed": ["app/utils/validators.py", "tests/test_validators.py"],
439
+ "lines_added": 15,
440
+ "lines_removed": 3
441
+ },
442
+ "pr": {
443
+ "number": 456,
444
+ "url": "https://github.com/org/repo/pull/456"
445
+ },
446
+ "cost": 0.45,
447
+ "iterations": 8,
448
+ "time_seconds": 120,
449
+ "trajectory_id": "issue-123-1705838400"
450
+ }
451
+ ```
452
+
453
+ ### Fallo
454
+ ```json
455
+ {
456
+ "success": false,
457
+ "issue_number": 123,
458
+ "reason": "Could not reproduce the issue",
459
+ "suggestion": "Issue may need more information or manual investigation",
460
+ "cost": 0.15,
461
+ "iterations": 5,
462
+ "trajectory_id": "issue-123-1705838400",
463
+ "comment_posted": true
464
+ }
465
+ ```
466
+
467
+ ---
468
+
469
+ ## Comentario en Issue (si falla)
470
+
471
+ ```markdown
472
+ 🤖 **LMAgent Automated Analysis**
473
+
474
+ I attempted to resolve this issue automatically but encountered difficulties:
475
+
476
+ **Status**: Unable to complete resolution
477
+
478
+ **Reason**: {reason}
479
+
480
+ **What I tried**:
481
+ 1. {step_1}
482
+ 2. {step_2}
483
+ 3. {step_3}
484
+
485
+ **Suggestions for manual investigation**:
486
+ - {suggestion_1}
487
+ - {suggestion_2}
488
+
489
+ <details>
490
+ <summary>Execution Details</summary>
491
+
492
+ - Cost: ${cost}
493
+ - Iterations: {iterations}
494
+ - Trajectory: {link}
495
+
496
+ </details>
497
+
498
+ ---
499
+ *This is an automated analysis. A human developer should review this issue.*
500
+ ```
501
+
502
+ ---
503
+
504
+ ## Checklist de Resolución
505
+
506
+ ### Pre-ejecución
507
+ - [ ] Issue tiene información suficiente
508
+ - [ ] Etiqueta `agent-resolvable` presente
509
+ - [ ] GITHUB_TOKEN configurado
510
+ - [ ] Repositorio clonado localmente
511
+
512
+ ### Durante ejecución
513
+ - [ ] Issue analizado y clasificado
514
+ - [ ] Plan de solución creado
515
+ - [ ] Bug reproducido (si aplica)
516
+ - [ ] Fix implementado
517
+ - [ ] Tests agregados
518
+ - [ ] Validación pasada
519
+
520
+ ### Post-ejecución
521
+ - [ ] PR creado (o cambios listos para review)
522
+ - [ ] Trajectory guardado
523
+ - [ ] Issue comentado con resultado
524
+ - [ ] Métricas registradas