Gracias por ayudar a mejorar Assessment Grading Matrix! Para mantener la calidad y consistencia del proyecto, seguimos estas guías.
- Branches: Crea una rama desde main con un nombre descriptivo:
- feat/nombre-de-la-mejora
- fix/descripcion-del-bug
- refactor/area-afectada
- docs/que-se-documenta
- Commits: Usamos Conventional Commits:
- feat: ... para nuevas funcionalidades.
- fix: ... para correcciones de errores.
- docs: ... para cambios en documentación.
- refactor: ... para cambios de código que no corrigen bugs ni añaden funciones.
- chore: ... para tareas de mantenimiento o infraestructura (ej. estandarización de versiones).
Para evitar inconsistencias en las dependencias y el runtime, es obligatorio usar las versiones de Node y npm definidas en el proyecto:
- Versiones: Node
v20.19.5y npm10.8.2(verpackage.json > engines). - Uso de
.nvmrc: Ejecutanvm useal entrar al directorio del proyecto para cambiar automáticamente a la versión de Node correcta. - Validación: El archivo
.npmrctiene activadoengine-strict=true. Si intentas ejecutarnpm installcon una versión incorrecta, la instalación fallará.
Antes de abrir un Pull Request, asegúrate de cumplir con:
- Linting:
npm run lintno debe arrojar errores ni warnings importantes. - Tests:
npx vitest rundebe pasar exitosamente. Si añades lógica nueva, incluye su test unitario. - Build:
npm run builddebe completar exitosamente. - Documentación: Si has cambiado un endpoint, actualiza
docs/api-spec.md. Si has tomado una decisión arquitectónica, crea un ADR endocs/decisions/. - Validation: Las respuestas de API en el frontend deben estar validadas con
zod. - Acceptance Criteria: Todos los criterios del issue original deben estar marcados como completados.
- Mobile First: Si es un cambio en
/registero/grader, verifícalo en modo responsive.
Todos los PRs deben incluir la siguiente estructura en su descripción. GitHub la pre-llena automáticamente con la plantilla en .github/PULL_REQUEST_TEMPLATE.md.
| Sección | Descripción |
|---|---|
| Related work item | Closes #N para cerrar el issue automáticamente al hacer merge, o Relates to #N si solo está relacionado. |
| Summary | 1–3 líneas describiendo qué cambió. |
| Context | Por qué fue necesario el cambio. Enlaza ADRs, issues o discusiones si es relevante. |
| Testing | Qué probaste localmente o en CI. Incluye comandos, capturas o logs. |
| Impact | Cambios breaking, migraciones, capturas de pantalla o notas para el revisor. Omitir si no aplica. |
- Prueba los endpoints con curl, Postman o Thunder Client.
- Verifica que los errores (400, 401, 404, 500) devuelvan el formato JSON { "error": "..." }.
- Asegúrate de que los guards de requireRoles funcionan (prueba con un token de otro rol).
- Verifica estados de Carga (Spinners), Error (Toasts) y Vacío (Empty states).
- Asegúrate de usar authFetch para todas las peticiones protegidas.
- Estilos: Se utiliza Tailwind CSS para el diseño de componentes, apoyándose en variables CSS globales para mantener la consistencia de marca.
- Validación: Usa esquemas de
zodensrc/features/*/schemas/para validar los datos que llegan de la API.
- No formatear archivos ajenos: Configura tu editor para formatear solo las líneas modificadas para evitar diffs ruidosos.
- No ignorar el ADR 0003: No metas lógica compleja en los componentes de
src/app/. Usa hooks y componentes de feature ensrc/features/. - No subir secretos: Nunca hagas commit de archivos .env o llaves privadas.