v0.8.0: reidentificación a @gonzoblasco/create-stack con stacks modulares#1
Conversation
gonzoblasco
commented
Jul 20, 2026
- Renombre: create-stack-next → @gonzoblasco/create-stack
- Nuevo CLI: npx @gonzoblasco/create-stack [nombre]
- Arquitectura modular: cada stack en src/stacks//
- Stacks: next (full app) y api (API-only)
- Compatibilidad hacia atrás con formato legacy
- ADRs, OpenSpec specs, BRIEF y STATUS documentados
- 67 tests pasando
…ares - Renombre: create-stack-next → @gonzoblasco/create-stack - Nuevo CLI: npx @gonzoblasco/create-stack <stack> [nombre] - Arquitectura modular: cada stack en src/stacks/<id>/ - Stacks: next (full app) y api (API-only) - Compatibilidad hacia atrás con formato legacy - ADRs, OpenSpec specs, BRIEF y STATUS documentados - 67 tests pasando
- Regenerado package-lock.json (estaba desync con package.json renombrado) - CI actualizado: usa nuevo formato npx @gonzoblasco/create-stack next|api - CI ahora testea ambos stacks (next y api) en cada matrix - Agregado branch v2-rebrand a triggers de CI
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f1a69d4b96
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
|
||
| // El primer argumento posicional es el stack | ||
| // Solo si no fue ya seteado por --template legacy | ||
| if (positional.length > 0 && args.stack === undefined) { |
There was a problem hiding this comment.
Preserve the project name with --template
When callers use the documented legacy form my-app --template api, the --template case sets args.stack before positional processing, so this guard skips the whole block that assigns args.projectName. The CLI then exits with “Falta el nombre del proyecto” instead of generating the API stack. Positional project name assignment needs to still run when the stack came from the legacy template flag.
Useful? React with 👍 / 👎.
El lockfile generado en macOS incluye deps nativas (@emnapi/*) que no existen en linux-x64. npm ci falla porque espera encontrarlas. Solución: usar npm install que resuelve dependencias al vuelo.
- Eliminado import no usado de listStacks en parse-args.ts - Organizados imports en cli.ts, stacks/index.ts, api/index.ts, next/index.ts - Formateados test files (copy-template, integration, openspec) - Arreglado useOptionalChain en middleware.ts del template api - Eliminada variable no usada req en health.test.ts del template api - Lint 100% limpio, 67 tests pasando
…:run) - AGENT_TASKS.md: workflow obligatorio actualizado - HANDOFF.md: lección aprendida documentada
Los templates en src/stacks/*/template/ no se compilan con tsc pero el runtime los busca desde __dirname que apunta a dist/. Agregado script postbuild scripts/copy-templates.mjs que copia los templates a dist/stacks/*/template/ después de tsc. Esto soluciona el error ENOENT en CI: el CLI ahora encuentra los templates en dist/ al ejecutarse desde el build.