PRE-WORKSHOP · SESIÓN B Claude Code · Operación · 10 ejercicios sobre repo

Code es Cowork
con permisos sobre tu repo. Y todo lo que eso implica.

PRESENTADO PARAEquipos de ingeniería · Credicorp
FORMATOSesión B · 6 horas · 10 ejercicios
TEMAClaude Code de cero a operación
CONTINÚA ENWorkshop principal · 16 ejercicios
Pre-workshop · Sesión B
tesis · 01

tesis de apertura

El asistente describe.
El agente ejecuta.

Claude Code es lo segundo. Tiene shell, tiene archivos, tiene permisos. Cuando le pides un refactor, edita el código. Cuando le pides correr tests, los corre. Cuando le pides abrir un PR, lo abre. La pregunta deja de ser "¿qué te sugiere?" y pasa a ser "¿qué le permites hacer?".

credicorp · vibe coding02 / 55
Pre-workshop · Sesión B
tesis · 02

qué cambia respecto a la sesión A

Mismo modelo. Más capacidades. Más responsabilidad.

capacidadcowork (sesión a)code (sesión b)
contexto persistenteproject + knowledgerepo entero + CLAUDE.md jerárquico
leer archivos del reposolo los que subescualquiera del cwd
editar archivosdevuelve diffedita directamente
ejecutar comandosnoshell con permisos
correr tests / buildno
git operationsnocommit · push · PR
subagents · hooks · skillsno
MCP serversno en CLI
credicorp · vibe coding03 / 55
Pre-workshop · Sesión B
marco · 01

qué entrega esta sesión

Al cerrar la sesión B, debes poder configurar Code para tu equipo.

No es "saber usar Claude Code". Es "saber diseñar la experiencia de Claude Code para el equipo": qué archivos guían el comportamiento, qué permisos limitan riesgo, qué hooks automatizan invariantes, qué subagents protegen el contexto.

  • Instalar Code y operar primer prompt
  • Diseñar CLAUDE.md jerárquico (global · proyecto · local)
  • Escribir settings.json con permissions explícitos
  • Definir 1 hook · 1 subagent · 1 skill local
  • Conectar 1 MCP server al proyecto
  • Plan claro de cómo aplicarlo en el workshop principal
credicorp · vibe coding04 / 55
PARTE 01 · 05

Instalación
y primer prompt.

Diez minutos de setup. Si Node 20+ y permiso de instalar paquetes globales están listos, el primer prompt corre antes del primer café.

Instalación
parte 01

instalación CLI

Una sola línea. El resto es configuración.

# instalar globalmente npm install -g @anthropic-ai/claude-code # verificar versión claude --version # exportar API key (zsh / bash) export ANTHROPIC_API_KEY="sk-ant-..." # lanzar en un repo cd ~/code/<repo> claude

Recomendación: nunca pegues la API key en el repo, ni en .env committeable. Usa ~/.zshrc o un keychain manager.

credicorp · vibe coding06 / 55
Instalación
parte 01

verificación rápida

Tres señales de que la instalación quedó bien.

Si alguno falla, casi siempre es uno de tres problemas: Node 18- en lugar de 20+, API key mal exportada, o permisos de npm en macOS sin sudo ni nvm.

credicorp · vibe coding07 / 55
Instalación
parte 01

primer prompt en un repo de prueba

El primer comando ya no es para "probar". Es para mapear el repo.

A diferencia de Cowork, Code ya tiene tu repo. No necesitas subir nada. La primera pregunta correcta es siempre cartográfica.

primer prompt
Lee este repo. Devuelve:

1. Una línea por módulo de top level
   con su responsabilidad
2. Tres archivos de entrada
3. Tres riesgos arquitectónicos
   visibles desde la estructura

No edites nada todavía. Solo describe.
credicorp · vibe coding08 / 55
PARTE 02 · 09

CLAUDE.md
jerárquico.

Tres capas de contexto que Code carga en cada sesión. Bien diseñadas, son la diferencia entre un agente que "sabe quién eres" y uno que arranca ciego cada turno. Mal diseñadas, son ruido.

CLAUDE.md jerárquico
parte 02

las tres capas

Global · Proyecto · Local. Cada una con un propósito distinto.

