DIGITAL TOOLS · JUE 18 JUN 2026
SESIÓN 1 · DEV #1
Claude Code
manos al teclado

Sesión 1 del track Dev: práctica guiada, instalamos la base común, dominamos Spec-Driven Development sobre el ticket real ONEDEV-63 y dejamos la revisión de PRs automatizada.

AI Mate · David Ramos Sesión 1 · Dev #1
EL PROGRAMA COMPLETO
PROGRAMA DE SESIONES

Tres sesiones, un equipo dev autónomo

01
Dev #1 · Fundamentos + SDD  ·  HOY
Jue 18 jun. Práctica guiada, starter kit común y flujo Spec-Driven sobre un ticket real (ONEDEV-63).
02
Dev #2 · Herramientas avanzadas
Semana del 23 jun. Ciclo SDD completo, IA en code review y testing, generar PRs con asistencia IA.
03
Dev #3 · Estándares + primer agente
Spec estándar del equipo en el repo, buenas prácticas y tu primer agente personal.

Estás en la Sesión 1. Hoy además adelantamos dos técnicas que pidió el equipo: desarrollo en paralelo y agentes especializados.

SESIÓN 1 · DEV #1 · ~5 H
PROGRAMA DE HOY

Nueve bloques, manos al teclado

00
Arranque  ·  10'
01
Recap activo  ·  40'
02
CLAUDE.md del repo  ·  15'
03
Spec-Driven Development  ·  55'
04
Base común (starter kit)  ·  35'
05
PR review automática  ·  25'
06
Desarrollo en paralelo  ·  35'
07
Agentes: subagentes → teams → ultracode  ·  50'
08
Política + métricas  ·  20'
PARA QUE LA SESIÓN FLUYA
NORMAS DE LA SESIÓN

Cómo trabajamos hoy

DINÁMICA
  • Manos al teclado: todos el mismo ejercicio, a la vez.
  • Una cosa a la vez: no te adelantes a los pasos.
  • Si te pierdes, avisa y te rescatamos al momento.
  • Errores = aprendizaje: los depuramos juntos en vivo.
PARA NO CORTAR EL RITMO
  • Dudas → al "parking"; se resuelven en el Q&A de cada bloque.
  • Silencia Slack y notificaciones: foco en la sesión.
  • Bloques cronometrados; lo que no dé tiempo, va a deberes.
  • Cada ejercicio tiene su criterio de "hecho" claro.
TRAZABILIDAD DE LA PRÁCTICA
REPOSITORIO DE PRÁCTICAS

Todo queda en un repo

# Clónalo al arrancar — lo usamos toda la sesión
git clone <repo-practicas>   # onedev-practicas-claude
# live/     → ejercicios en sesión
# deberes/  → para casa (antes de la Sesión 2)
# recursos/ → chuletas (git worktree, agentes)
  • Cada ejercicio trae su README: objetivo, pasos y criterio de "hecho".
  • Lo que no acabemos en vivo queda como deberes.
  • El caso práctico es ONEDEV-63 sobre onedev-grid-service.
POR QUÉ ESTAMOS AQUÍ
OBJETIVOS

Qué nos llevamos hecho

01
Nivelar al equipo
Cerrar las dudas del Kick-off con práctica guiada, no más caos de Q&A.
02
Instalar la base común
El starter kit: plugins, skills, MCPs y CLAUDE.md, todos configurados igual.
03
Dominar el flujo SDD
Plan → revisar → ejecutar → verificar sobre el ticket real ONEDEV-63.
04
Automatizar la revisión de PRs
GitHub Actions consumiendo la API con la cuenta del equipo.
05
Probar técnicas avanzadas
Desarrollo en paralelo con worktrees y un equipo de agentes especializados.
DE LO CONCEPTUAL A LO PRÁCTICO
EN QUÉ CAMBIA HOY

Del Kick-off a las manos en el teclado

KICK-OFF · 12 JUN
  • Intro conceptual a Claude Code
  • Mucha pregunta suelta, poca práctica
  • Cada uno con un entorno distinto
  • Sin tocar permisos, git→PR ni SDD
HOY · SESIÓN 1 PRÁCTICA
  • Todos al teclado, mismo ejercicio
  • Estructura clara y cronometrada
  • Base común instalada en cada entorno
  • SDD sobre ONEDEV-63 + PR review
