+−¿Qué se prueba exactamente?
La matriz de presets, íntegra: el CI genera un proyecto de cada preset, exige cero apariciones del nombre antiguo y ejecuta install, typecheck, unitarios y e2e. Más all-on, all-off y cada feature desactivada de forma aislada sobre el preset SaaS. Catorce features booleanas son 16.384 combinaciones, y el CI no prueba 16.384 proyectos: las combinaciones fuera de esa matriz están permitidas y no probadas — y el CLI lo dice, en una línea, sin dramatismo. Un boilerplate que promete garantías que no verifica es peor que uno que declara el límite.
+−¿Y si no quiero multi-tenancy?
--no-multi-tenant lo esconde, no lo arranca. El proyecto nace con un tenant fijo creado en el seed, el scope siempre abierto en él, y el selector de empresa, el panel /platform y el SUPERADMIN fuera de la interfaz. Row Level Security se queda, y sigue demostrado por tenant-isolation.e2e-spec.ts; el coste es una columna indexada y un predicado que Postgres resuelve con una constante. Arrancarlo significaría mantener dos versiones de todo el acceso a datos — y la versión sin RLS es justamente la que no podemos demostrar segura.
+−¿Puedo actualizar después?
El proyecto generado es tuyo, no una dependencia: no hay pnpm update que traiga novedades de DontPanic a su interior, y es a propósito — vas a editar ese código el primer día. Lo que sí hay es reproducibilidad: la misma receta con la misma versión de la plantilla genera el mismo proyecto hoy y dentro de dos años, así que puedes generar de nuevo y comparar diffs cuando quieras adoptar algo del upstream.
+−¿Y la licencia?
MIT, en el generador y en la plantilla. Lo que sale del npx es tuyo: sin atribución obligatoria, sin royalties, sin cláusula que cambie de valor si tu producto crece. Puedes cerrar el código de lo que generes.
+−¿Necesito Docker?
Para ejecutar la suite de tests, no: los adapters memory, console y local existen justamente para funcionar sin nada levantado. Para desarrollar de verdad necesitas un Postgres — y el docker compose del proyecto levanta Postgres, Redis, MinIO y Mailpit en puertos que no chocan con los tuyos. Si ya tienes esos servicios, apunta el .env hacia ellos y genera con --no-docker.
+−¿Funciona con Claude Code, Cursor y similares?
El proyecto generado trae un CLAUDE.md podado a las features que elegiste: solo las secciones que existen en tu código. Ahí están las decisiones de seguridad y el motivo de cada una, en el formato que un agente lee antes de escribir. El efecto secundario es probablemente lo que te trajo aquí: el contexto se gasta en tu producto y no en redescubrir cómo se hace la rotación de refresh tokens.