Buenas Prácticas
Fundamentos
1. Arquitectura 2. Comparativa 3. Cuándo usar cada una
Filosofía
4. Stakeholder Trifecta 5. Anatomía del Prompt
Skills
6. Skills: Concepto 7. Skills: Ejemplo práctico
MCP
8. MCP: Concepto 9. MCP: Configuración
Slash Commands
10. Commands: Concepto 11. Commands: Ejemplos
Subagents
12. Subagents: Concepto 13. Subagents: Ejemplos
Antipatrones
14. Errores Comunes 15. Caso Real: memory-orchestrator 16. Checklist Final
Workflows Largos
17. Tu Flujo Actual 18. Patrón Avanzado: Agent Harness 19. Evolución: Básico → Avanzado
Tu Toolkit
20. Comandos Esenciales 21. CLAUDE.md vs /vault 22. API vs Suscripción 23. DirectOS: Prompt Builder
Memoria Evolutiva
24. El Concepto 25. System Prompt (p-prompt) 26. Integración en Proyectos
01

Arquitectura de Extensibilidad

Los 4 pilares de automatización en Claude Code

Skills

Comportamientos Automáticos
  • Extraer texto y datos de PDFs
  • Detectar violaciones de guía de estilo

MCP

Integraciones Externas
  • Conectar a Jira para tickets
  • Consultar bases de datos PostgreSQL
  • Obtener datos de APIs externas

Slash Commands

Disparadores Manuales
  • Crear componentes React desde plantilla
  • Generar mensajes de commit estandarizados

Subagents

Workflows Aislados
  • Debug de suites de tests fallidas
  • Auditorías de seguridad completas
  • Análisis de calidad en paralelo

Valoración

Skills y Slash Commands son los más accesibles para empezar. Los Skills actúan como "reflejos" del agente, mientras que los Slash Commands son atajos que tú controlas.

MCP es el puente con el mundo exterior - úsalo cuando necesites datos que Claude no tiene.

Subagents son el arma secreta para tareas pesadas que pueden correr en paralelo.

02

Comparativa de Extensiones

Características técnicas de cada tipo

Característica Skill MCP Subagent Slash Command
Disparado por Agente Ambos Ambos Usuario
Eficiencia de Contexto Alta Baja Alta Alta
Persistencia de Contexto
Paralelizable
Modularidad Alta Alta Media Media
Puede usar Subagents

Claves para elegir

Subagents son los únicos paralelizables, pero NO persisten contexto. Ideales para tareas independientes.

MCP tiene baja eficiencia de contexto porque cada llamada externa consume tokens.

Skills el agente decide cuándo usarlos automáticamente.

03

¿Cuándo usar cada extensión?

Guía de decisión rápida

Skills

  • Claude debe activarlo automáticamente
  • Es una "capacidad" del sistema
  • Se repite en múltiples contextos

Ejemplo: "Cuando veas un PDF, extrae el texto"

MCP Servers

  • Necesitas datos externos
  • Integración con servicios (Jira, GitHub, DB)
  • APIs que Claude no puede acceder directamente

Ejemplo: "Consulta los tickets de Jira"

Slash Commands

  • Quieres control explícito
  • Es una acción frecuente y rápida
  • Necesitas pasar argumentos específicos

Ejemplo: "/commit fix: corregir login"

Subagents

  • Tarea compleja y especializada
  • Puede correr en paralelo
  • No necesita contexto de conversación

Ejemplo: "Audita seguridad mientras sigo trabajando"

Mi recomendación

Empieza con Slash Commands - son los más fáciles de crear y entender. Luego avanza a Skills cuando veas patrones repetitivos. Usa MCP para integraciones y Subagents para tareas pesadas.

04

Stakeholder Trifecta

Los prompts se diseñan para 3 audiencias

Claridad Personal
  • ¿Entenderás esto en 6 meses?
  • ¿El nombre es descriptivo?
  • ¿La estructura es clara?

Tu Equipo

Colaboración
  • ¿Un colega nuevo lo entendería?
  • ¿Sigue convenciones del equipo?
  • ¿Es reutilizable?

Tus Agentes

Ejecución
  • ¿El workflow es secuencial?
  • ¿Las instrucciones son precisas?
  • ¿El output está definido?

