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 | copilot | generic
  architect_include_guardrails: true
  architect_pipeline_template: standard
  claude_code_generate_claude_md: true

# Conectores API directos
connectors:
  jira:
    url: "https://company.atlassian.net"
    auth_type: token              # token | oauth | api_key
    token_env: JIRA_API_TOKEN     # Variable de entorno con el API token
    email_env: JIRA_EMAIL         # Variable de entorno con el email
    default_project: ""           # Proyecto por defecto (ej: "PROJ")
    include_comments: true        # Incluir comentarios de issues
    max_comments: 5               # Max comentarios por issue
    fields:                       # Campos a recuperar
      - summary
      - description
      - labels
      - priority
      - status
      - issuelinks
      - comment
  confluence:
    url: "https://company.atlassian.net/wiki"
    auth_type: token              # token | oauth
    token_env: CONFLUENCE_API_TOKEN
    email_env: CONFLUENCE_EMAIL
    default_space: ""             # Space por defecto (ej: "ENG")
    include_child_pages: false    # Incluir paginas hijas
    max_depth: 1                  # Profundidad maxima de paginas hijas
  github:
    token_env: GITHUB_TOKEN       # Variable de entorno con el PAT
    default_repo: ""              # Repo por defecto (ej: "org/repo")
  gitlab:
    url: "https://gitlab.example.com"  # URL de la instancia GitLab
    token_env: GITLAB_TOKEN            # Variable de entorno con el access token
    auth_type: token                    # token | oauth
    default_project: ""                 # Proyecto por defecto
    include_comments: true              # Incluir discussion notes
    include_merge_requests: false       # Incluir MRs vinculados
    max_notes: 10                       # Max notas por issue
    ssl_verify: true                    # Verificar certificados SSL

# Feedback loop
feedback:
  auto_amend_spec: false          # Aplicar enmiendas automaticamente
  max_suggestions: 10             # Max sugerencias por analisis
  include_code_snippets: true     # Incluir codigo en sugerencias

# Servidor MCP
mcp:
  specs_dir: ./specs            # Directorio base de specs
  project_dir: .                # Directorio del proyecto para verificacion
  transport: stdio              # stdio | sse
  sse_port: 8080                # Puerto para transporte SSE

# Modo watch
watch:
  debounce_seconds: 2.0         # Segundos de espera tras el ultimo cambio
  ignore_patterns:              # Patrones glob a ignorar
    - "*.pyc"
    - "__pycache__"
    - ".git"
    - "node_modules"
    - ".intake"

# Validacion de specs
validate:
  strict: false                 # Modo estricto: warnings son errores
  required_sections:            # Archivos requeridos
    - requirements.md
    - tasks.md
    - acceptance.yaml

# Estimacion de costos
estimate:
  tokens_per_word: 1.35         # Ratio tokens/palabra
  prompt_overhead_tokens: 2000  # Overhead por llamada LLM
  calls_per_mode:               # Llamadas LLM por modo
    quick: 1
    standard: 3
    enterprise: 4

# Templates personalizados
templates:
  user_dir: ".intake/templates"   # Directorio de templates del usuario
  warn_on_override: true          # Warning al sobreescribir un template built-in

# 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, copilot, 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.
claude_code_task_dirstring.intake/tasksDirectorio para archivos de tarea de Claude Code.
cursor_rules_dirstring.cursor/rulesDirectorio para reglas de Cursor.

Seccion connectors

Configuracion para conectores API directos. Permiten usar URIs como jira://PROJ-123 directamente en -s. Ver Conectores para detalles de uso.

Jira:

CampoTipoDefaultDescripcion
jira.urlstring""URL base de la instancia Jira. Requerido para usar jira://.
jira.auth_typestring"token"Tipo de autenticacion: token, oauth, api_key.
jira.token_envstring"JIRA_API_TOKEN"Variable de entorno con el API token.
jira.email_envstring"JIRA_EMAIL"Variable de entorno con el email de autenticacion.
jira.default_projectstring""Proyecto por defecto.
jira.include_commentsbooltrueIncluir comentarios de issues.
jira.max_commentsint5Maximo de comentarios por issue.
jira.fieldslist[string]ver ejemploCampos de Jira a recuperar.

Confluence:

CampoTipoDefaultDescripcion
confluence.urlstring""URL base de la instancia Confluence. Requerido para usar confluence://.
confluence.auth_typestring"token"Tipo de autenticacion: token, oauth.
confluence.token_envstring"CONFLUENCE_API_TOKEN"Variable de entorno con el API token.
confluence.email_envstring"CONFLUENCE_EMAIL"Variable de entorno con el email.
confluence.default_spacestring""Space por defecto.
confluence.include_child_pagesboolfalseIncluir paginas hijas recursivamente.
confluence.max_depthint1Profundidad maxima de paginas hijas.

GitHub:

CampoTipoDefaultDescripcion
github.token_envstring"GITHUB_TOKEN"Variable de entorno con el Personal Access Token.
github.default_repostring""Repositorio por defecto (ej: org/repo).

GitLab:

