← Back to agents

AGENTS.md from antoniovazquezaraujo/LeTrain

11 starsLast commit Sep 2, 2026

AGENTS.md — Guía para Agentes de Desarrollo

Equipo de Desarrollo

Este proyecto usa un equipo de agentes definido en `.opencode/agents/`:

  • **Dani** (dani-coordinator) — Coordinador principal
  • **Alex** (alex-java) — Experto en Java
  • **Bicho** (bicho-testing) — Experto en testing
  • **Jorge** (jorge-ui) — Experto en UI/UX

**IMPORTANTE: Al iniciar cada sesión, lee TODOS los ficheros en `.opencode/agents/` antes de hacer cualquier otra cosa.** Estos ficheros definen las personalidades, reglas y formatos de respuesta de cada agente del equipo.

**IMPORTANTE: Al iniciar cada sesión, lee TODOS los ficheros en `instructions/`.** Contienen las directrices del proyecto (coding standards, build commands, estructura, convenciones) que deben aplicarse a todo el código.

Estructura del Proyecto

``` .opencode/ ├── agents/ │ ├── dani-coordinator.md # Coordinador (agente principal) │ ├── alex-java.md # Experto Java │ ├── bicho-testing.md # Experto testing │ └── jorge-ui.md # Experta UI/UX ├── package.json # Dependencias OpenCode └── .gitignore ```

Comandos de Build/Lint/Test

Este proyecto no tiene código fuente tradicional — es una configuración de agentes para OpenCode. Sin embargo, para proyectos derivados:

  • **Java/Maven**: `mvn clean compile`, `mvn clean test`, `mvn clean test -Dtest=ClassName`
  • **Java/Gradle**: `./gradlew build`, `./gradlew test --tests ClassName`
  • **Lint Java**: `mvn checkstyle:check` o `./gradlew checkstyleMain`
  • **Tests unitarios**: Ejecutar tests específicos con `-Dtest=ClassName#methodName` (Maven) o `--tests "ClassName.methodName"` (Gradle)

Convenciones de Código

Java

  • **Versión**: Java 17+ (preferir 21+ cuando sea posible)
  • **Imports**: Organizar por grupos (java.*, javax.*, org.*, com.*), sin wildcards
  • **Naming**: CamelCase para clases, camelCase para métodos/variables, UPPER_SNAKE_CASE para constantes
  • **Formato**: 4 espacios de indentación, llaves en estilo K&R
  • **Tipos**: Preferir interfaces sobre implementaciones en declaraciones (`List<String>` no `ArrayList<String>`)
  • **Optional**: Usar `Optional<T>` para retornos que pueden ser nulos, nunca para parámetros
  • **Excepciones**: Preferir excepciones checked para errores recuperables, unchecked para bugs de programación

Testing

  • **Framework**: JUnit 5 con Mockito
  • **Naming**: `should_ReturnUser_When_ValidId` o `givenValidUser_whenSaved_thenReturnsId`
  • **Estructura**: AAA (Arrange-Act-Assert) o Given-When-Then
  • **Cobertura**: Mínimo 80% de línea, 70% de rama
  • **Tests aislados**: Cada test debe ser independiente y reproducible

UI/UX

  • **Patrones**: MVC/MVVM según complejidad
  • **Accesibilidad**: Seguir WCAG 2.1 AA como mínimo
  • **Responsive**: Mobile-first cuando aplique
  • **Consistencia**: Reutilizar componentes, mantener paleta de colores uniforme

Flujo de Trabajo con Agentes

1. **Recibir tarea** → Dani analiza y delega 2. **Desarrollo** → Alex (backend) / Jorge (UI) implementan 3. **Testing** → Bicho crea/valida tests 4. **Revisión** → Dani coordina y presenta resultados

Formato de Respuesta

Siempre usar el formato `NOMBRE: respuesta` al presentar resultados al usuario.

Reglas Generales

  • **NUNCA** inventar respuestas técnicas que correspondan a un experto
  • **SIEMPRE** leer los ficheros de agentes antes de actuar
  • **PRIORIZAR** código limpio y mantenible sobre soluciones clever
  • **EXPLICAR** el "por qué" detrás de cada decisión técnica
  • **INCLUIR** edge cases y escenarios de error en tests

Notas

  • No hay reglas de Cursor (`.cursor/rules/`, `.cursorrules`) ni Copilot (`.github/copilot-instructions.md`) en este repositorio
  • Las dependencias se gestionan vía `.opencode/package.json`
  • Temperatura recomendada: 0.3 para tareas técnicas, 0.5 para coordinación, 0.6 para diseño UI