Flujos de trabajo

Patrones de uso de intake para diferentes escalas de equipo y organizacion, desde un desarrollador individual hasta empresas multi-equipo con requisitos regulatorios.


Desarrollador individual

Flujo basico

Requisitos → intake init → Revisar spec → Implementar → intake verify → Iterar

Ejemplo end-to-end

# 1. Recopilar requisitos en un archivo Markdown
echo "# Auth System
- Users register with email and password
- OAuth2 login with Google and GitHub
- JWT tokens with 1h expiry
- Rate limiting: 100 requests/min per user" > reqs.md

# 2. Generar la spec
intake init "Auth system" -s reqs.md

# 3. Revisar la spec generada
intake show specs/auth-system/
# → 4 functional requirements, 6 tasks, 8 acceptance checks

# 4. Exportar para tu agente preferido
intake export specs/auth-system/ -f claude-code -o .

# 5. Implementar (manualmente o con agente)
# ... coding ...

# 6. Verificar cumplimiento
intake verify specs/auth-system/ -p .
# → PASS: 7/8  FAIL: 1/8

# 7. Analizar el fallo
intake feedback specs/auth-system/ -p .
# → MAJOR: Rate limiting not implemented in middleware
#   Fix: Add rate_limit decorator to src/api/routes.py

# 8. Corregir y re-verificar
# ... fix rate limiting ...
intake verify specs/auth-system/ -p .
# → PASS: 8/8

# 9. Marcar tareas como completadas
intake task update specs/auth-system/ 1 done --note "All checks passing"

# 10. Commitear
git add specs/ src/ tests/
git commit -m "feat: implement auth system (spec-verified)"

Quick mode para tareas simples

# Bug fix rapido: solo genera context.md + tasks.md
intake init "Fix login timeout" -s bug-report.txt --mode quick

Equipo pequeno (2-5 desarrolladores)

Patron: specs compartidas en git

Todo el equipo trabaja con las mismas specs versionadas:

# Tech lead genera la spec
intake init "Payment gateway" -s jira.json -s confluence.html --preset standard
git add specs/payment-gateway/
git commit -m "spec: add payment gateway requirements"
git push

# Desarrollador clona y trabaja
git pull
intake show specs/payment-gateway/
intake export specs/payment-gateway/ -f cursor -o .
# ... implementar ...
intake verify specs/payment-gateway/ -p .

Patron: spec por feature branch

Cada feature tiene su spec en su propia branch:

# Branch de feature
git checkout -b feature/notifications

# Generar spec en la branch
intake init "Notification system" -s reqs.md -s slack-decisions.json
git add specs/notification-system/

# Implementar + verificar
# ...

# El PR incluye spec + implementacion
git add src/ tests/ specs/
git commit -m "feat: notification system with spec"
git push origin feature/notifications
# → PR review incluye revision de la spec

Patron: roles de equipo

RolResponsabilidad intakeComandos principales
Tech LeadCrear y revisar specsinit, add, diff, show
DeveloperImplementar y verificarexport, verify, task update
QAVerificar y reportarverify -f junit, feedback
# Tech Lead: crear spec desde multiples fuentes
intake init "User dashboard" \
  -s jira://DASH-100,DASH-101,DASH-102 \
  -s confluence://ENG/Dashboard-RFC \
  -s meeting-notes.md \
  --preset standard

# Developer: exportar y trabajar
intake export specs/user-dashboard/ -f claude-code -o .
intake task update specs/user-dashboard/ 1 in_progress

# QA: verificar y generar reporte
intake verify specs/user-dashboard/ -p . -f junit > results.xml

Empresa multi-equipo

Gobernanza de specs

Para organizaciones grandes, las specs necesitan un proceso de aprobacion:

1. Product Owner define requisitos (Jira, Confluence, docs)

2. Tech Lead genera spec (intake init)

3. PR con spec → Review por arquitecto + stakeholders

4. Spec aprobada → Merge a main

5. Equipo implementa usando spec verificada

