Fichero Propósito ~/.karajan/kj.config.ymlConfiguración principal (o $KJ_HOME/kj.config.yml) <proyecto>/.karajan.ymlOverrides de pricing a nivel de proyecto <proyecto>/.karajan/roles/*.mdInstrucciones de roles a nivel de proyecto <proyecto>/.karajan/plugins/*.jsPlugins a nivel de proyecto
Los flags CLI sobreescriben los valores del fichero de configuración. Los valores de configuración sobreescriben los defaults.
coder : claude # Agente IA que escribe código
reviewer : codex # Agente IA que revisa código
review_mode : standard # Perfil de exigencia de revisión
max_iterations : 5 # Máx iteraciones del bucle coder-reviewer
review_rules : ./review-rules.md # Ruta a reglas de revisión custom
coder_rules : ./coder-rules.md # Ruta a reglas del coder custom
base_branch : main # Rama base de git para diffs
max_budget_usd : null # Presupuesto máximo en USD (null = ilimitado)
Campo Tipo Default Descripción coderstring claudeNombre del CLI del agente: claude, codex, gemini, aider, o un plugin custom reviewerstring codexNombre del CLI del agente para revisión de código review_modeenum standardparanoid | strict | standard | relaxed | custommax_iterationsnumber 5Máximo de iteraciones del bucle coder-reviewer (1-20) review_rulesstring ./review-rules.mdRuta al fichero de instrucciones del reviewer coder_rulesstring ./coder-rules.mdRuta al fichero de instrucciones del coder base_branchstring mainRama de git usada para comparar diffs max_budget_usdnumber | null nullTope de presupuesto estimado por sesión en USD (basado en pricing equivalente a API). null = ilimitado
Override de provider y modelo por rol:
Rol Propósito coderEscribe código y tests reviewerRevisa código: calidad, seguridad, corrección plannerGenera planes de implementación antes de codificar refactorerRefactoriza código tras la aprobación solomonResuelve conflictos entre coder y reviewer researcherAnaliza el codebase antes de planificar testerAudita la calidad de los tests tras la revisión securityAuditoría de seguridad OWASP triageClasifica la complejidad de la tarea discoverDetección de gaps pre-ejecución hu-reviewerCertificación de historias de usuario architectDiseño de arquitectura de solución auditAuditoría de salud del codebase de solo lectura impeccableAuditoría automatizada de diseño UI/UX commiterAutomatización git
Activar o desactivar roles opcionales:
Todos los roles opcionales están desactivados por defecto. Actívalos con flags CLI --enable-<rol> o en la configuración.
require_test_changes : true
Campo Tipo Default Descripción methodologyenum tddtdd (exigir tests primero) o standard (tests opcionales)require_test_changesboolean trueEn TDD, exigir cambios en tests junto con cambios en código fuente test_file_patternsstring[] Ver arriba Patrones para identificar ficheros de test source_file_extensionsstring[] Ver arriba Extensiones de ficheros fuente a monitorizar para TDD
Campo Tipo Default Descripción modelstring | null nullOverride de modelo para el coder (ej: claude-opus-4-6) auto_approveboolean truePermitir al coder auto-aprobar su output si el reviewer aprueba
Campo Tipo Default Descripción output_formatstring jsonFormato de salida del reviewer (siempre JSON para revisión estructurada) require_schemaboolean trueValidar que la salida del reviewer coincida con el schema esperado modelstring | null nullOverride de modelo para el reviewer deterministicboolean trueUsar modo determinista para revisiones reproducibles retriesnumber 1Reintentos del reviewer ante errores de parseo fallback_reviewerstring codexProvider de respaldo si el reviewer principal falla
host : http://localhost:9000
container_name : karajan-sonarqube
network : karajan_sonar_net
enforcement_profile : pragmatic
- new_reliability_rating=E
- new_maintainability_rating=E
- new_duplicated_lines_density>5
extensions : karajan_sonar_extensions
compose_control_ms : 120000
sources : " src,public,lib "
exclusions : " **/node_modules/**,**/dist/**,**/build/**,**/*.min.js "
test_inclusions : " **/*.test.js,**/*.spec.js,**/tests/**,**/__tests__/** "
coverage_exclusions : " **/tests/**,**/__tests__/**,**/*.test.js,**/*.spec.js "
Campo Tipo Default Descripción enabledboolean trueActivar escaneo SonarQube hoststring http://localhost:9000URL del servidor SonarQube externalboolean falseSi true, asumir SonarQube externo (no gestionar Docker) tokenstring | null nullToken de autenticación. Preferir la variable KJ_SONAR_TOKEN quality_gateboolean trueComprobar estado del quality gate tras el escaneo enforcement_profileenum pragmaticpragmatic (bloquear solo en ERROR) o paranoid (bloquear en cualquier estado distinto de OK)max_scan_retriesnumber 3Reintentar escaneos fallidos
Severidad Significado BLOCKERCrash de la aplicación, pérdida de datos CRITICALAgujero de seguridad, error lógico MAJORProblema de calidad que afecta funcionalidad MINORCode smell, inconsistencia INFOConvención, clarificación
Campo Tipo Default Descripción auto_commitboolean falseHacer commit de todos los cambios tras aprobación auto_pushboolean falsePush de la rama a origin tras el commit auto_prboolean falseCrear pull request hacia base_branch auto_rebaseboolean trueRebase sobre base_branch antes de push branch_prefixstring feat/Prefijo para nombres de rama (ej: feat/, fix/)
El flujo de automatización Git tras aprobación: rebase (si está activo) → commit → push → PR.
max_iteration_minutes : 15
max_agent_silence_minutes : 20
repeat_detection_threshold : 2
Campo Tipo Default Descripción max_iteration_minutesnumber 15Tiempo límite por ciclo coder-reviewer max_total_minutesnumber 120Tiempo límite total de sesión max_planner_minutesnumber 60Límite duro de runtime para planificación (kj_plan/kj plan) max_agent_silence_minutesnumber 20Finaliza la ejecución si no hay salida del agente durante estos minutos fail_fast_repeatsnumber 2Salir tras N fallos idénticos repetidos repeat_detection_thresholdnumber 2Iteraciones antes de detectar patrones repetidos max_sonar_retriesnumber 3Máx reintentos de escaneo SonarQube max_reviewer_retriesnumber 3Máx reintentos del reviewer ante error de parseo max_tester_retriesnumber 1Máx reintentos de auditoría de tests max_security_retriesnumber 1Máx reintentos de auditoría de seguridad expiry_daysnumber 30Auto-limpieza de sesiones más antiguas que esto
Nota
Costes estimados, no facturación real. Karajan ejecuta agentes CLI (Claude Code, Codex, etc.) bajo tus suscripciones existentes — no tiene coste adicional. El sistema de budget cuenta tokens y estima lo que la sesión habría costado si usaras las APIs directamente, basándose en las tarifas publicadas. Es útil para comparar enfoques y establecer guardarraíles, no para facturación.
output_per_million : 0.015
Campo Tipo Default Descripción warn_threshold_pctnumber 80Avisar cuando el gasto estimado alcance este % de max_budget_usd currencyenum usdMoneda de visualización: usd o eur exchange_rate_eurnumber 0.92Tipo de cambio EUR a USD pricingobject Built-in Tarifas de pricing por agente para estimación (input_per_million, output_per_million)
La sección pricing también puede definirse en el fichero .karajan.yml a nivel de proyecto para sobrescribir tarifas de estimación por proyecto.
Campo Tipo Default Descripción max_attemptsnumber 3Máx reintentos para errores transitorios de API initial_backoff_msnumber 1000Delay inicial de backoff (1 segundo) max_backoff_msnumber 30000Delay máximo de backoff (30 segundos) backoff_multipliernumber 2Multiplicador exponencial de backoff jitter_factornumber 0.1Jitter aleatorio como fracción del backoff (10%)
Campo Tipo Default Descripción report_dirstring ./.reviewsDirectorio para informes y logs de sesión log_levelenum infoNivel de logging: debug | info | warn | error
Integración con Planning Game — un sistema de gestión de proyectos ágil (metodología XP) disponible como servidor MCP .
Campo Tipo Default Descripción enabledboolean falseActivar integración con Planning Game MCP project_idstring | null nullID del proyecto en Planning Game codeveloperstring | null nullID del developer para el campo codeveloper
review_event : becaria-review
comment_event : becaria-comment
Campo Tipo Default Descripción enabledboolean falseActivar BecarIA Gateway — publica resultados del pipeline como comentarios/reviews en PRs vía GitHub App review_eventstring becaria-reviewTipo de evento repository_dispatch de GitHub para reviews formales (APPROVE/REQUEST_CHANGES) comment_eventstring becaria-commentTipo de evento repository_dispatch de GitHub para comentarios de agentes comment_prefixboolean truePrefijar comentarios con [Agente] (ej: [Reviewer], [Sonar])
Cuando enabled: true, Karajan establece automáticamente git.auto_commit, git.auto_push y git.auto_pr a true. Ver Flujos del Pipeline para la arquitectura completa de BecarIA.
Campo Tipo Default Descripción enabledboolean falseActivar integración con Serena para contexto con conocimiento del codebase
Campo Tipo Default Descripción enabledboolean trueActivar selección inteligente de modelo basada en complejidad de la tarea tiersobject {}Tiers con nombre y asignación de modelo (ej: fast, balanced, powerful) role_overridesobject {}Overrides de modelo por rol que saltan la selección por tier
Ejemplo con tiers:
Desactivar con el flag CLI --no-smart-models.
Campo Tipo Default Descripción repeatThresholdnumber 2Detener el pipeline tras este número de fallos idénticos consecutivos
Esto es independiente de session.fail_fast_repeats — failFast aplica a la detección global de repeticiones del orquestador entre todas las etapas.
Variable Propósito Default KJ_HOMESobreescribir directorio de configuración de Karajan ~/.karajanKJ_SONAR_TOKENToken de autenticación de SonarQube Desde config KJ_SONAR_ADMIN_USERUsuario admin de SonarQube adminKJ_SONAR_ADMIN_PASSWORDContraseña admin de SonarQube Desde config KJ_SONAR_PROJECT_KEYSobreescribir project key de SonarQube Desde config VISUAL / EDITOREditor para kj config --edit vi
Las variables de entorno tienen precedencia sobre los valores del fichero de configuración para los campos que mapean.
El ajuste review_mode controla la exigencia del reviewer al evaluar código:
Prioridad : Seguridad → Corrección → Tests → Arquitectura → Estilo
Bloquean : Problemas de seguridad, errores lógicos, tests rotos, sobreescritura de ficheros
No bloquean : Sugerencias de estilo
Filosofía : Todo cambio es sospechoso hasta que se demuestre seguro
Prioridad : Seguridad → Corrección → Tests → Integridad de datos → Arquitectura → Estilo
Bloquean : Todas las comprobaciones de seguridad, falta de manejo de errores, falta de validación de inputs, falta de tests, sobreescritura de ficheros
Umbral de confianza : Aprobar solo si confianza > 0.85. Default a RECHAZO
Prioridad : Seguridad → Corrección → Tests → Arquitectura → Estilo
Bloquean : Todos los problemas de seguridad, errores lógicos, cobertura de tests insuficiente, falta de manejo de errores para llamadas externas
Umbral de confianza : Rechazar si confianza < 0.80
Filosofía : Preferir aprobar con sugerencias
Prioridad : Seguridad crítica → Bugs claros → Tests de rutas críticas
Bloquean : Solo seguridad crítica (secrets, SQL injection, XSS) y errores lógicos claros
Umbral de confianza : Rechazar si confianza < 0.60
Usa el fichero base reviewer.md (a nivel de proyecto, global o built-in) sin un perfil predefinido. Control total a través de tu fichero review-rules.md.
Las instrucciones de rol se resuelven en este orden (el primero encontrado gana):
Proyecto : <proyecto>/.karajan/roles/{rol}.md
Global : ~/.karajan/roles/{rol}.md
Built-in : templates/roles/{rol}.md (incluido con Karajan)
Los perfiles de modo de revisión siguen el mismo patrón:
.karajan/roles/reviewer-{modo}.md
~/.karajan/roles/reviewer-{modo}.md
templates/roles/reviewer-{modo}.md
Los plugins se cargan de todas las ubicaciones (no first-wins):
<proyecto>/.karajan/plugins/*.js
~/.karajan/plugins/*.js
~/.karajan/ # Config global ($KJ_HOME)
├── kj.config.yml # Configuración principal
├── roles/ # Instrucciones de roles globales
│ ├── reviewer-paranoid.md
├── plugins/ # Plugins globales
├── sessions/ # Logs de sesión
└── docker-compose.sonar.yml # Config Docker de SonarQube
├── .karajan/ # Overrides a nivel de proyecto
│ ├── roles/ # Instrucciones de roles del proyecto
│ └── plugins/ # Plugins del proyecto
├── .karajan.yml # Overrides de pricing del proyecto
├── coder-rules.md # Directrices del coder
└── review-rules.md # Directrices de revisión
enforcement_profile : paranoid
enforcement_profile : paranoid
review_event : becaria-review
comment_event : becaria-comment