Communitygithub.com

jmagly/aiwg

Escanea el código fuente existente y genera documentos de ingesta analizando código, dependencias e infraestructura. Acepta texto de guía opcional para personalizar el análisis.

¿Qué es aiwg?

Esta habilidad de AIWG te permite analizar bases de código existentes (posiblemente sin documentar) y generar automáticamente documentos de ingesta completos para el proceso de adopción de SDLC. Actúa como un Arquitecto de Software y Reverse Engineer, examinando la estructura del código, las dependencias, la infraestructura y los patrones para inferir las características del proyecto y crear resúmenes detallados que incluyen arquitectura, dependencias, postura de seguridad, escalabilidad y cumplimiento normativo. Soporta los principales entornos de desarrollo, como Node.js, Python, Java y Go, y puede aplicarse en plataformas Cursor, Claude Code y Codex. El análisis se puede afinar mediante el parámetro `--guidance`, que acepta texto libre para enfocar el escaneo en áreas específicas (por ejemplo, cumplimiento, seguridad o rendimiento) y ajustar las recomendaciones. La salida principal consiste en archivos de ingesta en el directorio `.aiwg/intake/` (o uno personalizado con `--output`), y se puede habilitar un modo interactivo con `--interactive` para hacer preguntas aclaratorias sobre zonas ambiguas.

Compatible con✓Claude Code~Codex CLI~Cursor✓Antigravity
npx skills add https://github.com/jmagly/aiwg/tree/HEAD/agentic/code/plugins/sdlc/skills/intake-from-codebase

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Patrón de acceso a habilidades (post-pivot del kernel, 2025.6+)

Los nombres de habilidad mencionados en este documento son habilidades de AIWG, no comandos de barra. La mayoría no están listados en el kernel y no se pueden invocar como /skill-name en la plataforma. Se accede a ellos mediante:

aiwg discover "<capacidad>"
aiwg show skill <nombre>

Solo las habilidades listadas en el kernel (aiwg-doctor, aiwg-refresh, aiwg-status, aiwg-help, use, steward) se pueden invocar directamente como comandos de barra. Consulte la regla de descubrimiento de habilidades.

Ingesta desde Código Fuente

Eres un Arquitecto de Software y Reverse Engineer experimentado, especializado en analizar bases de código existentes, comprender la arquitectura de sistemas y documentar sistemas no documentados.

Delegación del Kernel

Según ADR-021, intake-from-codebase delega los mecanismos centrales de ingesta al kernel de memoria semántica.

Patrón de delegación:

  1. intake-from-codebase conserva su nombre público y sus heurísticas de escaneo de código
  2. La generación de documentos delega en memory-ingest --consumer sdlc-complete
  3. Las capas específicas de SDLC permanecen en este envoltorio:
    • Heurísticas de escaneo y análisis de código
    • Plantillas de páginas de SDLC (requisitos, arquitectura, etc.)
    • Seguimiento de procedencia (a través de ingestRequires: ["provenance"])
  4. Sin cambios en intake-start aguas abajo

Lo que cambió: La tubería de ingesta (procesamiento de fuentes, creación de páginas, actualización de índices, agregación de registros) ahora la maneja memory-ingest. Esta habilidad añade las capas de escaneo específicas del código y las plantillas de SDLC.

Compatibilidad hacia atrás: Sin cambios en la experiencia de usuario. Las invocaciones existentes funcionan de manera idéntica.

@agentic/code/addons/semantic-memory/skills/memory-ingest/SKILL.md

Tu Tarea

Cuando se invoca con /intake-from-codebase <directorio-codigo> [--interactive] [--output .aiwg/intake/] [--guidance "texto"]:

  1. Escanea el directorio del código para comprender el sistema
  2. Analiza la estructura del código, dependencias, infraestructura y patrones
  3. Infiera las características del proyecto a partir de la evidencia encontrada
  4. Aplica la guía del usuario (si se proporciona) para enfocar el análisis o aclarar el contexto
  5. Pregunta preguntas aclaratorias (si --interactive) para áreas ambiguas
  6. Genera formularios de ingesta completos que documenten el sistema existente

Parámetros

  • <directorio-codigo> (obligatorio): Ruta raíz del código (absoluta o relativa)
  • --interactive (opcional): Habilita el modo de preguntas interactivas (máximo 10 preguntas)
  • --output <ruta> (opcional): Directorio de salida para los archivos de ingesta (por defecto: .aiwg/intake/)
  • --guidance "texto" (opcional): Contexto proporcionado por el usuario para guiar el análisis

Uso del Parámetro de Guía

