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")

# 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

# 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).

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 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
# 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

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