Spec Kit: de intención comprobable a aceptación trazable
Leer las entradas de Spec Kit: resolver rutas no significa validar prerrequisitos
Sigue salidas anticipadas, flags de documentos obligatorios y salida opcional, y distingue el adaptador Python del motor delegado.
Qué aprenderás
- Empezar por la rama PowerShell de solo rutas
- Separar flags de validación e inclusión
- La entrada Python es un adaptador
Antes de empezar
- Conceptos básicos de requisitos, Git y pruebas
- Distinguir desarrollo local y despliegue de aplicación
Trazar una funcionalidad desde intención hasta evidencia y separar contratos de comportamiento verificado.
Conclusiones clave
- -PathsOnly devuelve ubicaciones sin validar artefactos.
- Exigir tareas y enumerarlas son flags diferentes.
- El adaptador no demuestra todo el comportamiento del motor importado.
Empezar por la rama PowerShell de solo rutas
Check-prerequisites.ps1 importa common.ps1 y obtiene rutas. Con -PathsOnly llama a Get-FeaturePathsEnv usando -NoPersist, emite variables y sale antes de verificar archivos. El comentario explica que evita persistir feature.json durante resolución pura de rutas.
Por tanto, una respuesta exitosa de solo rutas no prueba que existan directorio, plan, especificación o tareas. Fuera de ese modo se usa la resolución normal. Inspeccionamos la entrada, no el auxiliar importado completo, y no afirmamos conocer todos sus efectos sobre el sistema de archivos.
Separar flags de validación e inclusión
La validación normal comprueba el directorio y plan.md; después exige spec.md y tasks.md cuando se activan -RequireSpec y -RequireTasks. -IncludeTasks controla si un archivo existente aparece en AVAILABLE_DOCS. Exigir existencia y enumerar son decisiones distintas; un requisito ausente produce error y salida no cero.
También enumera investigación, modelo de datos, contratos y guía rápida disponibles. Con -Template solicita contenido resuelto y falla si no obtiene resultado. Una lista de documentos disponibles no sustituye la evaluación de su contenido, integridad o coherencia.
La entrada Python es un adaptador
Resolve_template.py analiza el nombre y --json, obtiene la raíz y llama a resolve_template_content. Captura TemplateResolutionError y falla también ante None. El JSON exitoso contiene TEMPLATE_NAME y TEMPLATE_CONTENT; ensure_ascii=False conserva texto no ASCII.
La rama de texto escribe directamente el contenido devuelto. Estos detalles distinguen ausencia de plantilla y salida válida, pero no demuestran todas las reglas o propiedades de seguridad de common.py. No ejecutamos PowerShell ni Python upstream; las pruebas corresponden al modelo didáctico separado de añadido.
Cómo elegir
| Criterio | Opción A | Opción B |
|---|---|---|
| Best when | You need predictable behavior and easy auditing | You need adaptive optimization and have reliable telemetry |
| Main risk | May leave performance on the table | Can become difficult to explain or debug |
Pasos de implementación
- 1
Lee salidas anticipadas antes de interpretar éxito.
- 2
Traza archivos obligatorios y salida opcional por separado.
- 3
Identifica comportamiento delegado pendiente de inspección.
- 4
Separa observación de fuente y prueba en ejecución.
Ejemplo para copiar
{
"traza": true,
"soloRutas": {
"validaArtefactos": false,
"solicitaNoPersistir": true
},
"exigirTareas": "comprobar existencia",
"incluirTareas": "enumerar en salida",
"upstreamEjecutado": false
}Preguntas frecuentes
¿-PathsOnly prueba que existe plan.md?
No. Sale antes de la validación de archivos obligatorios.
¿JSON exitoso demuestra una especificación completa?
No. Informa rutas, documentos o contenido, no corrección semántica.
Fuentes
- Spec Kit / scripts/powershell/check-prerequisites.ps1Fuente verificada 2026-09-14
- Spec Kit / scripts/python/resolve_template.pyFuente verificada 2026-09-14
- Spec Kit / templates/commands/analyze.mdFuente verificada 2026-09-14