Harness open source · Licencia MIT
Unas reglas.
Varios agentes.
Todos tus proyectos.
jdev-ai es un harness ligero y agnóstico del stack: reglas y flujos compartidos para trabajar con agentes de código en varios proyectos independientes, sin copiarlos en cada repositorio ni depender de la CLI de un proveedor.
- Claude Code
- Codex
- Copilot
- OpenCode
// qué es
Las mismas preguntas, respondidas una sola vez
¿Cuándo delega el agente? ¿Cómo retomas un proyecto tras una semana? ¿Cuándo merece un cambio una spec? ¿Cómo evitan pisarse varias sesiones en paralelo? Las respuestas viven en el harness, no repetidas en cada repositorio.
El harness define cómo trabajan los agentes
Cada repositorio de projects/ define su dominio, su código, sus dependencias y sus validaciones.
No es un monorepo ni un workspace
Cada proyecto conserva su propio .git y sigue funcionando si el harness desaparece.
No impone stack ni arquitectura
Ni gestor de paquetes. El AGENTS.md de cada proyecto prevalece sobre las instrucciones globales.
// funcionalidades
Todo el ciclo, con tu aprobación en cada paso que importa
Lanzador multiagente
bin/agent abre un proyecto con Claude Code, Codex, Copilot u OpenCode y te resume dónde lo dejaste. No añade archivos de configuración a tus proyectos.
Orquestación y delegación
El agente principal orquesta y delega trabajo acotado en subagentes. La política no depende del proveedor.
Economía de contexto y tokens
El orquestador conserva la conversación y las decisiones; modelos más baratos leen e implementan, y devuelven solo conclusiones.
Continuidad del proyecto
Un historial local de iteraciones y una memoria opcional por proyecto permiten retomar el trabajo días después.
Worktrees por feature
Los cambios grandes se aíslan en un worktree con su rama. Varias sesiones trabajan en un mismo proyecto sin pisarse.
OpenSpec opcional
El agente valora si un cambio merece una spec y la propone. No crea ningún artefacto sin tu aprobación explícita.
Diseño primero
Ante cambios de interfaz no triviales, propone cerrar antes el diseño, que pasa a ser la referencia de la implementación y del QA.
Cierre autónomo
/goal Close hace que el agente trabaje sin preguntar hasta validar, integrar y limpiar. Sigue preguntando antes de acciones destructivas.
Backlog, guías e imágenes
El trabajo futuro se registra solo tras tu confirmación, las guías didácticas viven en el proyecto y las imágenes que faltan se proponen antes de generarse.
Cada subagente, un papel acotado
| Subagente | Modelo | Papel |
|---|---|---|
| Explore | Haiku | Búsqueda y lectura del repositorio, en solo lectura |
| implementer | Sonnet | El único que puede escribir; un encargo acotado cada vez |
| validator | Haiku | Ejecuta las validaciones del proyecto e informa solo de los fallos y su causa |
| qa | Sonnet | QA de punta a punta en el navegador con Playwright, antes de cerrar una feature |
Roles definidos para Claude Code. Si una herramienta no tiene subagentes compatibles, el agente principal hace los papeles en secuencia.
// panel gráfico
Todas tus sesiones, en una sola ventana
bin/panel sirve un panel web local que reúne las terminales de agente de todos tus proyectos y te dice cuál te está esperando.
Inicio
Lo que necesita tu atención: sesiones que te esperan, conversaciones hechas, pendientes de cada proyecto y tu actividad.
Terminales que sobreviven
Viven en un servidor tmux dedicado: cierras el navegador y siguen ahí. En una, dos o cuatro columnas.
Vista de chat
La misma sesión como conversación: tus mensajes, las respuestas en Markdown y las herramientas agrupadas, con búsqueda.
Backlog
Un tablero por estado con el backlog de cada proyecto y un atajo «Trabajar en esto» que abre una sesión nueva.
Cambios
El diff del checkout principal y de cada worktree, con árbol de archivos y vista en paralelo o unificada.
Historial
Las iteraciones de todos los proyectos por día, con sus pendientes y un atajo «Retomar desde aquí».
Local y privado: se sirve en 127.0.0.1 protegido con token, y se puede instalar como aplicación (PWA).
// flujo habitual
De la petición al merge, sin perder el control
Petición
Cuentas lo que quieres y el orquestador lee el AGENTS.md del proyecto.
Propuesta
Si el cambio es grande, propone OpenSpec, worktree o diseño y espera tu aprobación.
Plan y exploración
Explore busca y lee el repositorio en solo lectura.
Implementación
implementer ejecuta un encargo acotado cada vez.
Validación
validator ejecuta las validaciones que define el proyecto.
QA y revisión
Si hay interfaz, QA con Playwright tras tu OK. Después, revisión final del orquestador.
Publicación
Commit, push, Pull Request y merge, solo tras tu confirmación.
Historial
La iteración queda registrada para retomarla otro día.
En ámbar, los pasos que esperan tu visto bueno. La delegación se omite en tareas triviales.
// empezar
Clona, añade un proyecto y lanza un agente
Necesitas una shell POSIX, Git y la CLI del agente que quieras usar. Añade gh para el flujo de Pull Requests de los worktrees.
Las reglas están escritas en castellano y los agentes responden en castellano por defecto, salvo que el proyecto diga otra cosa.
# 1. Clona el harness y añade un proyecto con su .git $ git clone https://github.com/Jgonaz/jdev-ai.git $ cd jdev-ai $ git clone <url-de-tu-repo> projects/mi-proyecto # 2. Lanza un agente (Claude Code por defecto) $ bin/agent mi-proyecto $ bin/agent mi-proyecto --codex $ bin/agent mi-proyecto --wt login # 3. O abre el panel gráfico $ bin/panel