~/.claude/CLAUDE.md

Global · de ti

Tus preferencias personales: idioma, estilo, herramientas que usas siempre, no-go zones tuyas.

.claude/CLAUDE.md

Proyecto · del equipo

Convenciones colectivas: stack, arquitectura, patrones, naming, tests, deploy. Versionado en git.

.claude.local/

Privado · efímero

Notas tuyas para esta semana o branch. Gitignored. No se comparte.

credicorp · vibe coding10 / 55
CLAUDE.md jerárquico
parte 02

orden de carga

Code lee de menor a mayor especificidad. Lo más cercano al cwd manda.

01
~/.claude/CLAUDE.md (preferencias del usuario)
02
.claude/CLAUDE.md del proyecto raíz
03
.claude/CLAUDE.md de un subdirectorio (si aplica)
04
.claude.local/CLAUDE.md (privado · sobreescribe)

Cuando algo "no se aplica" — casi siempre es que un nivel más específico lo está sobrescribiendo. claude /doctor muestra qué archivos cargó esta sesión.

credicorp · vibe coding11 / 55
CLAUDE.md jerárquico
parte 02

~/.claude/CLAUDE.md

Tus preferencias. Las que aplican en cualquier proyecto.

no va aquí
· stack del proyecto
· convenciones del equipo
· archivos del repo
· decisiones arquitectónicas
· estructura del directorio
sí va aquí
· idioma de respuesta
· estilo de commits que usas
· "siempre confirma antes de borrar"
· "comentarios solo cuando el porqué
   no es obvio"
· herramientas que usas en todos
  tus proyectos (vitest, etc.)
credicorp · vibe coding12 / 55
CLAUDE.md jerárquico
parte 02

.claude/CLAUDE.md del proyecto

El contrato del repo con la IA. Versionado en git.

# .claude/CLAUDE.md ## Stack - TypeScript 5.4 · Node 20 - Postgres · Drizzle - Vitest · Playwright ## Arquitectura - Hexagonal · domain/ application/ infra/ ui/ - Sin acceso directo a infra desde domain - Boundaries verificables vía dependency-cruiser ## No hacer sin confirmar - Mover archivos entre capas - Tocar configuración de auth - Agregar dependencias ## Tests - Estilo given-when-then en tests de dominio - Mockear solo infra · nunca el código bajo prueba
credicorp · vibe coding13 / 55
CLAUDE.md jerárquico
parte 02

decisor rápido

Si lo cambias en otro proyecto, no va en proyecto.

contenido~/.claude/.claude/ proyecto.claude.local/
idioma de respuesta
stack del proyecto
convenciones del equipo
notas de tu PR de la semana
"no toques X mientras pruebo Y"
herramientas personales
credicorp · vibe coding14 / 55
PARTE 03 · 15

settings.json.

Lo que CLAUDE.md no puede expresar: comportamiento ejecutable. Qué modelo, qué tools, qué permisos, qué hooks, qué subagents, qué MCP. Texto plano que vive en el repo.

settings.json
parte 03

esqueleto mínimo

Cinco campos que casi siempre están.

{ "model": "claude-sonnet-4-6", "permissions": { "allow": ["Bash(npm test)", "Bash(git status)"], "deny": ["Bash(rm -rf *)", "Write(.env*)"], "ask": ["Bash(npm install *)"] }, "hooks": { }, "mcpServers": { }, "subagents": { } }

Ubicación: .claude/settings.json en la raíz del repo. Hay también .claude/settings.local.json para lo personal · gitignored.

credicorp · vibe coding16 / 55
settings.json
parte 03

modelo default y permissions

Permission rules son tu primera capa de gobernanza.

allow · sin prompt
  • Bash(npm test)
  • Bash(git status)
  • Bash(npm run lint)
  • Read(*)
deny · nunca
  • Write(.env*)
  • Bash(rm -rf *)
  • Bash(git push --force *)
  • Bash(npm publish *)

Lo que no está en allow ni deny cae en ask · te pregunta antes de ejecutar.

credicorp · vibe coding17 / 55
settings.json
parte 03

los otros campos

Hooks · subagents · MCP también viven aquí — los veremos en detalle.

