Guía CLI

intake proporciona 8 comandos. Todos siguen el patrón:

intake <comando> [argumentos] [opciones]

Para ver la ayuda de cualquier comando:

intake --help
intake <comando> --help

intake init

Genera una spec completa a partir de fuentes de requisitos. Este es el comando principal.

intake init <DESCRIPCION> -s <fuente> [opciones]

Argumento

ArgumentoTipoRequeridoDescripción
DESCRIPCIONtextoFrase corta describiendo qué construir. Se convierte en slug para el nombre del directorio (max 50 caracteres).

Opciones

FlagCortoTipoDefaultRequeridoDescripción
--source-stextoFuente de requisitos (repetible). Path a archivo o - para stdin.
--model-mtextoconfig o claude-sonnet-4NoModelo LLM a usar para el análisis.
--lang-ltextoconfig o enNoIdioma del contenido generado en la spec.
--project-dir-ppath.NoDirectorio del proyecto existente (para auto-detección del stack).
--stacktextoauto-detectadoNoStack tecnológico. Ej: python,fastapi,postgresql.
--output-opath./specsNoDirectorio de salida para la spec.
--format-fopciónconfig o ningunoNoFormato de exportación: architect, claude-code, cursor, kiro, generic.
--presetopciónningunoNoPreset de configuración: minimal, standard, enterprise.
--interactive-iflagfalseNoModo interactivo: pregunta antes de generar cada sección.
--dry-runflagfalseNoMuestra qué haría sin generar archivos.
--verbose-vflagfalseNoOutput detallado.

Ejemplos

# Desde un archivo Markdown
intake init "API de usuarios" -s requirements.md

# Desde múltiples fuentes
intake init "Pasarela de pagos" -s jira.json -s confluence.html -s notas.md

# Con modelo específico y preset enterprise
intake init "Sistema crítico" -s reqs.yaml --model gpt-4o --preset enterprise

# Con stack manual y formato de exportación
intake init "Microservicio" -s reqs.md --stack python,fastapi -f architect

# Spec en español
intake init "Carrito de compras" -s historias.md --lang es

# Dry run para ver qué haría
intake init "Prototipo" -s ideas.txt --dry-run

# Desde stdin
cat requisitos.txt | intake init "Feature X" -s -

Qué hace internamente

  1. Carga la configuración (preset + .intake.yaml + flags CLI)
  2. Auto-detecta el stack tecnológico del proyecto (si no se especifica --stack)
  3. Slugifica la descripción para el nombre del directorio
  4. Fase 1 — Ingest: parsea todas las fuentes via el registry
  5. Fase 2 — Analyze: extracción LLM, deduplicación, validación, riesgos, diseño
  6. Fase 3 — Generate: renderiza 6 templates + spec.lock.yaml
  7. Fase 5 — Export: exporta al formato elegido (si se especificó --format)

intake add

Agrega fuentes a una spec existente.

intake add <SPEC_DIR> -s <fuente> [opciones]

Argumento

ArgumentoTipoRequeridoDescripción
SPEC_DIRpathDirectorio de la spec existente.

Opciones

FlagCortoTipoDefaultDescripción
--source-stextoNuevas fuentes a agregar (repetible).
--regenerateflagfalseRegenerar toda la spec incluyendo las nuevas fuentes.
--verbose-vflagfalseOutput detallado.

Ejemplo

# Agregar una fuente nueva a una spec existente
intake add specs/api-de-usuarios/ -s feedback-qa.md

# Agregar y regenerar todo
intake add specs/api-de-usuarios/ -s nuevos-reqs.yaml --regenerate

intake verify

Verifica que la implementación cumple con la spec ejecutando los checks de acceptance.yaml.

intake verify <SPEC_DIR> [opciones]

Argumento

ArgumentoTipoRequeridoDescripción
SPEC_DIRpathDirectorio de la spec.

Opciones

FlagCortoTipoDefaultDescripción
--project-dir-ppath.Directorio del proyecto a verificar.
--format-fopciónterminalFormato del reporte: terminal, json, junit.
--tags-ttextotodosSolo ejecutar checks con estos tags (repetible).
--fail-fastflagfalseDetenerse en el primer check requerido que falle.

Exit codes

CódigoSignificado
0Todos los checks requeridos pasaron
1Al menos un check requerido falló
2Error de ejecución (spec no encontrada, YAML inválido, etc.)

Ejemplos

# Verificar con reporte en terminal
intake verify specs/api-de-usuarios/ -p .

