Imported from antoniovazquezaraujo/LeTrain (
AGENTS.md). Install upstream withnpx skills add antoniovazquezaraujo/LeTrain. Copyright stays with the author.
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:checko./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>noArrayList<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_ValidIdogivenValidUser_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
- Recibir tarea → Dani analiza y delega
- Desarrollo → Alex (backend) / Jorge (UI) implementan
- Testing → Bicho crea/valida tests
- 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