CampoTipoDefaultDescripcion
gitlab.urlstring"https://gitlab.com"URL de la instancia GitLab. Requerido para usar gitlab://.
gitlab.token_envstring"GITLAB_TOKEN"Variable de entorno con el Personal Access Token.
gitlab.auth_typestring"token"Tipo de autenticacion: token, oauth.
gitlab.default_projectstring""Proyecto por defecto (ej: group/project).
gitlab.include_commentsbooltrueIncluir discussion notes en los issues.
gitlab.include_merge_requestsboolfalseIncluir merge requests vinculados a los issues.
gitlab.max_notesint10Maximo de notas por issue.
gitlab.ssl_verifybooltrueVerificar certificados SSL. Deshabilitar para instancias con certificados auto-firmados.

Seccion feedback

Configuracion del feedback loop. Ver Feedback para detalles.

CampoTipoDefaultDescripcion
feedback.auto_amend_specboolfalseAplicar enmiendas a la spec automaticamente tras el analisis.
feedback.max_suggestionsint10Maximo de sugerencias a generar por analisis.
feedback.include_code_snippetsbooltrueIncluir fragmentos de codigo en las sugerencias.

Seccion mcp

Configuracion del servidor MCP (Model Context Protocol). Ver MCP Server para detalles completos.

CampoTipoDefaultDescripcion
mcp.specs_dirstring"./specs"Directorio base donde estan las specs.
mcp.project_dirstring"."Directorio del proyecto para verificacion.
mcp.transportstring"stdio"Transporte del servidor: stdio (local) o sse (HTTP).
mcp.sse_portint8080Puerto para el transporte SSE.

Nota: El servidor MCP requiere el paquete mcp. Instalar con: pip install "intake-ai-cli[mcp]". El transporte SSE requiere ademas starlette y uvicorn.

Seccion watch

Configuracion del modo watch para re-verificacion automatica. Ver Watch Mode para detalles completos.

CampoTipoDefaultDescripcion
watch.debounce_secondsfloat2.0Tiempo de espera tras el ultimo cambio de archivo antes de re-verificar.
watch.ignore_patternslist[string]["*.pyc", "__pycache__", ".git", "node_modules", ".intake"]Patrones glob de archivos/directorios a ignorar. Se comparan contra cada componente del path.

Nota: El modo watch requiere el paquete watchfiles. Instalar con: pip install "intake-ai-cli[watch]".

Seccion validate

Configuracion de la validacion interna de specs (quality gate). Ver Guia CLI > validate para detalles de uso.

CampoTipoDefaultDescripcion
validate.strictboolfalseModo estricto: los warnings se convierten en errores.
validate.required_sectionslist[string]["requirements.md", "tasks.md", "acceptance.yaml"]Archivos requeridos en la spec.
validate.max_orphaned_requirementsint0Maximo de requisitos huerfanos (sin tarea) permitidos sin advertencia.

Seccion estimate

Configuracion de la estimacion de costos LLM. Ver Guia CLI > estimate para detalles de uso.

CampoTipoDefaultDescripcion
estimate.tokens_per_wordfloat1.35Ratio de tokens por palabra para estimar tokens de entrada.
estimate.prompt_overhead_tokensint2000Tokens adicionales por llamada LLM (system prompt, formato, etc.).
estimate.calls_per_modedict{"quick": 1, "standard": 3, "enterprise": 4}Numero de llamadas LLM por modo de generacion.

Seccion templates

Configuracion de templates Jinja2 con soporte de overrides por proyecto. Los usuarios pueden sobreescribir cualquier template built-in colocando un archivo con el mismo nombre en el directorio configurado.

CampoTipoDefaultDescripcion
templates.user_dirstring".intake/templates"Directorio relativo al proyecto donde buscar templates personalizados.
templates.warn_on_overridebooltrueLog de warning cuando un template built-in es sobreescrito por uno del usuario.

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

Proveedores LLM

VariableProveedorEjemplo
ANTHROPIC_API_KEYAnthropic (Claude)sk-ant-api03-...
OPENAI_API_KEYOpenAI (GPT)sk-...
# 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

Conectores API

VariableConectorProposito
JIRA_API_TOKENJiraAPI token de Atlassian
JIRA_EMAILJiraEmail de autenticacion
CONFLUENCE_API_TOKENConfluenceAPI token de Atlassian
CONFLUENCE_EMAILConfluenceEmail de autenticacion
GITHUB_TOKENGitHubPersonal Access Token
GITLAB_TOKENGitLabPersonal Access Token (scope: read_api)
# Jira / Confluence
export JIRA_API_TOKEN=tu-api-token
export JIRA_EMAIL=dev@company.com
export CONFLUENCE_API_TOKEN=tu-api-token
export CONFLUENCE_EMAIL=dev@company.com

# GitHub
export GITHUB_TOKEN=ghp_tu-personal-access-token

# GitLab
export GITLAB_TOKEN=glpat-tu-personal-access-token

Los nombres de las variables son configurables via connectors.*.token_env y connectors.*.email_env en .intake.yaml.


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