El cambio mental

Antes: Prompts desechables

"Funciona para mí ahora mismo"

Ahora: Prompts como activos

"Esto generará horas de trabajo productivo"

Force Multiplier

La matemática

1 hora diseñando un buen prompt

= 100+ horas de trabajo productivo del agente

Los prompts bien construidos son una inversión, no un gasto.

05

Anatomía del Prompt Agéntico

Secciones composables como bloques de Lego

Las 6 secciones clave

1. Metadata — Configuración
allowed-tools, model, version
2. Title + Purpose — Identidad
name, description (qué + cuándo)
3. Workflow — S-TIER
Secuencia de pasos numerados
4. Variables — Contexto
$ARGUMENTS, $1, estáticas
5. Instructions — Cómo
Guías para ejecutar el workflow
6. Report — Output
Formato esperado de salida

Ejemplo completo

.claude/commands/analyze.md
---
description: Analiza código y genera reporte
allowed-tools: Read, Grep, Glob
argument-hint: [archivo o directorio]
---

# Analyzer Agent

## Variables
- TARGET: $ARGUMENTS (requerido)
- DEPTH: superficial | profundo

## Workflow
1. Leer el código en TARGET
2. Identificar patrones y problemas
3. Clasificar por severidad
4. Generar recomendaciones

## Instructions
- Si TARGET es directorio, analiza recursivo
- Prioriza seguridad sobre estilo
- Máximo 10 issues por archivo

## Report
```
## Resumen
[1-2 líneas]

## Issues
| Archivo | Línea | Severidad | Issue |
...

## Recomendaciones
1. ...
```
Workflow = S-Tier

La sección más importante. Define qué hace el agente paso a paso. Las instructions explican cómo.

06

Skills: Capacidades Automáticas

Claude decide cuándo usarlas basándose en el contexto

Estructura de archivos

.claude/skills/
├── pdf-processing/
│ ├── SKILL.md # Requerido
│ └── scripts/
│ └── extract.py
└── data-analysis/
└── SKILL.md

Ubicaciones válidas

Proyecto (compartido)

.claude/skills/

Personal (todos tus proyectos)

~/.claude/skills/

Anatomía del SKILL.md

SKILL.md - Frontmatter YAML
---
name: pdf-processing
description: Extrae texto de PDFs, rellena
  formularios. Úsalo cuando trabajes con
  archivos PDF o extracción de documentos.
allowed-tools: Read, Bash(python3:*), Write
version: 1.0.0
---

# Instrucciones detalladas aquí...
Clave: La descripción

Claude usa la descripción para decidir cuándo activar la skill. Sé específico sobre el "cuándo" y el "qué".

07

Skills: Ejemplo Práctico

Skill de análisis de datos con Python

.claude/skills/data-analysis/SKILL.md
---
name: data-analysis
description: Analiza archivos CSV/Excel,
  genera estadísticas y gráficos. Úsalo
  cuando trabajes con datos tabulares o
  necesites visualizaciones.
allowed-tools: Read, Write, Bash(python3:*)
version: 1.0.0
---

# Análisis de Datos

## Paso 1: Cargar datos
```python
import pandas as pd
df = pd.read_csv('datos.csv')
# o Excel:
df = pd.read_excel('datos.xlsx')
```

## Paso 2: Análisis exploratorio
```python
print(df.describe())  # Estadísticas
print(df.corr())      # Correlaciones
```

## Paso 3: Visualización
```python
import matplotlib.pyplot as plt
df['columna'].plot(kind='bar')
plt.savefig('grafico.png')
```

## Limitaciones
- Archivos menores a 100MB
- Máximo 1 millón de filas

Buenas Prácticas para Skills

Descripción específica
  • Incluye QUÉ hace y CUÁNDO usarla
  • Menciona formatos de entrada/salida
Una skill = una capacidad
  • Mantén cada skill enfocada
  • Si crece mucho, divide en varias
Restringe herramientas
  • Solo las necesarias: allowed-tools
  • Más seguro y predecible
Evita
  • Descripciones vagas: "Ayuda con cosas"
  • Mezclar responsabilidades
  • Hardcodear rutas absolutas