# Solo checks con tag "api"
intake verify specs/api-de-usuarios/ -p . -t api

# Formato JUnit para CI
intake verify specs/api-de-usuarios/ -p . -f junit > test-results.xml

# Fail fast
intake verify specs/api-de-usuarios/ -p . --fail-fast

# Formato JSON
intake verify specs/api-de-usuarios/ -p . -f json

intake export

Exporta una spec a un formato listo para un agente IA.

intake export <SPEC_DIR> -f <formato> [opciones]

Argumento

ArgumentoTipoRequeridoDescripción
SPEC_DIRpathDirectorio de la spec.

Opciones

FlagCortoTipoDefaultDescripción
--format-fopciónFormato: architect, claude-code, cursor, kiro, generic. Requerido.
--output-opath.Directorio de salida.

Ejemplos

# Exportar para architect
intake export specs/api-de-usuarios/ -f architect -o output/

# Exportar formato genérico
intake export specs/api-de-usuarios/ -f generic -o output/

intake show

Muestra un resumen de una spec: requisitos, tareas, checks, costos.

intake show <SPEC_DIR>

Argumento

ArgumentoTipoRequeridoDescripción
SPEC_DIRpathDirectorio de la spec.

Qué muestra

  • Archivos en la spec
  • Modelo LLM usado
  • Cantidad de requisitos
  • Cantidad de tareas
  • Costo total del análisis
  • Fecha de creación
  • Cantidad de fuentes
  • Cantidad de checks de aceptación

Ejemplo

intake show specs/api-de-usuarios/

intake list

Lista todas las specs en un directorio.

intake list [opciones]

Opciones

FlagCortoTipoDefaultDescripción
--dir-dpath./specsDirectorio donde buscar specs.

Detecta subdirectorios que contengan requirements.md o acceptance.yaml.

Ejemplo

# Listar specs en el directorio por defecto
intake list

# Listar specs en otro directorio
intake list -d ./mi-proyecto/specs

intake diff

Compara dos versiones de una spec y muestra los cambios.

intake diff <SPEC_A> <SPEC_B> [opciones]

Argumentos

ArgumentoTipoRequeridoDescripción
SPEC_ApathPrimera versión de la spec.
SPEC_BpathSegunda versión de la spec.

Opciones

FlagTipoDefaultDescripción
--sectionopciónallQué sección comparar: requirements, design, tasks, acceptance, all.

Qué compara

  • requirements: Requisitos por ID (FR-XX, NFR-XX)
  • tasks: Tareas por número
  • acceptance: Checks por ID

Los cambios se muestran como:

  • Added (verde): elementos nuevos en SPEC_B
  • Removed (rojo): elementos que estaban en SPEC_A pero no en SPEC_B
  • Modified (amarillo): elementos con cambios

Ejemplo

# Comparar dos versiones completas
intake diff specs/v1/ specs/v2/

# Solo comparar requisitos
intake diff specs/v1/ specs/v2/ --section requirements

intake doctor

Diagnostica el entorno y la configuración.

intake doctor [opciones]

Opciones

FlagCortoTipoDefaultDescripción
--fixflagfalseIntentar corregir los problemas detectados automáticamente.
--verbose-vflagfalseOutput detallado.

Checks que ejecuta

CheckQué verificaAuto-fixable
Python versionPython >= 3.12No
LLM API keyANTHROPIC_API_KEY o OPENAI_API_KEY definidaNo
pdfplumberPaquete instalado
python-docxPaquete instalado
beautifulsoup4Paquete instalado
markdownifyPaquete instalado
litellmPaquete instalado
jinja2Paquete instalado
Config file.intake.yaml existe y es YAML válidoSí (crea uno básico)

—fix

Con --fix, intake intenta corregir automáticamente:

  • Paquetes faltantes: ejecuta pip install <paquete> (detecta pip3.12, pip3 o pip)
  • Config faltante: crea un .intake.yaml básico con defaults

Ejemplos

# Solo diagnosticar
intake doctor

# Diagnosticar y corregir
intake doctor --fix

# Con output detallado
intake doctor -v

Opciones globales

FlagDescripción
--versionMuestra la versión de intake
--helpMuestra la ayuda del comando
intake --version    # intake, version 0.1.0
intake --help       # Ayuda general
intake init --help  # Ayuda del comando init

Exit codes

Todos los comandos siguen un esquema de exit codes consistente:

CódigoSignificado
0Éxito
1Check requerido falló (solo verify)
2Error de ejecución