hooks

Eventos que disparan tu propio shell antes/después de acciones de Code. Para invariantes deterministas.

mcpServers

Tools tipados externos vía Model Context Protocol. Locales o remotos.

subagents

Agentes especializados que Claude Code invoca para tareas concretas con su propio contexto.

credicorp · vibe coding18 / 55
PARTE 04 · 19

Permission modes.

Cuatro modos que cambian el contrato de operación entre tú y el agente. Es la palanca que decide cuánta autonomía Code tiene en cada sesión.

Permission modes
parte 04

los cuatro modos

De más conservador a más permisivo. Siempre puedes cambiar a media sesión.

default

Pregunta siempre

Cada acción potencialmente lateral te pide confirmación. Conservador · más seguro.

acceptEdits

Edita sin pedir

Edita archivos sin preguntar; pide para Bash y otros. Útil para refactor con foco.

plan

Solo planea

Lee, propone, no ejecuta. Devuelve plan estructurado. Ideal antes de tareas grandes.

bypassPermissions

Todo permitido

Sin prompts. Solo en sandbox o CI con repo desechable. Nunca en producción.

credicorp · vibe coding20 / 55
Permission modes
parte 04

decisor rápido

El modo correcto cambia con la tarea, no con la persona.

tareamodo recomendadopor qué
explorar repo nuevoplanquieres ver, no actuar
fix de un bug acotadodefaultquieres ver cada paso
refactor con foco · misma featureacceptEditsvelocidad sin perder control
migración con muchos archivosplan → acceptEditsplan primero, luego ejecutar
CI · GitHub ActionbypassPermissions + deny estrictoheadless con guardarraíles
tocar auth o pagosdefault · siempreel riesgo lo justifica
credicorp · vibe coding21 / 55
Permission modes
parte 04

plan mode en detalle

El modo "revisar antes de actuar". Subutilizado y muy útil.

En plan mode Code lee, piensa y devuelve un plan numerado. No edita ni ejecuta nada. Tú apruebas, ajustas o rechazas. Solo cuando dices "ejecuta" cambia de modo y aplica.

Para tareas grandes (migración, refactor multi-módulo, audit de seguridad) este es el patrón seguro: plan → revisar → ejecutar.

activación
claude --permission-mode plan

# o dentro de la sesión
/permission-mode plan

# cuando apruebes el plan
/permission-mode acceptEdits
credicorp · vibe coding22 / 55
PARTE 05 · 23

Slash commands.

Atajos del prompt. Los built-in cubren operación básica. Los custom son tuyos: macros del equipo que viven en el repo. Una buena lib de comandos custom es señal de equipo maduro con Code.

Slash commands
parte 05

built-in que vas a usar todos los días

Cinco que justifican aprenderse.

  • /help · catálogo de comandos disponibles
  • /clear · resetea historial · útil entre tareas
  • /model · cambia el modelo en vivo
  • /compact · resume el historial cuando se infla
  • /resume · retoma una sesión anterior por id
  • /permission-mode · cambia modo en vivo
  • /agents · lista subagents disponibles
  • /mcp · estado de servers MCP
  • /doctor · diagnóstico de la sesión
  • /cost · tokens y costo de la sesión
credicorp · vibe coding24 / 55
Slash commands
parte 05

comandos custom del equipo

Cualquier prompt repetido es candidato a custom command.

.claude/commands/ ship.md // build + tests + commit + push audit.md // audit del repo contra ADRs adr-new.md // crea ADR-NN.md desde plantilla glossary.md // extrae glosario del módulo pr-review.md // review estructurado del último PR

Cada archivo es un prompt en markdown. Llamarlo con /audit, /ship, etc. Versionado en git · todo el equipo los usa igual.

credicorp · vibe coding25 / 55
Slash commands
parte 05

ejemplo · /ship

Un comando que ejecuta el ritual de "antes de mergear".

# .claude/commands/ship.md Ejecuta en este orden y detente al primer fallo: 1. npm run lint 2. npm run typecheck 3. npm test 4. npm run boundaries:check 5. git status · si hay cambios sin commit, abortar 6. git push origin HEAD Al final, devuelve un resumen: · checks pasados · checks fallados · tiempo total · nombre de la rama pusheada Si algún check falla, no continúes. Solo reporta.
credicorp · vibe coding26 / 55
PARTE 06 · 27