08

MCP: Integraciones Externas

Model Context Protocol - El puente con el mundo exterior

¿Qué es MCP?

MCP es un estándar abierto que permite conectar Claude Code con herramientas externas: APIs, bases de datos, servicios como GitHub, Jira, Notion, etc.

Servidores MCP populares

Servidor Uso
GitHub Repos, PRs, Issues
PostgreSQL Consultas SQL
Notion Docs, bases de datos
Slack Mensajes, canales
Browser Web scraping

Comandos esenciales

# Listar servidores configurados
claude mcp list

# Agregar servidor HTTP
claude mcp add --transport http \
  notion https://mcp.notion.com/mcp

# Agregar servidor local (stdio)
claude mcp add --transport stdio github \
  -e GITHUB_TOKEN=$GITHUB_TOKEN \
  -- npx -y @modelcontextprotocol/server-github

# Verificar estado
/mcp
Cuidado con el contexto

MCP tiene baja eficiencia de contexto. Cada llamada consume tokens. Úsalo para datos externos, no para lógica que Claude ya puede hacer.

09

MCP: Configuración

Archivo ~/.claude.json para múltiples servidores

~/.claude.json
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y",
        "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN":
          "${GITHUB_TOKEN}"
      }
    },
    "postgres": {
      "command": "npx",
      "args": ["-y",
        "@modelcontextprotocol/server-postgres"],
      "env": {
        "DATABASE_URL":
          "postgresql://user:pass@localhost/db"
      }
    },
    "notion": {
      "transport": "http",
      "url": "https://mcp.notion.com/mcp",
      "headers": {
        "Authorization": "Bearer ${NOTION_TOKEN}"
      }
    }
  }
}

Buenas Prácticas MCP

Usa variables de entorno

Nunca hardcodees tokens: ${GITHUB_TOKEN}

Scope apropiado
  • Usuario (~/.claude.json): tokens personales
  • Proyecto (.mcp.json): configs del equipo
HTTP vs Stdio
  • HTTP: Servidores remotos, más fácil
  • Stdio: Local, requiere Node/Python
Evita
  • Tokens en el código fuente
  • Commits de .claude.json con secretos
  • Demasiados servidores activos (consume recursos)
10

Slash Commands: Atajos Manuales

Tú decides exactamente cuándo ejecutarlos

Estructura de archivos

.claude/commands/
├── commit.md # /commit
├── code-review.md # /code-review
├── db/
│ ├── backup.md # /db/backup
│ └── restore.md # /db/restore
└── test/
└── run.md # /test/run

Variables disponibles

Variable Descripción
$ARGUMENTS Todo el texto después del comando
$1, $2... Argumentos posicionales

Anatomía del comando

.claude/commands/commit.md
---
description: Crea commit con mensaje convencional
allowed-tools: Bash(git:*)
argument-hint: [tipo] [mensaje]
---

Crea un commit git siguiendo convenciones:

## Tipos válidos:
- feat: Nueva funcionalidad
- fix: Corrección de bug
- docs: Documentación
- refactor: Refactorización

## Proceso:
1. git add -A
2. git commit -m "$1: $ARGUMENTS"

Ejemplo de uso:
/commit feat agregar login con OAuth
11

Slash Commands: Ejemplos Útiles

Comandos que recomiendo crear en cualquier proyecto

/code-review - Code Review

Analiza código para calidad y seguridad

---
description: Revisa código para calidad
allowed-tools: Read, Grep, Glob
---

Analiza el código en: $ARGUMENTS

Busca:
1. Vulnerabilidades de seguridad
2. Code smells
3. Oportunidades de refactor
4. Tests faltantes

Reporta con archivo:línea

/test - Ejecutar tests

Corre tests y analiza fallos

---
description: Ejecuta tests y analiza fallos
allowed-tools: Bash(npm test:*), Read
argument-hint: [archivo o patrón]
---

1. Ejecuta: npm test $ARGUMENTS
2. Si hay fallos, analiza el error
3. Sugiere correcciones específicas
4. Muestra el código problemático

/doc - Generar documentación

Crea README o docs de API

---
description: Genera documentación
allowed-tools: Read, Write, Glob
argument-hint: [archivo o directorio]
---