BLOQUE 1 DE 8
BLOQUES 0 + 1

Arranque + recap activo

Todos con Claude Code corriendo y los 4 pilares practicados, no explicados.

01
BLOQUE 1 · RECAP ACTIVO
LOS 4 PILARES

Lo que ya sabéis, ahora en los dedos

01
Terminal
Claude lee el repo entero, ejecuta comandos e itera hasta que funciona.
02
CLAUDE.md
El contexto del proyecto, versionado. Mismo estándar para todo el equipo.
03
Plan mode
Pide el plan antes de ejecutar. Revisa, aprueba, y solo entonces aplica.
04
Contexto y coste
Leer la statusline, /compact y elegir el modelo según la tarea.
BLOQUE 1 · RECAP ACTIVO
EJERCICIO GUIADO · 40'

Mismo ejercicio, todos a la vez

01
Lanzar Claude en el repo
En la raíz del proyecto, no en cualquier carpeta.
02
Un prompt simple → leer el plan
Entender qué propone antes de dejarle tocar nada.
03
/compact y leer la statusline
Modelo · coste · contexto: saber siempre dónde estás.
04
Cambiar Opus ↔ Sonnet
El modelo potente para pensar, el rápido para ejecutar.

Material: live/01-recap-activo. La Q&A va enganchada a lo que acabáis de hacer.

BLOQUE 2 DE 8
BLOQUE 2

CLAUDE.md del repo

Todos acaban con el mismo contexto estándar, versionado en el repo.

02
BLOQUE 2 · CLAUDE.MD
DE BORRADOR A ESTÁNDAR · 15'

Un contexto, el mismo para todos

# En la raíz del repo de OneDev
claude

# /init lee el proyecto y genera un borrador de CLAUDE.md
/init

# Comparar con la plantilla del equipo y cerrar los [CONFIRMAR] del stack
  • El borrador de /init es el punto de partida, no el final
  • Cerramos en vivo los [CONFIRMAR] del stack de OneDev
  • Se versiona en el repo: mismo CLAUDE.md para todo el equipo · live/02-claude-md
BLOQUE 3 DE 8
BLOQUE 3 · EL NÚCLEO

Spec-Driven Development

La especificación como contrato ejecutable: plan → revisar → ejecutar → verificar.

03
BLOQUE 3 · SPEC-DRIVEN DEVELOPMENT
EL PROBLEMA

¿La IA te acelera…
hasta que revisas el PR?

Cuando la IA genera más rápido de lo que el equipo puede revisar, la velocidad se convierte en deuda. SDD recupera el control poniendo la intención por delante de la ejecución.

"Una spec incompleta no produce código malo por accidente: produce el mejor código posible para una pregunta mal formulada."

BLOQUE 3 · SPEC-DRIVEN DEVELOPMENT
LA CAUSA

El trabajo mal definido

Cuando el trabajo llega mal definido al copiloto, los síntomas son siempre los mismos. Reconocerlos es el primer paso.

!
PRs con "esto no era lo que pedí"
El dev hace suposiciones e implementa todas, o ninguna.
!
La misma feature, hecha dos veces distinta
El code review dura días porque nadie sabe qué se intenta hacer.
!
QA rechaza por requisitos no documentados
Deuda técnica que crece por decisiones sin información suficiente.
BLOQUE 3 · SPEC-DRIVEN DEVELOPMENT
LOS 3 PILARES DEL USO EFECTIVO

Tool · Prompt · Context

01
Tool
La herramienta importa menos de lo que crees. Un copiloto sin configurar es un junior; bien configurado, un senior que ya hizo el onboarding.
02
Prompt
Forma estructurada y reproducible: objetivo claro, restricciones (qué NO tocar) y formato de salida.
03
Context
El más importante y el más ignorado. Un contexto pobre es traicionero: el output parece bien, pero falla tarde, en review, QA o producción.
BLOQUE 3 · SPEC-DRIVEN DEVELOPMENT
QUÉ ES SDD

La spec como contrato ejecutable

NO ES
  • Un documento de 50 páginas
  • Un texto que se pierde en una carpeta
  • Solo el happy path
