¿Qué hace launch-checklist?
Ejecute la auditoría automatizada, corrija lo que falla en el código, vuelva a ejecutar hasta que esté limpio, luego revise los elementos manuales que el script no puede ver. Informe al usuario qué cambió y qué aún necesita su atención.
Paso 1 — Ejecutar la auditoría
Contra la URL de producción si existe, de lo contrario contra una compilación de producción local
(npm run build && npm start, no el servidor de desarrollo — los servidores de desarrollo añaden scripts y omiten el caché):
python3 scripts/audit_site.py https://example.com # reporte de texto
python3 scripts/audit_site.py http://localhost:3000 --max-pages 30 --json > audit.json
Qué verifica (detalles en references/checks.md):
- Por página:
<title>(10–60 caracteres), meta descripción (50–160), exactamente un<h1>,<html lang>, viewport, canónica (absoluta, mismo host), og:title/description/image, twitter:card,<img>sinalt, tamaño HTML, tiempo de respuesta,noindexen páginas que probablemente quieras indexar, títulos/descripciones duplicados entre páginas. - Sitio:
/robots.txtexiste y no tieneDisallow: /todo, referencia un sitemap;/sitemap.xml(o el nombrado en robots) se analiza y sus URLs devuelven 200 en el mismo host; favicon accesible; apple-touch-icon; una URL aleatoria devuelve 404 (no 200 ni redirección a inicio); redirección http→https (para sitios https); enlaces a política de privacidad / términos (y política de reembolso si el sitio vende algo); presencia de/llms.txt(solo informativo).
Código de salida 1 cuando hay algún FALLO. Páginas rastreadas: URL inicial + enlaces del mismo host, hasta --max-pages (por defecto 20).
Paso 2 — Corregir en el código base
Detecte el framework y use la receta correspondiente. Para Next.js App Router,
references/fixes-nextjs.md contiene robots.ts, sitemap.ts, not-found.tsx, metadata,
convenciones de iconos listos para usar. HTML genérico/otros frameworks: references/fixes-generic.md.
Reglas:
- Corrija la causa raíz (layout compartido / ayudante de metadatos), no página por página, cuando el problema se repite.
- Nunca agregue
noindexni bloquee rastreadores sin preguntar. - Páginas legales faltantes: genérelas con el skill
legal-pagessi está instalado; de lo contrario, informe al usuario — no invente texto legal directamente. - Imágenes OG faltantes: use el skill
og-image-kitsi está instalado.
Paso 3 — Volver a ejecutar hasta que no haya FALLOS
Vuelva a ejecutar el mismo comando. Elementos con ADVERTENCIA: corrija los fáciles, enumere el resto para el usuario.
Paso 4 — Elementos manuales (el script no puede verificar)
Revise references/manual-checklist.md con el usuario — analíticas instaladas, seguimiento de errores,
capacidad de entrega de correos transaccionales (SPF/DKIM/DMARC), flujo de pago probado de extremo a extremo con un
pequeño pago real, copias de seguridad, monitor de actividad, verificación de Search Console / Bing Webmaster y envío
de sitemap, estado de la renovación del dominio. Marque cada uno como hecho / no aplica / el usuario lo hará.
Paso 4b — Auto-verificación de pagos (si el sitio acepta dinero)
python3 scripts/payment_check.py --src . --provider creem # escaneo de código
python3 scripts/payment_check.py --url http://localhost:3000 # prueba una compilación en ejecución
python3 scripts/payment_check.py --url http://localhost:3000 --secret "$CREEM_WEBHOOK_SECRET" # solo secreto de modo prueba
FALLOS: webhook acepta solicitudes sin firmar o falsificadas, analiza JSON antes de verificar, sin deduplicación en
id de evento, página de éxito concede acceso, secretos de pago en NEXT_PUBLIC_* o comprometidos, webhook
redirige o está detrás de un desafío de bot. Corríjalos, vuelva a ejecutar, luego haga las pruebas manuales con tarjeta en
references/payment-checks.md (tarjeta exitosa, tarjeta rechazada, reembolso, reenvío desde el panel, cancelación).
Nunca pase un secreto de webhook en vivo. scripts/test_payment_check.py es la prueba propia del script.
Los archivos de prueba, especificación y fixture (*.test.ts, *.spec.tsx, test_*.py, cualquier cosa bajo tests/, e2e/,
__tests__/, fixtures/) no se juzgan como manejadores o páginas de éxito, porque publican solicitudes sin firmar
e insertan filas intencionalmente; aún se escanean en busca de claves en vivo comprometidas. El reporte dice
cuántas se omitieron (INFO test files).
Formato del reporte
Auditoría de lanzamiento para <url> — <fecha>
FALLO corregido: … (archivo:línea cambiada)
ADVERTENCIA corregida: …
Aún abierto (necesita de ti): …
Lista de verificación manual: x/y completados