Genera documentación para: $ARGUMENTS

Incluye:
- Descripción del propósito
- Parámetros y tipos
- Ejemplos de uso
- Casos edge

/security - Auditoría rápida

Escanea vulnerabilidades comunes

---
description: Escanea vulnerabilidades
allowed-tools: Grep, Glob, Read
---

Busca en el código:
- Contraseñas hardcodeadas
- SQL injection
- XSS vulnerabilities
- Secrets expuestos
- APIs inseguras

Reporta: CRÍTICO/ALTO/MEDIO/BAJO

/reproduce-prompt - Prompt de Reproducción

Genera el prompt para recrear el proyecto con IA

---
description: Genera prompt para reproducir proyecto
allowed-tools: Read, Glob, Grep
---

Analiza el proyecto y genera un prompt que
permita a Claude Code recrearlo desde cero.

1. Lee CLAUDE.md, README.md, dependencias
2. Analiza estructura y arquitectura
3. Detecta stack, CLI, API, convenciones
4. Genera prompt estructurado
5. Ofrece añadirlo al README
12

Subagents: Especialistas Paralelos

Agentes con contexto independiente para tareas complejas

¿Por qué usar Subagents?

Contexto limpio

Cada subagent tiene su propio contexto. No hay "contaminación" de otras tareas.

Paralelización

Puedes lanzar varios subagents simultáneamente mientras sigues trabajando.

Especialización

Cada uno tiene su system prompt optimizado para una tarea específica.

Estructura de archivos

.claude/agents/
├── code-reviewer.md
├── security-auditor.md
├── test-writer.md
└── doc-writer.md

Anatomía del Subagent

.claude/agents/code-reviewer.md
---
name: code-reviewer
description: Experto en revisión de código.
  Revisa calidad, seguridad y mantenibilidad.
  Úsalo después de escribir código.
model: opus
tools: Read, Grep, Glob
disallowedTools: Write, Edit
---

# Senior Code Reviewer

Eres un revisor senior con 15+ años
de experiencia.

## Tu proceso:
1. Lee el código modificado
2. Identifica problemas de calidad
3. Busca vulnerabilidades
4. Sugiere mejoras concretas

## Formato de reporte:
**Línea XX**: [SEVERIDAD] - Problema
Sugerencia: código mejorado
13

Subagents: Ejemplos Recomendados

Los 4 subagents que todo proyecto debería tener

Security Auditor

model: opus read-only

Audita OWASP Top 10, busca secrets expuestos, valida inputs.

disallowedTools: Write, Edit, Bash
# Solo puede leer, nunca modificar

Test Writer

model: sonnet can write

Escribe tests unitarios, integración. Cobertura mínima 80%.

tools: Read, Write, Bash(npm test:*)
# Puede escribir tests y ejecutarlos

Performance Analyst

model: sonnet read-only

Identifica bottlenecks, N+1 queries, memory leaks.

tools: Read, Grep, Glob, Bash
# Puede ejecutar profilers

Documentation Writer

model: sonnet can write

Genera README, API docs, guías de usuario.

tools: Read, Write, Glob
# Lee código, escribe documentación

Modelo según complejidad

Opus: Tareas críticas (seguridad, arquitectura) - más caro pero más profundo

Sonnet: Balance general - la mayoría de tareas

Haiku: Tareas simples y rápidas - 3x más económico

14

Antipatrones Comunes

Errores que consumen tokens y frustran

Sin Frontmatter YAML

El comando funciona pero no aparece en listados y no tiene restricciones de herramientas.

# Mi comando genial

Haz esto y aquello...

# Falta el frontmatter:
# ---
# description: ...
# allowed-tools: ...
# ---

Comando Demasiado Largo

+300 líneas = consume contexto innecesariamente. Divide en comandos más pequeños.

# vault.md (330 líneas)
# Actualiza: knowledge-base, dashboard,
# tools/, projects/, patterns/

# Mejor dividir:
# /vault        → knowledge-base
# /vault/tool   → tools/
# /vault/project → projects/

Rutas Hardcodeadas

Poco portable. Si cambias de máquina o reorganizas, se rompe todo.