6. CI ejecuta intake verify en cada PR

7. Release solo si todos los checks pasan

Estandarizacion

Compartir configuracion a nivel organizacion:

# .intake.yaml en la raiz del monorepo
llm:
  model: claude-sonnet-4
  max_cost_per_spec: 1.00

project:
  language: en
  conventions:
    code_style: "PEP 8"
    testing: "pytest with >80% coverage"
    documentation: "Google-style docstrings"

spec:
  requirements_format: ears
  design_depth: moderate
  task_granularity: medium
  risk_assessment: true
  generate_lock: true

export:
  default_format: claude-code

security:
  redact_patterns:
    - "sk-[a-zA-Z0-9]{20,}"
    - "\\b\\d{4}-\\d{4}-\\d{4}-\\d{4}\\b"
  redact_files:
    - "*.env"
    - "*.pem"
    - "*.key"
    - "credentials.*"

Enforcement: usar --preset enterprise para equipos con requisitos regulatorios.

Multi-spec para sistemas grandes

Estructura para microservicios o sistemas con multiples componentes:

empresa/
├── .intake.yaml                    # Config compartida
├── specs/
│   ├── platform/
│   │   ├── api-gateway/            # Spec del API gateway
│   │   ├── auth-service/           # Spec del servicio de auth
│   │   └── notification-service/   # Spec de notificaciones
│   ├── frontend/
│   │   ├── web-dashboard/          # Spec del dashboard web
│   │   └── mobile-app/             # Spec de la app movil
│   └── infrastructure/
│       ├── monitoring/             # Spec de monitoring
│       └── ci-pipeline/            # Spec del pipeline CI
├── services/
│   ├── api-gateway/
│   ├── auth/
│   └── notifications/
└── frontend/
    ├── web/
    └── mobile/

Monorepo multi-spec

Verificacion por servicio

Cada spec se verifica contra su directorio de proyecto correspondiente:

# Verificar cada servicio contra su spec
intake verify specs/platform/api-gateway/ -p services/api-gateway/
intake verify specs/platform/auth-service/ -p services/auth/
intake verify specs/frontend/web-dashboard/ -p frontend/web/

CI matrix para paralelo

# GitHub Actions
jobs:
  verify:
    strategy:
      matrix:
        include:
          - spec: specs/platform/api-gateway
            project: services/api-gateway
          - spec: specs/platform/auth-service
            project: services/auth
          - spec: specs/frontend/web-dashboard
            project: frontend/web
      fail-fast: false
    steps:
      - uses: actions/checkout@v4
      - run: pip install intake-ai-cli
      - run: intake verify ${{ matrix.spec }}/ -p ${{ matrix.project }}/ -f junit > results.xml

Ciclo de vida de una spec

Crear → Verificar → Actualizar → Deprecar

# CREAR: nueva spec
intake init "Payment v2" -s reqs.md -s jira.json

# VERIFICAR: en cada push/PR
intake verify specs/payment-v2/ -p .

# ACTUALIZAR: cuando los requisitos cambian
intake add specs/payment-v2/ -s nuevos-reqs.md --regenerate

# COMPARAR: que cambio entre versiones
intake diff specs/payment-v1/ specs/payment-v2/

# DEPRECAR: archivar specs obsoletas
mkdir -p specs/archived
mv specs/payment-v1/ specs/archived/
git add specs/ && git commit -m "archive: payment v1 (replaced by v2)"

Gestion de cambios

Cuando los requisitos cambian:

# 1. Regenerar spec con nueva fuente
intake add specs/mi-feature/ -s updated-reqs.md --regenerate

# 2. Comparar con la version anterior
intake diff specs/mi-feature-backup/ specs/mi-feature/
# → Added: FR-005 (new requirement)
# → Modified: FR-002 (scope changed)
# → Removed: FR-003 (no longer needed)

# 3. Revisar los cambios
intake show specs/mi-feature/

# 4. Re-verificar la implementacion
intake verify specs/mi-feature/ -p .

