Files
hr_soul23/docs/CONVENTIONS.md
google-labs-jules[bot] d066fe217c feat: Establecer la estructura de orquestación de agentes
Define la estructura de directorios y la documentación inicial para orquestar el trabajo de los agentes de IA.

- Crea los directorios `src` y `docs/agents`.
- Genera archivos de bitácora individuales para cada uno de los 13 agentes definidos.
- Introduce `docs/CONVENTIONS.md` para establecer las reglas de nomenclatura, estilo de código y contratos de API.
- Actualiza el `README.md` principal con una sección que detalla el nuevo flujo de trabajo basado en agentes, explicando cómo deben operar y documentar su progreso.

Este cambio sienta las bases para un desarrollo estructurado, trazable y coherente, de acuerdo con el rol del Agente 0 (Arquitectura y Orquestación).
2025-12-13 21:16:48 +00:00

3.9 KiB
Raw Blame History

Convenciones del Proyecto HR Platform

Este documento define las convenciones técnicas y de estilo que deben seguir todos los agentes que contribuyan al proyecto.

Su objetivo es asegurar la consistencia, legibilidad y mantenibilidad del código y la documentación.


1. Nomenclatura (Naming Conventions)

1.1 General

  • Idioma: Inglés para todo el código (variables, funciones, clases). Español para documentación y comentarios si es necesario aclarar un término de negocio específico de la región.
  • Claridad sobre brevedad: calculateAnnualLeave es mejor que calcLev.

1.2 Variables y Funciones

  • Estilo: camelCase.
    • Ejemplo: const currentUser = ...;
    • Ejemplo: function calculateSalary(...)

1.3 Clases y Tipos

  • Estilo: PascalCase (o UpperCamelCase).
    • Ejemplo: class EmployeeService { ... }
    • Ejemplo: interface UserProfile { ... }

1.4 Constantes

  • Estilo: UPPER_CASE con guiones bajos.
    • Ejemplo: const MAX_LOGIN_ATTEMPTS = 5;

1.5 Archivos

  • Componentes/Módulos: PascalCase.js (ej. EmployeeCard.js)
  • Servicios/Rutas/Config: kebab-case.js (ej. user-routes.js, database-config.js)

2. Estilo de Código (Code Style)

2.1 JavaScript/Node.js

  • Formateador: Prettier con la configuración por defecto.
  • Linter: ESLint con un conjunto de reglas estándar (ej. eslint:recommended).
  • Módulos: Usar import/export (ES Modules) en lugar de require/module.exports (CommonJS) siempre que sea posible.
  • Punto y coma: Obligatorio.

2.2 Comentarios

  • Cuándo: Comentar lógica de negocio compleja, no código obvio.
  • Cómo: Usar JSDoc para funciones y módulos para describir propósito, parámetros y valores de retorno.

3. Contratos de API (API Contracts)

3.1 Endpoints

  • Formato: RESTful. Usar sustantivos en plural para las colecciones.
    • GET /api/v1/employees (Obtener todos los empleados)
    • GET /api/v1/employees/{id} (Obtener un empleado)
    • POST /api/v1/employees (Crear un empleado)
    • PUT /api/v1/employees/{id} (Actualizar un empleado)
    • DELETE /api/v1/employees/{id} (Eliminar un empleado)

3.2 Versionado

  • Incluir el número de versión en la URL: /api/v1/...

3.3 Payloads (Request/Response)

  • Formato: JSON.
  • Estilo de claves: camelCase.
  • Respuestas de error: Usar una estructura consistente.
    {
      "error": {
        "code": "VALIDATION_ERROR",
        "message": "El campo 'email' es inválido.",
        "details": [
          { "field": "email", "issue": "Formato incorrecto" }
        ]
      }
    }
    

4. Commits en Git

4.1 Mensajes de Commit

  • Formato: Conventional Commits.
    • feat: Implementar login de usuarios
    • fix: Corregir cálculo de vacaciones en años bisiestos
    • docs: Actualizar README con instrucciones de despliegue
    • style: Formatear código con Prettier
    • refactor: Mover lógica de negocio a capa de servicio
    • test: Añadir pruebas unitarias para el módulo de permisos
    • chore: Actualizar dependencias de npm

4.2 Ramas

  • main: Rama principal, representa el estado de producción.
  • develop: Rama de integración para el trabajo en curso.
  • test: Rama de pruebas.
  • Ramas de feature: feature/nombre-corto-del-feature (ej. feature/user-auth)
  • Ramas de bugfix: fix/descripcion-corta-del-bug (ej. fix/login-error)

5. Documentación

  • Bitácoras de Agente: Cada agente debe registrar sus decisiones y progreso en su archivo correspondiente en docs/agents/.
  • READMEs: Cualquier nuevo módulo complejo debe tener su propio README.md explicando su propósito y uso.

Este documento es una guía viva y puede ser actualizado por el Agente 0 (Arquitectura) según las necesidades del proyecto.