# Malo:
~/Desktop/DirectOS/data/content/
~/learning-journey/knowledge-base.md

# Mejor: usar variables o rutas relativas
$PROJECT_ROOT/content/
./knowledge-base.md

Reinventar lo Nativo

Claude Code ya tiene memoria, resúmenes automáticos, y CLAUDE.md. No crees agentes para replicar esto.

# Innecesario:
"Agente para conservar memoria
 y contexto entre sesiones"

# Ya existe:
- CLAUDE.md (contexto de proyecto)
- Resúmenes automáticos
- /vault para persistir a archivos

Regla de oro

Antes de crear un agente o skill, pregúntate: ¿Claude ya hace esto de forma nativa? Si la respuesta es sí, probablemente solo necesitas un slash command simple o nada.

15

Caso Real: memory-orchestrator

Análisis de un agente que no funcionó

El agente original

---
name: memory-orchestrator
description: Use this agent when the
  user needs to manage long-running,
  multi-phase projects that require
  context preservation across
  conversation sessions...
  [+800 caracteres con ejemplos]
model: haiku
---

# Tu Rol Principal
Gestionar la memoria y contexto de
proyectos multifase, creando documentos
guía que permitan:
- Preservar estado entre sesiones
- Permitir clear sin pérdida
- Continuar fase por fase
Resultado

Quemaba tokens para algo que Claude ya hace automáticamente.

Los problemas

1. Modelo incorrecto

model: haiku para gestión compleja de contexto. Haiku es para tareas simples y rápidas.

2. Descripción excesiva

~1000 caracteres con ejemplos en el frontmatter. Los ejemplos van en el body.

3. Reinventa lo nativo

Claude ya tiene: CLAUDE.md, resúmenes automáticos, memoria de sesión.

4. Subagents NO persisten

Slide 2: Subagents tienen Context Persistence: ✗. No pueden "recordar" entre sesiones.

La solución correcta

Usar /vault (slash command)

Sesión → /vault (guarda a archivos) → clear → nueva sesión → Claude lee archivos automáticamente

16

Checklist Final

Antes de crear cualquier extensión

Preguntas obligatorias

1. ¿Claude ya lo hace?
  • Memoria de sesión → Ya existe
  • Resúmenes → Ya existe
  • Leer archivos → Ya existe
  • Contexto de proyecto → CLAUDE.md
2. ¿Qué tipo necesito?
  • Automático → Skill
  • Manual y rápido → Slash Command
  • Paralelo y complejo → Subagent
  • Datos externos → MCP
3. ¿Tengo frontmatter?
  • description - obligatorio
  • allowed-tools - recomendado
  • model - solo si necesitas otro

Validación rápida

Check Criterio
Tiene frontmatter YAML
Descripción < 200 caracteres
Menos de 100 líneas (idealmente)
Sin rutas hardcodeadas
Una responsabilidad
No replica funcionalidad nativa
Modelo apropiado al costo

Filosofía

Menos es más. Un slash command de 20 líneas que hace una cosa bien es mejor que un agente de 200 líneas que intenta hacer todo.

KISS + DRY + Incremental

17

Tu Flujo Actual

Patrón básico de persistencia entre sesiones

El patrón que usas

Sesión 1
Trabajo en proyecto multifase
/vault
Guarda progreso en documentos
clear
Contexto fresco
Sesión 2
Lee documentos → continúa

Fortalezas

Simple y funcional
  • No requiere setup complejo
  • Documentos legibles por humanos
  • /vault automatiza la persistencia

Limitaciones

Documento en prosa
  • Claude debe interpretar qué está hecho
  • No hay fuente de verdad objetiva
  • Depende de tu memoria para actualizar
Sin verificación automática
  • No hay tests que validen progreso
  • Puedes marcar algo "hecho" que no funciona
  • Regresiones pasan desapercibidas

Veredicto

Funciona bien para proyectos pequeños/medianos. Para proyectos grandes (+50 features), necesitas algo más estructurado.

18

Patrón Avanzado: Long-Running Agent Harness

Proyectos de 200+ features con contexto fresco

Arquitectura