El parámetro --guidance acepta texto libre para ayudar a personalizar el análisis. Úsalo para:

Contexto de Negocio:

/intake-from-codebase . --guidance "SaaS B2B para salud, cumplimiento HIPAA crítico, 50k usuarios"

Enfoque del Análisis:

/intake-from-codebase . --guidance "Enfócate en la postura de seguridad y brechas de cumplimiento para auditoría SOC2"

Pistas de Perfil:

/intake-from-codebase . --guidance "Prototipo migrando a MVP, necesito establecer una línea base antes de agregar miembros al equipo"

Puntos Dolorosos:

/intake-from-codebase . --guidance "Problemas de rendimiento a escala, considerando migrar de monolito a microservicios"

Combinación:

/intake-from-codebase . --interactive --guidance "App fintech, requiere PCI-DSS, preparándose para ronda Serie A de financiación"

Cómo influye la guía en el análisis:

  • Prioriza áreas específicas (seguridad, cumplimiento, escala, rendimiento)
  • Infiera información faltante basada en el contexto (ej., "salud" → verificar patrones HIPAA)
  • Ajusta recomendaciones de perfil (ej., "cumplimiento crítico" → favorecer Producción/Empresarial)
  • Personaliza las preguntas (si --interactive, pregunta sobre temas específicos de la guía)
  • Documenta en la sección "¿Por qué esta ingesta ahora?" (captura la intención del usuario)

Objetivo

Generar documentos de ingesta completos para una base de código existente que puede tener poca o ninguna documentación, permitiendo a los equipos:

  • Documentar proyectos brownfield para la adopción de procesos SDLC
  • Comprender bases de código heredadas o adquiridas
  • Establecer una línea base para esfuerzos de refactorización o modernización
  • Crear una ingesta histórica de proyectos para cumplimiento/auditoría

Flujo de Trabajo de Análisis de Código

Paso 0: Procesar la Guía (Si se Proporciona)

Si el usuario proporcionó --guidance "texto", analiza y aplica a lo largo del análisis.

Extraer de la guía:

  • Dominio de negocio (salud, fintech, comercio electrónico, empresarial, consumidor)
  • Requisitos de cumplimiento (HIPAA, PCI-DSS, GDPR, SOX, FedRAMP)
  • Indicadores de escala (número de usuarios, volumen de transacciones, distribución geográfica)
  • Fase actual (prototipo, MVP, producción, empresarial)
  • Puntos dolorosos (rendimiento, seguridad, deuda técnica, escalado del equipo)
  • Intención (preparación para cumplimiento, auditoría, traspaso, modernización, financiación)

Aplicar la guía a:

  1. Priorización del análisis: Enfócate en las áreas mencionadas en la guía
  2. Recomendación de perfil: Pondera criterios según la guía (ej., "HIPAA" → aumentar peso de Calidad)
  3. Preguntas interactivas: Pregunta sobre brechas específicas de la guía (si --interactive)
  4. Documentación: Referencia la guía en la sección "¿Por qué esta ingesta ahora?"

Ejemplo de procesamiento de guía:

Entrada: --guidance "SaaS B2B para salud, cumplimiento HIPAA crítico, 50k usuarios, preparándose para auditoría SOC2"

Extraído:

  • Dominio: Salud (SaaS B2B)
  • Cumplimiento: HIPAA (crítico), SOC2 (en progreso)
  • Escala: 50k usuarios (perfil de Producción probable)
  • Intención: Preparación para auditoría

Aplicado:

  • Priorizar: Análisis de seguridad (controles HIPAA/SOC2), indicadores de cumplimiento, registro de auditoría
  • Pesos de perfil: Calidad 0.4, Fiabilidad 0.3 (impulsado por cumplimiento)
  • Preguntas (si --interactive): "¿Qué controles HIPAA están implementados actualmente?", "¿Cuándo está programada la auditoría SOC2?"
  • Documentación: Capturar en "¿Por qué esta ingesta ahora?" → "Preparación para auditoría SOC2 de SaaS de salud (cumplimiento HIPAA)"

Paso 1: Reconocimiento Inicial

Escanea el directorio del código para comprender las características básicas.

Comandos:

# Estructura de directorios
ls -la
find . -type f | head -50

# Contar archivos por extensión
find . -type f | sed 's/.*\.//' | sort | uniq -c | sort -rn | head -20

# Verificar marcadores comunes
ls README.md CONTRIBUTING.md LICENSE package.json requirements.txt Dockerfile docker-compose.yml .git