Hooks.

Código tuyo que corre alrededor de las acciones de Code. La capa determinista de la pipeline. Aquí van invariantes — seguridad, calidad, formateo — que no deben depender de que Claude se acuerde.

Hooks
parte 06

los 7 eventos

Siete momentos de la sesión donde puedes intervenir.

eventocuándo disparauso típico
SessionStartal abrir la sesióncargar variables, verificar API key
UserPromptSubmital enviar tu promptvalidar formato, rate-limit personal
PreToolUseantes de ejecutar toolbloquear acciones · auditar
PostToolUsetras ejecutar toollint automático · verify post-write
Notificationcuando Code te avisaintegrar con Slack · paging
SubagentStopal terminar un subagentlogging · métricas
Stopal cerrar la sesiónresumir · generar reporte · cleanup
credicorp · vibe coding28 / 55
Hooks
parte 06

anatomía de un hook

Un comando shell. Un evento. Un matcher opcional.

// .claude/settings.json { "hooks": { "PreToolUse": [ { "matcher": "Write", "hooks": [{ "type": "command", "command": ".claude/hooks/block-env.sh" }] } ] } }

El comando recibe vía stdin un JSON con la acción propuesta. Devuelve exit 0 para permitir, exit !=0 para bloquear con mensaje.

credicorp · vibe coding29 / 55
Hooks
parte 06

ejemplo · bloquear escritura a .env

Pre-tool-use que prohíbe tocar archivos sensibles.

#!/usr/bin/env bash # .claude/hooks/block-env.sh input=$(cat) file=$(echo "$input" | jq -r '.tool_input.file_path') # bloquear cualquier archivo que parezca env if [[ "$file" == *.env* ]] || [[ "$file" == *credentials* ]]; then echo "BLOQUEADO: no puedes escribir a $file desde Code." exit 1 fi exit 0

Este hook ya no depende de que Claude "se acuerde" de no tocar .env. La regla es ejecutable y verificada por la plataforma, no por el modelo.

credicorp · vibe coding30 / 55
Hooks
parte 06

post · stop · notification

Lint automático tras cada Write. Resumen al cerrar.

PostToolUse · Write

Después de cada escritura, corre npm run lint:fix --silent <archivo>. Mantiene formato sin pedirlo.

Notification

Cuando Code requiere tu atención, suena un beep o envía un mensaje a Slack para no perder señal.

Stop · cierre

Genera un resumen automático de la sesión: archivos tocados, tests corridos, tiempo, costo de tokens.

credicorp · vibe coding31 / 55
PARTE 07 · 32

Subagents.

Agentes especializados con su propio contexto, propio system prompt, propias herramientas. Code los invoca cuando una tarea encaja con su perfil. Protegen el contexto principal de ruido y permiten paralelismo.

Subagents
parte 07

qué son

Un subagent es Claude con un rol estrecho y herramientas acotadas.

El agente principal carga tu contexto del repo. Cuando una tarea es exploratoria, ruidosa o paralelizable — investigación, audit, búsqueda — delega a un subagent. El subagent opera con contexto fresco. El principal recibe solo el resumen.

subagents típicos
  • researcher · investiga librerías o patrones
  • auditor · revisa el repo contra ADRs
  • test-runner · corre tests y reporta
  • doc-writer · genera documentación
  • explorer · mapea repos desconocidos
credicorp · vibe coding33 / 55
Subagents
parte 07

.claude/agents/

Cada subagent es un archivo. Un rol. Una caja de herramientas.

# .claude/agents/auditor.md --- name: auditor description: revisa el repo contra ADRs y boundaries vigentes tools: [Read, Grep, Glob, Bash] model: claude-sonnet-4-6 --- Eres un auditor arquitectónico. Tu trabajo es: 1. Leer todos los ADRs en /architecture/adr/ 2. Leer .claude/CLAUDE.md 3. Buscar violaciones de boundaries 4. Reportar archivo:línea, regla, severidad, remediación Restricciones: · No edites código · solo reporta · Cita siempre archivo:línea · Severidad: alta · media · baja · No propongas refactors masivos
credicorp · vibe coding34 / 55
Subagents
parte 07