SESSION 1: Initializer Agent
app_spec.txt → feature_list.json (200+ tests)
→ claude-progress.txt → init.sh → scaffold
↓ creates
CORE ARTIFACTS (Shared State)
feature_list.json - Source of truth
claude-progress.txt - Handoff notes
init.sh - Bootstrap script
↓ reads/updates
SESSIONS 2-N: Coding Agent Loop
1. Get Bearings (read files, git log)
2. Regression Test (verify passing)
3. Pick Next Feature (passes: false)
4. Implement & Test
5. Update & Commit
↻ Loop until all tests pass

El secreto: feature_list.json

{
  "features": [
    {
      "id": 1,
      "name": "User authentication",
      "passes": true,
      "test": "npm test auth"
    },
    {
      "id": 2,
      "name": "Dashboard view",
      "passes": true,
      "test": "npm test dashboard"
    },
    {
      "id": 3,
      "name": "Export to PDF",
      "passes": false,  // ← Próximo
      "test": "npm test export"
    }
  ]
}
Por qué funciona
  • Parseable: Claude no interpreta, lee JSON
  • Tests = verdad: passes:true solo si el test pasa
  • Automatizable: El loop puede correr solo
  • Fresh context: Cada sesión empieza limpia

Clave mental

Los archivos son la memoria. Los tests son la verdad. El agente solo ejecuta el loop.

19

Evolución: Básico → Avanzado

Cómo migrar tu flujo actual al patrón avanzado

Comparativa

Aspecto Tu flujo Avanzado
Estado Prosa (MD) Estructurado (JSON)
Verdad Tu criterio Tests automatizados
Progreso Manual Automático
Regresiones No detectadas Tests las capturan
Setup Ninguno Initializer + JSON
Ideal para 1-20 features 50-200+ features

Pasos para migrar

1. Crea feature_list.json

Convierte tu documento de fases en JSON con passes: true/false

2. Añade tests básicos

Aunque sean smoke tests, tener algo verificable

3. Crea /harness command

Un slash command que ejecute el loop automáticamente

Ejemplo: Tu /vault evolucionado

~/.claude/commands/harness.md
---
description: Ejecuta loop de desarrollo hasta completar features
allowed-tools: Read, Write, Bash(npm:*), Bash(git:*)
---

# Agent Harness Loop

## 1. Get Bearings
- Lee feature_list.json
- Lee claude-progress.txt
- git log --oneline -5

## 2. Regression Test
- npm run test
- Si falla algo que pasaba → arreglar primero

## 3. Pick Next Feature
- Busca en feature_list.json: passes: false
- Selecciona el primero

## 4. Implement & Test
- Implementa la feature
- Corre el test específico
- Si pasa → actualiza JSON

## 5. Update & Commit
- feature_list.json → passes: true
- claude-progress.txt → notas
- git commit -m "feat: {feature name}"

## 6. ¿Continuar?
- Si hay más features: sugiere continuar
- Si contexto lleno: sugiere clear + /harness

El upgrade mental

Antes: "Creo que ya terminé esta parte"

Después: "El test pasa, está terminado"

20

Tu Toolkit de Comandos

5 comandos esenciales instalados en ~/.claude/commands/

/code-review

Code review de calidad, seguridad y mantenibilidad

/code-review src/auth/
/code-review main.py

Analiza:
- Calidad (nombres, complejidad, DRY)
- Seguridad (OWASP Top 10)
- Mantenibilidad (tipos, tests)

Output: CRÍTICO | ALTO | MEDIO | BAJO

/test

Ejecuta tests, analiza fallos y sugiere correcciones

/test
/test auth.test.ts

Detecta framework automáticamente:
- npm test / jest / vitest
- pytest
- go test / cargo test

Si falla: analiza causa + sugiere fix

/doc

Genera documentación técnica desde código

/doc readme     → README.md completo
/doc src/api.ts → Doc de ese archivo
/doc src/       → Índice del directorio

Incluye:
- Ejemplos reales del código
- Estructura detectada
- API/endpoints

/security

Auditoría OWASP Top 10 + secrets expuestos

/security
/security src/

Busca:
- API keys, passwords hardcodeados
- SQL injection, XSS
- Input sin validar
- npm audit / pip-audit

Output: 🔴 CRÍTICO → 🔵 BAJO

/refactor

Analiza código y sugiere mejoras

