No AI Slop: edición con evidencia, paquete y evaluación
Leer el constructor No AI Slop: siete archivos, límites y separadores
Recorre validate_source y validate_build con siete casos aislados, separando inventario de directorio, igualdad de bytes y contenido ZIP.
Qué aprenderás
- La validación inicial comprueba presencia y algunos límites
- Construcción y comprobación cubren objetos distintos
- Un caso nativo de Windows muestra el límite de portabilidad
Antes de empezar
- Un borrador con hechos verificables
- Comprender instrucciones del asistente y alcance de plugins
Inspeccionar patrones, conservar significado y separar validación de paquete de resultados editoriales no medidos.
Conclusiones clave
- La validación inicial no cubre todo lo que se copiará.
- Inventario de directorio y miembros ZIP se comprueban por separado.
- Una prueba de fallo esperado documenta una limitación.
La validación inicial comprueba presencia y algunos límites
validate_source exige campos verdaderos en manifiesto e interfaz, limita prompts a tres entradas de 128 caracteres y comprueba archivos de reglas, revisión e imagen. Los casos aceptan el límite y rechazan versión vacía, cuatro prompts, longitud excesiva e imagen ausente.
No es un esquema completo ni una comprobación de contenido. Que exista la imagen no demuestra que sus bytes formen una imagen válida. La función tampoco exige LICENSE en esa fase: nuestro caso sin ese archivo pasa, aunque el constructor posterior intenta copiarlo. Validación inicial y necesidades del build no coinciden totalmente.
Construcción y comprobación cubren objetos distintos
build_plugin recrea un subdirectorio y copia manifiesto, reglas, revisión, imagen y tres archivos de licencia o políticas antes de crear el ZIP. validate_build compara un inventario de siete archivos y los bytes de reglas y revisión con sus fuentes; al final comprueba que el archivo sea un ZIP válido.
La última comprobación no compara individualmente todos los miembros del ZIP con el inventario esperado. El constructor actual escribe desde su directorio generado, pero una verificación independiente más fuerte examinaría nombres y bytes dentro del archivo, en lugar de inferirlos desde otra ubicación.
Un caso nativo de Windows muestra el límite de portabilidad
El inventario esperado usa barras normales; las entradas reales proceden de str(path.relative_to(plugin_root)), que usa barras invertidas en Windows. El séptimo caso confirma el rechazo de un directorio sintético completo. La prueba pasa porque registra ese rechazo esperado, no porque Windows haya superado el empaquetado.
Los siete casos ejecutan validate_source y validate_build fijados, redirigiendo rutas a archivos temporales. No invocan build_plugin ni main; tampoco instalan habilidades ni llaman a modelos. Proponemos normalizar rutas antes de comparar y probar Windows y POSIX; no aplicamos una corrección al proyecto upstream.
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 campos obligatorios y condiciones límite.
- 2
Sigue los archivos realmente copiados.
- 3
Separa inventario, igualdad de bytes y archivo comprimido.
- 4
Compara rutas nativas entre plataformas.
Ejemplo para copiar
# Comparación portable propuesta; no es un parche aplicado upstream.
actual = {
path.relative_to(plugin_root).as_posix()
for path in plugin_root.rglob("*") if path.is_file()
}
# Inspecciona también nombres y bytes de miembros del archivo.Preguntas frecuentes
¿Ejecutasteis todo el constructor?
No. Solo dos funciones revisadas de validación sobre datos temporales sintéticos.
¿Qué debe probar una corrección portable?
Rutas normalizadas, inventario exacto y miembros del archivo en Windows y POSIX.
Fuentes
- No AI Slop / scripts/build_plugin.pyFuente verificada 2026-09-14
- No AI Slop / .github/workflows/plugin.ymlFuente verificada 2026-09-14
- No AI Slop / .codex-plugin/plugin.jsonFuente verificada 2026-09-14