Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
216 changes: 216 additions & 0 deletions README.es-ES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,216 @@


# DevForge CLI
Comment on lines +1 to +3

DevForge CLI es una herramienta de andamiaje (scaffolding) nativa de IA para equipos de JavaScript y TypeScript que buscan más que un proyecto vacío. Convierte la intención del proyecto en un repositorio ejecutable con orientación de arquitectura, interfaces de inicio, configuración de pruebas, reglas de IA, higiene de repositorio y documentación para colaboradores ya implementadas.

## Por qué existe DevForge

La mayoría de los nuevos proyectos pierden tiempo antes de que incluso comience el trabajo real del producto. Los equipos repiten las mismas decisiones de configuración sobre frameworks, administradores de paquetes, pruebas, linting, formateo, higiene de lanzamientos, CI y herramientas de IA. DevForge comprime esa fase de configuración en un flujo guiado único y genera un repositorio que ya se explica por sí mismo.

DevForge te ayuda a:

- pasar de la idea a un repositorio ejecutable más rápido
- evitar combinaciones de stack inválidas antes de que lleguen al código
- comenzar con documentación del proyecto, interfaces de inicio y archivos para colaboradores desde el primer día
- estandarizar el andamiaje en proyectos personales, herramientas internas y trabajo para clientes
- mantener a Cursor, Claude y Codex alineados con el stack seleccionado mediante reglas generadas

## Qué genera

- páginas de aterrizaje, aplicaciones frontend, APIs backend, aplicaciones fullstack, espacios de trabajo microfrontend, extensiones de Chrome y herramientas CLI
- interfaces de usuario iniciales detalladas del proyecto para superficies frontend
- endpoints de metadatos y estado de salud para APIs backend y fullstack
- archivos de reglas de IA para Cursor, Claude, Codex y `AGENTS.md`
- configuración de pruebas para Vitest, Jest, Playwright y Cypress
- configuración opcional de ESLint, Prettier, Husky, Commitlint, Docker y GitHub Actions
- líneas base de implementación para pares de andamiaje verificados en Vercel, Netlify, Render, Railway y Docker Compose
- documentación generada, metadatos del proyecto listos para el registro de cambios (changelog) e higiene básica del repositorio

## Inicio Rápido

Ejecutar sin instalación global:

```bash
npx --yes @ali-dev11/devforge@latest
```

Instalación global:

```bash
npm install -g @ali-dev11/devforge
devforge
```

Verificación de preparación del equipo:

```bash
npx --yes @ali-dev11/devforge@latest doctor
```

Agregar características gestionadas más tarde:

```bash
npx --yes @ali-dev11/devforge@latest add testing
npx --yes @ali-dev11/devforge@latest add docker
```

Preflight solo con el plan:

```bash
npx --yes @ali-dev11/devforge@latest init --preflight-only
```

Andamiaje impulsado por configuración:

```bash
npx --yes @ali-dev11/devforge@latest init --config ./devforge.config.json --output ./my-app
```

Andamiaje con preset integrado:

```bash
npx --yes @ali-dev11/devforge@latest init --preset frontend-app --output ./my-app
```

Actualizar documentación gestionada, flujos de trabajo y herramientas:

```bash
npx --yes @ali-dev11/devforge@latest upgrade
```

## Qué te pregunta la CLI

DevForge mantiene las decisiones de configuración principales como obligatorias y deja el resto en pasos de personalización opcionales.

- Siempre solicitados: nombre del proyecto, directorio de salida, estrategia de Node, administrador de paquetes, intención del proyecto, arquitectura (cuando hay más de una opción válida) y elecciones centrales específicas del stack, como framework o lenguaje backend.
- Solicitados solo cuando optas por la personalización: bibliotecas frontend, capacidades backend, detalles de pruebas, detalles de reglas de IA, linting/formateo/hooks y herramientas adicionales de DevOps.

## Guía de Prompts

Cada prompt en DevForge existe para responder una de cuatro preguntas: dónde debe residir el proyecto, qué tipo de producto se está creando, qué stack debe impulsarlo y qué tanta configuración de equipo/proceso debe generarse desde el primer día.