/refactor src/utils.ts
/refactor lib/

Detecta:
- Funciones largas (+30 líneas)
- Código duplicado
- God classes
- Dead code

Prioriza: Impacto × Esfuerzo

Tu toolkit actual

Comandos en ~/.claude/commands/

~/.claude/commands/
├── vault.md         # Persistencia
├── scan-projects.md # Detectar proyectos
├── code-review.md   # Code review
├── test.md          # Tests
├── doc.md           # Documentación
├── security.md      # Auditoría
├── refactor.md      # Mejoras
└── update-context.md # Actualizar CLAUDE.md

Workflow recomendado

/code-review después de escribir código → /test para validar → /security antes de commit → /doc al completar feature → /vault al final de sesión

21

CLAUDE.md vs /vault

Dos mecanismos complementarios, no competidores

CLAUDE.md

Contexto de Proyecto

Archivo en la raíz del proyecto que Claude lee automáticamente al inicio de cada sesión.

Lectura: Automática

Claude lo lee sin que lo pidas

Escritura: Manual

NO se actualiza solo. Debes editarlo tú o usar /update-context

Contenido típico
  • Estructura del proyecto
  • Comandos de desarrollo
  • Decisiones arquitectónicas
  • Configuración especial

/vault (tu comando)

Diario de Aprendizaje Personal

Sistema de archivos personales que persisten conocimiento entre proyectos.

Lectura: Manual

Claude no lo lee automáticamente (está fuera del proyecto)

Escritura: Manual

Ejecutas /vault cuando quieres guardar

Contenido típico
  • Lecciones aprendidas
  • Patrones descubiertos
  • Tools y snippets útiles
  • Notas de todos tus proyectos

¿Por qué ambos?

CLAUDE.md = "Lo que Claude debe saber de ESTE proyecto" (scope: proyecto)

/vault = "Lo que yo quiero recordar de TODO lo que aprendo" (scope: personal)

Nuevo comando: /update-context para mantener CLAUDE.md actualizado con cambios recientes del proyecto.

22

API vs Suscripción

Usa tu suscripción Pro/Max en lugar de pagar por tokens

El problema común

Proyectos que usan API directa

Muchos tutoriales y proyectos usan la librería anthropic:

import anthropic

client = anthropic.Anthropic()  # API_KEY
response = client.messages.create(
    model="claude-sonnet-4-20250514",
    messages=[{"role": "user", "content": prompt}]
)
# → PAGA POR TOKENS 💸
Resultado
  • Necesitas ANTHROPIC_API_KEY
  • Pagas por cada token
  • Separado de tu suscripción

La solución: claude -p

Usa tu suscripción Pro/Max

Claude Code CLI puede ejecutarse desde Python:

import subprocess
import json

result = subprocess.run(
    ["claude", "-p", prompt,
     "--output-format", "json"],
    capture_output=True, text=True
)

response = json.loads(result.stdout)
# → USA TU SUSCRIPCIÓN ✅
Ventajas
  • Sin API key adicional
  • Incluido en tu suscripción
  • Mismo Claude, sin costo extra

La clave

claude -p "prompt" usa tu suscripción, no la API.

Ejemplo real: VideoNotes adaptado con --claude-code para resumir videos sin pagar tokens.

23

DirectOS: Tu Cockpit de Prompts

Constructor visual de prompts agénticos con el patrón de 6 secciones

Prompt Builder Pro

Anatomía de un Prompt Agéntico
1. METADATA
→ description, tools, argument-hint
2. VARIABLES
→ dinámicas ($ARGUMENTS) y estáticas
3. WORKFLOW ★ S-TIER
→ pasos secuenciales (QUÉ hacer)
4. INSTRUCTIONS
→ reglas y guías (CÓMO hacerlo)
5. REPORT
→ formato exacto de salida
Force Multiplier

1 hora diseñando prompts = 100+ horas de trabajo productivo

8 Plantillas Precargadas

📋
/code-review
📝
/doc
🧪
/test
🛡️
/security
🔧
/refactor
📦
/vault
🔍
/scan-projects
📝
/update-context
Flujo de trabajo
  1. Selecciona plantilla o crea desde cero
  2. Edita las 6 secciones visualmente
  3. Valida con checklist en tiempo real
  4. Instala directo a ~/.claude/commands/