# 5. Si hay fallos, analizar
intake feedback specs/mi-feature/ -p .

Workflow con agentes IA

Ciclo completo

intake init → intake export → Agente implementa → intake verify → intake feedback → Agente corrige → Repeat
# 1. Generar spec
intake init "Feature X" -s reqs.md

# 2. Exportar para el agente
intake export specs/feature-x/ -f claude-code -o .

# 3. El agente lee CLAUDE.md + .intake/tasks/ e implementa

# 4. Verificar
intake verify specs/feature-x/ -p .

# 5. Si hay fallos, generar feedback
intake feedback specs/feature-x/ -p . --agent-format claude-code
# → El agente lee las sugerencias y corrige

# 6. Re-verificar hasta que todo pase
intake verify specs/feature-x/ -p .
# → PASS: 12/12

# 7. Marcar tareas
intake task update specs/feature-x/ 1 done

Formato de exportacion por agente

AgenteFormatoQue lee el agenteComando
Claude Codeclaude-codeCLAUDE.md + .intake/tasks/TASK-NNN.mdintake export -f claude-code -o .
Cursorcursor.cursor/rules/intake-spec.mdcintake export -f cursor -o .
Kirokirorequirements.md + design.md + tasks.md (formato nativo)intake export -f kiro -o .
GitHub Copilotcopilot.github/copilot-instructions.mdintake export -f copilot -o .
Architectarchitectpipeline.yaml con stepsintake export -f architect -o output/
CualquieragenericSPEC.md consolidado + verify.shintake export -f generic -o output/

Feedback formateado por agente

# Sugerencias para Claude Code
intake feedback specs/feature-x/ -p . --agent-format claude-code

# Sugerencias para Cursor
intake feedback specs/feature-x/ -p . --agent-format cursor

# Sugerencias genericas (Markdown)
intake feedback specs/feature-x/ -p . --agent-format generic

Industrias reguladas

Audit trail completo

Para industrias que requieren trazabilidad (finanzas, salud, gobierno):

# .intake.yaml — configuracion para maxima trazabilidad
spec:
  requirements_format: ears        # Formato formal
  include_sources: true            # Trazabilidad requisito-fuente
  generate_lock: true              # Artefacto de auditoria
  risk_assessment: true            # Evaluacion de riesgos
  auto_mode: false                 # Siempre modo completo

export:
  default_format: generic          # SPEC.md consolidado como documento formal
# Generar con preset enterprise
intake init "Regulated Feature" -s reqs.md --preset enterprise

# El resultado incluye:
# - requirements.md    → requisitos formales con IDs
# - sources.md         → trazabilidad a fuentes originales
# - spec.lock.yaml     → hashes, timestamps, costos
# - acceptance.yaml    → checks verificables

Gates de aprobacion

Fase 1: Especificacion
  ├── Product Owner define requisitos
  ├── intake init genera spec
  ├── PR: spec review por arquitecto + compliance
  └── Merge (gate: aprobacion del arquitecto)

Fase 2: Implementacion
  ├── Developer exporta spec para agente
  ├── Implementacion
  ├── CI ejecuta intake verify
  └── PR (gate: todos los checks pasan)

Fase 3: Release
  ├── QA ejecuta intake verify -f junit
  ├── Reporte JUnit como evidencia
  ├── intake show para metricas
  └── Release (gate: aprobacion QA + compliance)

Trazabilidad bidireccional

intake proporciona la cadena completa de trazabilidad:

Fuente (reqs.md, jira.json)
    ↓ registrado en sources.md
Requisito (FR-001 en requirements.md)
    ↓ referenciado en design.md
Componente (AuthService)
    ↓ asignado en tasks.md
Tarea (Task 1: Implement AuthService)
    ↓ verificado en acceptance.yaml
Check (check-01: Tests pasan)
    ↓ evidencia en verify report (JUnit XML)
Resultado verificable

Cada eslabón es un archivo de texto versionable, auditable y consultable.

Ver Seguridad > Auditoria y trazabilidad para mas detalles.