SÍ ES
  • Markdown, estructurada y mínima
  • Objetivo, criterios de aceptación y tareas
  • Inputs, outputs, estados y casos de error

El mismo agente, el mismo modelo. La única variable es el input.

BLOQUE 3 · CASO PRÁCTICO
EL TICKET REAL · ONEDEV-63

Ingesta de capacidad de red

EL TICKET
  • Descarga e ingesta desde CNMC (ArcGIS), REE (Excel) y distribuidoras
  • Normalización, deduplicación y log de fuentes
  • 12 subtareas reales → una por dev
EL REPO · onedev-grid-service
  • Python 3.12 · FastAPI · SQLAlchemy · PostGIS/TimescaleDB
  • pytest + CI en GitHub Actions
  • main = scaffolding · rama ONEDEV-63 con spike
REE · 211E-Distribución · 212UFD · 213I-DE · 214E-Redes · 215Viesgo · 216Normalización · 217Dedup · 218

12 subtareas reales en Jira: scrapers por distribuidora (REE + 5 DSOs) + análisis, normalización, dedup, S3, logging y deploy. Para no depender de fuentes en vivo, usamos fixtures cacheadas.

BLOQUE 3 · SPEC-DRIVEN DEVELOPMENT
EL CICLO · SPEC-DRIVEN

Proposal → Apply → Archive

01
Proposal
Conviertes la user story en spec detallada: objetivos, criterios de aceptación y tareas. Es el contrato.
02
Apply
El agente ejecuta la spec sin improvisar: branch, tests, código, docs y testing report. Todo trazable.
03
Archive
La spec verificada se archiva como fuente de verdad. No desaparece: es contexto para la siguiente feature.

El ciclo no es lineal: tiene puntos de retorno definidos. La intención primero, la ejecución después.

BLOQUE 3 · SPEC-DRIVEN DEVELOPMENT
CÓMO SE TRADUCE EN CLAUDE CODE

Plan → ejecutar → verificar

# 1 · Plan: pide el plan, NO que ejecute (modelo Opus)
/plan implementa el scraper de REE (generación y demanda) — ONEDEV-211

# 2 · Revisa el plan, apruébalo y deja que ejecute (Sonnet)
# 3 · Verifica antes del PR: pytest verde + revisión automática
/code-review
  • El plan mode es el Proposal: el contrato antes de tocar código
  • /code-review revisa, pero no sustituye al criterio del equipo
BLOQUE 3 · SPEC-DRIVEN DEVELOPMENT
QUÉ LO HACE FUNCIONAR

Cuatro prácticas

01
Empieza siempre por el contrato
Inputs, outputs, estados y reglas de negocio por escrito y versionados, aunque sea en versión mínima.
02
Diseña para el error, no solo el éxito
Errores, límites y estados inválidos. Una spec sin casos de error es una spec a medias.
03
Usa ejemplos concretos
Payloads, respuestas y casos de test completos. Ayudan al humano que revisa y al agente que ejecuta.
04
Trata la spec como código
Es parte del sistema, no un documento temporal. Trazabilidad: cada commit se traza al requisito que lo originó.
BLOQUE 3 · SPEC-DRIVEN DEVELOPMENT
PRÁCTICA · 40'

Tu subtarea de ONEDEV-63

PROPOSAL
/plan
Coge una subtarea real (REE·211, E-Distribución·212, normalización·217…) y pide el plan. Léelo como un contrato.
APPLY
Ejecuta
Apruebas y dejas que implemente sobre onedev-grid-service. Cero improvisación.
VERIFY
Tests + review
pytest verde (con fixtures cacheadas) y /code-review antes del PR.

Material: live/03-sdd-onedev63. David da soporte 1:1. Lo que no acabes → deberes.

BLOQUE 4 DE 8
BLOQUE 4

La base común

Un solo settings.json y todo el equipo queda configurado igual.

04
BLOQUE 4 · BASE COMÚN
EL STARTER KIT · 35'

Plugins, skills y MCPs