cuándo usar subagent vs main context

Si la tarea va a generar mucho output que no necesitas leer, delega.

tareamain contextsubagent
refactorar 1 módulo
explorar repo de 200 archivos✓ explorer
audit contra ADRs✓ auditor
investigar 5 librerías✓ researcher (paralelo)
correr suite de tests✓ test-runner
aplicar fix puntual
credicorp · vibe coding35 / 55
PARTE 08 · 36

Skills · MCP
· IDE · SDK.

Las cuatro extensiones que convierten Claude Code de "CLI agente" en "plataforma del equipo". Skills enseñan rituales del repo. MCP conecta tools tipados. IDE/SDK lo embeben donde escribes.

Skills · MCP · IDE
parte 08

skills locales

Una skill es un ritual reutilizable que vive en el repo.

Un slash command es texto. Una skill es un workflow con archivos asociados, ejemplos, plantillas, scripts. Cuando un proceso del equipo ya tiene 5+ pasos repetibles, conviene encapsularlo como skill.

.claude/skills/ /migration SKILL.md // instrucciones /templates forward.sql.tmpl backward.sql.tmpl /scripts run-migration.sh /adr-new SKILL.md /templates adr.md.tmpl
credicorp · vibe coding37 / 55
Skills · MCP · IDE
parte 08

MCP en claude code

MCP = tools tipados de tu sistema, conectados al agente.

// .claude/settings.json { "mcpServers": { "linear": { "command": "npx", "args": ["@modelcontextprotocol/server-linear"], "env": { "LINEAR_API_KEY": "$LINEAR_API_KEY" } }, "db-readonly": { "command": "./.claude/mcp/db-readonly" } } }

Servers locales viven en tu repo. Servers remotos · npm · binarios. Code los expone como tools al modelo · auditados como cualquier otra acción.

credicorp · vibe coding38 / 55
Skills · MCP · IDE
parte 08

IDE · agent SDK · github actions

Code en tu editor. Code en tu CI. Code dentro de tus apps.

IDE extensions

VS Code · JetBrains

Mismo Code, integrado al editor. Muestra diffs visuales, abre archivos, integra con debugger.

Agent SDK

Embeber en tu backend

Construye apps que usan Code como motor. Headless. API tipada. Ideal para agents internos.

GitHub Actions

Code en tu CI/CD

Auto-review de PRs, tests dirigidos por agente, migraciones supervisadas. Modo bypass + deny estricto.

credicorp · vibe coding39 / 55
PARTE 09 · 40

Diez ejercicios
sobre repo real.

Cada uno entrega un artefacto que vas a pegar al setup de Claude Code de tu equipo. Al final de la sesión B tu repo tiene CLAUDE.md, settings.json, 1 hook, 1 subagent, 1 skill, 1 MCP server y un slash command custom — la base que el workshop principal va a explotar.

Ejercicio · 01 / 10
code · primer prompt

ejercicio 01 · primer prompt en repo de prueba

Mapea un repo desconocido en 15 minutos.

DURACIÓN · 15 min  ·  ROL · 1 ingeniero + Claude Code · plan mode

Objetivo

Probar Code en plan mode contra un repo nuevo. Entregar un mapa inicial sin tocar nada.

Pasos

  • Clona un repo seed (uno tuyo o uno open-source)
  • Lanza claude --permission-mode plan
  • Pide el mapa: módulos, entry points, riesgos
  • Salida: markdown · pega en docs/repo-map.md
claude codeplan modecartografía
prompt sugerido
Lee este repo (no edites nada).
Devuelve en markdown:

1. Topología de top-level
   (módulos, una línea cada uno)
2. Tres entry points · ruta · función
3. Tres riesgos arquitectónicos visibles
   desde la estructura
4. Dos preguntas que harías al autor

No inventes. Si no hay evidencia, di
"sin evidencia". Sé breve.
credicorp · vibe coding41 / 55
Ejercicio · 02 / 10
code · CLAUDE.md proyecto

ejercicio 02 · escribir tu CLAUDE.md de proyecto

