Docs Tutorial
Tutorial: Tu primer pipeline
En este tutorial vas a instalar ASDT, hacerle una primera pregunta a un especialista sobre un repo que ya tenés, y recién después correr una entrega completa PM → Arquitecto → Developer para una feature concreta: agregar un formulario de contacto con validación.
ASDT funciona con dos asistentes de IA — Claude Code y OpenCode. Los pasos de abajo son idénticos para ambos; donde difieren (ubicación de la configuración, reinicio, autenticación) se muestran ambos lado a lado. Elegí el que uses.
Tiempo estimado: 15 minutos.
- Instalar
- Inicializar
- Recomendación
- PM
- Arquitecto
- Developer
Requisitos
Antes de empezar, asegurate de tener:
- Claude Code u OpenCode instalado y autenticado. Si tu sesión expiró, volvé a autenticarte con el flujo de login de tu asistente (
claudepara Claude Code,opencodepara OpenCode). - Engram corriendo como servidor MCP, conectado a la configuración MCP de tu asistente. Ver Base de conocimiento y memoria para el setup.
- Una terminal bash o zsh.
Paso 1 — Instalar ASDT
Ejecutá el script de instalación:
curl -fsSL https://raw.githubusercontent.com/vitualizz/asdt/main/install.sh | bash
El binario se coloca en ~/.local/bin/asdt-tui. Si tu shell no lo encuentra, agregá esto a tu shell profile:
export PATH="$HOME/.local/bin:$PATH"
Después instalá las skills de los especialistas en tu asistente:
asdt-tui
Este menú interactivo te deja elegir tu(s) asistente(s) y copia los archivos de skill. Instala en:
- Claude Code →
~/.claude/skills(agentes ejecutores en~/.claude/agents/) - OpenCode →
~/.config/opencode/skills(agentes ejecutores en~/.config/opencode/agents/, más wrappers de comandos en~/.config/opencode/commands/)
Luego reiniciá tu asistente — tanto Claude Code como OpenCode cargan las definiciones de skills (y comandos) al iniciar.
Si asdt-tui muestra command not found, ver Solución de problemas.
Paso 2 — Inicializar ASDT en tu proyecto
Abrí tu asistente (Claude Code u OpenCode) en el directorio de tu proyecto y ejecutá:
/asdt-init
Esto crea .asdt/config.yaml (configuración del memory provider) y .asdt/knowledge/platform.yaml (stack detectado), para que cada especialista adapte su output a tu proyecto.
Paso 3 — Preguntale algo a un especialista
Antes de construir nada, probá el camino más corto. Apuntá un especialista a código que ya tenés:
/asdt-security "audita cómo manejamos las sesiones"
Lee el código que corresponde, te cuenta en prosa qué encontró, y guarda los hallazgos: lo que corras después sobre esa área ya arranca sabiéndolos. No se planificó nada, no se ruteó nada — una pregunta, una respuesta.
Todos los especialistas funcionan así. /asdt-architect "¿esta estructura escala?", /asdt-qa "¿qué no cubren nuestros tests?". Eso es todo, y muchos días es lo único que vas a necesitar.
El resto del tutorial es la otra mitad: pasarle al equipo algo para construir.
Paso 4 — Pedirle a ASDT una recomendación de pipeline
En tu asistente, ejecutá:
/asdt "Agregar un formulario de contacto con validación"
ASDT analiza tu petición y recomienda qué especialistas involucrar y en qué orden.
# Output de ejemplo — tus resultados variarán según tu proyecto
Analizando: "Agregar un formulario de contacto con validación"
Pipeline recomendado:
1. /asdt-pm → Definir alcance y criterios de aceptación
2. /asdt-architect → Diseñar el enfoque de validación y el contrato de la API
3. /asdt-developer → Implementar el handler del formulario y la lógica de validación
Ejecutá cada comando en orden. Cada especialista lee el output del anterior automáticamente.
Paso 5 — Correr el Product Manager
/asdt-pm "Agregar un formulario de contacto con validación"
El PM fija el alcance, escribe las historias de usuario y guarda un artefacto pm/handoff en la base de conocimiento (ver Base de conocimiento y memoria).
# Output de ejemplo — tus resultados variarán según tu proyecto
Corriendo especialista PM...
Producido: pm/handoff
Feature: Formulario de contacto con validación
Historias de usuario:
US-01: Como visitante, quiero enviar un formulario de contacto para poder comunicarme con el equipo.
AC1: Campos del formulario: nombre (requerido), email (requerido, formato válido), mensaje (requerido, máx 500 caracteres).
AC2: El envío muestra un mensaje de éxito y envía una notificación por email.
AC3: Los campos inválidos muestran mensajes de error en línea sin perder el input existente.
US-02: Como visitante, quiero que el formulario impida el envío si mi email es inválido
para no tener que esperar un rebote para saber que algo salió mal.
AC1: El campo email valida el formato al perder el foco y al enviar.
AC2: El botón de envío queda deshabilitado mientras existan errores de validación.
En alcance: UI del formulario, validación del lado del cliente, handler de envío, notificación por email.
Fuera de alcance: CAPTCHA, rate limiting, tracking de analytics.
Artefacto guardado en la base de conocimiento.
Paso 6 — Correr el Arquitecto
/asdt-architect
El Arquitecto lee el backlog del PM automáticamente, evalúa enfoques técnicos y produce un Registro de Decisión de Arquitectura (ADR) y el diseño del sistema.
# Output de ejemplo — tus resultados variarán según tu proyecto
Corriendo especialista Arquitecto...
Cargando: pm/handoff ✓
Producido: architectural-decision + system-design
ADR: Usar la Constraint Validation API nativa de HTML5 con mejora progresiva
Decisión: Usar la Constraint Validation API nativa del navegador para la validación de campos,
complementada con una capa delgada de JS para mensajes de error personalizados y manejo del evento blur.
Alternativas consideradas:
- Validación con schema de Zod (rechazada: sobreingeniería para un formulario de contacto)
- React Hook Form (rechazada: introduce una dependencia innecesaria)
Diseño del sistema:
- POST /api/contact — acepta { name, email, message }, devuelve 200 o 422
- Notificación por email vía nodemailer (dependencia existente)
- Sin escritura en base de datos — los datos del formulario se reenvían directamente por email
Artefactos guardados en la base de conocimiento.
Paso 7 — Correr el Developer
/asdt-developer
El Developer lee el ADR y el diseño del sistema, divide el trabajo en tareas ordenadas y produce un plan de implementación (o escribe código en modo escritura).
# Output de ejemplo — tus resultados variarán según tu proyecto
Corriendo especialista Developer...
Cargando: architectural-decision ✓
Cargando: system-design ✓
Producido: developer/dev-implementation
Plan de implementación:
T-01 Crear src/components/ContactForm.astro
— Markup del formulario con atributos de validación nativa
T-02 Crear src/pages/api/contact.ts
— Handler POST: validar, enviar email vía nodemailer, devolver 200/422
T-03 Crear src/styles/contact-form.css
— Estilos de estado de error para campos inválidos
T-04 Actualizar src/pages/contact.astro
— Importar y renderizar el componente ContactForm
Artefacto guardado en la base de conocimiento.
Qué sigue
Tu pipeline está completo. Desde acá podés:
- Correr QA (
/asdt-qa) para validar la cobertura de los criterios de aceptación y generar un plan de pruebas. - Correr Security (
/asdt-security) para revisar el handler del formulario en busca de vulnerabilidades OWASP. - Explorar Recetas para secuencias de comandos de otros escenarios comunes.
- Ver Solución de problemas si algo salió mal.