5
Plugins día-1
context7, context-mode, semgrep, claude-mem, playwright / chrome-devtools.
+
Skills clave
/code-review, /tdd, /simplify, /diagnose. Cada dev prueba una sobre su código.
3
MCPs
GitHub, sequential-thinking y Postgres (ejemplo), vía .mcp.json del repo.
# Un solo archivo configura a todo el equipo igual
.claude/settings.json   # plugins · MCPs · statusline · hook de lint
.mcp.json               # GitHub · sequential-thinking · Postgres
CLAUDE.md               # contexto del repo
BLOQUE 5 DE 8
BLOQUE 5

Revisión automática de PRs

Claude revisa cada PR solo, vía GitHub Actions con la API key del equipo.

05
BLOQUE 5 · PR REVIEW
GITHUB ACTIONS · 25'

Una revisión en cada PR

# .github/workflows/claude-code-review.yml
on: pull_request

# Claude comenta cada PR automáticamente
# Secret del repo: ANTHROPIC_API_KEY (cuenta del equipo)
  • El workflow viene en el starter kit, listo para activar
  • Solo falta el secret ANTHROPIC_API_KEY de cada equipo
  • Consume la API con la cuenta del equipo, no con la personal · live/05-pr-review
BLOQUE 6 DE 8
BLOQUE 6

Desarrollo en paralelo

Varias features a la vez: una instancia de Claude Code por git worktree.

06
BLOQUE 6 · DESARROLLO EN PARALELO
GIT WORKTREE + VARIAS INSTANCIAS

Varias features a la vez

Un worktree es otro directorio del MISMO repo con otra rama. Una instancia de Claude por worktree → dos features avanzan en paralelo, aisladas, sin churn de cambiar de rama.

# dos worktrees, dos ramas, dos features de ONEDEV-63
git worktree add ../gs-ree  -b feature/ONEDEV-211-ree           origin/main
git worktree add ../gs-edis -b feature/ONEDEV-212-edistribucion origin/main
git worktree list
# T1: cd ../gs-ree && claude    T2: cd ../gs-edis && claude
claude --worktree 211-ree     # atajo integrado
  • La misma rama no se puede checkoutear en dos worktrees · .venv y .env no se comparten
  • Reparte ficheros distintos = cero conflictos · mergea A y luego rebase B
BLOQUE 6 · DESARROLLO EN PARALELO
PRÁCTICA · 35'

Dos subtareas, dos worktrees

WORKTREE A · 211
REE
Una instancia de Claude construye el scraper de REE (generación y demanda).
WORKTREE B · 212
E-Distribución
Otra instancia, en paralelo, construye el scraper de E-Distribución. Ficheros distintos.
MERGE
A → main → rebase B
Integra A, luego rebasa B sobre main. Sin conflictos evitables.

En parejas, dos terminales, un clon. Acordad el contrato antes. Material y deberes: live/06-parallel-worktrees.

BLOQUE 7 DE 8
BLOQUE 7

Agentes especializados

Un equipo de subagentes con rol propio (PM, Dev, QA, Security) — y cómo escala a equipos orquestados y al modo ultracode.

07
BLOQUE 7 · AGENTES ESPECIALIZADOS
ANATOMÍA DE UN SUBAGENTE

Un agente es un contrato, no un asistente

# .claude/agents/qa-reviewer.md  ·  el fichero ES el agente
---
name: qa-reviewer
description: Use PROACTIVELY tras implementar — audita el diff vs criterios
tools: Read, Grep, Glob      # solo lectura → veredicto fiable
model: sonnet
---
Eres un revisor de QA…  # el cuerpo del .md ES el system prompt
  • La description es la interfaz pública: el router la lee para decidir si te invoca. "Use when… / Use PROACTIVELY when…" + condición observable = routing fiable
  • tools = least-privilege (auditor sin escritura) · model por responsabilidad (Opus razona, Sonnet ejecuta)
BLOQUE 7 · AGENTES ESPECIALIZADOS
UN EQUIPO DE SUBAGENTES

PM · Dev · QA en .claude/agents

PM
pm-spec
Ticket → spec + criterios de aceptación. Opus · solo lectura.
Dev
dev-implementer
Implementa según la spec + tests. Sonnet · Edit/Write.
QA
qa-reviewer
Audita el diff vs criterios. Sonnet · solo lectura.
Sec
security-reviewer
Auditoría de vulnerabilidades. Sonnet · solo lectura.
  • Cada rol es un .md independiente; el flujo los encadena PM → Dev → QA/Sec, cada uno con su contexto limpio
  • Los auditores van sin permisos de escritura: por eso su veredicto es fiable
