Koko Koala Logo
Koko
CLI

Diagnóstico (koko doctor)

Diagnóstico e Integridad Arquitectónica

El comando `koko doctor` es el guardián de consistencia e introspección de Koko CLI. A medida que un proyecto evoluciona y múltiples desarrolladores incorporan dependencias, módulos y variables de entorno, es habitual que la configuración original sufra desviaciones silenciosas (architecture drift).

Verificación Instantánea en Milisegundos: `koko doctor` analiza el árbol de archivos, las dependencias y la infraestructura local en menos de 20ms.
Detección de Desviación (Drift): Compara la arquitectura física real contra el manifiesto inmutable `koko.config.json` y el Catálogo Maestro de versiones.
Auto-Reparación Segura: Mediante el flag `--fix`, resuelve discrepancias, actualiza el manifiesto y sincroniza el entorno sin riesgo de romper código.

Sintaxis y Flags del Comando

Sintaxis: `koko doctor [flags]`

Todos los parámetros disponibles para auditorías locales o integración con pipelines automatizados:

  • -f, --fix - Aplica automáticamente las correcciones detectadas y actualiza koko.config.json.
  • -d, --dir <ruta> - Especifica el directorio raíz del proyecto a diagnosticar (por defecto: carpeta actual .).
  • -v, --verbose - Imprime información detallada de cada paso de validación y chequeo de paquetes.
  • --json - Genera la salida en formato JSON estructurado, ideal para pipelines de CI/CD y webhooks.
Terminal
# Diagnóstico interactivo estándar koko doctor # Diagnóstico con auto-reparación de inconsistencias koko doctor --fix # Analizar una carpeta específica en modo detallado koko doctor --dir ./apps/web --verbose # Salida JSON para pipelines de CI/CD koko doctor --json

Los 5 Pilares de Verificación de Salud

Durante su ejecución, `koko doctor` evalúa cinco áreas críticas del proyecto:

1. Validación de Esquema de Manifiesto: Valida que `koko.config.json` exista en la raíz y cumpla estrictamente con la especificación JSON Schema oficial.
2. Mapeo de Workspaces y Monorrepos: En arquitecturas monorepo (Turborepo + pnpm), valida que `apps/*` y `packages/*` resuelvan correctamente sus enlaces y alias de TypeScript.
3. Detección de Desviación en Dependencias: Compara las librerías de `package.json`, `go.mod` o `requirements.txt` frente al Catálogo Maestro oficial para advertir sobre versiones no alineadas o incompatibles.
4. Prevención de Conflictos de Puertos Docker: Inspecciona los puertos asignados en `docker-compose.yml` (Postgres 5432, MongoDB 27017, MySQL 3306) para alertar si están ocupados por procesos locales del sistema.
5. Consistencia de Herramientas y Linters: Verifica que las reglas de TypeScript (`tsconfig.json`), ESLint, Prettier o Biome permanezcan sincronizadas con la plantilla original.

Modo Auto-Reparación (--fix)

Al ejecutar `koko doctor --fix`, el motor realiza una reconciliación transaccional segura en cuatro fases:

1. Análisis en Memoria: Evalúa las discrepancias en el Virtual File System (VFS) sin modificar archivos prematuramente.

2. Sincronización de Manifiesto: Actualiza `koko.config.json` registrando módulos o addons agregados manualmente.

3. Alineación de Scripts: Restaura scripts de compilación estándar (`dev`, `build`, `lint`) en el `package.json` raíz si fueron alterados.

4. Resumen de Ejecución: Emite un reporte limpio de correcciones aplicadas y el tiempo total de ejecución en milisegundos.

Terminal
$ koko doctor --fix [✓] koko.config.json schema: OK [✓] Monorepo workspace mapping: OK [!] Dependency Drift: @auth/core version out of sync -> Applying fix: updated koko.config.json to v2.0.0 catalog standard [✓] Docker container ports: No conflicts detected ✓ Diagnostics passed. 1 auto-fix applied successfully in 18ms.

Integración en Pipelines de CI/CD

Puedes incorporar `koko doctor` como un paso de control de calidad (quality gate) en GitHub Actions para asegurar que ningún pull request introduzca drift arquitectónico en la rama principal:

Terminal
name: Architecture Integrity Check on: push: branches: [main] pull_request: branches: [main] jobs: audit: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 20 - name: Install Koko CLI run: npm install -g koko-app - name: Run Koko Doctor Audit run: koko doctor