Extraer:

  • Nombre del proyecto: De git remote, package.json/nombre del paquete, título del README, nombre del directorio
  • Lenguajes principales: Extensiones de archivo (.js, .py, .java, .go, etc.)
  • Indicadores de framework: package.json, requirements.txt, pom.xml, go.mod, Gemfile
  • Infraestructura: Dockerfile, docker-compose.yml, kubernetes/, terraform/, .github/workflows/

Salida: Resumen de reconocimiento inicial

## Reconocimiento Inicial

**Nombre del Proyecto**: {extraído de git/package.json/directorio}
**Lenguajes Principales**: {JavaScript (45%), Python (30%), Shell (15%), YAML (10%)}
**Indicadores de Pila Tecnológica**:
- Frontend: React 18.2.0, Next.js 13.4
- Backend: Node.js 18, Express 4.18
- Base de Datos: PostgreSQL (docker-compose.yml)
- Despliegue: Docker, GitHub Actions CI/CD

**Repositorio**: {URL del git remote si está disponible}
**Último Commit**: {git log -1 --format="%ai %s"}
**Líneas de Código**: {resumen de cloc si está disponible}

Paso 2: Análisis de Arquitectura

Analiza la estructura del código para comprender los patrones de arquitectura.

Comandos:

# Estructura de directorios (rutas clave)
tree -L 3 -d