BLOQUE 7 · AGENTES ESPECIALIZADOS
PRÁCTICA · 40'

Del ticket al APPROVE

PM
@pm-spec
Convierte ONEDEV-63 en spec con criterios de aceptación.
DEV
@dev-implementer
Implementa según la spec, con tests.
QA
@qa-reviewer
Audita el diff vs criterios. Itera hasta APPROVE.
/agents   # confirma que cargan los 5 roles del equipo

El roster (.claude/agents/) listo en live/07-agentes-especializados. El campo description dirige el router; @-mención para forzar.

BLOQUE 7 · AGENTES ESPECIALIZADOS
DE ROLES SUELTOS A UN EQUIPO

Un equipo que colabora

Un agent-team es un lead que reparte el trabajo entre varios compañeros en paralelo que se coordinan entre ellos.

LEAD
Reparte
Un coordinador descompone la tarea y lanza varios compañeros con nombre, en un mensaje.
TEAM
En paralelo
Cada uno trabaja su parte a la vez y se hablan entre ellos (SendMessage) para no pisarse.
SÍNTESIS
Un resultado
El lead reúne lo de todos en una entrega coherente. Tú supervisas el panel y rediriges.
# Off por defecto: flag experimental en ~/.claude/settings.json — reinicia Claude
{ "env": { "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1" } }
# Luego, en lenguaje natural → crea un equipo (backend, frontend, QA) para ONEDEV-63

Se coordinan vía SendMessage + lista de tareas compartida. Material: live/07b-agent-teams.

BLOQUE 7 · AGENTES ESPECIALIZADOS
EL NIVEL MÁXIMO · ULTRACODE

Orquestación multi-agente

Para tareas que un solo contexto no abarca, ultracode (los Dynamic Workflows) deja que Claude orqueste muchos agentes en paralelo, verifique de forma adversaria y sintetice. El coste de tokens deja de ser la restricción; manda la exhaustividad.

01
Barridos a gran escala
Migraciones, auditorías de seguridad o revisión multi-dimensión de un módulo entero de una vez.
02
Verificación adversaria
Varios agentes intentan refutar cada hallazgo antes de darlo por bueno. Menos falsos positivos.
03
Se activa a propósito
Cambias el effort a «ultracode» o escribes «ultracode» en el prompt. Solo cuando la exhaustividad importa más que el gasto.

Potente y caro: para barridos donde un solo agente no llega. Lo vemos a fondo en la Sesión 2.

BLOQUE 8 DE 8
BLOQUE 8

Política, métricas y cierre

Cómo usamos la IA, qué medimos y cómo seguimos a partir de hoy.

08
BLOQUE 8 · POLÍTICA + MÉTRICAS
LÍNEA BASE DE ADOPCIÓN · 20'

Lo que medimos

MétricaLínea base hoyHacia dónde
PRs por semana↑ throughput
Tiempo de code review↓ con PR review
% de tareas con IA↑ adopción
  • 5% del tiempo para explorar y aprender la herramienta
  • Qué se puede subir al repo y qué no, y con qué cuenta (zero-retention)
AL CERRAR LA SESIÓN
CRITERIO DE "HECHO"

Cómo sabemos que funcionó

  • Todos con Claude Code en terminal y el starter kit funcionando
  • Cada dev ha completado un ciclo SDD sobre ONEDEV-63
  • El CLAUDE.md del repo de OneDev, creado y compartido
  • El workflow de PR review listo (falta solo la API key)
  • Worktrees y agentes especializados probados; lo demás en deberes

Lo que no se mide no se mejora: la línea base de hoy es el punto de partida del acompañamiento.

×
PRÓXIMOS PASOS
Lo que sale
de esta sesión

Cada dev sale con la base común instalada, un ciclo SDD completado sobre ONEDEV-63, y las técnicas avanzadas (worktrees y agentes) probadas. Lo que quede, en deberes para la Sesión 2.

1 · Starter kit instalado 2 · Ciclo SDD sobre ONEDEV-63 3 · Worktrees + agentes probados Digital Tools · One Hub Energy