Configuración

intake funciona sin configuración — solo necesita una API key de LLM. Para personalizar el comportamiento, se usa un archivo .intake.yaml en la raíz del proyecto.


Prioridad de carga

La configuración se carga por capas. Cada capa sobreescribe la anterior:

CLI flags  >  .intake.yaml  >  preset  >  defaults
  1. Defaults: valores por defecto en el código
  2. Preset: si se usa --preset, aplica un conjunto predefinido
  3. .intake.yaml: archivo de configuración del proyecto
  4. CLI flags: las opciones de línea de comandos siempre ganan

Archivo .intake.yaml

Crea un archivo .intake.yaml en la raíz de tu proyecto. Ejemplo completo:

# Configuración del modelo LLM
llm:
  model: claude-sonnet-4         # Cualquier modelo soportado por LiteLLM
  api_key_env: ANTHROPIC_API_KEY  # Variable de entorno con la API key
  max_cost_per_spec: 0.50         # Presupuesto máximo por spec (USD)
  temperature: 0.2                # 0.0 = determinista, 1.0 = creativo
  max_retries: 3                  # Reintentos en caso de fallo
  timeout: 120                    # Timeout por llamada LLM (segundos)

# Configuración del proyecto
project:
  name: mi-proyecto               # Nombre (auto-detectado si vacío)
  stack: []                       # Stack tecnológico (auto-detectado si vacío)
  language: en                    # Idioma del contenido generado
  conventions: {}                 # Convenciones personalizadas (key: value)

# Configuración de la spec
spec:
  output_dir: ./specs             # Donde guardar las specs generadas
  requirements_format: ears       # ears | user-stories | bdd | free
  design_depth: moderate          # minimal | moderate | detailed
  task_granularity: medium        # coarse | medium | fine
  include_sources: true           # Incluir trazabilidad de fuentes
  version_specs: true             # Crear directorios versionados
  generate_lock: true             # Generar spec.lock.yaml
  risk_assessment: true           # Incluir evaluación de riesgos

# Configuración de verificación
verification:
  auto_generate_tests: true       # Generar checks de aceptación
  test_output_dir: ./tests/generated
  checks: []                      # Checks personalizados adicionales
  timeout_per_check: 120          # Timeout por check (segundos)

# Configuración de exportación
export:
  default_format: generic         # architect | claude-code | cursor | kiro | generic
  architect_include_guardrails: true
  architect_pipeline_template: standard
  claude_code_generate_claude_md: true

# Seguridad
security:
  redact_patterns: []             # Patrones regex a redactar del output
  redact_files:                   # Archivos a nunca incluir
    - "*.env"
    - "*.pem"
    - "*.key"

Referencia completa de campos

Sección llm

CampoTipoDefaultDescripción
modelstringclaude-sonnet-4Modelo LLM. Cualquier modelo que LiteLLM soporte.
api_key_envstringANTHROPIC_API_KEYNombre de la variable de entorno que contiene la API key.
max_cost_per_specfloat0.50Presupuesto máximo por spec en USD. Si se excede, el análisis se detiene.
temperaturefloat0.2Temperatura del modelo. Menor = más determinista.
max_retriesint3Número de reintentos ante fallos del LLM.
timeoutint120Timeout por llamada LLM en segundos.

Modelos soportados:

ProveedorEjemplosVariable de entorno
Anthropicclaude-sonnet-4, claude-opus-4, claude-haiku-4-5ANTHROPIC_API_KEY
OpenAIgpt-4o, gpt-4, gpt-3.5-turboOPENAI_API_KEY
Googlegemini/gemini-pro, gemini/gemini-flashGEMINI_API_KEY
Localollama/llama3, ollama/mistral(no necesita key)

Sección project

CampoTipoDefaultDescripción
namestring""Nombre del proyecto. Si está vacío, se genera desde la descripción del init.
stacklist[string][]Stack tecnológico. Si está vacío, se auto-detecta desde archivos del proyecto.
languagestringenIdioma para el contenido generado (ej: en, es, fr).
conventionsdict{}Convenciones del proyecto como pares clave-valor.

La auto-detección del stack busca 28+ archivos marcadores en el directorio del proyecto:

ArchivoStack detectado
package.jsonjavascript, node
tsconfig.jsontypescript
pyproject.tomlpython
Cargo.tomlrust
go.modgo
pom.xmljava, maven
Dockerfiledocker
next.config.jsnextjs

Además inspecciona el contenido de pyproject.toml y package.json para detectar frameworks (fastapi, django, react, vue, etc.).

Sección spec