Genera el CLAUDE.md del repo a partir del repo.

DURACIÓN · 25 min  ·  ROL · 1 arquitecto + Claude Code

Objetivo

Producir .claude/CLAUDE.md con stack, arquitectura, no-go zones, convenciones de tests. Aprobar línea por línea — la IA propone, tú decides.

Pasos

  • Pide a Code generar borrador del CLAUDE.md desde el repo
  • Revisa cada sección · marca lo que esté impreciso
  • Iterar hasta que represente la realidad del equipo
  • Commit en .claude/CLAUDE.md · merge tras review humano
claude codeCLAUDE.mdcontrato del repo
prompt sugerido
Genera .claude/CLAUDE.md a partir
del repo. Incluye estas secciones:

  ## Stack · ## Arquitectura ·
  ## No hacer sin confirmar ·
  ## Convenciones de tests ·
  ## Convenciones de commits ·
  ## Glosario de dominio (top 10)

Reglas:
  · solo lo que veas en el código
  · marca [verificar] cuando dudes
  · ningún consejo genérico

Output: markdown listo para commit.
credicorp · vibe coding42 / 55
Ejercicio · 03 / 10
code · settings.json

ejercicio 03 · settings.json con permissions

Define qué puede y qué no puede hacer Code en este repo.

DURACIÓN · 25 min  ·  ROL · 1 arquitecto + Claude Code · revisión equipo

Objetivo

Producir .claude/settings.json con allow/deny/ask explícitos. La regla: deny lo que no debería pasar nunca, ask lo que requiere consentimiento, allow solo lo trivial.

Pasos

  • Lista 5 acciones que Code no debería hacer nunca · van a deny
  • Lista 3 acciones que requieren consentimiento · van a ask
  • Lista 5 acciones triviales · van a allow
  • Pide a Code escribir el JSON · valida sintaxis · commit
claude codepermissionsdeny estricto
prompt sugerido
Genera .claude/settings.json con
permissions explícitos.

Deny (5):
  · escribir a .env*
  · rm -rf
  · git push --force a main
  · npm publish
  · tocar archivos en /infra/secrets/

Ask (3):
  · npm install nuevo paquete
  · cambios a config de auth
  · cambios a migrations

Allow (5):
  · npm test, lint, typecheck
  · git status, diff, log

Modelo: sonnet-4-6.
credicorp · vibe coding43 / 55
Ejercicio · 04 / 10
code · custom command

ejercicio 04 · slash command custom

Crea /test que ejecuta el ritual de testing del equipo.

DURACIÓN · 20 min  ·  ROL · 1 ingeniero + Claude Code

Objetivo

Empaquetar como comando un workflow que el equipo ya hace a mano: lint + typecheck + tests + boundaries:check + reporte.

Pasos

  • Crea .claude/commands/test.md con los pasos
  • Ejecuta /test en una sesión limpia
  • Verifica: si un check falla, el comando se detiene
  • Comparte con el equipo · commit en main
claude codeslash commandCI local
test.md plantilla
Ejecuta en este orden y detente al
primer fallo:

1. npm run lint
2. npm run typecheck
3. npm test
4. npm run boundaries:check

Al terminar, reporta:
  · checks pasados
  · checks fallados
  · tiempo total

Si algún check falla, no continúes.
credicorp · vibe coding44 / 55
Ejercicio · 05 / 10
code · hook PreToolUse

ejercicio 05 · hook PreToolUse · bloqueo .env

Convierte una regla "no toques .env" en código ejecutable.

DURACIÓN · 25 min  ·  ROL · 1 ingeniero + Claude Code · bash + jq

Objetivo

Implementar el hook de la slide 30 en tu propio repo. Probar que bloquea de verdad. Documentar el override de emergencia.

Pasos

  • Crea .claude/hooks/block-env.sh
  • Registra el hook en settings.json · PreToolUse · Write
  • Lanza Code · pídele que cree un .env.example · debe bloquearse
  • Documenta cómo desactivar el hook si fuera estrictamente necesario
claude codehooksbashjq
test del hook
en la sesión:

  "Crea un archivo .env.example
   con DATABASE_URL y ANTHROPIC_API_KEY
   como ejemplo."

