karajan-code 1.2.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/docs/README.es.md +244 -0
- package/package.json +2 -1
- package/src/cli.js +1 -1
package/README.md
CHANGED
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="karajan-code-logo-small.png" alt="Karajan Code" width="200">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<h1 align="center">Karajan Code</h1>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
Orquestador local multi-agente con TDD, SonarQube y revision de codigo automatizada.
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
<p align="center">
|
|
12
|
+
<a href="https://www.npmjs.com/package/karajan-code"><img src="https://img.shields.io/npm/v/karajan-code.svg" alt="npm version"></a>
|
|
13
|
+
<a href="https://github.com/manufosela/karajan-code/actions"><img src="https://github.com/manufosela/karajan-code/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
|
|
14
|
+
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License"></a>
|
|
15
|
+
<a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D18-brightgreen.svg" alt="Node.js"></a>
|
|
16
|
+
</p>
|
|
17
|
+
|
|
18
|
+
<p align="center">
|
|
19
|
+
<a href="../README.md">Read in English</a>
|
|
20
|
+
</p>
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Que es Karajan Code?
|
|
25
|
+
|
|
26
|
+
Karajan Code (`kj`) orquesta multiples agentes de IA a traves de un pipeline automatizado: generacion de codigo, analisis estatico, revision de codigo, testing y auditorias de seguridad — todo en un solo comando.
|
|
27
|
+
|
|
28
|
+
En lugar de ejecutar un agente de IA y revisar manualmente su output, `kj` encadena agentes con quality gates. El coder escribe codigo, SonarQube lo analiza, el reviewer lo revisa, y si hay problemas, el coder recibe otra oportunidad. Este bucle se repite hasta que el codigo es aprobado o se alcanza el limite de iteraciones.
|
|
29
|
+
|
|
30
|
+
**Caracteristicas principales:**
|
|
31
|
+
- **Pipeline multi-agente** con 11 roles configurables
|
|
32
|
+
- **4 agentes de IA soportados**: Claude, Codex, Gemini, Aider
|
|
33
|
+
- **Servidor MCP** con 11 herramientas — usa `kj` desde Claude, Codex o cualquier host compatible con MCP sin salir de tu agente. [Ver configuracion MCP](#servidor-mcp)
|
|
34
|
+
- **TDD obligatorio** — se exigen cambios en tests cuando se modifican ficheros fuente
|
|
35
|
+
- **Integracion con SonarQube** — analisis estatico con quality gates (requiere [Docker](#requisitos))
|
|
36
|
+
- **Perfiles de revision** — standard, strict, relaxed, paranoid
|
|
37
|
+
- **Tracking de presupuesto** — monitorizacion de tokens y costes por sesion con `--trace`
|
|
38
|
+
- **Automatizacion Git** — auto-commit, auto-push, auto-PR tras aprobacion
|
|
39
|
+
- **Gestion de sesiones** — pausa/reanudacion con deteccion fail-fast
|
|
40
|
+
- **Integracion con Planning Game** — combina opcionalmente con [Planning Game](https://github.com/AgenteIA-Geniova/planning-game) para gestion agil de proyectos (tareas, sprints, estimacion) — como Jira, pero open-source y nativo XP
|
|
41
|
+
|
|
42
|
+
> **Mejor con MCP** — Karajan Code esta disenado para usarse como servidor MCP dentro de tu agente de IA (Claude, Codex, etc.). El agente envia tareas a `kj_run`, recibe notificaciones de progreso en tiempo real, y obtiene resultados estructurados — sin copiar y pegar.
|
|
43
|
+
|
|
44
|
+
## Requisitos
|
|
45
|
+
|
|
46
|
+
- **Node.js** >= 18
|
|
47
|
+
- **Docker** — necesario para el analisis estatico con SonarQube. Si no tienes Docker o no necesitas SonarQube, desactivalo con `--no-sonar` o `sonarqube.enabled: false` en la config
|
|
48
|
+
- Al menos un agente de IA instalado: Claude, Codex, Gemini o Aider
|
|
49
|
+
|
|
50
|
+
## Pipeline
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
triage? ─> researcher? ─> planner? ─> coder ─> refactorer? ─> sonar? ─> reviewer ─> tester? ─> security? ─> commiter?
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
| Rol | Descripcion | Por defecto |
|
|
57
|
+
|-----|-------------|-------------|
|
|
58
|
+
| **triage** | Clasifica la complejidad de la tarea (trivial/simple/media/compleja) y activa solo los roles necesarios | Off |
|
|
59
|
+
| **researcher** | Investiga el contexto del codebase antes de planificar | Off |
|
|
60
|
+
| **planner** | Genera planes de implementacion estructurados | Off |
|
|
61
|
+
| **coder** | Escribe codigo y tests siguiendo metodologia TDD | **Siempre activo** |
|
|
62
|
+
| **refactorer** | Mejora la claridad del codigo sin cambiar comportamiento | Off |
|
|
63
|
+
| **sonar** | Ejecuta analisis estatico SonarQube y quality gates | On (si configurado) |
|
|
64
|
+
| **reviewer** | Revision de codigo con perfiles de exigencia configurables | **Siempre activo** |
|
|
65
|
+
| **tester** | Quality gate de tests y verificacion de cobertura | Off |
|
|
66
|
+
| **security** | Auditoria de seguridad OWASP | Off |
|
|
67
|
+
| **solomon** | Resolutor de conflictos cuando coder y reviewer discrepan | Off |
|
|
68
|
+
| **commiter** | Automatizacion de git commit, push y PR tras aprobacion | Off |
|
|
69
|
+
|
|
70
|
+
Los roles marcados con `?` son opcionales y se pueden activar por ejecucion o via config.
|
|
71
|
+
|
|
72
|
+
## Instalacion
|
|
73
|
+
|
|
74
|
+
### Desde npm (recomendado)
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
npm install -g karajan-code
|
|
78
|
+
kj init
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Desde codigo fuente
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
git clone https://github.com/manufosela/karajan-code.git
|
|
85
|
+
cd karajan-code
|
|
86
|
+
./scripts/install.sh
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Setup no interactivo (CI/automatizacion)
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
./scripts/install.sh \
|
|
93
|
+
--non-interactive \
|
|
94
|
+
--kj-home /ruta/a/.karajan \
|
|
95
|
+
--sonar-host http://localhost:9000 \
|
|
96
|
+
--sonar-token "$KJ_SONAR_TOKEN" \
|
|
97
|
+
--coder claude \
|
|
98
|
+
--reviewer codex \
|
|
99
|
+
--run-doctor true
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Setup multi-instancia
|
|
103
|
+
|
|
104
|
+
Guias completas: [`docs/multi-instance.md`](multi-instance.md) | [`docs/install-two-instances.md`](install-two-instances.md)
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
./scripts/setup-multi-instance.sh
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Agentes soportados
|
|
111
|
+
|
|
112
|
+
| Agente | CLI | Instalacion |
|
|
113
|
+
|--------|-----|-------------|
|
|
114
|
+
| **Claude** | `claude` | `npm install -g @anthropic-ai/claude-code` |
|
|
115
|
+
| **Codex** | `codex` | `npm install -g @openai/codex` |
|
|
116
|
+
| **Gemini** | `gemini` | Ver [Gemini CLI docs](https://github.com/google-gemini/gemini-cli) |
|
|
117
|
+
| **Aider** | `aider` | `pip install aider-chat` |
|
|
118
|
+
|
|
119
|
+
`kj init` auto-detecta los agentes instalados. Si solo hay uno disponible, se asigna a todos los roles automaticamente.
|
|
120
|
+
|
|
121
|
+
## Inicio rapido
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
# Ejecutar una tarea con defaults (claude=coder, codex=reviewer, TDD)
|
|
125
|
+
kj run "Implementar autenticacion de usuario con JWT"
|
|
126
|
+
|
|
127
|
+
# Solo coder (sin revision)
|
|
128
|
+
kj code "Anadir validacion de inputs al formulario de registro"
|
|
129
|
+
|
|
130
|
+
# Solo reviewer (revisar diff actual)
|
|
131
|
+
kj review "Revisar los cambios de autenticacion"
|
|
132
|
+
|
|
133
|
+
# Generar un plan de implementacion
|
|
134
|
+
kj plan "Refactorizar la capa de base de datos para usar connection pooling"
|
|
135
|
+
|
|
136
|
+
# Pipeline completo con todas las opciones
|
|
137
|
+
kj run "Corregir inyeccion SQL critica en el endpoint de busqueda" \
|
|
138
|
+
--coder claude \
|
|
139
|
+
--reviewer codex \
|
|
140
|
+
--reviewer-fallback claude \
|
|
141
|
+
--methodology tdd \
|
|
142
|
+
--enable-triage \
|
|
143
|
+
--enable-tester \
|
|
144
|
+
--enable-security \
|
|
145
|
+
--auto-commit \
|
|
146
|
+
--auto-push \
|
|
147
|
+
--max-iterations 5
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## Comandos CLI
|
|
151
|
+
|
|
152
|
+
Consulta la [documentacion completa de comandos](../README.md#cli-commands) en el README principal (ingles). Resumen:
|
|
153
|
+
|
|
154
|
+
| Comando | Descripcion |
|
|
155
|
+
|---------|-------------|
|
|
156
|
+
| `kj init` | Wizard interactivo de configuracion |
|
|
157
|
+
| `kj run <task>` | Pipeline completo: coder → sonar → reviewer |
|
|
158
|
+
| `kj code <task>` | Solo coder (sin revision) |
|
|
159
|
+
| `kj review <task>` | Solo reviewer (sobre diff actual) |
|
|
160
|
+
| `kj plan <task>` | Generar plan de implementacion |
|
|
161
|
+
| `kj scan` | Ejecutar analisis SonarQube |
|
|
162
|
+
| `kj doctor` | Verificar entorno (git, Docker, agentes, SonarQube) |
|
|
163
|
+
| `kj config` | Mostrar configuracion actual |
|
|
164
|
+
| `kj report` | Informes de sesion con tracking de presupuesto |
|
|
165
|
+
| `kj resume <id>` | Reanudar sesion pausada |
|
|
166
|
+
| `kj roles` | Inspeccionar roles y templates del pipeline |
|
|
167
|
+
| `kj sonar` | Gestionar contenedor Docker de SonarQube |
|
|
168
|
+
|
|
169
|
+
## Servidor MCP
|
|
170
|
+
|
|
171
|
+
Karajan Code expone un servidor MCP para integracion con cualquier host compatible (Claude, Codex, agentes custom).
|
|
172
|
+
|
|
173
|
+
Tras `npm install -g karajan-code`, el servidor MCP se auto-registra en las configs de Claude y Codex. Config manual:
|
|
174
|
+
|
|
175
|
+
```json
|
|
176
|
+
{
|
|
177
|
+
"mcpServers": {
|
|
178
|
+
"karajan-mcp": {
|
|
179
|
+
"command": "karajan-mcp"
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### Herramientas MCP
|
|
186
|
+
|
|
187
|
+
| Herramienta | Descripcion |
|
|
188
|
+
|-------------|-------------|
|
|
189
|
+
| `kj_init` | Inicializar config y SonarQube |
|
|
190
|
+
| `kj_doctor` | Verificar dependencias del sistema |
|
|
191
|
+
| `kj_config` | Mostrar configuracion |
|
|
192
|
+
| `kj_scan` | Ejecutar analisis SonarQube |
|
|
193
|
+
| `kj_run` | Ejecutar pipeline completo (con notificaciones de progreso en tiempo real) |
|
|
194
|
+
| `kj_resume` | Reanudar sesion pausada |
|
|
195
|
+
| `kj_report` | Leer informes de sesion (soporta `--trace`) |
|
|
196
|
+
| `kj_roles` | Listar roles o mostrar templates |
|
|
197
|
+
| `kj_code` | Modo solo coder |
|
|
198
|
+
| `kj_review` | Modo solo reviewer |
|
|
199
|
+
| `kj_plan` | Generar plan de implementacion |
|
|
200
|
+
|
|
201
|
+
### MCPs complementarios recomendados
|
|
202
|
+
|
|
203
|
+
Karajan Code funciona perfectamente solo, pero combinarlo con estos servidores MCP le da a tu agente un entorno de desarrollo completo:
|
|
204
|
+
|
|
205
|
+
| MCP | Para que | Caso de uso |
|
|
206
|
+
|-----|----------|-------------|
|
|
207
|
+
| [**Planning Game MCP**](https://github.com/AgenteIA-Geniova/planning-game-mcp) | Puente MCP para [Planning Game](https://github.com/AgenteIA-Geniova/planning-game), gestor agil open-source (tareas, sprints, estimacion, XP). Solo necesario si usas Planning Game | `kj_run` con `--pg-task` obtiene contexto completo de la tarea y actualiza el estado al completar |
|
|
208
|
+
| [**GitHub MCP**](https://github.com/modelcontextprotocol/servers/tree/main/src/github) | Crear PRs, gestionar issues, leer repos desde el agente | Combinar con `--auto-push` para flujo completo: codigo → revision → push → PR |
|
|
209
|
+
| [**Serena**](https://github.com/oramasearch/serena) | Navegacion a nivel de simbolo (find references, go-to-definition) para proyectos JS/TS | Activar con `--enable-serena` para inyectar contexto de simbolos en prompts de coder/reviewer |
|
|
210
|
+
| [**Chrome DevTools MCP**](https://github.com/anthropics/anthropic-quickstarts/tree/main/chrome-devtools-mcp) | Automatizacion de navegador, screenshots, inspeccion de consola/red | Verificar cambios de UI visualmente tras modificar codigo frontend |
|
|
211
|
+
|
|
212
|
+
## Templates de roles
|
|
213
|
+
|
|
214
|
+
Cada rol tiene un template `.md` con instrucciones que el agente de IA sigue. Los templates se resuelven en orden de prioridad:
|
|
215
|
+
|
|
216
|
+
1. **Override de proyecto**: `.karajan/roles/<rol>.md` (en la raiz del proyecto)
|
|
217
|
+
2. **Override de usuario**: `$KJ_HOME/roles/<rol>.md`
|
|
218
|
+
3. **Built-in**: `templates/roles/<rol>.md` (incluido en el paquete)
|
|
219
|
+
|
|
220
|
+
Usa `kj roles show <rol>` para inspeccionar cualquier template. Crea un override de proyecto para personalizar el comportamiento por proyecto.
|
|
221
|
+
|
|
222
|
+
**Variantes de revision**: `reviewer-strict`, `reviewer-relaxed`, `reviewer-paranoid` — seleccionables via flag `--mode` o config `review_mode`.
|
|
223
|
+
|
|
224
|
+
## Contribuir
|
|
225
|
+
|
|
226
|
+
```bash
|
|
227
|
+
git clone https://github.com/manufosela/karajan-code.git
|
|
228
|
+
cd karajan-code
|
|
229
|
+
npm install
|
|
230
|
+
npm test # Ejecutar 761+ tests con Vitest
|
|
231
|
+
npm run test:watch # Modo watch
|
|
232
|
+
npm run validate # Lint + test
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
- Tests: [Vitest](https://vitest.dev/)
|
|
236
|
+
- Commits: [Conventional Commits](https://www.conventionalcommits.org/) (`feat:`, `fix:`, `refactor:`, `test:`, `chore:`)
|
|
237
|
+
- PRs: un solo proposito por PR, < 300 lineas cambiadas
|
|
238
|
+
|
|
239
|
+
## Enlaces
|
|
240
|
+
|
|
241
|
+
- [Changelog](../CHANGELOG.md)
|
|
242
|
+
- [Politica de seguridad](../SECURITY.md)
|
|
243
|
+
- [Licencia (MIT)](../LICENSE)
|
|
244
|
+
- [Issues](https://github.com/manufosela/karajan-code/issues)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "karajan-code",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.1",
|
|
4
4
|
"description": "Local multi-agent coding orchestrator with TDD, SonarQube, and code review pipeline",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
"templates/",
|
|
32
32
|
"scripts/",
|
|
33
33
|
"docs/karajan-code-logo-small.png",
|
|
34
|
+
"docs/README.es.md",
|
|
34
35
|
"LICENSE",
|
|
35
36
|
"README.md"
|
|
36
37
|
],
|
package/src/cli.js
CHANGED
|
@@ -24,7 +24,7 @@ async function withConfig(commandName, flags, fn) {
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
const program = new Command();
|
|
27
|
-
program.name("kj").description("Karajan Code CLI").version("1.2.
|
|
27
|
+
program.name("kj").description("Karajan Code CLI").version("1.2.1");
|
|
28
28
|
|
|
29
29
|
program
|
|
30
30
|
.command("init")
|