Desarrollador: Seguimiento Continuo de Issues
Disparador
Ejecútalo al FINAL de cada iteración de codificación significativa O cuando el usuario lo solicite explícitamente. NO lo ejecutes a media tarea — espera un punto de parada natural.
Este skill se carga por defecto al inicio de la sesión. Es seguro y no destructivo:
solo escribe en knowledge/issues/open/ y knowledge/issues/INDEX.md.
Algoritmo
Fase 1 — Escanear el Chat Actual
Revisa la conversación actual en busca de estos tipos de señales:
| Señal | Ejemplos | Prioridad |
|---|---|---|
| Error corregido | "PowerShell interpretó {{ }} mal", "ngx-translate v18 no tiene forRoot()" | ALTA |
| Descubrimiento de API | "linkedSignal requiere Node ≥22", "provideZonelessChangeDetection() es estable en Angular 22" | ALTA |
| Workaround encontrado | "Usa create_file en vez de Set-Content para templates" | MEDIA |
| Patrón repetido | El mismo error ocurrió 2+ veces en esta sesión | ALTA |
| Particularidad del proyecto | "Este monorepo usa npm workspaces", "El .gitignore excluye .github/" | MEDIA |
| Limitación de herramienta | "Copilot no expone usage.prompt_tokens directamente" | BAJA |
| Preferencia del usuario | "Prefiere comandos separados con ; no &&" | MEDIA |
Fase 2 — Referencia Cruzada con el Registro de Issues
- Lee
knowledge/issues/INDEX.md— obtén todos los IDs, títulos y categorías de issues existentes - Para cada señal de la Fase 1, intenta emparejarla con issues existentes:
- Emparejamiento por superposición de palabras clave (título + descripción)
- Emparejamiento por categoría + patrón de error similar
- Utiliza
grep_searchenknowledge/issues/open/para contenido relacionado
Fase 3 — Crear o Actualizar Issues
NUEVO issue (sin coincidencia encontrada)
Genera ID: ISSUE-YYYYMMDD-XXXX donde XXXX = primeros 4 caracteres hex de un UUID
PowerShell: [guid]::NewGuid().ToString().Substring(0, 4)
Ejemplo: ISSUE-20260624-a1b2
Crea knowledge/issues/open/ISSUE-YYYYMMDD-XXXX.md usando TEMPLATE.md
Establece occurrences=1, certainty=low, status=open
Establece created_by en "developer" (o el identificador del agente actual)
Inserta una nueva fila en INDEX.md → Tabla de Issues Abiertos
Si tienes datos de token de sesión, agrégalos opcionalmente a la sección de Evidencia
Los IDs se basan en UUID — no es necesario leer INDEX.md primero. Riesgo de colisión cero en múltiples desarrolladores trabajando simultáneamente.
ACTUALIZAR issue existente (coincidencia encontrada)
Incrementa occurrences en 1
Actualiza last_seen a la fecha de hoy
Agrega información de la sesión actual al array sessions
Reevalúa certainty:
- 1 ocurrencia → low
- 2 ocurrencias → medium
- 3+ ocurrencias → high
Actualiza el archivo del issue en open/ usando replace_string_in_file
Actualiza los conteos y datos de filas en INDEX.md
Conflictos de fusión en INDEX.md
Si dos desarrolladores agregan filas a INDEX.md simultáneamente, se producirá un conflicto de fusión de Git en el cuerpo de la tabla. Resolución: conserva TODAS las filas de ambas ramas; vuelve a contar los directorios para actualizar los números del Resumen.
Informe
Genera una tabla de resumen:
## Informe del Desarrollador — YYYY-MM-DD
| Acción | ID | Título | Categoría | Detalle |
|--------|----|--------|-----------|---------|
| 🆕 Nuevo | ISSUE-001 | ... | ... | Creado en open/ |
| 📈 Actualizado | ISSUE-002 | ... | ... | 1→2 ocurrencias, certeza baja→media |
Reglas Importantes
-
NUNCA promuevas issues. La promoción es responsabilidad del skill
ai-engineer. Tu único resultado son archivos de issues enopen/y actualizaciones enINDEX.md. -
NUNCA modifiques skills o archivos de memoria. Eres un observador de solo lectura de
.github/skills/y/memories/. No los toques. -
NUNCA crees un skill para algo que el modelo ya sabe — si es conocimiento común (por ejemplo, "usa
constnovar"), omítelo por completo. -
Mantén los archivos de issue concisos — el formato TEMPLATE.md es el máximo, no el mínimo. No escribas ensayos.
-
Aislamiento de sesión — el array
sessionsen el frontmatter almacena UUIDs de sesión. Usasession_store_sqlpara encontrar el UUID de la sesión actual si está disponible, de lo contrario usa un identificador basado en fecha. -
Siempre rellena
created_by— establécela en el nombre del agente o identificador de sesión para queai-engineerpueda rastrear los orígenes del issue durante la revisión.
Traspaso al Ingeniero de IA
Cuando un issue alcanza certainty: high (3+ ocurrencias), el skill
ai-engineer se encarga de la promoción. El skill developer NO decide qué promocionar
ni dónde — solo registra la intensidad de la señal. Ejecuta el skill ai-engineer como
un subagente cuando el usuario pida organizar el conocimiento, limpiar issues o
promover patrones.
Referencia de Rutas de Archivo
| Recurso | Ruta |
|---|---|
| Índice del registro de issues | knowledge/issues/INDEX.md |
| Plantilla de issue | knowledge/issues/TEMPLATE.md |
| Issues abiertos | knowledge/issues/open/ISSUE-XXX.md |
| Issues promovidos | knowledge/issues/promoted/ISSUE-XXX.md |
| Issues descartados | knowledge/issues/discarded/ISSUE-XXX.md |