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 CHANGED
@@ -15,6 +15,10 @@
15
15
  <a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D18-brightgreen.svg" alt="Node.js"></a>
16
16
  </p>
17
17
 
18
+ <p align="center">
19
+ <a href="docs/README.es.md">Leer en Español</a>
20
+ </p>
21
+
18
22
  ---
19
23
 
20
24
  ## What is Karajan Code?
@@ -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.0",
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.0");
27
+ program.name("kj").description("Karajan Code CLI").version("1.2.1");
28
28
 
29
29
  program
30
30
  .command("init")