create-huenei-template
v0.2.8
Published
CLI corporativo para crear proyectos Huenei desde templates predefinidos, optimizados para el desarrollo asistido por agentes de IA.
Readme
create-huenei-template
CLI corporativo para crear proyectos Huenei desde templates predefinidos, optimizados para el desarrollo asistido por agentes de IA.
Características
- 🎯 Multi-stack: Soporta Frontend, Backend y Mobile
- 🤖 Agents Ready: Cada template viene con rules, skills y servidores MCP configurados para agentes de desarrollo (Cursor, Claude, etc.)
- 🔧 TypeScript: 100% tipado con tipos estrictos
- 📦 pnpm: Gestión moderna de dependencias
- 🚀 Extensible: Agregar templates sin modificar código core
- ⚡ Interactivo: Prompts intuitivos categoría → tecnología
- 🛡️ Robusto: Manejo centralizado de errores y cleanup automático
Uso
npx create-huenei-templateSeguí los prompts interactivos:
- Nombre del proyecto: Define el nombre de tu proyecto
- Categoría: Elegí entre Frontend, Backend o Mobile
- Template: Seleccioná la tecnología específica
- pnpm: Opcionalmente instalá pnpm si no lo tenés
Templates Disponibles
Frontend
- React + Vite: React 19, Vite (rolldown), TanStack Router (file-based) y Query, Tailwind CSS v4, DaisyUI, shadcn/ui, React Hook Form + Zod, Vitest + Testing Library. Setup mínimo listo para producir.
- React + Vite (con ejemplos): Misma base tecnológica que React + Vite, pero incluye componentes de ejemplo, rutas documentadas y guías integradas para acelerar el onboarding.
- Angular Base: Angular 21, Tailwind CSS v4, SSR (Server-Side Rendering), Angular CDK, ngx-charts, Cypress para E2E y Vitest para unit testing.
Backend
- NestJS API + SQLite: NestJS 11 con Fastify, Prisma + SQLite, autenticación JWT con roles, documentación Swagger, validación con class-validator y Zod, tests con Jest. Ideal para proyectos pequeños y medianos.
- NestJS API + PostgreSQL: Misma base que SQLite pero con PostgreSQL como motor de base de datos y soporte Docker (docker-compose). Configuración empresarial lista para producción.
- NestJS API + MySQL: NestJS 11 con Fastify, Prisma + MariaDB adapter, autenticación JWT con roles, documentación Swagger, validación con class-validator y Zod, tests con Jest y soporte Docker (docker-compose). Configuración empresarial para MySQL/MariaDB.
Mobile
- Expo: Expo 54, React Native 0.81, Expo Router, TanStack Query, i18n (i18next), Expo Secure Store, componentes UI reutilizables y arquitectura escalable.
Listos para Agentes de Desarrollo
Todos los templates vienen preconfigurados para trabajar con agentes de desarrollo como Cursor. Esto significa que al crear un proyecto, el agente ya tiene contexto sobre la arquitectura, las convenciones y las tecnologías del proyecto desde el primer momento, lo que mejora drásticamente la calidad del código generado.
Cursor Rules (.cursor/rules/)
Reglas de arquitectura y convenciones que el agente aplica automáticamente en cada interacción. Cada template incluye reglas específicas para su stack:
- React + Vite / React + Vite (con ejemplos):
architech.mdc— Arquitectura completa del proyecto, estructura de carpetas, convenciones de código, stack tecnológico y flujo de trabajo. - Angular Base:
angular-expert.mdc— Convenciones de Angular, patrones de componentes, signals, routing y SSR. - NestJS API (SQLite, PostgreSQL y MySQL): 7 reglas especializadas:
nestjs-architecture.mdc— Arquitectura y estructura de módulosauthentication-security.mdc— Autenticación JWT y seguridaddto-validation.mdc— Validación de DTOsprisma-standards.mdc— Estándares de Prismaswagger-documentation.mdc— Documentación Swagger/OpenAPIapi-rest.mdc— Convenciones RESTgeneral-rules.mdc— Reglas generales del proyecto
- Expo:
general-rules.mdcyreact-native-rules.mdc— Convenciones de React Native y Expo.
Cursor Skills (.cursor/skills/)
Skills especializados que le dan al agente conocimiento profundo sobre las tecnologías del proyecto. El agente los consulta automáticamente antes de tomar decisiones técnicas:
| Template | Cant. Skills | Áreas cubiertas | |---|---|---| | React + Vite | 29 | Tailwind v4, TanStack (Router, Query, Table), React Hook Form, Zod, shadcn/ui, DaisyUI, Vitest, Testing Library, SEO, responsive, accesibilidad, animaciones | | React + Vite (con ejemplos) | 29 | Mismas áreas que React + Vite | | Angular Base | 23 | Angular (componentes, DI, directivas, forms, HTTP, routing, signals, SSR, testing, tooling), Tailwind v4, diseño web | | NestJS API + SQLite | 5 | NestJS, Prisma, Node.js, seguridad de APIs | | NestJS API + PostgreSQL | 7 | NestJS, Prisma, Node.js, seguridad de APIs, Docker, diseño de tablas PostgreSQL | | NestJS API + MySQL | 7 | NestJS, Prisma, Node.js, seguridad de APIs, Docker, diseño de tablas PostgreSQL | | Expo | 8 | React Native, Expo (dev client, API routes, Tailwind setup), UI nativa, data fetching, use-dom |
MCP Servers (.cursor/mcp.json)
Todos los templates incluyen servidores MCP preconfigurados que extienden las capacidades del agente:
Comunes a todos:
- context7: Permite al agente consultar documentación actualizada de cualquier librería (React, Angular, NestJS, Prisma, Expo, Tailwind, etc.) en tiempo real.
Frontend:
- Figma Desktop: Integración directa con diseños de Figma para traducir diseños a código.
- angular-cli (solo Angular): MCP nativo de Angular CLI para operaciones de scaffolding y generación de código.
Backend:
- sqlite (solo NestJS + SQLite): Permite al agente inspeccionar la base de datos SQLite del proyecto directamente — ver tablas, schemas y ejecutar queries sobre
./prisma/dev.db. - postgres (solo NestJS + PostgreSQL): Permite al agente inspeccionar y consultar la base de datos PostgreSQL. Se conecta usando la connection string del proyecto (
postgresql://nestjs:nestjs_password@localhost:5432/nestjs_apipor defecto). Requiere que el contenedor Docker de PostgreSQL esté corriendo.
Mobile:
- Expo Starter MCP (Expo): MCP remoto para setup y desarrollo de apps Expo. Ayuda al agente con scaffolding, configuración y buenas prácticas de Expo y React Native.
Cursor Commands (.cursor/commands/)
Todos los templates incluyen comandos predefinidos que automatizan tareas repetitivas mediante flujos interactivos guiados:
NestJS API (SQLite y PostgreSQL) — 8 commands:
new-endpoint: Genera un endpoint REST completo (module, controller, service, DTOs) con Swagger y auth opcional.new-model: Genera un modelo Prisma con relaciones, validaciones y campos personalizados.new-guard: Crea guards de autorización (roles, permisos, API key) con decoradores y enums.new-middleware: Crea middleware compatible con Fastify (logging, correlation ID, security headers).new-interceptor: Crea interceptors RxJS (transform response, logging, cache, timeout).add-seed: Genera datos seed realistas para un modelo Prisma existente.add-pagination: Agrega paginación (offset/cursor-based) a un endpoint existente con DTOs y Swagger.add-tests: Genera tests unitarios (Jest) y e2e (Fastify) con mocks de Prisma.
NestJS API (MySQL) — 2 commands:
new-endpoint: Genera un endpoint REST completo (module, controller, service, DTOs) con Swagger y auth opcional.new-model: Genera un modelo Prisma con relaciones, validaciones y campos personalizados.
Angular Base — 6 commands:
new-component: Crea standalone components con signals,input()/output(), Tailwind y OnPush.new-page: Crea páginas con lazy loading, ruta configurada y compatibilidad SSR.new-service: Crea servicios HTTP coninject(HttpClient), tipado estricto y manejo de errores.new-form: Crea Reactive Forms con validaciones, mensajes de error y signals para estado.new-interceptor: Crea interceptors funcionales de Angular 21 (auth token, error handler, loading, retry).add-e2e-test: Genera tests e2e Cypress concy.intercept, fixtures ydata-testid.
React + Vite / React + Vite (con ejemplos) — 7 commands:
new-page: Crea páginas con TanStack Router, loaders y error/pending components.new-form: Crea formularios con React Hook Form + Zod y componentes DaisyUI/Shadcn.new-query: Crea hooks TanStack Query con query keys factory, services API y optimistic updates.new-component: Crea componentes con CVA variants, clsx + tailwind-merge y tests.new-table: Crea tablas TanStack Table con sorting, filtering y paginación.add-route: Agrega rutas TanStack Router (página, layout, index, redirect, search params).add-tests: Genera tests Vitest + Testing Library para componentes, hooks y formularios.
Expo — 7 commands:
new-screen: Crea pantallas Expo Router (stack, tab, modal) con componente separado.new-component: Crea componentes React Native con memo, useCallback, StyleSheet y accesibilidad.new-hook: Crea custom hooks tipados con JSDoc, tests y categorías (estado, API, plataforma, UI).new-api-service: Crea servicios API con fetch + SecureStore + TanStack Query hooks.add-translation: Agrega claves i18n en todos los idiomas con interpolación y pluralización.new-modal: Crea modales Expo Router (full screen, sheet, dialog) con formularios.new-tab: Agrega tabs al navigator con icono lucide, badge y accesibilidad.
Resumen de configuración por template
| Template | Rules | Skills | MCP Servers | Commands | |---|---|---|---|---| | React + Vite | 1 | 29 | context7, Figma | 7 | | React + Vite (con ejemplos) | 1 | 29 | context7, Figma | 7 | | Angular Base | 1 | 23 | angular-cli, context7, Figma | 6 | | NestJS API + SQLite | 7 | 5 | sqlite, context7 | 8 | | NestJS API + PostgreSQL | 7 | 7 | postgres, context7 | 8 | | NestJS API + MySQL | 7 | 7 | context7 | 2 | | Expo | 2 | 8 | expo-starter, context7, Figma | 7 |
Desarrollo
Requisitos
- Node.js ≥ 18
- pnpm
Setup
# Instalar dependencias
pnpm install
# Compilar
pnpm build
# Testear módulos
pnpm testEstructura
create-huenei-template/
├── src/
│ ├── index.ts # Entry point
│ ├── core/ # Módulos core
│ │ ├── prompts.ts # Lógica de prompts
│ │ ├── template-resolver.ts
│ │ ├── file-operations.ts
│ │ ├── dependency-manager.ts
│ │ └── errors.ts
│ ├── types/ # Sistema de tipos
│ └── config/ # Configuración de templates
├── templates/ # Templates por categoría
│ ├── frontend/
│ │ ├── react-vite/
│ │ ├── react-vite-help/
│ │ └── angular-base/
│ ├── backend/
│ │ ├── nestjs-api-sqlite/
│ │ ├── nestjs-api-postgres/
│ │ └── nestjs-api-mysql/
│ └── mobile/
│ └── expo-base/
└── bin/ # Entry point ejecutableAgregar un Template
- Creá la carpeta del template:
mkdir -p templates/backend/nestjs- Agregá la configuración en
src/config/templates.ts:
{
id: 'nestjs',
name: 'NestJS',
description: 'Enterprise Node.js framework',
category: 'backend',
path: 'backend/nestjs'
}Opcionalmente, agregá configuración para agentes:
.cursor/rules/— Reglas de arquitectura y convenciones.cursor/skills/— Skills especializados para las tecnologías del template.cursor/mcp.json— Servidores MCP relevantes.cursor/commands/— Comandos para tareas repetitivas
Compilá y listo:
pnpm buildEl CLI detecta automáticamente el nuevo template.
Arquitectura
- Separación de responsabilidades: Cada módulo tiene una función específica
- Tipado fuerte: Todo el código usa TypeScript estricto
- Extensibilidad: Agregar templates = modificar solo config
- Manejo de errores: Sistema centralizado con tipos de error específicos
- Cross-platform: Funciona en Windows, macOS y Linux
Publicación
# Actualizar versión en package.json
pnpm version patch|minor|major
# Publicar (automáticamente ejecuta build via prepublishOnly)
pnpm publishLicencia
Propiedad de Huenei.