Stakeholder Trifecta

Todo prompt agéntico se diseña para 3 audiencias:

👤 Tú (¿Lo entenderé en 6 meses?) • 👥 Tu Equipo (¿Un colega nuevo lo entendería?) • 🤖 Tus Agentes (¿El workflow es ejecutable?)

24

Memoria Evolutiva

El principio que multiplica todo lo demás

El Problema

Sin Memoria Con Memoria
Proyecto N = mismo esfuerzo Proyecto N = fracción del esfuerzo
Conocimiento encerrado en código Conocimiento conectado
Claude genérico Claude-TÚ

El Efecto Flywheel

Usas el sistemaMemoria aprendeClaude te conoce
↑ Trabajas más rápido ←←←←←←←←←←←←←←←

Implementación (DirectOS v10.9)

MINEROS BRAIN
  • System Prompt - Identidad consistente
  • Context Builder - Contexto dinámico
  • JSON Parser - Auto-repara respuestas
MINEROS MEMORY
  • trackNodeUsed() - Qué usas más
  • trackSuggestion() - Qué aceptas/rechazas
  • getSummaryForClaude() - Contexto para LLM

Proyección

ProyectoEficiencia
#11.0x (baseline)
#14~2.5x
#50~5x

El Insight Clave

La diferencia entre usar IA y tener IA que te conoce.

Todos usan Claude. Solo TÚ tendrías Claude que conoce tu ecosistema, tus patrones, tus preferencias.

25

System Prompt (p-prompt)

La identidad persistente de tu asistente

¿Qué es?

El system prompt es la instrucción inicial que define la personalidad, conocimiento y comportamiento del LLM.

Con claude -p "prompt" puedes inyectar contexto personalizado.

Anatomía de un Buen System Prompt

## Tu Identidad
- Nombre y rol específico
- Ecosistema que conoces
## Tu Conocimiento
- Herramientas disponibles
- Patrones del usuario
## Reglas de Respuesta
- Formato preferido
- Qué evitar

Ejemplo Real (DirectOS)

const MINEROS_SYSTEM_PROMPT = `
Eres DirectOS Assistant.

## Tu Conocimiento
- 36 nodos: Trigger, Proceso, IA, Storage, Flow, Output
- Ecosistema: DirectOS, Dashboard Mobile, Vault

## Reglas
1. Usa IDs exactos de nodos
2. JSON sin markdown
3. Respuestas concisas
`;

Buenas Prácticas

  • Identidad clara y específica
  • Lista de herramientas/nodos
  • Reglas de formato explícitas
  • Contexto dinámico (inyectado)
  • Prompts genéricos sin contexto
  • Identidad vaga ("eres un asistente")
  • Sin reglas de formato

La Fórmula

System Prompt + Contexto Dinámico + Memoria = Claude Personalizado

26

Integración en Proyectos

Cómo llevar Memoria Evolutiva a tu ecosistema

Patrón de Implementación

// 1. SYSTEM PROMPT centralizado
const SYSTEM_PROMPT = `...`;

// 2. CONTEXT BUILDER dinámico
function buildContext(options) {
return { pipeline, history, memory };
}

// 3. MEMORY persistente
const Memory = {
track(), load(), save(),
getSummaryForLLM()
};

// 4. API UNIFICADA
async function askLLM(prompt) {
const ctx = buildContext();
return fetch('/api/ask', {...});
}

Qué Trackear

MétricaPor qué
Acciones frecuentesSugerir atajos
Secuencias repetidasDetectar workflows
Sugerencias aceptadasMejorar precisión
Errores comunesPrevenir proactivamente

Almacenamiento

  • localStorage - Web apps (simple, inmediato)
  • SQLite - Apps desktop/móvil
  • CLAUDE.md - Contexto de proyecto
  • knowledge-base.md - Conocimiento global

El Ciclo Completo

Usuario actúaSistema trackeaMemoria actualiza

LLM recibe contexto enriquecidoMejor respuesta

Regla de Oro

Cada interacción debe enseñar algo al sistema. Si no estás trackeando, estás perdiendo conocimiento.