DOC/ Actualizado el 2026-09-19
Desarrollo
Setup, comandos y flujo de contribución de este repositorio.
- Node.js 24 o más nuevo
- pnpm 12 (fijado vía
packageManageren package.json)
pnpm install
pnpm dev # turbo dev: app web con HMR
pnpm type-check # turbo type-check en todo el monorepo
pnpm lint # eslint (reglas de next + typescript), cero warnings
pnpm test # turbo test (vitest)
pnpm build # build de producción en apps/web/.next
Todos los checks deben pasar antes del push: pnpm lint con cero errores,
pnpm type-check con cero errores, pnpm format:check sin diferencias y un
pnpm build exitoso.
- Strings de interfaz: edita
packages/i18n/messages/en.jsony luego traduce los otros seis archivos de idioma. Mantén la estructura de claves idéntica. - Docs: edita
packages/content/docs/en/<slug>.mdy luego actualiza las traducciones. Las traducciones ausentes caen al inglés automáticamente. - Después de cambiar messages o docs, ejecuta
pnpm buildy revisa cada ruta de idioma en el navegador.
Los commits del repositorio se crean con la identidad GitLab del dueño del proyecto para que los jobs de CI corran con verificación de identidad, y cada commit lleva un trailer de co-autoría:
Co-authored-by: Ella Mizuki
Esto es obligatorio para que el pipeline corra; ver deployment.md.
main está protegida: push por Maintainers, force push deshabilitado. Las
reescrituras de historial (como reasignar autoría de commits) requieren
quitar la protección temporalmente, hacer el force push y restaurarla con
los ajustes exactamente iguales.
El pipeline definido en .gitlab-ci.yml corre cuatro jobs:
qualitylint y typecheck;semgrep-sastescaneo de seguridad (template);buildbuild de producción con artefacto;secret_detectionescaneo de secretos (template).
El setup de pnpm está limitado a los jobs quality y build. Las imágenes
de los templates de seguridad no incluyen corepack y no deben heredarlo.
La validación es:
- lint, typecheck, build;
- pasada de navegador en 375, 768, 1024, 1440 y 1920px con cero overflow horizontal, en todos los idiomas;
- pasada de reduced motion: sin shimmer ni transiciones activas, contenido visible;
- la navegación por ancla limpia el header fijo (scroll padding);
- las rutas de docs resuelven en todos los idiomas, incluyendo el fallback en inglés.