CampoTipoDefaultDescripción
output_dirstring./specsDirectorio de salida para las specs.
requirements_formatstringearsFormato de requisitos. Opciones: ears, user-stories, bdd, free.
design_depthstringmoderateNivel de detalle del diseño. Opciones: minimal, moderate, detailed.
task_granularitystringmediumGranularidad de las tareas. Opciones: coarse, medium, fine.
include_sourcesbooltrueIncluir sources.md con trazabilidad requisito-fuente.
version_specsbooltrueCrear subdirectorios versionados para las specs.
generate_lockbooltrueGenerar spec.lock.yaml con hashes y metadata.
risk_assessmentbooltrueEjecutar evaluación de riesgos (fase adicional del LLM).

Formatos de requisitos:

FormatoDescripciónMejor para
earsEasy Approach to Requirements Syntax. Formato estructurado con condiciones.Especificaciones formales
user-stories”Como [rol], quiero [acción] para [beneficio]”.Equipos ágiles
bddGiven/When/Then. Behavior-driven development.Tests de aceptación
freeFormato libre. Sin estructura impuesta.Prototipos rápidos

Niveles de diseño:

NivelDescripción
minimalSolo componentes principales y decisiones críticas.
moderateComponentes, archivos, decisiones técnicas y dependencias.
detailedTodo lo anterior más diagramas de interacción, edge cases, consideraciones de performance.

Granularidad de tareas:

NivelDescripción
coarseTareas grandes, pocas. Cada tarea cubre un componente completo.
mediumBalance entre granularidad y cantidad.
fineTareas pequeñas y atómicas. Cada tarea es ~15-30 minutos de trabajo.

Sección verification

CampoTipoDefaultDescripción
auto_generate_testsbooltrueGenerar checks de aceptación automáticamente desde los requisitos.
test_output_dirstring./tests/generatedDirectorio para tests generados.
checkslist[string][]Checks personalizados adicionales.
timeout_per_checkint120Timeout máximo por check individual en segundos.

Sección export

CampoTipoDefaultDescripción
default_formatstringgenericFormato de exportación por defecto. Opciones: architect, claude-code, cursor, kiro, generic.
architect_include_guardrailsbooltrueIncluir guardrails en pipelines de architect.
architect_pipeline_templatestringstandardTemplate de pipeline para architect.
claude_code_generate_claude_mdbooltrueGenerar CLAUDE.md al exportar para Claude Code.

Sección security

CampoTipoDefaultDescripción
redact_patternslist[string][]Patrones regex que se eliminarán del contenido generado.
redact_fileslist[string]["*.env", "*.pem", "*.key"]Patrones glob de archivos que nunca se incluirán.

Presets

Los presets son configuraciones predefinidas para casos de uso comunes. Se aplican con --preset:

intake init "Mi feature" -s reqs.md --preset minimal

Comparativa

Campominimalstandardenterprise
Caso de usoPrototipo rápidoEquipos normalesRegulado / crítico
max_cost_per_spec$0.10$0.50$2.00
temperature0.30.20.1
requirements_formatfreeearsears
design_depthminimalmoderatedetailed
task_granularitycoarsemediumfine
include_sourcesfalsetruetrue
risk_assessmentfalsetruetrue
generate_lockfalsetruetrue

Cuándo usar cada preset

  • minimal: Prototipado rápido, ideas exploratorias, un solo desarrollador. Costo bajo, output mínimo.
  • standard: La opción por defecto. Buen balance entre detalle y costo para equipos de 2-5 personas.
  • enterprise: Para equipos grandes, proyectos regulados, o cuando se necesita trazabilidad completa y evaluación de riesgos exhaustiva.

Variables de entorno

intake busca estas variables de entorno para la autenticación con proveedores LLM:

VariableProveedorEjemplo
ANTHROPIC_API_KEYAnthropic (Claude)sk-ant-api03-...
OPENAI_API_KEYOpenAI (GPT)sk-...

Configura la variable según tu proveedor:

# Anthropic
export ANTHROPIC_API_KEY=sk-ant-api03-tu-key-aqui

# OpenAI
export OPENAI_API_KEY=sk-tu-key-aqui

Si usas un proveedor diferente, configura llm.api_key_env en .intake.yaml:

llm:
  model: gemini/gemini-pro
  api_key_env: GEMINI_API_KEY

Generar config automáticamente

Si no tienes .intake.yaml, intake usa defaults sensatos. Para crear un archivo de configuración básico:

intake doctor --fix

Esto crea un .intake.yaml mínimo que puedes personalizar:

# intake configuration
llm:
  model: claude-sonnet-4
  # max_cost_per_spec: 0.50
project:
  name: ""
  language: en
  # stack: []
spec:
  output_dir: ./specs