Publica un sitio estático (tipo A) en Workers con archivos estáticos - genera dist/, pasa las pruebas, despliega, hace la prueba de humo y deja la revisión humana en Chrome. Úsala solo cuando el humano pida publicar o actualizar el sitio.
Instal·la
npx skillscat add reedsy2407/agent-kit/publicar Instal·la des del registre de SkillsCat.
Flujo de publicación del tipo A: publicar → pruebas → despliegue → humo → revisión. Si un paso falla, reporta y no sigas. Nunca ejecutes wrangler con una orden que no esté en la ficha (kit/FICHA-INFRA.json). Decisión y motivos: ADR 0009 del kit.
Antes de empezar: verificar la documentación
Antes de cada uso, comprueba en la documentación oficial de Cloudflare Workers (apartado de archivos estáticos) que siguen vigentes los campos de wrangler.jsonc (assets.directory, not_found_handling, workers_dev) y la sintaxis de _headers. Si algo cambió, para y dilo; no improvises. No uses wrangler pages project create ni --force: en la primera aplicación falló con un «Notice to agents» y esa vía queda descartada.
Pasos SIEMPRE manuales (del humano, todos juntos y antes de empezar)
- Crear la cuenta del proveedor y hacer
npx wrangler loginen una shell real (no la de Claude Code). - Registrar el subdominio de
workers.dev: el panel nuevo no lo muestra antes del primer despliegue ywranglerlo pregunta de forma interactiva, por eso se hace en la shell real, en el primer despliegue. - El primer despliegue lo hace el humano. Después, si quiere, pone
despliegue.primerDespliegueHecho: trueen la ficha y vuelve a generar los permisos: solo entonces quedan autorizadosnpm run deployynpx wrangler deploy, exactos.wrangler delete,secret,logoutypages project deleteestán siempre denegados. - Al terminar de desplegar, se recomienda
npx wrangler logout(lo hace el humano): el inicio de sesión pide permisos que el sitio no usa.
Si el antivirus marca powershell.exe durante el inicio de sesión, ver kit/PUBLICACION-PROBLEMAS.md.
Flujo
- Publicar:
npm run publicar(contimeout). Generadist/(ignorada por git) copiando solo la lista permitida descripts/publish.mjsy escribedist/_headers. Revisa el resumen: nada dedesign/,kit/,tests/,.claude/,scripts/,package*.json,CLAUDE.md,HANDOFF.mdni capturas. - Pruebas:
npm test(incluyetests/publicacion.test.mjs: contenido dedist/y CSP sin violaciones). Y el sello de pre-merge si la publicación sale de una rama. - Despliegue: solo con lo que ya está en la rama base, y solo con el bloque «DEPLOY AUTORIZADO» del prompt y la ficha al día. Con
npm run deploy. Hasta confirmar en la documentación oficial que la vista previa por versión (wrangler versions upload) aplica a un Worker nuevo, el primer despliegue es directo a producción y se revisa en vivo; no la uses como si existiera. - Humo:
node scripts/humo.mjs <dirección pública>: 200 en/y/en/, 404 con estilos, PDF del CV, cabeceras de seguridad, sin teléfono ni nombres prohibidos (edita las listas del script una vez). Un solo intento acotado; no hagas bucles. - Revisión: el humano, o el revisor externo, abre la dirección pública en Chrome (claro y oscuro, escritorio y móvil) y da el visto bueno. El informe cita lo que quedó sin medir.
Archivos de este flujo
scripts/publish.mjs, scripts/_headers.template (sin comentarios, formato de archivos estáticos de Workers), scripts/humo.mjs, wrangler.jsonc (sin main ni binding), tests/publicacion.test.mjs. Las pruebas reproducibles requieren playwright-core como devDependency y package-lock.json versionado (npm ci, nunca npm install a ciegas).