¿Qué hace Agentic OS?
Trata a Claude Code como un runtime / sistema operativo persistente en lugar de una sesión de chat. Este skill codifica la arquitectura utilizada por configuraciones agentic de producción: un kernel que enruta tareas a agentes especialistas, memoria persistente basada en archivos, automatización programada y una capa de datos JSON/markdown.
Cuándo activarlo
- Construir un flujo de trabajo multi-agente dentro de Claude Code
- Configurar automatización persistente de Claude Code que sobreviva a reinicios de sesión
- Crear un "SO personal" o "SO agentic" para tareas recurrentes
- El usuario dice "SO agentic", "SO personal", "multi-agente", "coordinador de agentes", "agente persistente"
- Estructurar proyectos de larga duración donde el contexto debe sobrevivir entre sesiones
Resumen de arquitectura
El SO Agentic tiene cuatro capas. Cada capa es un directorio en la raíz del proyecto.
raiz-del-proyecto/
├── CLAUDE.md # Kernel: identidad, reglas de enrutamiento, registro de agentes
├── agents/ # Definiciones de agentes especialistas (prompts markdown)
├── .claude/commands/ # Comandos slash: CLI para el usuario
├── scripts/ # Scripts daemon: tareas programadas o basadas en eventos
└── data/ # Estado: sistema de archivos JSON/markdown, sin BD externa
Responsabilidades de las capas
| Capa | Propósito | Persistencia |
|---|---|---|
Kernel (CLAUDE.md) | Identidad, enrutamiento, políticas de modelo, registro de agentes | Git-tracked |
Agentes (agents/) | Identidades especialistas con herramientas y memoria limitadas | Git-tracked |
Comandos (.claude/commands/) | Comandos slash para el usuario (/daily-sync, /outreach) | Git-tracked |
Scripts (scripts/) | Daemons Python/JS activados por cron o webhooks | Git-tracked |
Estado (data/) | Registros de solo añadir, estado del proyecto, registros de decisiones | Git-ignored o tracked |
El Kernel
CLAUDE.md es el kernel. Actúa como el COO / orquestador. Claude lo lee al inicio de la sesión y lo usa para enrutar el trabajo.
Estructura del Kernel
# CLAUDE.md - Kernel del SO Agentic
## Identidad
Eres el COO de [nombre-del-proyecto]. Enrutas tareas a agentes especialistas.
Nunca escribes código directamente. Delegas al agente correcto y sintetizas resultados.
## Registro de Agentes
| Agente | Rol | Disparador |
|---|---|---|
| @dev | Código, arquitectura, depuración | El usuario dice "construir", "arreglar", "refactorizar" |
| @writer | Documentación, contenido, correos | El usuario dice "escribir", "borrador", "blog" |
| @researcher | Investigación, análisis, verificación de hechos | El usuario dice "investigar", "analizar", "comparar" |
| @ops | DevOps, despliegue, infraestructura | El usuario dice "desplegar", "CI", "servidor" |
## Reglas de enrutamiento
1. Analiza la solicitud del usuario en busca de palabras clave de intención
2. Coincide con la columna de disparadores del Registro de Agentes
3. Carga el archivo del agente correspondiente desde `agents/<nombre>.md`
4. Entrega la ejecución con contexto completo
5. Sintetiza y presenta el resultado al usuario
## Políticas de modelo
- Modelo predeterminado: usar el repositorio o el valor predeterminado del harness.
- Tareas @dev: preferir un modelo de razonamiento superior para arquitectura compleja.
- Tareas @researcher: usar el modelo con capacidad de investigación configurado y las herramientas de búsqueda aprobadas.
- Límite de costo: advertir antes de superar el umbral de gasto configurado del proyecto.
Principio clave
El kernel debe ser pequeño y declarativo. La lógica de enrutamiento vive en tablas markdown simples, no en código. Esto hace que el sistema sea inspeccionable y editable sin depuración.
Agentes Especialistas
Cada agente es un archivo markdown independiente en agents/. Claude carga el archivo del agente relevante al enrutar una tarea.
Formato de definición de agente
# @dev - Ingeniero de Software
## Identidad
Eres un ingeniero de software senior. Escribes código limpio, probado y de calidad de producción.
Prefieres soluciones simples. Haces preguntas aclaratorias cuando los requisitos son ambiguos.
## Alcance de memoria
- Lee `data/projects/<proyecto-actual>.md` para contexto
- Lee `data/decisions/` para decisiones arquitectónicas
- Añade registros de ejecución a `data/logs/<fecha>[email protected]`
## Acceso a herramientas
- Acceso completo al sistema de archivos dentro de la raíz del proyecto
- Operaciones Git (status, diff, commit, branch)
- Acceso al ejecutor de pruebas
- Servidores MCP según configurado en `.claude/mcp.json`
## Restricciones
- Siempre escribe pruebas para nuevas funcionalidades
- Nunca hagas commit directamente a `main`; usa ramas de características
- Prefiere editar archivos existentes sobre crear nuevos
- Mantén las funciones por debajo de 50 líneas cuando sea posible
Patrón de colaboración multi-agente
Cuando una tarea abarca varios agentes, el kernel los ejecuta secuencialmente o en paralelo:
Usuario: "Construye una página de aterrizaje y escribe la publicación del blog de lanzamiento"
Enrutamiento del kernel:
1. @dev - "Construye una página de aterrizaje con [requisitos]"
2. @writer - "Escribe una publicación de blog de lanzamiento para [producto] usando el texto de la página de aterrizaje"
3. El kernel sintetiza ambas salidas en una respuesta unificada
Para ejecución paralela, usa la capacidad de tareas en segundo plano de Claude Code o scripts shell que invocan Claude Code con contextos de agente específicos.
Comandos y flujos de trabajo diarios
Los comandos slash son archivos markdown en .claude/commands/. Definen flujos de trabajo reutilizables.
Estructura del comando
# /daily-sync
Ejecuta la reunión matutina:
1. Lee `data/logs/last-sync.md` para contexto
2. Verifica el estado del proyecto: `git status`, PRs pendientes, salud de CI
3. Revisa `data/inbox/` en busca de nuevas tareas o decisiones necesarias
4. Genera un resumen de bloqueos, prioridades y próximas acciones
5. Añade el informe a `data/logs/daily/<fecha>.md`
Conjunto estándar de comandos
| Comando | Propósito |
|---|---|
/daily-sync | Reunión matutina: estado, bloqueos, prioridades |
/outreach | Ejecutar flujo de outreach (correo, LinkedIn, etc.) |
/research <tema> | Investigación profunda con seguimiento de citas |
/apply-jobs | Personalizar CV + carta de presentación para un rol objetivo |
/analytics | Obtener métricas de Stripe, GitHub u orígenes personalizados |
/interview-prep | Generar tarjetas de estudio o preguntas de entrevista simulada |
/decision <tema> | Registrar una decisión con pros/contra y ruta elegida |
Cómo activar comandos
Coloca archivos de comando en .claude/commands/<nombre-comando>.md. Claude Code los descubre automáticamente. Los usuarios los invocan con /<nombre-comando>.
Memoria persistente
La memoria se basa en archivos. Sin BD vectorial, sin Redis, sin PostgreSQL. Los archivos JSON y markdown en data/ son la base de datos.
Estructura del directorio de memoria
data/
├── daily-logs/ # Registros de actividad diaria de solo añadir
├── projects/ # Archivos de contexto por proyecto
├── decisions/ # Decisiones arquitectónicas y de negocio (formato ADR)
├── inbox/ # Nuevas tareas o ideas pendientes de clasificación
├── contacts/ # Personas, empresas, notas de relaciones
└── templates/ # Prompts y formatos reutilizables
Formato del registro diario
# 2026-04-22 - Registro Diario
## Sesiones
- 09:00 - Sesión 1: Refactorización del módulo de autenticación (@dev)
- 11:30 - Sesión 2: Redacción de actualización para inversores (@writer)
## Decisiones
- Cambio de JWT a cookies de sesión (ver `data/decisions/2026-04-22-auth.md`)
## Bloqueos
- Esperando clave API del proveedor (seguimiento 2026-04-24)
## Próximas Acciones
- [ ] Fusionar PR de refactorización de autenticación
- [ ] Enviar actualización para inversores para revisión
Patrón de autorreflexión
Al final de cada sesión, el kernel añade una reflexión:
## Reflexión - Sesión 3
- Lo que funcionó: La ejecución paralela de agentes ahorró 20 minutos
- Lo que no: @researcher encontró una fuente detrás de muro de pago, se necesita mejor clasificación de fuentes
- Qué cambiar: Añadir campo `source-tier` a las notas de investigación (credibilidad A/B/C)
Esto crea un bucle de retroalimentación que mejora el sistema con el tiempo sin cambios de código.
Automatización programada
Las tareas del SO Agentic se ejecutan según un horario usando cron externo, no el cron integrado de Claude Code (que muere cuando la sesión termina).
macOS: LaunchAgent
<!-- ~/Library/LaunchAgents/com.agentic.daily-sync.plist -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" ...>
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.agentic.daily-sync</string>
<key>ProgramArguments</key>
<array>
<string>/claude</string>
<string>--cwd</string>
<string>/path/to/project</string>
<string>--command</string>
<string>/daily-sync</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>8</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
<key>StandardOutPath</key>
<string>/tmp/agentic-daily-sync.log</string>
</dict>
</plist>
Linux: systemd Timer
# ~/.config/systemd/user/agentic-daily-sync.service
[Unit]
Description=Sincronización Diaria del SO Agentic
[Service]
Type=oneshot
ExecStart=/usr/local/bin/claude --cwd /path/to/project --command /daily-sync
# ~/.config/systemd/user/agentic-daily-sync.timer
[Unit]
Description=Ejecutar sincronización diaria cada mañana
[Timer]
OnCalendar=*-*-* 8:00:00
Persistent=true
[Install]
WantedBy=timers.target
Multiplataforma: pm2
# ecosystem.config.js
module.exports = {
apps: [{
name: 'agentic-daily-sync',
script: 'claude',
args: '--cwd /path/to/project --command /daily-sync',
cron_restart: '0 8 * * *',
autorestart: false
}]
};
Capa de datos
La capa de datos es tu sistema de archivos. Usa JSON para datos estructurados y markdown para contenido narrativo.
JSON para estado estructurado
// data/projects/website-v2.json
{
"name": "Website v2",
"status": "en-progreso",
"milestone": "lanzamiento-beta",
"agents_involved": ["@dev", "@writer"],
"files": {
"spec": "docs/website-v2-spec.md",
"design": "designs/website-v2.fig"
},
"metrics": {
"commits": 47,
"last_session": "2026-04-22T11:30:00Z"
}
}
Markdown para narrativa
Usa markdown para cualquier cosa que un humano lea: decisiones, registros, notas de investigación, registros de contactos.
Evolución del esquema
Nunca renombres campos existentes. Añade nuevos campos y marca los antiguos como obsoletos:
{
"name": "Website v2",
"status": "en-progreso",
"milestone": "lanzamiento-beta",
"_deprecated_priority": "alta",
"priority_v2": { "level": "alta", "rationale": "Bloquea demo para inversores" }
}
Esto mantiene los datos históricos legibles sin scripts de migración.
Antipatrones
Agente único monolítico
# MALO - Un agente hace todo
Eres un desarrollador full-stack, escritor, investigador e ingeniero DevOps.
Divide en agentes especialistas. El kernel maneja el enrutamiento.
Sesiones sin estado
# MALO - Sin memoria entre sesiones
Empezando desde cero cada vez que se abre Claude Code.
Siempre lee data/ al inicio de la sesión y escribe al final.
Credenciales hardcodeadas
# MALO - Claves API en archivos de agente o CLAUDE.md
Tu clave API de OpenAI es sk-xxxxxxxx
Usa variables de entorno o un archivo .env cargado por scripts. Los agentes referencian process.env.API_KEY.
Base de datos externa para estado simple
# MALO - PostgreSQL para el SO agentic de un usuario individual
Usa archivos JSON/markdown hasta que tengas múltiples usuarios concurrentes o GBs de datos.
Enrutamiento sobrediseñado
# MALO - Lógica de enrutamiento en código en lugar de tablas markdown
if (intent.includes('deploy')) { agent = opsAgent; }
Mantén el enrutamiento declarativo en tablas markdown de CLAUDE.md. Es inspeccionable, editable y depurable.
Buenas prácticas
-
CLAUDE.mdtiene menos de 200 líneas y cabe en la ventana de contexto - Cada archivo de agente tiene menos de 100 líneas y se centra en un dominio
-
data/está git-ignored para registros sensibles, git-tracked para decisiones y especificaciones - Los comandos usan nombres imperativos:
/daily-sync, no/run-daily-sync - Los registros son de solo añadir; nunca editar registros diarios pasados
- Cada agente tiene una sección
Memory Scopeque define qué archivos lee - Las reflexiones se escriben al final de cada sesión
- Las tareas programadas usan cron externo (LaunchAgent, systemd, pm2), no el cron de sesión de Claude Code
- Seguimiento de costos: registra el gasto de API por sesión en
data/logs/<fecha>-costs.json - Un proyecto = un SO Agentic. No compartas un solo
CLAUDE.mdentre proyectos no relacionados.