- `Project name`: se convierte en el nombre del paquete o espacio de trabajo generado y se reutiliza en pantallas de inicio, documentación y metadatos.
- `Output directory`: le indica a DevForge dónde escribir los archivos. Es necesario para que el generador sepa qué carpeta crear o validar antes de escribir.
- `Node.js version`: controla si el andamiaje sigue la ruta LTS actual, la versión más reciente disponible o una versión personalizada fija para entornos de equipo más estrictos.
- `Package manager`: elige el lockfile, comando de instalación y comportamiento de espacios de trabajo para el proyecto generado.
- `What are you building?`: decide todo el flujo descendente, incluyendo si DevForge hace preguntas específicas de frontend, backend, extensión, CLI o espacio de trabajo.
- `Architecture style`: determina si la salida es una sola aplicación, una base de código modular, un monorepo o un espacio de trabajo microfrontend cuando tenga sentido para la intención seleccionada.
- `Template tier`: controla qué tanta configuración base y estructura orientada a producción debe incluir el andamiaje.

La guía completa prompt por prompt está aquí:

- [Prompt Reference](./docs/prompts.md)

## Herramientas por Defecto versus Opcionales

- ESLint: habilitado por defecto porque la mayoría de los equipos quieren retroalimentación de lint inmediatamente.
- Prettier: habilitado por defecto para que el formateo se mantenga consistente entre humanos y herramientas de IA.
- Husky: opcional y desactivado por defecto porque los hooks locales de git dependen de las políticas del equipo.
- Commitlint: opcional y desactivado por defecto a menos que explícitamente desees hacer cumplir los mensajes de commit.
- Docker y GitHub Actions generados: opcionales, dependiendo de si el proyecto necesita contenedores o automatización a nivel de repositorio desde el primer día.

## Cómo ayuda DevForge en la práctica

- Para equipos frontend, crea una superficie de inicio visible que muestra el stack seleccionado, los metadatos del proyecto y los detalles del generador.
- Para equipos backend, expone metadatos estructurados y endpoints de estado para que el andamiaje sea inspeccionable inmediatamente.
- Para equipos fullstack, te proporciona tanto un entorno frontend como una superficie API en lugar de solo archivos de configuración.
- Para equipos de plataformas, crea convenciones de proyecto repetibles en torno a documentación, pruebas y reglas de IA.
- Para paquetes públicos y trabajo para clientes, reduce la desviación en la configuración de la "primera semana" y brinda a los colaboradores un punto de partida más claro.

## Comandos de Desarrollo

```bash
npm install
npm run dev -- --help
npm run lint
npm run typecheck
npm run test
npm run build
npm run check
npm run docs:changelog
npm run smoke
npm run smoke:packed
npm run runtime:matrix -- --scenario backend-hono --scenario cli-tool
```

## Por qué importan estos comandos

- `npm install` instala las dependencias de desarrollo locales para el repositorio de DevForge en sí.
- `npm run lint` verifica las reglas de calidad de código del repositorio.
- `npm run typecheck` valida el código fuente de TypeScript sin emitir la salida de compilación.
- `npm run test` ejecuta la cobertura de regresión para prompts, normalización, salida del generador, renderizado del changelog y cobertura de runtime-matrix.
- `npm run build` compila la CLI en `dist/` para que el paquete publicado y las pruebas smoke utilicen los artefactos compilados.
- `npm run check` es el comando principal de seguridad para colaboradores porque combina linting, verificación de tipos, pruebas y verificación de compilación.
- `npm run docs:changelog` actualiza la página de changelog de GitHub Pages desde `CHANGELOG.md`.
- `npm run smoke` verifica una ejecución de andamiaje no interactiva de extremo a extremo.
- `npm run smoke:packed` empaca el tarball npm real, lo instala en un directorio temporal y verifica la estructura del artefacto publicado en lugar de solo la copia del código fuente.
- `npm run runtime:matrix -- --scenario ...` instala, compila y verifica los proyectos generados para que la salida del andamiaje se pruebe como un producto, no solo como código fuente.

## Configuración como Código

- `devforge init --save-config` guarda el plan de andamiaje resuelto como `devforge.config.json` en el proyecto generado por defecto.
- `devforge init --save-config ./configs/web.json` guarda el plan normalizado en una ubicación personalizada.
- `devforge init --config ./devforge.config.json --output ./my-app` reproduce un andamiaje guardado de manera no interactiva.
- `devforge init --preset frontend-app` inicia el flujo con un preset integrado, y `--preset ./preset.json` permite a los equipos mantener archivos de preset locales reutilizables bajo control de versiones.
- `--output` y `--name` aún pueden anular la configuración guardada en tiempo de ejecución, por lo que el mismo archivo de configuración permanece reutilizable en múltiples proyectos.