resultado esperado:

  ✗ BLOQUEADO: no puedes escribir
    a .env.example desde Code.

si pasa, el hook funciona.
si no pasa, revisa el matcher
en settings.json.
credicorp · vibe coding45 / 55
Ejercicio · 06 / 10
code · hook PostToolUse

ejercicio 06 · hook PostToolUse · lint automático

Después de cada Write, lint:fix sin pedirlo.

DURACIÓN · 20 min  ·  ROL · 1 ingeniero + Claude Code

Objetivo

Eliminar la pregunta "¿lo formateaste?" del review. Cada archivo que Code escribe pasa por lint:fix antes de quedar guardado.

Pasos

  • Crea .claude/hooks/lint-fix.sh
  • Registra en PostToolUse · Write
  • Verifica que tras editar un .ts el archivo queda formateado
  • Si tu repo es JS/TS · usa eslint --fix · si Python · ruff format
claude codePostToolUseeslint
lint-fix.sh
#!/usr/bin/env bash
input=$(cat)
file=$(echo "$input" | jq -r '.tool_input.file_path')

# solo si es archivo del repo
if [[ -n "$file" && -f "$file" ]]; then
  case "$file" in
    *.ts|*.tsx|*.js)
      npx eslint --fix --quiet "$file" 2>/dev/null
      ;;
    *.py)
      ruff format "$file" 2>/dev/null
      ;;
  esac
fi
exit 0
credicorp · vibe coding46 / 55
Ejercicio · 07 / 10
code · subagent auditor

ejercicio 07 · subagent auditor

Crea un auditor que revisa el repo contra los ADRs sin ensuciar tu contexto.

DURACIÓN · 30 min  ·  ROL · 1 arquitecto + Claude Code

Objetivo

Implementar el subagent auditor de la slide 34. Probarlo en una sesión real. Comparar contexto consumido contra hacer la audit en el main.

Pasos

  • Crea .claude/agents/auditor.md
  • Lanza /agents · confirma que aparece
  • Pide audit del repo · debería invocar auditor automáticamente
  • Verifica con /cost que el main se mantuvo limpio
claude codesubagentauditor
prompt para invocar
"Audita el repo contra los ADRs vigentes.
Devuelve solo violaciones · severidad ·
remediación mínima. No edites nada."

Code debería:
  1. Detectar que es trabajo del auditor
  2. Lanzarlo con su contexto
  3. Recibir el reporte
  4. Devolverlo a ti sin inflar el main

Compara con hacerlo en main:
  /cost antes y después.
credicorp · vibe coding47 / 55
Ejercicio · 08 / 10
code · skill local

ejercicio 08 · skill local del proyecto

Empaqueta el ritual de "nuevo ADR" como skill.

DURACIÓN · 25 min  ·  ROL · 1 arquitecto + Claude Code

Objetivo

Convertir un workflow del equipo (crear ADR-NN.md desde plantilla, asignar número, registrar en index) en una skill versionada en el repo.

Pasos

  • Crea .claude/skills/adr-new/ con SKILL.md y plantilla
  • SKILL.md describe pasos · plantilla es adr.md.tmpl
  • Pide a Code "crea un ADR para decidir X" · debería invocar la skill
  • Verifica: ADR creado con número correcto · index actualizado
claude codeskillADR
SKILL.md plantilla
---
name: adr-new
description: crea un nuevo ADR
  desde plantilla y registra en index
---

Pasos:
1. Lee /architecture/adr/index.md
2. Calcula próximo número (ADR-NNN)
3. Copia templates/adr.md.tmpl a
   /architecture/adr/ADR-NNN-<slug>.md
4. Rellena con el contexto que el
   usuario te dio
5. Añade entrada a index.md
6. Reporta el path final
credicorp · vibe coding48 / 55
Ejercicio · 09 / 10
code · MCP server local

ejercicio 09 · MCP server local

Conecta una herramienta tipada del dominio al agente.

DURACIÓN · 35 min  ·  ROL · 1 ingeniero + Claude Code

Objetivo

Levantar un MCP server local con 1-2 tools del dominio (read-only sobre tu DB de staging, búsqueda en Linear, query a metrics). Conectarlo a Code y usarlo.

