Configuracion

intake funciona sin configuracion — solo necesita una API key de LLM. Para personalizar el comportamiento, se usa un archivo .intake.yaml en la raiz del proyecto.


Prioridad de carga

La configuracion se carga por capas. Cada capa sobreescribe la anterior:

CLI flags  >  .intake.yaml  >  preset  >  defaults
  1. Defaults: valores por defecto en el codigo
  2. Preset: si se usa --preset, aplica un conjunto predefinido
  3. .intake.yaml: archivo de configuracion del proyecto
  4. CLI flags: las opciones de linea de comandos siempre ganan

Archivo .intake.yaml

Crea un archivo .intake.yaml en la raiz de tu proyecto. Ejemplo completo:

# Configuracion 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 maximo 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)

# Configuracion del proyecto
project:
  name: mi-proyecto               # Nombre (auto-detectado si vacio)
  stack: []                       # Stack tecnologico (auto-detectado si vacio)
  language: en                    # Idioma del contenido generado
  conventions: {}                 # Convenciones personalizadas (key: value)

# Configuracion 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 evaluacion de riesgos
  auto_mode: true                 # Auto-detectar quick/standard/enterprise

# Configuracion de verificacion
verification:
  auto_generate_tests: true       # Generar checks de aceptacion
  test_output_dir: ./tests/generated
  checks: []                      # Checks personalizados adicionales
  timeout_per_check: 120          # Timeout por check (segundos)

# Configuracion de exportacion
export:
  default_format: generic         # architect | claude-code | cursor | kiro | generic
  architect_include_guardrails: true
  architect_pipeline_template: standard
  claude_code_generate_claude_md: true

# Conectores (preparacion para Fase 2)
connectors:
  jira:
    url: ""                       # URL base de Jira
    email: ""                     # Email de autenticacion
    api_token_env: JIRA_API_TOKEN # Variable de entorno con el API token
  confluence:
    url: ""                       # URL base de Confluence
    email: ""                     # Email de autenticacion
    api_token_env: CONFLUENCE_API_TOKEN  # Variable de entorno con el API token
  github:
    token_env: GITHUB_TOKEN       # Variable de entorno con el token

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

Referencia completa de campos

Seccion llm

CampoTipoDefaultDescripcion
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 maximo por spec en USD. Si se excede, el analisis se detiene.
temperaturefloat0.2Temperatura del modelo. Menor = mas determinista.
max_retriesint3Numero 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)

Seccion project

CampoTipoDefaultDescripcion
namestring""Nombre del proyecto. Si esta vacio, se genera desde la descripcion del init.
stacklist[string][]Stack tecnologico. Si esta vacio, 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-deteccion 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

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

Seccion spec

CampoTipoDefaultDescripcion
output_dirstring./specsDirectorio de salida para las specs.
requirements_formatstringearsFormato de requisitos. Opciones: ears, user-stories, bdd, free.
design_depthstringmoderateNivel de detalle del diseno. 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 evaluacion de riesgos (fase adicional del LLM).
auto_modebooltrueAuto-detectar modo de generacion (quick/standard/enterprise) basado en la complejidad de las fuentes. Se ignora si se usa --mode en la CLI.

Modos de generacion:

ModoCriterios de auto-deteccionArchivos generados
quick<500 palabras, 1 fuente, sin estructuracontext.md + tasks.md
standardTodo lo que no es quick ni enterpriseLos 6 archivos spec completos
enterprise4+ fuentes O >5000 palabrasLos 6 archivos + riesgos detallados

Formatos de requisitos:

FormatoDescripcionMejor para
earsEasy Approach to Requirements Syntax. Formato estructurado con condiciones.Especificaciones formales
user-stories”Como [rol], quiero [accion] para [beneficio]”.Equipos agiles
bddGiven/When/Then. Behavior-driven development.Tests de aceptacion
freeFormato libre. Sin estructura impuesta.Prototipos rapidos

Niveles de diseno:

NivelDescripcion
minimalSolo componentes principales y decisiones criticas.
moderateComponentes, archivos, decisiones tecnicas y dependencias.
detailedTodo lo anterior mas diagramas de interaccion, edge cases, consideraciones de performance.

Granularidad de tareas:

NivelDescripcion
coarseTareas grandes, pocas. Cada tarea cubre un componente completo.
mediumBalance entre granularidad y cantidad.
fineTareas pequenas y atomicas. Cada tarea es ~15-30 minutos de trabajo.

Seccion verification

CampoTipoDefaultDescripcion
auto_generate_testsbooltrueGenerar checks de aceptacion automaticamente desde los requisitos.
test_output_dirstring./tests/generatedDirectorio para tests generados.
checkslist[string][]Checks personalizados adicionales.
timeout_per_checkint120Timeout maximo por check individual en segundos.

Seccion export

CampoTipoDefaultDescripcion
default_formatstringgenericFormato de exportacion 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.

Seccion connectors (preparacion)

Configuracion para conectores API directos. Los conectores aun no estan implementados (llegaran en una version futura), pero la infraestructura de configuracion ya esta lista.

CampoTipoDefaultDescripcion
jira.urlstring""URL base de la instancia Jira.
jira.emailstring""Email para autenticacion Jira.
jira.api_token_envstring"JIRA_API_TOKEN"Variable de entorno con el API token de Jira.
confluence.urlstring""URL base de la instancia Confluence.
confluence.emailstring""Email para autenticacion Confluence.
confluence.api_token_envstring"CONFLUENCE_API_TOKEN"Variable de entorno con el API token de Confluence.
github.token_envstring"GITHUB_TOKEN"Variable de entorno con el token de GitHub.

Nota: Actualmente, al usar URIs como jira://PROJ-123 en -s, intake muestra un warning indicando que el conector no esta disponible. Mientras tanto, exporta los datos desde la interfaz web y usa archivos JSON.

Seccion security

CampoTipoDefaultDescripcion
redact_patternslist[string][]Patrones regex que se eliminaran del contenido generado.
redact_fileslist[string]["*.env", "*.pem", "*.key"]Patrones glob de archivos que nunca se incluiran.

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 rapidoEquipos normalesRegulado / critico
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

Cuando usar cada preset

  • minimal: Prototipado rapido, ideas exploratorias, un solo desarrollador. Costo bajo, output minimo.
  • standard: La opcion 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 evaluacion de riesgos exhaustiva.

Variables de entorno

intake busca estas variables de entorno para la autenticacion con proveedores LLM:

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

Configura la variable segun 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 automaticamente

Si no tienes .intake.yaml, intake usa defaults sensatos. Para crear un archivo de configuracion basico:

intake doctor --fix

Esto crea un .intake.yaml minimo 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