## Agregar características más tarde

- `devforge add testing` habilita el ejecutor de pruebas recomendado por el andamiaje para el stack guardado y escribe la configuración de pruebas correspondiente y las pruebas de inicio.
- `devforge add docker` agrega el `Dockerfile` y `.dockerignore` generados para el proyecto DevForge actual.
- `devforge add github-actions` agrega el flujo de trabajo de CI generado para el stack del proyecto actual.
- `devforge add ai-rules` restaura `AGENTS.md`, `.cursor`, `.claude` y la documentación fuente de reglas de IA cuando estos se omitieron inicialmente.
- `devforge add` solo funciona dentro de proyectos generados por DevForge porque lee `.devforge/project-plan.json` para actualizar los archivos gestionados de forma segura.

## Actualizar superficies gestionadas

- `devforge upgrade` actualiza la documentación, flujos de trabajo, archivos de reglas de IA, líneas base de implementación y archivos de herramientas centrales gestionados por DevForge desde el `.devforge/project-plan.json` guardado.
- La actualización es intencionalmente conservadora: si un archivo gestionado ya no coincide con la línea base generada anteriormente, DevForge lo omite en lugar de sobrescribir las ediciones locales.
- La documentación y los flujos de trabajo generados nuevos ahora incluyen un marcador de gestión de DevForge para que las actualizaciones basadas en el plan puedan actualizar esos archivos de forma segura más adelante.

## Objetivos de Implementación (Deploy)

- Los objetivos de implementación verificados se ofrecen solo para pares de stack compatibles.
- Las aplicaciones frontend `react-vite` pueden apuntar a `Vercel`, `Netlify` o `Render`.
- Las aplicaciones frontend `nextjs` pueden apuntar a `Vercel`, `Render` o `Railway`.
- Las APIs backend `express`, `fastify` y `hono` pueden apuntar a `Docker Compose`, `Render` o `Railway`.
- La generación de implementación incluye archivos de configuración específicos del proveedor, orientación de rutas de compilación/inicio/estado, variables de entorno esperadas y flujos de trabajo de implementación manual opcionales cuando GitHub Actions están habilitados.

## Documentación del Repositorio

- [Documentation Site](https://ali-dev11.github.io/devforge/)
- [Docs Home](./docs/index.md)
- [Prompt Reference](./docs/prompts.md)
- [Overview](./docs/overview.md)
- [Architecture](./docs/architecture.md)
- [Development](./docs/development.md)
- [Generated Output](./docs/generated-output.md)
- [Changelog](./CHANGELOG.md)
- [GitHub Releases](https://github.com/Ali-dev11/devforge/releases)
- [GitHub Pages Changelog](https://ali-dev11.github.io/devforge/changelog.html)

## Salud de la Comunidad

- [Contributing Guide](./CONTRIBUTING.md)
- [Code of Conduct](./CODE_OF_CONDUCT.md)
- [Security Policy](./SECURITY.md)
- [Bug Report Template](./.github/ISSUE_TEMPLATE/bug-report.yml)
- [Feature Request Template](./.github/ISSUE_TEMPLATE/feature-request.yml)
- [Documentation Request Template](./.github/ISSUE_TEMPLATE/documentation.yml)
- [Pull Request Template](./.github/pull_request_template.md)

## Estructura del Repositorio

- `src/cli.ts` maneja el análisis de argumentos y el despachado de comandos.
- `src/commands/init.ts` orquesta el flujo de inicialización interactivo.
- `src/engines/` contiene la lógica de detección de entorno, prompting, normalización, generación, instalación y reglas de IA.
- `src/templates.ts` define los archivos del proyecto generados, las superficies de inicio y la documentación generada.
- `src/runtime-matrix.ts` verifica las instalaciones, compilaciones y comportamiento en tiempo de ejecución de los proyectos generados.
- `src/devforge-rules.ts` mapea las elecciones de stack a paquetes de reglas de IA curados por DevForge.
- `docs/` impulsa el sitio de documentación pública.
- `test/` cubre el comportamiento del generador, la normalización de decisiones, el renderizado del changelog y la cobertura de runtime-matrix.

## Licencia

[MIT](./LICENSE)