Pasos

  • Elige una integración con valor real (Linear · DB read-only · Grafana)
  • Usa un MCP server existente del ecosistema o escribe uno mínimo
  • Registralo en settings.json · mcpServers
  • Verifica con /mcp · usa una tool desde una sesión
claude codeMCPtools tipados
prompt de prueba
una vez conectado:

"Usa la tool linear-search para listar
los issues en estado In Progress
asignados a mí."

Code debería:
  1. Reconocer la tool disponible
  2. Pedir confirmación si está en ask
  3. Ejecutarla con argumentos tipados
  4. Devolver resultado estructurado

si /mcp no muestra el server, revisa
la línea command y env en settings.json.
credicorp · vibe coding49 / 55
Ejercicio · 10 / 10
code · github action

ejercicio 10 · claude code en github actions

Auto-review de PRs con Code en CI.

DURACIÓN · 30 min  ·  ROL · 1 ingeniero + Claude Code · GitHub Actions

Objetivo

Configurar la action oficial para que cada PR reciba un review automático contra los ADRs y boundaries del repo. Modo bypass + deny estricto.

Pasos

  • Añade anthropics/claude-code-action al workflow
  • Configura ANTHROPIC_API_KEY como secret
  • Limita el action a comentar el PR · no commitear
  • Crea un PR de prueba · verifica que el comentario aparece
claude codegithub actionsCIdeny estricto
workflow yaml mínimo
name: claude-review
on:
  pull_request:
    types: [opened, synchronize]

jobs:
  review:
    runs-on: ubuntu-latest
    permissions:
      pull-requests: write
      contents: read
    steps:
      - uses: actions/checkout@v4
      - uses: anthropics/claude-code-action@v1
        with:
          mode: review
          api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          deny: "Bash(*) Write(*)"
credicorp · vibe coding50 / 55
CIERRE · 51

Bridge
al workshop principal.

El workshop de los 16 ejercicios asume todo lo que hiciste en las dos sesiones previas. Aquí el mapa: qué de lo que ya sabes activa cuál ejercicio del workshop.

Bridge al workshop
cierre · 01

lo que ya sabes hacer

Diez capacidades que el workshop principal asume.

credicorp · vibe coding52 / 55
Bridge al workshop
cierre · 02

mapa pre → workshop

Cada capacidad activa un ejercicio del workshop.

de la sesión preactiva en el workshop
Project Cowork con knowledgeEjercicios 02, 13 (mapeo dolores · memory pack mini)
CLAUDE.md de proyectoEjercicios 02, 06, 15 (Memory Pack del repo)
settings.json + permission rulesEjercicios 09, 14, 16 (boundaries, fitness functions)
Hooks PreToolUse / PostToolUseEjercicios 04, 14 (deny secretos · lint pipeline)
Subagent auditorEjercicios 01, 13 (audit drift · mapeo)
Skill ADR-newEjercicio 14 (codificar ADRs + fitness)
MCP server localEjercicios 09, 11 (production readiness · flow tracing)
credicorp · vibe coding53 / 55
El que sabe instalar la herramienta no es arquitecto de la herramienta.
El arquitecto la configura para que el equipo entregue mejor sin pensar en ella.
Si terminaste estas dos sesiones, ya tienes la base. El workshop hace el resto.
Pre-workshop · Sesión B · Claude Code
Próximos pasos
cierre · 03

acciones inmediatas

Antes de cerrar la sesión, deja tres cosas commiteadas.

acción 01

Commit del setup base

CLAUDE.md + settings.json + 1 hook + 1 subagent. PR a una rama feat/claude-code-setup. Aún sin merge.

acción 02

Documentar overrides

Anota cómo desactivar el hook PreToolUse si fuera estrictamente necesario. Si el equipo no sabe cómo, el hook se vuelve un freno injusto.

acción 03

Preparar el repo del workshop

Verifica que el repo donde corre el workshop principal tiene Node 20+, API key, y los hooks/agents del setup base.

Workshop principal: 16 ejercicios sobre el mismo repo, ahora con la herramienta lista. La continuidad es directa — todo lo que escribiste aquí va a usarse desde el primer ejercicio.

credicorp · vibe coding55 / 55