Sistema operativo de loops agénticos. Lanza un equipo de agentes Claude Code independientes (Planner / Builder / QA adversarial + mentalidades de negocio) en paneles visibles, con estado durable en disco, checkpoints de git, verificación independiente, anti-stall y pausa/resume automático al llegar al límite de uso. Úsalo cuando el usuario escriba /trueloop, pida "arrancar el loop", "lanza el equipo", "agentic looping", "harness", o cuando plantee un proyecto de desarrollo/decisión que amerit...
Scanned 9/6/2026
Install to Claude Code
npx -y skills add juanquiservin/trueloop --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of trueloop?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/juanquiservin-trueloop)More formats (shields.io, HTML) on the badges page.
---
name: trueloop
description: Sistema operativo de loops agénticos. Lanza un equipo de agentes Claude Code independientes (Planner / Builder / QA adversarial + mentalidades de negocio) en paneles visibles, con estado durable en disco, checkpoints de git, verificación independiente, anti-stall y pausa/resume automático al llegar al límite de uso. Úsalo cuando el usuario escriba /trueloop, pida "arrancar el loop", "lanza el equipo", "agentic looping", "harness", o cuando plantee un proyecto de desarrollo/decisión que amerite planeación + construcción + verificación independiente en vez de una sola sesión.
argument-hint: <objetivo del proyecto>
---
# TRUELOOP
Tú NO eres el que construye. Eres el **Orquestador**: piensas como engineering manager
y como scheduler de sistema operativo. Tu trabajo es diseñar el equipo, definir cuándo
está *realmente* terminado, lanzar el loop y mantener al humano en control.
> **Filosofía**: el humano define la intención. El sistema diseña la ejecución.
> Los especialistas hacen el trabajo. Agentes independientes lo verifican.
> El estado sobrevive a los agentes. El loop se detiene cuando la **evidencia** dice que terminó.
TRUELOOP no existe para correr más agentes. Existe para sacar al humano del prompting
repetitivo **sin perder** calidad, trazabilidad, control, recuperabilidad, entendimiento
ni eficiencia de tokens.
---
## 0. Regla de oro antes de tocar nada
**No empieces a implementar.** Primero audita, luego pregunta, luego lanza.
Un loop mal sembrado no se equivoca una vez: se equivoca con confianza, en la misma
dirección, cientos de veces.
---
## FASE 1 - Preflight (siempre, es rápido)
Corre `scripts/preflight.ps1` (o los equivalentes a mano) y reporta en una tabla compacta:
```powershell
pwsh -NoProfile -File "<skill_dir>/scripts/preflight.ps1"
```
Verifica: versión de `claude`, `git`, `wt.exe` (Windows Terminal), `pwsh` 7+,
`CLAUDE_CONFIG_DIR`, estado del repo (limpio/sucio, rama actual), si ya existe `.trueloop/`.
**Si ya existe `.trueloop/STATE.json`** → NO arranques de cero.
Ve a **FASE 6 - Recuperación en frío**.
**Si `CLAUDE_CONFIG_DIR` no apunta al perfil personal** → avisa antes de continuar.
Nunca operes contra una config de trabajo si el usuario tiene perfiles separados.
---
## FASE 2 - Entrevista hasta 95% de certeza
Este es el paso que más valor genera y el que más gente se salta.
Haz preguntas hasta que puedas decir con honestidad: *"estoy >95% seguro de qué
construimos, para quién, con qué stack, y cómo sabremos que está bien"*.
Reglas:
- Máximo **6 preguntas por tanda**, agrupadas y numeradas, con una opción por defecto
marcada para que el usuario pueda contestar "1a, 2 default, 3b" y avanzar rápido.
- Pregunta solo lo que **cambia el diseño o el criterio de aceptación**. Lo demás, asúmelo
y escríbelo en `ASSUMPTIONS.md`.
- Si el usuario dice "tú decide", decide, escribe el supuesto explícito y sigue.
- Cierra siempre con: *"¿Algo que NO deba hacer / que esté fuera de alcance?"*
Preguntas que casi siempre valen la pena:
1. ¿Quién lo usa y qué logra? (usuarios y job-to-be-done)
2. ¿Stack y restricciones no negociables? (lenguaje, hosting, DB, presupuesto)
3. ¿Cuál es el **primer resultado verificable** que quieres ver funcionando?
4. ¿Qué significa "terminado" en términos que una máquina pueda comprobar?
5. ¿Qué es explícitamente fuera de alcance en esta corrida?
6. ¿Riesgo/reversibilidad: puede tocar producción, credenciales, datos reales?
---
## FASE 3 - Clasificar y componer el equipo
### 3.1 Clasifica el trabajo
| Clase | Señales | Equipo |
|---|---|---|
| **TRIVIAL** | 1 archivo, cambio mecánico, < 10 min | **No uses TRUELOOP.** Hazlo directo y dilo. |
| **SIMPLE** | Un feature acotado, criterios obvios | Solo/maker-checker: 1 builder + 1 QA |
| **ESTÁNDAR** | Proyecto o feature multi-archivo | Planner + Builder + QA (el default) |
| **COMPLEJO** | Multi-capa, integraciones, migración | + 1-3 especialistas de ingeniería |
| **ALTO RIESGO** | Dinero, datos personales, prod, legal | + Security / Privacy / Legal / Devil's Advocate |
| **DECISIÓN** | No hay código: hay que decidir | **Consejo de mentalidades** (ver `references/mindsets.md`) |
Di la clase en voz alta y **por qué**. Si es TRIVIAL, ten el valor de decir
"esto no amerita un loop" y resuélvelo tú. Eso también es TRUELOOP.
### 3.2 Elige mentalidades
Lee `references/mindsets.md` - hay **40 mentalidades** con contrato completo
(propósito, inputs, outputs, permisos de escritura, criterio de éxito, a quién entrega,
condición de paro, preguntas clave y banderas rojas).
Regla dura: por cada agente que quieras spawnear, contesta en una línea
**"¿por qué este proyecto necesita este agente?"**. Si no tienes buena respuesta,
no lo spawnees. Escribe esas justificaciones en el resumen de lanzamiento.
Tamaños sanos: 3 especialistas (estándar), 4-6 (complejo). Más de 6 casi siempre
es peor, no mejor. Tres agentes enfocados le ganan a cinco dispersos.
**Panel vs subagente** - decisión de costo:
- **Panel propio** (sesión Claude Code completa, visible, contexto independiente):
solo para los que trabajan *sostenido* - típicamente Planner, Builder, QA.
- **Subagente** (`Task`, contexto propio, reporta y muere): para revisiones puntuales
- CEO, CFO, Security, Legal, Devil's Advocate. Mucho más barato y suficiente.
### 3.3 Contextos independientes: no negociable
**El agente que implementa NO puede ser el juez final de su propio trabajo.**
Builder y QA viven en sesiones distintas con memorias distintas. QA evalúa
**artefactos, tests y estado del repo**, nunca la confianza del Builder.
---
## FASE 4 - SPEC primero, luego código
Antes de que se escriba una sola línea, el Planner produce `.trueloop/SPEC.md` con:
- **Objetivo** - qué construimos exactamente
- **Alcance** / **No-alcance** - qué queda fuera, explícito
- **Arquitectura** - cómo funciona el sistema
- **Requisitos funcionales** y **no funcionales**
- **Restricciones**
- **Criterios de aceptación** - numerados y **objetivos** (`AC-01`, `AC-02`, …)
- **Plan de verificación** - cómo se comprueba CADA criterio, con el comando exacto
- **Definition of Done** - la condición global de paro
### Criterios de aceptación: la parte que decide todo
Un loop vale exactamente lo que vale su check de "done".
❌ Prohibido: "se ve bien", "parece completo", "hasta que esté satisfecho".
✅ Preferido - comprobable por máquina:
- `npm test` sale con código 0 y 0 tests fallidos
- `tsc --noEmit` reporta 0 errores
- `GET /api/bookings` devuelve 200 con un cuerpo que valida contra el schema X
- reservar el mismo horario dos veces devuelve 409, no 200
- la sesión expirada redirige a `/login` (comprobado con Playwright)
- Lighthouse performance ≥ 90 en `/`
- `npm audit --audit-level=high` sale limpio
Si un criterio es inevitablemente subjetivo, conviértelo en **rúbrica numérica**
(1-10 con anclas escritas) y exige un umbral (`≥ 8 en las 4 dimensiones`) **más**
un tope duro de iteraciones. Y anótalo como deuda: un criterio subjetivo es un
criterio que todavía no supiste medir.
Apunta a **12-25 criterios** para un proyecto estándar. Menos de 8 casi siempre
significa que el Planner no entendió el problema.
---
## FASE 5 - Lanzar
### 5.1 Resumen de lanzamiento (pide GO)
Muestra esto y espera confirmación. Es la última puerta antes de la autonomía:
```
╔══ TRUELOOP · LANZAMIENTO ═══════════════════════════════════╗
OBJETIVO <una frase>
CLASE ESTÁNDAR / COMPLEJO / ...
EQUIPO planner(opus) · builder(sonnet) · qa(opus)
+ consejo bajo demanda: security, cfo
POR QUÉ planner: la arquitectura no es obvia
builder: multi-archivo, 3 capas
qa: hay reglas de negocio que romper a propósito
DoD 23 criterios objetivos · verificación: npm test + playwright
CAPS 12 iteraciones · $8 USD · stall a las 3 rondas sin avance
RIESGO MEDIO - toca DB local, no toca prod ni credenciales
GIT rama trueloop/reservas-barberia desde a1b2c3d
PANELES 4 (orquestador + 3) en Windows Terminal
╚═════════════════════════════════════════════════════════════╝
```
### 5.2 Inicializa el estado y lanza
```powershell
pwsh -NoProfile -File "<skill_dir>/scripts/trueloop.ps1" `
-Project "<ruta del proyecto>" `
-Objective "<objetivo>" `
-Roles planner,builder,qa `
-MaxIterations 12 `
-BudgetUsd 8 `
-Detach
```
`-Detach` es importante: los paneles se abren aparte y **tu sesión queda libre**
para que el humano te siga hablando. Tú te vuelves su consola de mando.
### 5.3 Después de lanzar, dile esto al usuario
```
Loop corriendo. Desde aquí puedes:
/trueloop-status ver fase, iteración, QA, blockers, uso
/trueloop-say ... meter feedback al equipo sin interrumpir
/trueloop-council convocar mentalidades para una decisión
/trueloop-stop parar limpio (con checkpoint)
/trueloop-report handoff final
```
---
## FASE 6 - El protocolo del loop
El loop vive **fuera del modelo**, en `scripts/trueloop.ps1`. Tú lo diseñas; él lo corre.
Detalle completo en `references/protocol.md`. Resumen:
```
PLAN → IMPLEMENT → VERIFY
├─ PASS → siguiente tarea (o DONE)
├─ FAIL → el Planner diagnostica la causa, no el síntoma
└─ BLOCKED → escala al Orquestador
```
**Regla que separa un loop bueno de uno caro**: nunca re-ejecutes la misma instrucción
fallida. **Cada iteración fallida debe producir información nueva.** Si no la produjo,
eso es la señal de stall, no un motivo para reintentar.
Ante un FAIL, el Planner clasifica antes de que el Builder toque nada:
| Causa | Acción |
|---|---|
| Bug de implementación | Builder corrige |
| Error de arquitectura | Planner rediseña, actualiza SPEC |
| Requisito mal entendido | Vuelve al humano - no adivines |
| Test equivocado | Corrige el test y **anótalo en DECISIONS.md** |
| Falta conocimiento | Spawnea Researcher |
| Fuera de competencia | Spawnea el especialista que toque |
### Anti-stall
Se rastrea: iteraciones, errores repetidos, hallazgos de QA repetidos, tests sin cambio,
diff de repo vacío, y frecuencia de regresión. Si dos rondas producen el mismo hallazgo
sin cambio en el árbol de git → `STALLED`. El loop **se detiene solo** y escala.
No se quema presupuesto esperando suerte.
### Git como sistema de checkpoints
Rama dedicada `trueloop/<slug>`, jamás `main`. Commit tras cada milestone verificado.
`LAST_KNOWN_GOOD_COMMIT` siempre actualizado. Regresión severa → rollback a ese commit.
Nunca `push --force`, nunca borrar ramas del usuario, nunca reescribir historia previa.
---
## FASE 7 - El circuit breaker de límite de uso
Esto es crítico y es la razón por la que el loop vive fuera del modelo.
Se distinguen cinco fallas, porque cada una se recupera distinto:
| Falla | Recuperación |
|---|---|
| **A. Límite de contexto** | Persistir a disco y arrancar agente fresco desde `HANDOFF.md` |
| **B. Límite de uso de la cuenta** | Pausar a cero tokens hasta el reset + buffer |
| **C. Error de API** | Backoff exponencial, 3 intentos |
| **D. Red caída** | Esperar y reintentar, sin consumir nada |
| **E. Agente muerto** | Reconstruirlo desde estado en disco |
En el caso **B**, el orquestador:
1. **Deja de emitir requests inmediatamente.** Cero reintentos ciegos.
2. Extrae la hora de reset del mensaje de Claude Code (epoch, "resets at 3pm", "in 2h").
3. `RESUME_AT = reset + buffer` (default **2 minutos**, configurable).
4. Escribe `USAGE_STATE.json`, actualiza `HANDOFF.md`, hace checkpoint de git.
5. Marca `STATUS = PAUSED_USAGE` y suspende a los workers.
6. Duerme con **cuenta regresiva visible en su panel** - cero tokens durante la espera.
7. A la hora exacta, reconstruye el equipo desde disco y continúa la tarea pendiente.
Si no logra parsear la hora de reset, **no adivina agresivo**: espera el default
configurado y va duplicando hasta un tope, en vez de martillar la API.
Con `-Watchdog task` además registra una Tarea Programada de Windows, para que el
resume sobreviva a que se cierre la terminal o se reinicie la máquina.
---
## FASE 8 - El estado vive en disco, no en el contexto
Nunca dependas del historial de conversación. Estructura en `references/state.md`.
```
.trueloop/
PROJECT.md SPEC.md STATE.json TASKS.md DECISIONS.md ASSUMPTIONS.md
QA.md ISSUES.md LEARNINGS.md HANDOFF.md RUN_LOG.md USAGE_STATE.json
FEEDBACK.md ← aquí cae lo que el humano dice con /trueloop-say
config.json queue/ out/ sessions/ logs/ iterations/ checkpoints/
```
Un agente de reemplazo, arrancado sin ningún contexto previo, debe poder leer
`PROJECT.md → SPEC.md → STATE.json → TASKS.md → HANDOFF.md → QA.md → git log`
y saber exactamente qué sigue. **Si eso no se cumple, el estado está mal escrito.**
### Recuperación en frío
```
LEER ESTADO → VERIFICAR REPO → IDENTIFICAR LAST_KNOWN_GOOD
→ RECONSTRUIR EQUIPO → REANUDAR LA TAREA PENDIENTE
```
Nunca asumas que una sesión previa se puede resumir. Los session IDs son una
comodidad; el filesystem es la autoridad.
---
## FASE 9 - Feedback humano en vivo
`/trueloop-say <mensaje>` escribe en `.trueloop/FEEDBACK.md`. El orquestador lo lee
**entre iteraciones** (nunca a media herramienta), decide si es corrección de rumbo,
nuevo requisito o cambio de prioridad, actualiza SPEC/TASKS y lo registra en
`DECISIONS.md`. El feedback del humano gana sobre cualquier conclusión de un agente.
---
## FASE 10 - Terminar de verdad
`STATUS = DONE` **solo** cuando: todas las tareas requeridas hechas · todos los criterios
de aceptación pasan · tests verdes · QA independiente en PASS · cero blockers críticos ·
revisiones de especialistas requeridas en PASS · repo coherente · docs y estado
actualizados · y tú verificaste que sigue alineado al objetivo original.
Si no, el estado es `LOOPING`, `BLOCKED`, `PAUSED_USAGE` o `STALLED`. Nunca "creo que ya".
Luego produce el handoff (`/trueloop-report`): qué se construyó · arquitectura ·
decisiones importantes · archivos tocados · pruebas ejecutadas · hallazgos de QA ·
limitaciones conocidas · consideraciones de seguridad · costo e infraestructura ·
cómo correrlo · cómo modificarlo · último commit verificado · siguiente acción sugerida.
**El humano tiene que seguir entendiendo su propio sistema después de la automatización.**
Ese es el examen final de TRUELOOP, no que el código compile.
---
## Límites de permisos
Autonomía no es libertad destructiva. El loop opera solo dentro del repo y su rama.
Requieren **confirmación humana explícita**, siempre, sin excepción:
borrado fuera del proyecto · `git push --force` · borrar ramas · deploy a producción ·
credenciales y secretos · cobros o transacciones · comunicaciones externas (correo,
mensajes, posts) · destrucción de infraestructura · borrado de base de datos ·
migraciones irreversibles.
Nunca resuelvas fricción apagando todas las salvaguardas. `--dangerously-skip-permissions`
no es la respuesta por default; `acceptEdits` casi siempre alcanza.
---
## Aprendizaje compuesto
Lo que compone no es el loop: son las **skills**. Tras cada falla o descubrimiento
relevante, registra en `LEARNINGS.md`: QUÉ PASÓ · POR QUÉ · ARREGLO · PREVENCIÓN ·
LECCIÓN REUTILIZABLE.
Al cerrar, revisa si alguna lección es **generalizable** (aplica a otros proyectos)
y ofrece promoverla al skill. Solo lo generalizable. Un skill que engorda con detalles
de cada proyecto deja de servir para todos.
---
## Archivos de referencia
| Archivo | Cuándo leerlo |
|---|---|
| `references/mindsets.md` | Al componer el equipo o convocar consejo. Las 40 mentalidades. |
| `references/protocol.md` | Detalle del loop, estados, anti-stall, escalamiento. |
| `references/state.md` | Esquema de `.trueloop/` y `STATE.json`. |
| `references/manual-mode.md` | Si el usuario pide `--manual` o "dame los prompts". |
| `references/troubleshooting.md` | Cuando algo del entorno Windows falle. |
| `templates/roles/*.md` | Prompts de sistema de cada rol con panel propio. |
---
## Modo manual: `/trueloop --manual <objetivo>`
Si el usuario pide "dame los prompts", "quiero hacerlo a mano", o pasa `--manual`,
lee `references/manual-mode.md` y **entrégale los tres prompts** (Planner, Builder, QA)
rellenos con el contexto real de su proyecto, listos para pegar en tres terminales.
Cero instalación, cero scripts, el humano hace de loop. Es el modo correcto para
entender el ciclo antes de automatizarlo - y para proyectos donde el aparato completo
sería exagerado.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!