Ir al contenido

Tutorial · Node CLI

Recomendado · Tiempo estimado: ~10 min · Iteraciones Karajan: 1–2

Este tutorial te lleva desde un directorio vacío hasta una feature mergeada en un pequeño proyecto CLI Node. La receta es deliberadamente mínima para que la puedas re-ejecutar sobre un repo real cambiando el bootstrap por cd <tu-repo>.

Deberías haber completado el setup común: npm install -g karajan-code, kj init dentro del proyecto y un kj doctor verde. Si kj doctor está rojo, arréglalo antes — kj run se negará a arrancar.

  1. Bootstrapea el proyecto.

    Ventana de terminal
    mkdir hello-cli && cd hello-cli
    npm init -y
    npm install --save-dev vitest
    git init -b main && git add -A && git commit -m "chore: scaffold"

    Edita package.json para cablear el runner de tests:

    {
    "type": "module",
    "scripts": {
    "test": "vitest run"
    }
    }
  2. Inicializa Karajan en el repo.

    Ventana de terminal
    kj init
    kj doctor

    kj init crea .karajan/ y escribe la configuración del orquestador; kj doctor confirma que los CLIs de los agentes, Docker, Ollama y los puertos están sanos.

  3. Describe la feature en lenguaje natural.

    Sin fichero de spec. Sin JSON. Solo la tarea como se la dirías a un compañero:

    Ventana de terminal
    kj run "Añade un comando 'greet <name>' a bin/cli.js que imprima \
    'Hello, <name>!'. Añade un test Vitest que ejecute el CLI vía execa \
    y verifique stdout para el nombre 'world'." \
    --methodology tdd \
    --coder claude \
    --reviewer codex \
    --reviewer-fallback claude \
    --max-iterations 5
  4. Mira el run en el HU Board.

    Abre http://localhost:4000 en otra pestaña mientras el pipeline corre. Verás, en tiempo real:

    • Cada rol activándose (planner → coder → tester → reviewer).
    • El prompt y la respuesta exactos de cada llamada al agente.
    • El diff tras cada iteración.
    • El veredicto del reviewer.

    También puedes hacer tail del mismo trace en el terminal:

    Ventana de terminal
    kj tail
  5. Inspecciona el resultado.

    Ventana de terminal
    git status
    git diff --stat
    npm test

    Salida esperada de npm test:

    ✓ tests/cli.test.js (1)
    ✓ greets the given name (42ms)
    Test Files 1 passed (1)
    Tests 1 passed (1)
  6. Mergea.

    Karajan no hace push ni merge por ti por defecto — esa decisión es tuya. Cuando estés contento con el diff:

    Ventana de terminal
    git checkout -b feat/greet-command
    git add -A && git commit -m "feat(cli): add greet <name> command"
    git push -u origin feat/greet-command
    gh pr create --fill

    O, si quieres que Karajan abra la PR por ti, añade --auto-commit --auto-pr a la invocación kj run.

El mismo run lanzado vía MCP desde cualquier cliente MCP-capable (Cursor, Claude Desktop, Codex):

{
"tool": "kj_run",
"params": {
"task": "Añade un comando 'greet <name>' a bin/cli.js que imprima 'Hello, <name>!'. Añade un test Vitest.",
"methodology": "tdd",
"coder": "claude",
"reviewer": "codex",
"reviewerFallback": "claude",
"maxIterations": 5
}
}