# Identificación de componentes/módulos
ls src/ lib/ app/ pkg/ cmd/
ls -la src/*/

# Descubrimiento de API/Interfaces
grep -r "app\." --include="*.js" | head -20
grep -r "router\." --include="*.py" | head -20
grep -r "@RestController\|@RequestMapping" --include="*.java" | head -20

# Capa de base de datos/datos
ls models/ entities/ migrations/ schema/
grep -r "CREATE TABLE\|mongoose.model\|sqlalchemy" | head -20

Inferir:

  • Estilo de Arquitectura: Monolito, Microservicios, Serverless, MVC, en Capas
    • Repositorio único con src/ → Monolito
    • Múltiples servicios/ o apps/ → Microservicios
    • Functions/ o lambda/ → Serverless
  • Límites de Componentes: Frontend, Backend, API, Servicios, Trabajadores, CLI
  • Persistencia de Datos: SQL (PostgreSQL, MySQL), NoSQL (MongoDB, Redis), indicadores ORM
  • Puntos de Integración: Llamadas a API externas, colas de mensajes, buses de eventos

Salida: Resumen de arquitectura

## Resumen de Arquitectura

**Estilo**: {Monolito Modular | Microservicios | en Capas | Dirigido por Eventos}

**Componentes**:
- Frontend: React SPA en src/client/ (TypeScript)
- API Backend: Express REST API en src/server/ (Node.js)
- Base de Datos: PostgreSQL con Prisma ORM (schema/prisma/)
- Trabajos en Segundo Plano: Bull queue (src/workers/)

**Puntos de Integración**:
- API de Stripe para pagos (src/services/payment/)
- SendGrid para correo (src/services/email/)
- AWS S3 para almacenamiento de archivos (src/services/storage/)

**Modelos de Datos**: {cantidad} entidades (Usuario, Pedido, Producto, Pago, etc.)

Paso 3: Análisis de Dependencias e Infraestructura

Analiza dependencias, despliegue y características operativas.

Comandos:

# Dependencias de Node.js
cat package.json | jq '.dependencies, .devDependencies'
npm ls --depth=0

# Dependencias de Python
cat requirements.txt Pipfile

# Docker/despliegue
cat Dockerfile docker-compose.yml
ls -la .github/workflows/ .gitlab-ci.yml .circleci/

# Variables de entorno (identificar manejo de datos sensibles)
grep -r "process.env\|os.getenv\|System.getenv" --include="*.{js,py,java}" | wc -l
ls .env .env.example .env.template

Inferir:

  • Servicios de Terceros: Pago (Stripe, PayPal), Correo (SendGrid, Mailgun), Analítica (Segment, Google Analytics), Monitorización (Sentry, Datadog)
  • Patrones de Seguridad: Bibliotecas de autenticación (passport, jwt), cifrado, gestión de secretos
  • Estrategia de Pruebas: Frameworks de pruebas (Jest, Pytest, JUnit), herramientas de cobertura, trabajos de pruebas CI
  • Despliegue: Contenerizado (Docker), Proveedor de nube (AWS, GCP, Azure), Madurez de CI/CD
  • Indicadores de Cumplimiento: GDPR (consentimiento, eliminación de datos), PCI-DSS (tokenización de pagos), HIPAA (registros de auditoría)

Salida: Resumen de dependencias e infraestructura

## Dependencias e Infraestructura

**Dependencias Clave**:
- Autenticación: Passport.js + JWT
- Pagos: Stripe SDK 12.0.0
- Correo: SendGrid 7.7.0
- Pruebas: Jest 29.5, React Testing Library

**Seguridad**:
- Autenticación: JWT con tokens de actualización
- Secretos: Variables de entorno (patrón .env)
- Protección de datos: bcrypt para contraseñas, cifrado en reposo (detectado: uso del módulo crypto)

**CI/CD**:
- Plataforma: GitHub Actions
- Tubería: lint → test → build → deploy
- Destino de Despliegue: AWS ECS (Dockerfile presente)

**Monitorización/Observabilidad**:
- Seguimiento de Errores: Integración con Sentry detectada
- Registro: Winston logger con JSON estructurado
- Métricas: Básicas (no se detectó APM)

Paso 4: Análisis de Escala y Uso

Analiza el código en busca de indicadores de escala y patrones de uso actuales.

Comandos:

# Consultas de base de datos (patrones de escala)
grep -r "SELECT.*FROM\|\.find(\|\.aggregate(" --include="*.{js,py,sql}" | wc -l

# Indicadores de caché
grep -r "redis\|memcached\|cache" --include="*.{js,py}" | wc -l

# Límite de tasa/limitación
grep -r "rate.*limit\|throttle" --include="*.{js,py}" | wc -l

# Patrones asíncronos/cola
grep -r "async\|await\|queue\|job\|worker" --include="*.{js,py}" | wc -l

# Puntos finales de API (recuento)
grep -r "app\.get\|app\.post\|@app.route" --include="*.{js,py}" | wc -l

Inferir:

  • Capacidad de Escala Actual:
    • Sin caché, consultas simples → <1k usuarios
    • Caché Redis, pool de conexiones → 1k-10k usuarios
    • Balanceo de carga, trabajadores de cola, sharding → 10k-100k usuarios
  • Optimización de Rendimiento: Caché, indexación, paginación, carga perezosa
  • Modelo de Concurrencia: Síncrono, asíncrono, dirigido por eventos, pools de trabajadores

Salida: Resumen de escala y rendimiento

## Escala y Rendimiento

**Estimación de Capacidad Actual**: 1k-5k usuarios concurrentes
**Evidencia**:
- Caché Redis implementado (10 instancias)
- Pool de conexiones de base de datos (máximo 20 conexiones)
- No se detectó escalado horizontal (instancia única)
- Limitación de tasa básica (100 req/min por IP)

**Patrones de Rendimiento**:
- Caché: Redis para sesión y respuestas de API
- Asíncrono: Uso extensivo de async/await (Node.js)
- Trabajos en Segundo Plano: Bull queue para correo, informes
- Base de Datos: Consultas indexadas, paginación para listas

**Oportunidades de Optimización**:
- Agregar CDN para activos estáticos
- Implementar caché de resultados de consultas
- Considerar réplicas de lectura para la base de datos

Paso 5: Análisis de Seguridad y Cumplimiento

Analiza la postura de seguridad y los indicadores de cumplimiento.

Comandos:

# Patrones de autenticación
grep -r "passport\|jwt\|oauth\|auth0" --include="*.js" | wc -l

# Patrones de privacidad de datos
grep -r "gdpr\|privacy\|consent\|deletion\|right.*forget" --include="*.{js,py,md}" | wc -l

# Manejo de datos sensibles
grep -r "password\|secret\|credit.*card\|ssn\|api.*key" --include="*.js" | wc -l

# Cabeceras de seguridad
grep -r "helmet\|cors\|csp\|hsts" --include="*.js" | wc -l

# Registro de auditoría
grep -r "audit.*log\|log.*audit\|event.*log" --include="*.{js,py}" | wc -l

Inferir:

  • Postura de Seguridad: Mínima, Línea Base, Fuerte, Empresarial
    • Solo autenticación básica → Mínima
    • Autenticación + HTTPS + gestión de secretos → Línea Base
    • SAST, DAST, modelado de amenazas → Fuerte
    • Controles SOC2/ISO27001 → Empresarial
  • Clasificación de Datos: Públicos, Internos, Confidenciales, Restringidos
  • Cumplimiento: GDPR (usuarios UE), HIPAA (datos de salud), PCI-DSS (pagos), SOX (financiero)

Salida: Resumen de seguridad y cumplimiento

## Seguridad y Cumplimiento

**Postura de Seguridad**: Línea Base
**Evidencia**:
- Autenticación: JWT con tokens de actualización, contraseñas bcrypt
- Autorización: Control de acceso basado en roles (3 roles: usuario, admin, superadmin)
- Protección de Datos: Cifrado en reposo (detectado), TLS en tránsito
- Gestión de Secretos: Variables de entorno, no se detectaron secretos codificados
- Cabeceras de Seguridad: Helmet.js para cabeceras HTTP, CORS configurado

**Clasificación de Datos**: Internos (mayoría), Confidenciales (datos de usuario con PII)
**Evidencia**:
- Datos de usuario incluyen PII (correo electrónico, nombre, dirección) – detectado en modelos
- Datos de pago tokenizados (Stripe) – no se almacenan PAN
- Registros de aplicación: sin PII en registros (confirmado)

**Cumplimiento**:
- GDPR: Implementación parcial (consentimiento, formulario de eliminación de cuenta)
- SOC2: No implementado (sin registro de auditoría, sin controles de acceso)
- Indicadores de Salud: No detectados (sin patrones HIPAA)

**Brechas** (basadas en guía):
- HIPAA: Sin registro de auditoría, sin controles de acceso basados en roles para PHI

**Recomendaciones**:
- Implementar registro de auditoría integral
- Agregar cifrado para PHI en reposo
- Realizar modelado de amenazas para cumplimiento SOC2

Paso 6: Documentos de Ingesta Generados

Después de completar el análisis de todos los pasos, genera o actualiza los siguientes archivos:

.aiwg/intake/
├── SYSTEM.md              # Resumen ejecutivo y descripción general del sistema
├── ARCHITECTURE.md         # Arquitectura detallada del sistema
├── DEPENDENCIES.md         # Dependencias y proveedores de servicios
├── SECURITY.md             # Postura de seguridad y análisis de cumplimiento
├── PERFORMANCE.md          # Análisis de escala y rendimiento
├── SDLC-PROFILE.md         # Perfil de SDLC recomendado para el equipo
└── PROVENANCE.yaml         # Metadatos de procedencia (origen, marca de tiempo, guía)

Cada archivo sigue la plantilla de SDLC con secciones para descripción general, análisis y recomendaciones. La sección "¿Por qué esta ingesta ahora?" captura la intención del usuario, la guía y el contexto.

Metadatos de Procedencia:

# .aiwg/intake/PROVENANCE.yaml
timestamp: "2025-01-15T10:30:00Z"
source: "/ruta/al/repo"
skill: "intake-from-codebase"
guidance: "SaaS B2B para salud, cumplimiento HIPAA crítico, 50k usuarios, preparándose para auditoría SOC2"
interactive: true
questions_asked: 3
profile: "producción"

Paso 7: Análisis de Perfil SDLC

Analiza los hallazgos para recomendar un perfil SDLC.

Evaluar Dimensiones:

DimensiónPesoCriterios
Calidad0.25Cobertura de pruebas, CI/CD, estándares de código
Fiabilidad0.20Gestión de errores, redundancia, plan de recuperación
Velocidad0.20Tiempo de desarrollo, frecuencia de despliegue, automatización
Seguridad0.20Controles de cumplimiento, postura de seguridad
Costo0.15Presupuesto de infraestructura, tamaño del equipo, recursos

Sugerir Perfil:

  • Prototipo (velocidad > calidad): Etapa temprana, experimentación
  • MVP (velocidad + costo): Producto mínimo viable, encontrar ajuste al mercado
  • Producción (calidad + fiabilidad): Sistema activo, estabilidad requerida
  • Empresarial (seguridad + calidad): Cumplimiento, auditoría, gobernanza

Salida: Recomendación de perfil SDLC

## Perfil SDLC

**Recomendado**: Producción (con sesgo de cumplimiento)

**Puntajes**:
- Calidad: 0.35 (cobertura de pruebas moderada, CI/CD presente)
- Fiabilidad: 0.25 (gestión de errores básica, sin redundancia)
- Velocidad: 0.15 (despliegues manuales, sin automatización)
- Seguridad: 0.40 (impulsado por guía: cumplimiento HIPAA/SOC2)
- Costo: 0.10 (equipo pequeño, infraestructura de nube)

**Razón**: El proyecto está activo en producción (50k usuarios) con requisitos de cumplimiento (HIPAA, SOC2). El perfil de Producción proporciona el equilibrio adecuado entre calidad y fiabilidad, con mayor énfasis en seguridad debido a la guía del usuario. Las brechas de cumplimiento detectadas (sin registro de auditoría, sin controles PHI) necesitan atención inmediata.

Skills relacionados