nexakit 0.1.0 → 0.2.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/.claude-plugin/marketplace.json +18 -1
- package/README.md +40 -30
- package/assets/brand/README.md +0 -2
- package/assets/runtime/package-lock.json +2 -2
- package/bin/agent-task.js +12 -10
- package/bin/agent-toolkit-gemini.js +11 -9
- package/bin/agent-toolkit-inbox.js +12 -10
- package/bin/agent-toolkit-mcp.js +14 -8
- package/bin/agent-toolkit.js +12 -9
- package/bin/nexakit.js +12 -9
- package/bin/project-memory-mcp.js +12 -9
- package/bin/project-memory.js +5 -3
- package/{skills/depurar → catalogs/skills/vercel-composition-patterns}/LICENSE.txt +6 -6
- package/catalogs/skills/vercel-react-best-practices/LICENSE.txt +27 -0
- package/catalogs/skills.json +70 -35
- package/docs/skills/evidencias/2026-10-28-recomendador-preparacion.md +1 -1
- package/package.json +5 -3
- package/plugins/nexakit-modelo/.claude-plugin/plugin.json +1 -0
- package/plugins/nexakit-modelo/hooks/hooks.json +1 -0
- package/plugins/nexakit-modelo/hooks/register.js +48 -0
- package/plugins/nexakit-modelo/hooks/status.js +8 -0
- package/plugins/nexakit-modelo/tests/register.test.ts +21 -0
- package/plugins/nexakit-panel/.claude-plugin/plugin.json +1 -0
- package/plugins/nexakit-panel/README.md +20 -0
- package/plugins/nexakit-panel/hooks/hooks.json +1 -0
- package/plugins/nexakit-panel/hooks/lienzo.js +382 -0
- package/plugins/nexakit-panel/hooks/panel.js +279 -0
- package/plugins/nexakit-panel/hooks/register.tsx +248 -0
- package/plugins/nexakit-panel/tests/lienzo.test.ts +142 -0
- package/plugins/nexakit-panel/tests/panel.test.ts +240 -0
- package/plugins/nexakit-panel/tests/register.test.ts +167 -0
- package/plugins/nexakit-panel/types/index.d.ts +41 -0
- package/plugins/nexakit-sesion/.claude-plugin/plugin.json +1 -0
- package/plugins/nexakit-sesion/README.md +12 -0
- package/plugins/nexakit-sesion/hooks/aviso.js +38 -0
- package/plugins/nexakit-sesion/hooks/hooks.json +1 -0
- package/plugins/nexakit-sesion/hooks/register.js +28 -0
- package/plugins/nexakit-sesion/tests/register.test.ts +96 -0
- package/schemas/skill-catalog.schema.json +9 -2
- package/skills/cerrar-memoria/SKILL.md +6 -2
- package/skills/cerrar-memoria/references/cierre.md +5 -1
- package/skills/elegir-modelo/SKILL.md +68 -0
- package/skills/elegir-modelo/modelos.mjs +108 -0
- package/skills/gemini/SKILL.md +1 -1
- package/skills/project-handoff/SKILL.md +39 -12
- package/skills/project-handoff/references/handoff-template.md +24 -17
- package/skills/quality-gate/SKILL.md +6 -12
- package/skills/revisar/SKILL.md +6 -16
- package/skills/{desarrollo-con-pruebas/LICENSE.txt → revisar-skill/LICENSE-find-skills.txt} +5 -5
- package/skills/revisar-skill/SKILL.md +94 -0
- package/skills/revision-cruzada/SKILL.md +53 -475
- package/skills/web-design-guidelines/AGENTS.md +156 -0
- package/skills/{spec-driven-development → web-design-guidelines}/LICENSE.txt +1 -6
- package/skills/web-design-guidelines/SKILL.md +20 -30
- package/src/agent-models.js +53 -13
- package/src/brand.js +117 -0
- package/src/cli-executable.js +5 -3
- package/src/cli.js +16 -9
- package/src/connect.js +56 -4
- package/src/init.js +9 -1
- package/src/install-lock.js +127 -0
- package/src/install-registry.js +61 -0
- package/src/legacy-repair.js +71 -0
- package/src/link-states.js +172 -0
- package/src/memory-locator.js +118 -0
- package/src/missing-dependencies.js +21 -0
- package/src/model-command.js +147 -0
- package/src/panel-cli.js +182 -0
- package/src/project-root.js +41 -0
- package/src/project-signals.js +339 -0
- package/src/recommend-report.js +77 -0
- package/src/review-instructions.js +211 -0
- package/src/review-policy.js +35 -0
- package/src/revision-adapters.js +157 -0
- package/src/revision-context.js +86 -0
- package/src/revision-isolation.js +222 -0
- package/src/revision-process.js +103 -0
- package/src/revision-provenance.js +89 -0
- package/src/revision-snapshot.js +120 -0
- package/src/revision.js +242 -0
- package/src/setup-apply.js +231 -0
- package/src/setup-plan.js +231 -0
- package/src/setup-state.js +277 -0
- package/src/setup-tui.js +555 -0
- package/src/skill-catalog-add.js +91 -0
- package/src/skill-catalog-audit.js +26 -27
- package/src/skill-files.js +39 -0
- package/src/skill-recommendations.js +321 -208
- package/src/skill-scan-report.js +14 -0
- package/src/skill-scan.js +178 -0
- package/src/stable-command.js +53 -0
- package/src/stable-install.js +222 -0
- package/src/superpowers.js +133 -0
- package/src/sync-apply.js +8 -5
- package/src/sync-files.js +2 -1
- package/src/terminal-text.js +68 -0
- package/src/toolkit-cli.js +397 -70
- package/src/toolkit-commands-guide.js +53 -39
- package/src/toolkit-setup.js +507 -110
- package/assets/brand/agent-toolkit-mark-v1.png +0 -0
- package/skills/depurar/SKILL.md +0 -69
- package/skills/depurar/agents/openai.yaml +0 -7
- package/skills/depurar/references/tecnicas-de-diagnostico.md +0 -37
- package/skills/desarrollo-con-pruebas/SKILL.md +0 -55
- package/skills/desarrollo-con-pruebas/agents/openai.yaml +0 -7
- package/skills/desarrollo-con-pruebas/references/buenas-pruebas.md +0 -33
- package/skills/estado/SKILL.md +0 -41
- package/skills/programar/SKILL.md +0 -19
- package/skills/spec-driven-development/SKILL.md +0 -48
- package/skills/spec-driven-development/agents/openai.yaml +0 -7
- package/skills/spec-driven-development/references/spec-template.md +0 -55
- package/skills/spec-driven-development/references/workflow.md +0 -70
- package/src/toolkit-tui.js +0 -961
|
Binary file
|
package/skills/depurar/SKILL.md
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: depurar
|
|
3
|
-
license: MIT
|
|
4
|
-
description: Investiga la causa raíz de fallos, pruebas en rojo, regresiones, intermitencias o comportamientos inesperados antes de proponer o aplicar correcciones. Úsala ante cualquier defecto técnico investigable; usa un ajuste directo sin esta skill solo para erratas textuales obvias o preguntas conceptuales sin fallo en ejecución.
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Depurar por causa raíz
|
|
8
|
-
|
|
9
|
-
Reúne evidencia reproducible y localiza el origen del fallo antes de proponer cambios de código. Parchear el síntoma sin entender la causa genera regresiones y retrabajo.
|
|
10
|
-
|
|
11
|
-
## Cuándo aplica y cuándo usar algo más simple
|
|
12
|
-
|
|
13
|
-
| Situación | Proceso |
|
|
14
|
-
| --- | --- |
|
|
15
|
-
| Errata evidente señalada por el usuario o fallo de sintaxis trivial recién introducido | Corregir o indicar la línea exacta y ejecutar la comprobación directa. |
|
|
16
|
-
| Pregunta sobre cómo funciona un módulo sin error activo | Inspeccionar y explicar en lectura; no abrir proceso de depuración. |
|
|
17
|
-
| Prueba fallida, error en ejecución, regresión, bloqueo o fallo de integración | Seguir las **4 fases** de esta skill sin saltar a parches tentativos. |
|
|
18
|
-
| Fallo intermitente, carrera o problema entre múltiples capas (CLI, MCP, red, base de datos) | Seguir las 4 fases y cargar [las técnicas de diagnóstico](references/tecnicas-de-diagnostico.md). |
|
|
19
|
-
|
|
20
|
-
Si en la sesión ya se aplicó `systematic-debugging` de Superpowers o el usuario ya aportó reproducción y trazas verificadas, **reutiliza esa evidencia** y retoma en la fase correspondiente sin repetir pasos resueltos.
|
|
21
|
-
|
|
22
|
-
## Regla principal
|
|
23
|
-
|
|
24
|
-
**Ninguna corrección propuesta o aplicada sin investigar primero la causa raíz.**
|
|
25
|
-
|
|
26
|
-
Si te descubres pensando «pruebo este cambio rápido a ver si pasa» o proponiendo una lista de arreglos antes de leer la traza y el flujo de datos, detente y vuelve a la Fase 1.
|
|
27
|
-
|
|
28
|
-
## Las 4 fases
|
|
29
|
-
|
|
30
|
-
### Fase 1: Investigar y reproducir
|
|
31
|
-
|
|
32
|
-
1. **Leer el error completo:** inspecciona mensajes, códigos de salida, rutas, líneas y trazas enteras sin ignorar advertencias previas.
|
|
33
|
-
2. **Reproducir con consistencia:** ejecuta (cuando esté permitido) el comando o caso mínimo que dispara el problema. Si no es reproducible todavía, reúne más datos en lugar de adivinar.
|
|
34
|
-
3. **Revisar qué cambió:** consulta `git status`, `git diff`, commits recientes, configuración local o diferencias de entorno (versión de Node, rutas de `PATH`, permisos, sistema operativo).
|
|
35
|
-
4. **Rastrear hasta el origen:** cuando el error estalla al fondo de la pila, sigue hacia atrás quién pasó el valor inválido hasta encontrar el disparador real. En sistemas de varias capas, comprueba qué entra y qué sale en cada frontera antes de tocar lógica.
|
|
36
|
-
|
|
37
|
-
### Fase 2: Contrastar patrones
|
|
38
|
-
|
|
39
|
-
1. Localiza en el mismo repositorio un flujo parecido que sí funcione.
|
|
40
|
-
2. Lee la referencia completa sin saltar líneas y enumera todas las diferencias (argumentos, entorno, permisos, orden de inicialización, tipos).
|
|
41
|
-
3. Identifica los supuestos implícitos que el caso roto incumple.
|
|
42
|
-
|
|
43
|
-
### Fase 3: Formular y contrastar una hipótesis
|
|
44
|
-
|
|
45
|
-
1. Enuncia **una sola hipótesis concreta**: «La causa raíz es X porque la evidencia Y muestra Z».
|
|
46
|
-
2. Diseña la comprobación mínima que confirma o descarta esa hipótesis cambiando **una sola variable a la vez**.
|
|
47
|
-
3. Si la evidencia la descarta, revierte o descarta esa prueba sin destruir trabajo previo del usuario y formula una hipótesis nueva basada en lo observado. Nunca apiles un parche encima de otro fallido.
|
|
48
|
-
|
|
49
|
-
### Fase 4: Corregir en el origen y verificar
|
|
50
|
-
|
|
51
|
-
1. **Fijar el fallo en una prueba:** crea o guía la prueba mínima reproducible que falla por la causa identificada (usa `desarrollo-con-pruebas` cuando aplique). Si no cabe prueba automatizada razonable, documenta el comando exacto de reproducción.
|
|
52
|
-
2. **Aplicar un único arreglo en el origen:** corrige donde nace el dato o estado inválido, no solo donde revienta. No mezcles limpiezas ni refactorizaciones ajenas.
|
|
53
|
-
3. **Comprobar con evidencia fresca:** verifica que la prueba nueva pasa, que la suite relevante sigue en verde y que el síntoma original desapareció (aplica `quality-gate`).
|
|
54
|
-
4. **Límite de 3 intentos:** si tras **3 correcciones** el problema reaparece o abre fallos nuevos en otros puntos, **detente**. No intentes el parche número 4: expón la evidencia al usuario y evalúa si el diseño o acoplamiento actual requiere un replanteamiento.
|
|
55
|
-
|
|
56
|
-
## Modos de trabajo y permisos
|
|
57
|
-
|
|
58
|
-
- Respeta las instrucciones del proyecto, el sandbox activo y los permisos del encargo. Esta skill no habilita escritura, red, commits ni cambios en la configuración personal.
|
|
59
|
-
- **En modo `tutor`:** realiza solo lecturas y diagnósticos no mutantes autorizados. Si necesitas instrumentación temporal, explica qué línea diagnóstica añadir y dónde para que el usuario la pruebe y comparta la salida. Una vez confirmada la causa raíz, entrega la prueba y luego la corrección como **pasos individuales verificables** para que la persona escriba.
|
|
60
|
-
- **No destruyas trabajo existente:** conserva cambios previos del usuario; si estorban para aislar la reproducción, infórmalo y acuerda cómo apartarlos antes de tocarlos.
|
|
61
|
-
|
|
62
|
-
## Ejemplo verificable
|
|
63
|
-
|
|
64
|
-
- **Síntoma:** una vista previa marca `blocked` en Linux mientras en CI pasa.
|
|
65
|
-
- **Fase 1 (evidencia):** en lugar de cambiar la condición de bloqueo, se inspecciona `blockedReason` y el entorno filtrado: `git` vive en `~/.local/bin/git`, pero el inspector interno ejecuta `git` con un `PATH` fijo `/usr/bin:/bin`, devolviendo `ENOENT`.
|
|
66
|
-
- **Fase 3 (hipótesis):** el bloqueo no proviene de la rama del proyecto sino de que el proceso de inspección no resuelve `git` desde el `PATH` del entorno cuando está fuera de `/usr/bin`.
|
|
67
|
-
- **Fase 4 (corrección y prueba):** prueba con un ejecutable `git` fuera de `/usr/bin` que falla antes del cambio → resolver `git` de forma segura para la inspección sin abrir el `PATH` del cliente hijo → prueba nueva y suite en verde.
|
|
68
|
-
|
|
69
|
-
Consulta [las técnicas de diagnóstico](references/tecnicas-de-diagnostico.md) para rastreo hacia atrás, validación por capas y esperas por condición. Adaptada de [obra/superpowers](https://github.com/obra/superpowers) (`7.0.1`, licencia MIT en [LICENSE.txt](LICENSE.txt)).
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
interface:
|
|
2
|
-
display_name: "Depurar"
|
|
3
|
-
short_description: "Investiga la causa raíz con evidencia antes de corregir"
|
|
4
|
-
default_prompt: "Usa $depurar para reproducir este fallo, reunir evidencia y confirmar la causa raíz antes de proponer una corrección."
|
|
5
|
-
|
|
6
|
-
policy:
|
|
7
|
-
allow_implicit_invocation: true
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
# Técnicas de diagnóstico
|
|
2
|
-
|
|
3
|
-
Carga esta referencia cuando el error aparezca lejos de su causa original, atraviese varios procesos o provoque fallos intermitentes en pruebas.
|
|
4
|
-
|
|
5
|
-
## 1. Rastreo hacia atrás (backward tracing)
|
|
6
|
-
|
|
7
|
-
Cuando un fallo ocurre en una operación profunda (por ejemplo, abrir una ruta equivocada, ejecutar un comando en el directorio raíz o recibir `undefined` en un validador interno):
|
|
8
|
-
|
|
9
|
-
1. **Anota el síntoma exacto** y la línea que lanza el error.
|
|
10
|
-
2. **Identifica la causa inmediata:** ¿qué variable o parámetro llegó con un valor inválido?
|
|
11
|
-
3. **Sube un nivel por llamada:** ¿qué función invocó a esta y de dónde sacó ese argumento?
|
|
12
|
-
4. **Repite hasta el disparador original:** busca inicializaciones incompletas, promesas sin esperar, configuraciones vacías o fixtures leídos antes de prepararse.
|
|
13
|
-
5. **Corrige en la fuente:** arreglar únicamente el consumidor final oculta el defecto y deja el dato corrupto circulando por el resto del flujo.
|
|
14
|
-
|
|
15
|
-
Si no basta con leer el código, captura el contexto justo **antes** de la operación peligrosa (ruta recibida, `process.cwd()`, variables relevantes y `new Error().stack`). En pruebas de Node.js usa `console.error` temporalmente si el runner silencia logs normales, y retira toda instrumentación temporal antes de cerrar.
|
|
16
|
-
|
|
17
|
-
## 2. Defensa en profundidad tras hallar la causa
|
|
18
|
-
|
|
19
|
-
Cuando un dato inválido atravesó varias capas sin detectarse, acompasa la corrección en el origen con validaciones proporcionales en las fronteras reales:
|
|
20
|
-
|
|
21
|
-
- **Capa 1 — Entrada pública / contrato:** rechazar entradas vacías, tipos erróneos o rutas no normalizadas al cruzar la interfaz.
|
|
22
|
-
- **Capa 2 — Lógica de dominio:** comprobar precondiciones propias de la operación antes de actuar.
|
|
23
|
-
- **Capa 3 — Guardas de entorno:** impedir efectos peligrosos fuera del contexto previsto (por ejemplo, en pruebas rechazar escrituras o `git init` fuera del directorio temporal propio).
|
|
24
|
-
|
|
25
|
-
No añadas capas redundantes sin propósito; añade aquellas donde otra ruta de llamada o un doble de prueba podría saltarse la primera validación. Comprueba que cada guarda rechaza el caso inválido esperado.
|
|
26
|
-
|
|
27
|
-
## 3. Esperas basadas en condición frente a fallos intermitentes
|
|
28
|
-
|
|
29
|
-
Las pruebas asíncronas que usan `setTimeout` o `sleep` con tiempos arbitrarios pasan en máquinas rápidas y fallan bajo carga o en otros sistemas operativos.
|
|
30
|
-
|
|
31
|
-
- **Regla:** espera a la **condición observable** que te importa (evento emitido, estado alcanzado, archivo escrito, línea JSON recibida), nunca a una estimación de cuántos milisegundos tardará.
|
|
32
|
-
- **Sondeo seguro:** si no existe evento directo, consulta el estado fresco dentro del bucle cada `10–25 ms` e incluye siempre un `timeout` explícito con un mensaje que indique qué condición no llegó a cumplirse.
|
|
33
|
-
- **Única excepción para tiempos fijos:** cuando se prueba un temporizador real (`debounce`, expiración de TTL, `timeout`). En ese caso espera primero la condición de arranque y documenta en una línea por qué el intervalo elegido corresponde al contrato probado.
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
Técnicas adaptadas al español para Agent Toolkit a partir de `systematic-debugging` en [obra/superpowers](https://github.com/obra/superpowers) (`7.0.1`, MIT).
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: desarrollo-con-pruebas
|
|
3
|
-
license: MIT
|
|
4
|
-
description: Aplica el ciclo rojo, verde y refactorización para implementar funciones o correcciones mediante pruebas que primero fallan por el requisito buscado. Úsala cuando se elija desarrollo guiado por pruebas en código comprobable; no la fuerces en cambios documentales, configuración pura o tareas sin prueba automatizada razonable.
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Desarrollo con pruebas (TDD)
|
|
8
|
-
|
|
9
|
-
Escribe primero una prueba que exprese el comportamiento requerido, comprueba que falla por el motivo correcto y escribe solo el código necesario para pasarla. Si nunca viste fallar la prueba, no has comprobado que detecte el defecto.
|
|
10
|
-
|
|
11
|
-
## Cuándo aplica y cuándo usar otro flujo
|
|
12
|
-
|
|
13
|
-
| Tipo de tarea | Qué hacer |
|
|
14
|
-
| --- | --- |
|
|
15
|
-
| Nueva función, cambio de lógica, validación o contrato de código | Aplicar el ciclo **Rojo → Verde → Refactorizar** de esta skill. |
|
|
16
|
-
| Corrección de un fallo ya diagnosticado con `depurar` | Escribir primero la prueba de regresión que reproduce el fallo y luego corregir. |
|
|
17
|
-
| Cambio documental, texto de ayuda, configuración estática o activos visuales | **No forzar TDD**: documentar y ejecutar la comprobación apropiada (enlaces, formato, validación de esquema o inspección). |
|
|
18
|
-
| Prototipo descartable (`spike`) autorizado como exploración | Omitir o reducir pruebas durante la exploración; si el resultado se quiere conservar para producción, pasar entonces por especificación y pruebas reales. |
|
|
19
|
-
|
|
20
|
-
Si en la sesión ya está activo `test-driven-development` de Superpowers, mantén **un único ciclo** sin duplicar pasos, respetando siempre las reglas locales de abajo sobre modo `tutor` y preservación de trabajo existente.
|
|
21
|
-
|
|
22
|
-
## Ciclo Rojo → Verde → Refactorizar
|
|
23
|
-
|
|
24
|
-
1. **ROJO — Escribir una prueba mínima del comportamiento:**
|
|
25
|
-
- Una sola responsabilidad por prueba, con nombre descriptivo y expectativas calculadas de forma independiente (sin reutilizar la función bajo prueba).
|
|
26
|
-
- Ejercita código real; usa dobles o mocks solo para fronteras lentas o externas inevitables. Consulta [cómo escribir buenas pruebas](references/buenas-pruebas.md).
|
|
27
|
-
2. **Verificar ROJO — Observar el fallo esperado:**
|
|
28
|
-
- Ejecuta el comando de prueba pertinente y lee la salida completa.
|
|
29
|
-
- Confirma que **falla por ausencia del requisito** (aserciones o interfaz aún no implementada), no por errores de sintaxis, imports rotos o erratas en el test.
|
|
30
|
-
- Si pasa a la primera, la prueba no exige nada nuevo: corrige la prueba antes de tocar código de producción.
|
|
31
|
-
3. **VERDE — Implementar el código mínimo:**
|
|
32
|
-
- Escribe la solución más simple y clara que satisfaga la prueba actual, sin anticipar opciones no pedidas ni mezclar cambios ajenos.
|
|
33
|
-
4. **Verificar VERDE — Comprobar prueba y suite:**
|
|
34
|
-
- Ejecuta la prueba nueva y confirma que pasa sin errores ni advertencias inesperadas.
|
|
35
|
-
- Antes de dar el cambio por terminado, ejecuta también la **suite relevante del proyecto** (`npm test`, `node --test` o el comando del repositorio). Informa por su nombre cualquier fallo que aparezca, incluso si era previo o ajeno al alcance.
|
|
36
|
-
5. **REFACTORIZAR — Limpiar manteniendo el verde:**
|
|
37
|
-
- Solo con las pruebas en verde, elimina duplicación, aclara nombres o extrae utilidades sin añadir comportamiento nuevo, y vuelve a ejecutar las pruebas.
|
|
38
|
-
|
|
39
|
-
## Reglas esenciales en Agent Toolkit
|
|
40
|
-
|
|
41
|
-
- **No destruir trabajo existente:** nunca borres ni descartes código ya escrito por el usuario o presente en el árbol de trabajo para imponer el orden del método. Si ya existe implementación parcial, consérvala, informa al usuario y comprueba la cobertura sobre el siguiente incremento o verifica el fallo de forma acordada y no destructiva.
|
|
42
|
-
- **Modo `tutor` (escritura humana paso a paso):**
|
|
43
|
-
1. *Paso Rojo:* explica qué comportamiento protege la prueba, entrega el bloque de prueba para el archivo exacto e indica el comando y el fallo concreto que el usuario debe observar al ejecutarlo; **detente y espera**.
|
|
44
|
-
2. *Paso Verde:* tras confirmar con el usuario el fallo esperado, explica y entrega la implementación mínima y el comando para verla pasar; **detente y espera**.
|
|
45
|
-
3. *Paso Refactor (si aplica):* entrega la mejora opcional conservando las pruebas en verde.
|
|
46
|
-
En `tutor` el agente no edita archivos funcionales salvo petición explícita («escríbelo tú en este paso»).
|
|
47
|
-
- **Permisos:** ejecutar comandos, editar archivos, crear commits o actualizar memoria siguen sujetos a las autorizaciones vigentes de la sesión y del proyecto.
|
|
48
|
-
|
|
49
|
-
## Ejemplo verificable (modo tutor y autónomo)
|
|
50
|
-
|
|
51
|
-
- **Requisito:** rechazar identificadores de perfil con saltos de ruta como `../fuera`.
|
|
52
|
-
- **Rojo:** añadir prueba `assert.rejects(() => validarPerfil('../fuera'), /perfil no válido/u)` y ejecutar `node --test test/perfiles.test.js` → confirmar fallo porque `../fuera` aún no se rechaza. *(En `tutor`, el agente entrega solo este paso y espera la salida del usuario).*
|
|
53
|
-
- **Verde:** validar el identificador con `/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/u` en el módulo correspondiente → repetir `node --test test/perfiles.test.js` y después la suite del proyecto → pasa en verde.
|
|
54
|
-
|
|
55
|
-
Lee [criterios para pruebas honestas](references/buenas-pruebas.md) al diseñar casos, dobles o comprobaciones de regresión. Adaptada de [obra/superpowers](https://github.com/obra/superpowers) (`7.0.1`, licencia MIT en [LICENSE.txt](LICENSE.txt)).
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
interface:
|
|
2
|
-
display_name: "Desarrollo con pruebas"
|
|
3
|
-
short_description: "Implementa con ciclo rojo, verde y refactor verificable"
|
|
4
|
-
default_prompt: "Usa $desarrollo-con-pruebas para guiar o implementar este cambio mediante una prueba que falle primero por el requisito esperado."
|
|
5
|
-
|
|
6
|
-
policy:
|
|
7
|
-
allow_implicit_invocation: true
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# Cómo escribir buenas pruebas
|
|
2
|
-
|
|
3
|
-
Carga esta referencia al redactar pruebas nuevas, revisar tests existentes o decidir si hace falta un doble (`mock` / `fixture`).
|
|
4
|
-
|
|
5
|
-
## 1. Nombrar la rotura que la prueba atrapa
|
|
6
|
-
|
|
7
|
-
Antes de escribir el cuerpo del test, responde: **¿qué cambio erróneo en producción haría fallar esta prueba?**
|
|
8
|
-
|
|
9
|
-
- **Deriva el resultado esperado a mano:** usa literales o fixtures comprobados manualmente. Si calculas el valor esperado llamando a la misma función o helper bajo prueba, la aserción pasará incluso cuando la lógica esté rota.
|
|
10
|
-
- **Prueba comportamiento observable, no detectores de cambio:** evita fijar detalles internos privados o buscar líneas literales con expresiones regulares sobre archivos de código o scripts; ejecuta el módulo o comando con entradas controladas y comprueba su salida, efecto o código de retorno.
|
|
11
|
-
- **Tu frontera, no el framework:** comprueba los contratos, validaciones y efectos de tu código; no escribas pruebas para demostrar que Node.js, el router o la librería estándar funcionan como documentan sus autores.
|
|
12
|
-
|
|
13
|
-
## 2. Ejercitar el componente real
|
|
14
|
-
|
|
15
|
-
- **Nunca hagas aserciones sobre el propio mock:** comprobar que un mock devolvió lo que tú mismo le configuraste no demuestra nada del sistema real. Comprueba el resultado o estado real del componente bajo prueba.
|
|
16
|
-
- **Sustituye solo la frontera lenta o externa:** conoce primero todos los efectos secundarios del método real y reemplaza únicamente el nivel externo necesario (red, cliente remoto, reloj o proceso pesado), manteniendo real la lógica, validación y persistencia local en directorios temporales aislados.
|
|
17
|
-
- **Espeja estructuras reales completas:** cuando uses un fixture o respuesta simulada, incluye todos los campos relevantes del contrato real para no ocultar errores cuando el código lea propiedades omitidas.
|
|
18
|
-
- **Mantén las utilidades de limpieza fuera de producción:** los helpers que solo existen para pruebas viven en `test/` o `test-support/`, nunca como métodos artificiales en los módulos de producción.
|
|
19
|
-
|
|
20
|
-
## 3. Chequeo rápido de mutaciones
|
|
21
|
-
|
|
22
|
-
Antes de cerrar un archivo de pruebas, piensa si al menos una prueba caería en rojo ante estas mutaciones realistas en producción:
|
|
23
|
-
|
|
24
|
-
1. Condición invertida o rama omitida.
|
|
25
|
-
2. Falta de validación para entrada vacía, nula, malformada o sin permiso.
|
|
26
|
-
3. Efecto secundario ausente (no guardar, no cerrar, o modificar una ruta indebida).
|
|
27
|
-
4. Valor devuelto por defecto o constante equivocada.
|
|
28
|
-
|
|
29
|
-
Si una mutación importante dejaría toda la suite en verde, falta una aserción de comportamiento o una prueba de borde.
|
|
30
|
-
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
Referencia adaptada al español para Agent Toolkit a partir de `writing-good-tests.md` en [obra/superpowers](https://github.com/obra/superpowers) (`7.0.1`, MIT).
|
package/skills/estado/SKILL.md
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: estado
|
|
3
|
-
description: Muestra en una tabla el estado de la revisión cruzada entre Claude y Codex en el repositorio actual (colaboraciones abiertas, encargos pendientes y últimos veredictos), sin modificar nada. Úsala solo cuando el usuario escriba /estado o $estado.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Estado de la revisión cruzada
|
|
7
|
-
|
|
8
|
-
Solo lectura: no reclames, envíes, canceles ni cierres nada.
|
|
9
|
-
|
|
10
|
-
1. `projectRoot` es la ruta absoluta de la raíz del repositorio actual.
|
|
11
|
-
2. Llama `get_collaboration` sin `taskId` para listar las colaboraciones abiertas.
|
|
12
|
-
3. Para cada una, llama `get_collaboration` con su `taskId`.
|
|
13
|
-
4. Muestra exactamente este formato:
|
|
14
|
-
|
|
15
|
-
```markdown
|
|
16
|
-
**Revisión cruzada** · <proyecto> · <n> colaboraciones abiertas
|
|
17
|
-
|
|
18
|
-
| Colaboración | Principal | Encargos | Pendiente ahora | Último veredicto | ¿Vigente? |
|
|
19
|
-
| --- | --- | --- | --- | --- | --- |
|
|
20
|
-
| Validar firma de Meta | Claude | 3 (2 completados, 1 pendiente) | Codex debe revisar | Requiere cambios | Sí |
|
|
21
|
-
|
|
22
|
-
**Qué toca ahora**
|
|
23
|
-
- Codex: escribir `$revisar` si no está esperando.
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
- **Encargos:** total y reparto por estado (`pending`, `claimed`, `completed`, `stale`, `cancelled`).
|
|
27
|
-
- **Pendiente ahora:** quién tiene que actuar: el revisor si hay un encargo `pending` o `claimed`; el principal si el último encargo está `completed` y aún no hay otro; «Nadie» si no hay encargos.
|
|
28
|
-
- **Último veredicto:** el texto que sigue a «Veredicto:» en el último informe completado; si no aparece, «Sin veredicto».
|
|
29
|
-
- **¿Vigente?:** «Sí» si el último informe tiene `current: true`; «No, cambió el código» si `filesCurrent` es falso; «No, cambió el contexto» si `contextCurrent` es falso.
|
|
30
|
-
- **Qué toca ahora:** una línea por acción, con el comando exacto (`/revisar`, `$revisar`, `/programar <tarea>` o `$programar <tarea>`).
|
|
31
|
-
|
|
32
|
-
Si no hay colaboraciones abiertas, dilo en una línea y sugiere `/programar <tarea>` para empezar.
|
|
33
|
-
|
|
34
|
-
Si el usuario pide el rendimiento de los modelos, ejecuta
|
|
35
|
-
`node <toolkit>/bin/agent-toolkit-inbox.js rendimiento`
|
|
36
|
-
(añade `--project-root <projectRoot>` para limitarlo a este proyecto) y muestra
|
|
37
|
-
su tabla tal cual. No usa ningún modelo ni modifica nada.
|
|
38
|
-
|
|
39
|
-
Resuelve `<toolkit>` desde la carpeta física de esta skill, dos directorios arriba.
|
|
40
|
-
Para consumo usa `node <toolkit>/bin/agent-toolkit-inbox.js consumo --project-root <raíz>`;
|
|
41
|
-
no confundas rendimiento de hallazgos con ahorro de tokens.
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: programar
|
|
3
|
-
description: Trabaja como agente principal de la revisión cruzada entre Claude y Codex. Recibe la tarea escrita después del comando, recomienda modelo y esfuerzo, programa respetando las reglas del proyecto, se revisa y pide revisión al otro agente. Úsala solo cuando el usuario escriba /programar o $programar.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Programar
|
|
7
|
-
|
|
8
|
-
Eres el **agente principal**: haces el trabajo y pides revisión a la otra terminal.
|
|
9
|
-
|
|
10
|
-
1. Lee la skill `revision-cruzada`, en la carpeta hermana de esta
|
|
11
|
-
(`../revision-cruzada/SKILL.md`), y sigue su papel **Iniciar (agente
|
|
12
|
-
principal)**, incluida la sección **Implementar y pedir revisión**. Si el plugin
|
|
13
|
-
`niveles` está instalado, delega el código según **Delegar por nivel (Claude)**
|
|
14
|
-
en lugar de pedir al usuario que cambie `/model`.
|
|
15
|
-
2. La tarea es el texto que el usuario escribió después de `/programar` o
|
|
16
|
-
`$programar`. Si no escribió nada, pídesela en una línea y espera.
|
|
17
|
-
3. No preguntes qué papel tienes: ya lo eligió con este comando.
|
|
18
|
-
4. Si la otra terminal no está atendiendo, recuérdale que escriba allí
|
|
19
|
-
`/revisar` (Claude) o `$revisar` (Codex).
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: spec-driven-development
|
|
3
|
-
license: MIT
|
|
4
|
-
description: Convierte una necesidad de software en intención acordada, comparación de alternativas, especificación verificable y plan de tareas ejecutables antes de implementar. Úsala para funciones nuevas, cambios entre módulos, migraciones o rediseños; usa un flujo directo sin esta skill para preguntas simples o ajustes puntuales sin ambigüedad.
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Desarrollo guiado por especificaciones
|
|
8
|
-
|
|
9
|
-
Entiende qué quiere lograr la persona usuaria y por qué, acuerda un resultado observable y divídelo en tareas verificables antes de tocar código.
|
|
10
|
-
|
|
11
|
-
## Cuándo aplica y cuándo usar algo más simple
|
|
12
|
-
|
|
13
|
-
| Situación | Proceso |
|
|
14
|
-
| --- | --- |
|
|
15
|
-
| Pregunta conceptual o consulta de lectura | Responder directamente; no iniciar especificación ni plan. |
|
|
16
|
-
| Cambio puntual e inequívoco (un texto, constante o estilo aislado) | Hacer o guiar el cambio y comprobarlo; no abrir documentos de diseño. |
|
|
17
|
-
| Cambio pequeño con alguna decisión abierta | Profundidad **ligera**: nota breve con intención, enfoque elegido y comprobación. |
|
|
18
|
-
| Función nueva, cambio entre módulos, datos, permisos o migración | Profundidad **estándar** o **rigurosa**: seguir el flujo completo de esta skill. |
|
|
19
|
-
| Fallo, regresión o comportamiento inesperado | Investigar primero la causa raíz con `depurar` antes de especificar un rediseño. |
|
|
20
|
-
|
|
21
|
-
Si el usuario pide explícitamente saltar las preguntas e ir directo a la acción, deja constancia en una línea de cualquier supuesto técnico relevante y continúa con el flujo normal del encargo.
|
|
22
|
-
|
|
23
|
-
## Convivencia y reutilización
|
|
24
|
-
|
|
25
|
-
Mantén **un único flujo principal**:
|
|
26
|
-
- Si en la sesión o el repositorio ya existe un diseño o plan aprobado para el mismo objetivo (por ejemplo en `docs/planes/`, `docs/superpowers/specs/` o `docs/superpowers/plans/`), **reutilízalo**; comprueba solo si quedó algún hueco frente al código actual y no abras otra entrevista ni reescribas el plan desde cero.
|
|
27
|
-
- Respeta siempre la jerarquía de instrucciones del proyecto, el modo `tutor` o `autonomous` declarado y los permisos vigentes. Esta skill no concede permisos de escritura, ramas, commits, memoria ni despliegue.
|
|
28
|
-
|
|
29
|
-
## Flujo
|
|
30
|
-
|
|
31
|
-
1. **Inspeccionar antes de preguntar:** lee los archivos citados, el código relacionado y la memoria disponible del proyecto hasta poder explicar cómo funciona hoy la parte afectada. Nunca preguntes algo que el repositorio o el contexto ya respondan.
|
|
32
|
-
2. **Aclarar la intención:** resume en tus palabras qué se busca, para quién y qué tocaría en el código actual. Haz **una sola pregunta concreta** por turno sobre la mayor incógnita que cambiaría lo que se construye (o propón una opción razonable indicando el motivo para que el usuario la corrija).
|
|
33
|
-
3. **Comparar alternativas:** antes de redactar la especificación, presenta en un mensaje propio las 2 o 3 formas reales de resolverlo en este proyecto, sus compensaciones y tu recomendación justificada (o explica por qué solo una encaja). Espera a que el usuario elija.
|
|
34
|
-
4. **Especificar con criterios observables:** redacta un documento proporcional al tamaño (breve o completo) separando lo acordado por el usuario de las decisiones propuestas por el agente. Lee [el flujo, estructura del plan y puertas](references/workflow.md).
|
|
35
|
-
5. **Obtener aprobación del diseño:** no escribas código de producto, instales dependencias ni inicies la implementación hasta que el usuario apruebe el diseño (salvo un prototipo descartable autorizado como tal).
|
|
36
|
-
6. **Planificar tareas ejecutables:** descompón por responsabilidades y dependencias en tareas con resultado comprobable por sí mismo: rutas exactas, firmas/interfaces entre tareas, pasos inequívocos, casos de riesgo cubiertos y comando de verificación con resultado esperado. Revisa el plan contra la especificación antes de entregarlo.
|
|
37
|
-
7. **Implementar y verificar según el modo:**
|
|
38
|
-
- En **modo `tutor`**: explica y entrega el código de **un paso verificable cada vez**; la persona usuaria escribe y tú revisas el resultado real antes de pasar al siguiente.
|
|
39
|
-
- En **modo `autonomous`** autorizado: ejecuta tarea por tarea respetando el alcance aprobado y verifica cada entrega con evidencia fresca (apoyándote en `desarrollo-con-pruebas` y `quality-gate` cuando correspondan).
|
|
40
|
-
|
|
41
|
-
## Reglas
|
|
42
|
-
|
|
43
|
-
- La especificación describe el comportamiento deseado; el repositorio describe el comportamiento actual.
|
|
44
|
-
- Distingue siempre decisiones confirmadas por el usuario, propuestas tuyas y preguntas abiertas; no inventes acuerdos para rellenar plantillas.
|
|
45
|
-
- Prohibido dejar pasos vagos en un plan (`por definir`, `manejar casos límite`, `añadir validación adecuada`) o transcribir programas enteros cuando bastan firmas, contratos y aserciones.
|
|
46
|
-
- Conserva el trabajo existente en el repositorio; si el alcance crece a mitad de tarea, avísalo y reajusta el tamaño con el usuario.
|
|
47
|
-
|
|
48
|
-
Usa [la plantilla](references/spec-template.md) solo si el proyecto no define una propia. Prácticas de entrevista de diseño y planificación ejecutable adaptadas parcialmente de [obra/superpowers](https://github.com/obra/superpowers) (`7.0.1`, licencia MIT en [LICENSE.txt](LICENSE.txt)).
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
interface:
|
|
2
|
-
display_name: "Spec-Driven Development"
|
|
3
|
-
short_description: "Alinea intención, alternativas, especificación y plan ejecutable"
|
|
4
|
-
default_prompt: "Usa $spec-driven-development para aclarar la intención, comparar alternativas y preparar una especificación y un plan verificables antes de implementar."
|
|
5
|
-
|
|
6
|
-
policy:
|
|
7
|
-
allow_implicit_invocation: true
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
# [Nombre del cambio]
|
|
2
|
-
|
|
3
|
-
## Estado y modo
|
|
4
|
-
|
|
5
|
-
- Estado: Propuesto | Aprobado | En implementación | Verificado | Archivado
|
|
6
|
-
- Modo de ejecución previsto: `tutor` | `autonomous` (sujeto a reglas del proyecto)
|
|
7
|
-
|
|
8
|
-
## Intención y problema
|
|
9
|
-
|
|
10
|
-
## Objetivo, fuera de alcance y anti-objetivos
|
|
11
|
-
|
|
12
|
-
## Comportamiento actual comprobado
|
|
13
|
-
|
|
14
|
-
## Alternativas consideradas y elección
|
|
15
|
-
|
|
16
|
-
| Opción | Resumen | Ventajas | Compensaciones |
|
|
17
|
-
| --- | --- | --- | --- |
|
|
18
|
-
| A | | | |
|
|
19
|
-
| B | | | |
|
|
20
|
-
|
|
21
|
-
- **Opción elegida y motivo:**
|
|
22
|
-
|
|
23
|
-
## Decisiones del usuario frente a propuestas técnicas
|
|
24
|
-
|
|
25
|
-
- **Acordado por el usuario:**
|
|
26
|
-
- **Propuesto por el agente (revisable):**
|
|
27
|
-
|
|
28
|
-
## Requisitos y criterios de aceptación
|
|
29
|
-
|
|
30
|
-
- Dado ..., cuando ..., entonces ...
|
|
31
|
-
|
|
32
|
-
## Diseño, contratos, datos y seguridad
|
|
33
|
-
|
|
34
|
-
## Foco de revisión (entradas límite y modos de fallo)
|
|
35
|
-
|
|
36
|
-
- [ ] Caso / entrada límite — comportamiento esperado — tarea que lo verifica
|
|
37
|
-
|
|
38
|
-
## Mapa de archivos
|
|
39
|
-
|
|
40
|
-
- Crear / Modificar: `ruta/exacta` — responsabilidad
|
|
41
|
-
- Pruebas / Verificación: `ruta/exacta` — qué comprueba
|
|
42
|
-
|
|
43
|
-
## Plan de tareas
|
|
44
|
-
|
|
45
|
-
### Tarea 1: [Entregable verificable]
|
|
46
|
-
|
|
47
|
-
- **Archivos:** Crear/Modificar `...` · Probar `...`
|
|
48
|
-
- **Interfaces:** Consume `...` · Produce `...`
|
|
49
|
-
- [ ] Paso 1 (prueba o preparación verificable): ...
|
|
50
|
-
- [ ] Paso 2 (implementación mínima): ...
|
|
51
|
-
- [ ] Paso 3 (verificación): ejecutar `...` → resultado esperado `...`
|
|
52
|
-
|
|
53
|
-
## Evidencia de cierre y límites observados
|
|
54
|
-
|
|
55
|
-
## Preguntas abiertas
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
# Flujo, planificación ejecutable y puertas de SDD
|
|
2
|
-
|
|
3
|
-
## Elegir profundidad
|
|
4
|
-
|
|
5
|
-
- **Ligera**: cambio pequeño, reversible y localizado (resumen corto de intención, alternativas vistas, cambio acordado y verificación).
|
|
6
|
-
- **Estándar**: función que cruza módulos, contratos, estado o interfaz.
|
|
7
|
-
- **Rigurosa**: seguridad, permisos, datos críticos, concurrencia, arquitectura, despliegue o migración.
|
|
8
|
-
|
|
9
|
-
Si la solicitud abarca varios subsistemas independientes, proponlo al inicio y abórdalos en especificaciones y planes separados, uno a la vez.
|
|
10
|
-
|
|
11
|
-
## 1. Descubrir mirando primero el proyecto
|
|
12
|
-
|
|
13
|
-
Antes de formular la primera pregunta:
|
|
14
|
-
1. Inspecciona el código, pruebas, esquemas y notas estables conectadas con la petición.
|
|
15
|
-
2. Identifica restricciones existentes (versiones, contratos públicos, convenciones de nombres y estilo del repositorio).
|
|
16
|
-
3. Refleja en ~150–250 palabras qué entendiste, cómo opera hoy esa parte y qué restricciones o caminos más sencillos observaste.
|
|
17
|
-
4. Cierra con una sola pregunta abierta cuya respuesta cambie materialmente el diseño, explicando qué cambiaría según la respuesta.
|
|
18
|
-
|
|
19
|
-
**Puerta:** el problema, el estado actual comprobado y el motivo del cambio pueden explicarse sin asumir acuerdos que el usuario no dio.
|
|
20
|
-
|
|
21
|
-
## 2. Comparar alternativas antes de escribir la especificación
|
|
22
|
-
|
|
23
|
-
1. Descarta opciones que contradigan el objetivo o las restricciones reales del repositorio.
|
|
24
|
-
2. Presenta 2 o 3 alternativas viables ancladas en la arquitectura actual, indicando qué gana y qué sacrifica cada una.
|
|
25
|
-
3. Recomienda una con motivo claro y pide al usuario elegir (si existe una única vía sensata, explica por qué las demás no encajan).
|
|
26
|
-
4. Si un prototipo rápido (`spike`) es la forma más barata de despejar una duda técnica, ofrécelo explícitamente como descartable: lo que produzca no pasa a producción sin volver por diseño y pruebas.
|
|
27
|
-
|
|
28
|
-
**Puerta:** hay un enfoque elegido por el usuario y los compromisos asumidos son explícitos.
|
|
29
|
-
|
|
30
|
-
## 3. Especificar y diseñar
|
|
31
|
-
|
|
32
|
-
Define:
|
|
33
|
-
- Objetivo, no-objetivos y anti-objetivos (qué haría fracasar la entrega aunque técnicamente compile).
|
|
34
|
-
- Comportamiento actual comprobado frente a comportamiento esperado.
|
|
35
|
-
- Criterios de aceptación observables, errores y casos límite.
|
|
36
|
-
- Componentes afectados, contratos, datos, privacidad y seguridad.
|
|
37
|
-
- Qué decidió el usuario frente a qué propones tú como criterio técnico.
|
|
38
|
-
|
|
39
|
-
**Puerta:** otra persona podría construir o revisar el cambio sin volver a adivinar requisitos esenciales, y el usuario aprobó el diseño.
|
|
40
|
-
|
|
41
|
-
## 4. Planificar tareas ejecutables
|
|
42
|
-
|
|
43
|
-
Escribe el plan pensando en quien implementa conociendo el lenguaje, pero sin haber estado en tu conversación:
|
|
44
|
-
|
|
45
|
-
1. **Mapa de archivos y responsabilidades:** enumera antes de las tareas qué archivos se crean o modifican y qué responsabilidad única tiene cada uno, respetando la estructura del proyecto.
|
|
46
|
-
2. **Tamaño correcto de tarea:** cada tarea es la unidad mínima que cierra un ciclo verificable propio (incluyendo su prueba, ajuste de configuración o documentación directa). No separes andamiaje vacío que no pueda comprobarse por sí solo.
|
|
47
|
-
3. **Estructura por tarea:**
|
|
48
|
-
- **Archivos:** rutas exactas (`Crear`, `Modificar`, `Probar`).
|
|
49
|
-
- **Interfaces:** qué consume de tareas previas y qué nombres/firmas exactas produce para las siguientes.
|
|
50
|
-
- **Pasos accionables:** cada paso pide una acción concreta con resultado verificable (escribir prueba que falla con los valores de la especificación, comprobar el fallo esperado, implementar la firma acordada, ejecutar comando de verificación y confirmar salida).
|
|
51
|
-
4. **Foco de revisión (casos implícitos):** identifica hasta 5 clases de entradas o fallos probables que la especificación implica (valores vacíos, rutas fuera de raíz, permisos, concurrencia, errores parciales) y añade su comprobación en la tarea dueña de ese código.
|
|
52
|
-
5. **Autochequeo del plan antes de entregarlo:**
|
|
53
|
-
- *Cobertura:* cada requisito y criterio de aceptación tiene tarea asignada.
|
|
54
|
-
- *Sin huecos ni relleno:* elimina frases que no deciden nada (`TBD`, `validar adecuadamente`) y evita copiar cuerpos enteros de funciones que la firma y la prueba ya determinan.
|
|
55
|
-
- *Consistencia:* nombres de archivos, funciones, tipos y opciones coinciden entre tareas tempranas y tardías.
|
|
56
|
-
|
|
57
|
-
**Puerta:** el plan está autoverificado, reutiliza planes previos si existían y el usuario confirma el plan y el modo de ejecución (`tutor` o `autonomous`).
|
|
58
|
-
|
|
59
|
-
## 5. Implementar respetando el modo
|
|
60
|
-
|
|
61
|
-
- **Modo `tutor`:** entrega un único paso verificable (objetivo, ruta exacta, código explicado y comando de comprobación) y espera a que la persona escriba y confirme con la salida real.
|
|
62
|
-
- **Modo `autonomous`:** ejecuta una tarea a la vez dentro del alcance autorizado; si usas TDD, apóyate en `desarrollo-con-pruebas`. No amontones cambios fuera de alcance.
|
|
63
|
-
|
|
64
|
-
**Puerta:** las comprobaciones de la tarea y la suite relevante del proyecto pasan en el estado actual.
|
|
65
|
-
|
|
66
|
-
## 6. Verificar y cerrar
|
|
67
|
-
|
|
68
|
-
Relaciona cada criterio de aceptación con evidencia fresca ejecutada o inspeccionada (usa `quality-gate`). Declara cualquier desviación o límite no comprobado; commit, PR y cierre de memoria requieren su propia autorización.
|
|
69
|
-
|
|
70
|
-
**Puerta:** ningún criterio queda sin evidencia ni se afirma finalización por suposición.
|