@damiangilgonzalez/harness

中文文档
1.3.31发布于 2026/11/10MITES Module构建来源已验证近 30 天下载 2132

A guided harness builder that turns your goal into a minimal, verified AI-agent setup using strict best practices.

原始使用文档
文档目录25 节
  1. Qué hay aquí
  2. Qué es
  3. 1. Instalar
  4. Qué perfil elegir
  5. 2. Actualizar y mantener
  6. ¿Algo raro?
  7. Compartirlo con el equipo
  8. Una rama, una copia de trabajo
  9. 3. La metodología
  10. La cadena depende del tamaño
  11. Seguridad dentro de la cadena
  12. 4. Interfaz (UX/UI)
  13. /redesign : el rediseño completo, en cascada
  14. ¿Solo quieres cambiar una cosa?
  15. Cuándo se ejecuta /impeccable init
  16. De dónde vienen
  17. 5. La memoria
  18. 6. Skills útiles
  19. no-me-rayes — respuestas cortas, no muros de texto
  20. pr — la PR que se entiende sin leer el diff
  21. retro — qué cambiar para que la próxima sesión salga mejor
  22. overview — qué está revisado, qué está mal y qué hacer prim…
  23. Otras de la base
  24. 7. Qué se instala
  25. Catálogo

harness: un agente dentro de un arnés de cinco cintas (memoria, herramientas, conocimiento, reglas y método)

Tú decides qué construir. harness construye el arnés de tu agente: le da el método, la memoria y los reflejos.

npm

npx @damiangilgonzalez/harness@latest onboard

Qué hay aquí

Quiero…Ve a
Instalarlo1. Instalar
Actualizarlo, compartirlo con el equipo o arreglarlo2. Actualizar y mantener
Entender cómo se trabaja (spec primero, test primero)3. La metodología
Diseñar pantallas4. Interfaz (UX/UI)
Saber qué recuerda el agente5. La memoria
Las skills que más se usan6. Skills útiles
Ver qué deja en mi proyecto7. Qué se instala

Qué es

El modelo es el cerebro; el harness es todo lo demás: memoria, conocimiento, método, reglas y herramientas

El modelo es el cerebro. El harness es todo lo demás. Si esas piezas se añaden a ratos, sale un harness Frankenstein: reglas duplicadas, skills que no vienen a cuento y hooks antes de tiempo.

El mismo encargo sin harness y con harness

Mismo modelo. Distinto resultado.


1. Instalar

Instalar: un comando, cuatro preguntas y un plan que apruebas

Cuatro preguntas (nivel técnico, acompañamiento, tipo de proyecto, objetivo) y un plan exacto. Lee solo la raíz del proyecto y no escribe nada antes de que aceptes.

npx @damiangilgonzalez/harness@latest onboard

¿Usas un agente? Pega esto en el chat:

Lee https://github.com/damiangilgonzalez1995/rsc-harness y prepara rsc para este proyecto.
Hazme las preguntas del onboarding, enséñame el plan exacto y espera a que lo acepte antes de escribir.
Para agentes: el mismo flujo sin modo interactivo

Pasa las preguntas a la persona; no inventes ni rellenes sus respuestas. La primera pasada no escribe nada e imprime un id de plan; solo se repite con --accept-plan cuando la persona lo acepta.

npx @damiangilgonzalez/harness@latest onboard --technical-level mixed --accompaniment L1 \
  --project-kind software --goal "small compound-interest website" \
  --software-scope small --target claude
# Cuando la persona acepte el plan impreso:
npx @damiangilgonzalez/harness@latest onboard --technical-level mixed --accompaniment L1 \
  --project-kind software --goal "small compound-interest website" \
  --software-scope small --target claude --accept-plan PRINTED_SHA256_ID

Qué perfil elegir

Cuatro perfiles concéntricos: minimal, core, ui y full

Empiezas pequeño. El resto se carga bajo demanda: el harness te propone una skill cuando la tarea la pide, con la evidencia que lo justifica.

rsc install --profile minimal   # la base: orient + suggest + bro + unslop + show-me + eli5 + harness + init + teach + tunel-ngrok + hardening + no-me-rayes + overview
rsc install --profile core      # la base + el método completo + seguridad (security-scan, secure-coding, agent-safety)
rsc install --profile ui        # core + todo lo de interfaz
rsc install --profile full      # todo el catálogo

2. Actualizar y mantener

Un update y todos tus proyectos al día

En un proyecto que ya tiene harness, el mismo comando ofrece Update this project. Respeta lo que quitaste a mano y hace una copia antes de tocar nada.

npx @damiangilgonzalez/harness@latest

¿Algo raro?

¿Algo raro? doctor y repair

doctor diagnostica; repair devuelve el harness a lo declarado. Enseña lo que va a tocar, guarda una copia y nunca toca las skills que escribiste a mano.

npx @damiangilgonzalez/harness doctor
npx @damiangilgonzalez/harness@latest repair --dry-run

Compartirlo con el equipo

Compartir con el equipo: commit, clone y sync a la versión fijada

Tres ficheros llevan el harness por git. Súbelos los tres: .rsc.json (lo que decidió el equipo), .claude/settings.json (el cableado) y .claude/rsc-bootstrap.mjs (el que detecta, en un clon, que falta lo demás).

Quien clona abre el proyecto y el asistente te lo dice en el primer mensaje: qué falta y el comando exacto, con la versión fijada (el catalogVersion de .rsc.json). Pregunta; no instala solo.

npx @damiangilgonzalez/harness@<catalogVersion> sync

Nunca @latest a escondidas: quien clone dentro de tres meses tendrá lo mismo que tú. Un git pull no escribe nada en tu máquina; rsc doctor te dice qué ya no cuadra.

.claude/rsc-bootstrap.mjs es código que se ejecuta en cada sesión. Revisa los cambios a ese fichero como revisarías un workflow de CI.

Skills propias. Las que escribe tu equipo viven en el repo y funcionan al clonar. rsc nunca las instala, actualiza ni sobrescribe: su versión es el commit.

Una rama, una copia de trabajo

Una rama, una copia de trabajo

Cada rama en su worktree, cortada siempre desde origin.

rsc worktrees new avisos
rsc worktrees reap --merged --confirm   # borra los ya fusionados, nunca los que tienen cambios

3. La metodología

Tira cómica: petición, preguntas, test primero y PR

Pides algo, te pregunta lo que falta, escribe el test primero y te entrega una PR con evidencia. Son dos ideas encadenadas:

  • Spec primero (SDD, spec-driven development). Antes de tocar código, lo que se quiere queda escrito: glosario, spec, decisiones y tickets. La fuente de verdad es lo escrito, no el chat.
  • Test primero (TDD). Al implementar, el test que falla va antes que el código que lo arregla. implement lo pide con superpowers:test-driven-development donde sea posible, en las costuras (seams) que se acuerdan de antemano.

La cadena depende del tamaño

Mapa de implementación: la cadena depende del tamaño de la tarea

El agente la encadena solo; no hace falta escribir cada comando.

TamañoCadena
Una línea (errata, config)Hazlo sin más
Pequeño (una sesión, un ticket)superpowers:brainstorming o grill-with-docs → implement
Grande (varias sesiones, muchas piezas)grill-with-docs o wayfinder → to-spec → to-tickets → implement-spec
Siempre, al finalcode-review → pr

El trabajo grande paso a paso, con lo que deja cada paso

Cada paso deja un documento: glosario, spec, ADR, tickets, rama y PR.

implement-spec: un grafo de tickets resuelto por varios subagentes a la vez

implement-spec coge los tickets libres y los reparte entre subagentes, cada uno en su worktree y cada uno con su test primero. Todo confluye en una rama de integración.

Revisar antes de fusionar: estándares del repo y lo que pedía la spec

code-review revisa contra los estándares del repo y contra la spec. pr abre la PR con resumen, evidencia y peligro de fusión.

La guía fase a fase: docs/skills/.

Seguridad dentro de la cadena

La cadena no cambia: ni pasos nuevos ni comandos nuevos. Lo que cambia es que dos pasos que ya existían ahora piden seguridad y front cuando el cambio los toca (auth, un endpoint, una tabla, un secreto o una pantalla):

CuándoQué pasa
Al iniciar sesiónUn aviso corto según el proyecto. Con backend, API o .env: los 10 puntos de seguridad. Con react, next, vue, svelte o astro: el modelo mental del front. Sin ninguno de los dos, no sale nada.
to-specLa spec lleva una sección «Decisiones de seguridad y de front»: qué puntos aplican y cuáles quedan fuera a propósito.
code-reviewEl eje de Estándares suma un baseline: una ruta sin rate limit o sin validación en el servidor es should-fix; un secreto en el repo es blocker.
Antes de publicarsecure-coding trae la lista con una prueba por punto. Es un punto de partida; la auditoría es hardening.

Los 10 puntos: rate limiting, claves fuera del código, secretos de producción en la plataforma, límites por IP, entradas validadas, validación en el servidor, RLS, contraseñas con hash y datos cifrados, sesiones que vencen y CORS solo con tu dominio. Se apaga con .rsc/.no-stack-hints.


4. Interfaz (UX/UI)

Hay más de treinta skills de diseño y se solapan. No hace falta aprenderlas: para rehacer una interfaz entera hay una sola orden.

Una orden, todo el rediseño

/redesign: el rediseño completo, en cascada

Escribes /redesign en el proyecto y el agente encadena todo lo demás. Tú solo decides dos cosas: qué estilo quieres y si el prototipo te convence.

Siete pasos, dos decisiones tuyas

  1. Contexto. Si faltan PRODUCT.md (para quién es y qué hace) o DESIGN.md (el sistema visual actual), los crea leyendo el código. No te pregunta.
  2. Capturas del antes. Fotografía las pantallas principales para compararlas al final.
  3. Cinco análisis a la vez. Lanza cinco ayudantes en paralelo, cada uno con su especialidad.
  4. Eliges el estilo entre tres direcciones. ✋
  5. Prototipo navegable con el estilo elegido, sin tocar todavía el código real.
  6. Antes y después, lado a lado. Sin tu sí, no sigue. ✋
  7. Programa el rediseño con las skills de pulido y de movimiento.

Los cinco ayudantes y lo que entrega cada uno

AyudanteEntrega
CríticaLos problemas de UX, ordenados por importancia
TipografíaFuentes y escala de tamaños
ColorPaleta nueva y sus tokens, con modo oscuro
MovimientoQué animar, qué quitar y con qué curvas (skills de Emil Kowalski)
GaleríaTres direcciones de estilo con referencias

Los cinco solo analizan: no tocan el código.

Tres direcciones de estilo, eliges una

El antes y el prototipo, lado a lado

Necesita impeccable (npx impeccable install): de sus capítulos leen los ayudantes.

¿Solo quieres cambiar una cosa?

/redesign es para la interfaz entera. Para un problema concreto, ve directo a su skill:

Toda la interfaz o una sola cosa

Noto que…Skill
Quiero animar algoanimar
La animación va a trompiconesanimation-performance
Hay demasiado movimientoremove-animations
Parece hecho por IAtastemaker
Quiero pulirla antes de publicarrevision-interfaz
Los datos raros la rompenbreak-ui
Parece una web en el móvilmobile-native

Para una pantalla nueva desde cero, flujo-interfaz decide qué skill lidera en cada paso.

Cuándo se ejecuta /impeccable init

/redesign ya lo cubre. Si trabajas sin él: una vez por proyecto, antes de diseñar la primera pantalla, guarda PRODUCT.md y el resto de comandos lo leen. Si ya hay interfaz y no hay DESIGN.md, /impeccable document. Al iniciar sesión en un proyecto de front sin PRODUCT.md, el agente te lo ofrece una vez (.rsc/.no-stack-hints lo apaga).

De dónde vienen

QuéCómo entra
Skills de Emil Kowalski (13, MIT): emil-design-eng, review-animations, improve-animations, find-animation-opportunities, remove-animations, choreograph, animation-performance, animate-expo, break-ui, mobile-native, ask-sonner, pick-ui-library, write-swiftDentro del catálogo (perfiles ui y full). Sus equivalentes en español (animar, diseno-apple, vocabulario-animacion) se quedan.
impeccable (pbakaus, Apache-2.0): critique, audit, polish…No viene en el catálogo: trae su propio motor y hooks. Se instala con npx impeccable install.

Detalle: docs/skills/3-interfaz.md.


5. La memoria

Los cuatro niveles de memoria y qué pasa en cada mensaje

El agente empieza cada conversación en blanco. Lo que recuerda está en cuatro sitios, y cada uno responde a una pregunta distinta:

NivelQué guardaDóndeQuién lo escribe
1. Wiki del proyectoLo que el proyecto sabe: decisiones, stack, hechos del negociodocs/wiki/ (en git)El agente cuando dices «recuerda que…»
2. Diario de sesiónDónde lo dejaste: rama, ficheros tocados, commits.rsc/memory/ (solo tu máquina, 30 días)Los hooks, solos
3. Lecciones aprobadasReglas cortas para cada sesión de este proyecto.rsc/memory/lessons/ (solo tu máquina)Tú, con rsc memory learn … --approve
4. Memoria de Claude CodeCómo te gusta trabajar a ti~/.claude/projects/ (fuera del repo)Claude, cuando le hablas de ti

Quién escribe cada nivel, cómo se activa y cuándo se lee

Nada guarda tus conversaciones. Solo se recuerda lo que alguien escribe en uno de los cuatro sitios:

Nivel¿Cómo se escribe?¿Qué haces tú?¿Cuándo lo lee el agente?
1. WikiEl agente, cuando se lo pides, o una skill que documenta su trabajo (harness, continuous-learning…)Decir «recuerda que…»Cuando la tarea lo pide: CLAUDE.md le dice que existe docs/wiki/index.md
2. DiarioAutomático: los hooks, en cada eventoNadaAutomático, al abrir sesión
3. LeccionesSolo con un comando, y solo con --approversc memory learn --text "…" --approveAutomático, al abrir sesión
4. Memoria de ClaudeClaude Code, cuando le cuentas algo de tiDecir «recuerda que prefiero…»Automático, al abrir sesión (MEMORY.md)

«Recuerda que…» sobre el proyecto va al nivel 1, y el agente te dice la ruta de la página. Si no te da una ruta dentro de docs/wiki/, no lo ha guardado en el proyecto.

Qué pasa en cada mensaje (no al abrir rama ni sesión: en cada mensaje):

  1. Envías un mensaje.
  2. Antes de que el agente lo lea, un hook trae a tu rama actual lo nuevo de la rama rsc/knowledge del remoto (solo docs/wiki/, docs/attachments/ y 01-TOOLS/) y te avisa con una línea 📥 Traídos….
  3. El agente responde con la wiki al día.
  4. Al terminar, otro hook sube a rsc/knowledge lo que cambió en esas carpetas.

rsc/knowledge es una rama de intercambio, no una PR: lo que escribe un compañero te llega sin revisión, y llega a main dentro de vuestras PRs normales. Nunca trae código, nunca pisa un fichero que estás editando y nunca comitea en una main cerrada. Trabajando solo, sirve para que lo que anotas en una rama aparezca en las demás. Lo que se trae es lo que se descargó en el mensaje anterior; si la última descarga tiene más de 3 minutos, descarga antes (3 s como mucho).

Memoria entre sesiones: cada sesión retoma donde lo dejó la anterior

El diario (nivel 2) nunca guarda prompts, respuestas ni secretos, y no sale de tu máquina.

npx @damiangilgonzalez/harness memory resume            # lo que recibirá el agente al abrir sesión
npx @damiangilgonzalez/harness knowledge-sync status    # ¿se sincroniza la wiki? y si no, por qué
npx @damiangilgonzalez/harness memory off               # apaga el diario y las lecciones
npx @damiangilgonzalez/harness knowledge-sync off       # apaga la sincronización (todo el proyecto)

Guía completa: la memoria del harness.


6. Skills útiles

La base (minimal) trae unas cuantas que se notan desde el primer día. Casi todas se activan solas; también puedes pedirlas por su nombre.

no-me-rayes — respuestas cortas, no muros de texto

A la IA le gusta hablar: cuenta lo que hizo, lo que pensó, lo que podría haber hecho y lo que hará después, y la respuesta importante queda enterrada. Esta skill se aplica en cada respuesta que cuenta trabajo y fija la forma: viñetas cortas, una idea por línea, cada bloque con su emoji.

✅ Hecho        — qué se terminó
🔄 Ahora        — qué está haciendo
⛔ Bloqueos     — qué le impide seguir
📌 Resumen      — la conclusión, en una línea

pr — la PR que se entiende sin leer el diff

Cuenta en lenguaje llano qué faltaba o estaba roto y por qué cambia, con un resumen visual, evidencia de antes y después, el peligro de fusión (puerta de un sentido o de dos, radio de impacto) y un título comprobado contra la regla de CI del repo antes de gh pr create. Es el último paso de la cadena, tras code-review.

retro — qué cambiar para que la próxima sesión salga mejor

Al cerrar una sesión larga, hace una retrospectiva: busca qué del entorno del agente (navegación, comprobaciones, estándares, ficheros de instrucciones, herramientas) hay que cambiar para que la siguiente vaya mejor. El resultado son cambios concretos, no una charla.

overview — qué está revisado, qué está mal y qué hacer primero

Te dice el estado del proyecto de un vistazo: qué zonas (seguridad, base de datos, frontend, docs…) están revisadas con el contenido que tienen hoy, qué fallos hay abiertos y qué skill lanzar para cada cosa.

ModoPara qué
/overview startAl empezar un proyecto: te pregunta por rondas lo que conviene decidir pronto (multitenant, sesiones, accesos, secretos, backups…) y siembra las zonas. Antes de preguntar, mira lo que ya se ve en el código.
/overview scanQué zonas piden revisión ahora, con los fallos primero y la skill que toca para cada una.
/overview showAbre el dashboard: un HTML local, sin servidor.
/overview informeTe cuenta lo que está mal como te lo contaría un amigo: qué ha visto, qué pasa si no lo arreglas y para qué sirve arreglarlo.

El registro es automático. Cada vez que lanzas una skill de revisión (code-review, security-scan, secure-coding…), apunta qué archivos se revisaron y con qué contenido. Si un archivo cambia después, deja de contar como revisado. El registro va en git, en docs/overview/, así que funciona con ramas en paralelo y merges.

El dashboard

Dashboard de overview: salud global, fallos abiertos y una zona por cuadrado

Cada cuadrado es una zona; las más urgentes salen más grandes.

  • Verde: revisada con el contenido de hoy y sin fallos abiertos.
  • Ámbar: se va quedando atrás, o los docs no cuadran con el código.
  • Rojo: una comprobación ha fallado (por ejemplo, no hay límite de peticiones), o hay un endpoint, una tabla o un archivo de autenticación sin revisar.
  • Nunca: nadie la ha revisado.

Revisada no quiere decir que esté bien: si la revisión encontró un fallo, el cuadrado dice «N fallos» hasta que la comprobación pase. Volver a revisar los archivos no lo borra.

Al pulsar un cuadrado se abre el detalle de la zona: primero los fallos abiertos, luego la skill recomendada, los archivos sin cubrir, la última verificación de los docs y el historial de revisiones.

Panel de detalle de una zona: fallos abiertos, skill recomendada, comprobaciones e historial

El informe

Cuando quieres saber qué está mal sin leer un dashboard, pide el informe. Es una página que se lee como una carta: el veredicto en una frase, y cada problema contado en tres tiempos (lo que vi → qué pasa si… → para qué sirve arreglarlo) con la skill que lo arregla. Termina con «si yo fuera tú, esta semana haría esto». Lo que no se comprobó va aparte, en «donde no he mirado», nunca en «bien».

Informe de overview: veredicto, recuento y un problema contado con su consecuencia

Se guarda en .rsc/overview/informe.html; si tu asistente puede publicar artifacts, además te da un enlace.

Al abrir sesión

Si alguna zona está en rojo, sale una sola línea: overview: 2 zonas en rojo (security, database) — /overview scan.

Otras de la base

SkillPara qué
orientCierra cada turno situándote: dónde estás, qué pasó y el siguiente paso, como pregunta.
suggestDetecta que una skill que no tienes te ayudaría y, con un «sí», la instala.
broReescribe un texto para que suene humano y natural.
unslopAudita un texto contra la lista de tics de IA (relleno, «no solo X sino Y»…) y los corrige.
show-meExplica con el visual más pequeño que sirva: árbol de llamadas, diagrama Mermaid, un diff.
eli5Explica un tema desde cero, con analogías y sin jerga.
teachTe enseña un concepto a lo largo de varias sesiones.
hardeningAuditoría de seguridad antes de publicar.

7. Qué se instala

Qué deja en tu proyecto: qué se sube a git y qué se queda en local

Las skills se escriben una vez en .rsc/skills/ y cada asistente las enlaza. Lo que se comparte va a git; el estado de la máquina, no.

Los reflejos: gate, danger-guard, ship-guard, gitmoji-guard, memoria y limpieza de worktrees

Hooks que vigilan por ti: recuerdan la cadena, piden confirmación antes de un rm -rf o un git push --force y paran antes de volver a main sin abrir la PR.

Plugins de serie: superpowers, skins, savvy-progress y cache-tax

En Claude Code quedan activados skins, savvy-progress, context-bar, prompt-enhancer, modelo-justo, where-am-i y cache-tax (este mantiene caliente la caché, y eso gasta tokens). superpowers llega cuando el proyecto usa el método.

En cifras: 312 skills, 34 agentes y 43 entradas de comando, para 17 asistentes (Claude Code, Codex, Cursor, Copilot, Gemini…). Detalle en la referencia técnica.


312 skills por dominio

312 skills en 25 dominios: software, negocio, contenido, datos e IA. Cada una se activa sola cuando la tarea encaja.

Ver el catálogo completo → · Referencia técnica · Cómo funciona por dentro


Deriva del trabajo de Eric Risco en ericrisco/rsc-harness.

版本与发布记录

@damiangilgonzalez/harness 共发布 25 个版本,首次发布于 2026/09/15;过去 12 个月发布了 25 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.3.31latest2026/11/103 天前
1.3.302026/11/103 天前
1.3.292026/11/103 天前
1.3.282026/11/103 天前
1.3.272026/11/085 天前
1.3.262026/11/085 天前

关于 @damiangilgonzalez/harness 的常见问题

@damiangilgonzalez/harness 是什么?

A guided harness builder that turns your goal into a minimal, verified AI-agent setup using strict best practices.

如何安装 @damiangilgonzalez/harness?

在项目目录运行 npm install @damiangilgonzalez/harness,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 rsc、harness、rsc-install,可以用 npx rsc 直接运行。

@damiangilgonzalez/harness 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/damiangilgonzalez__harness 是否存在。

@damiangilgonzalez/harness 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@damiangilgonzalez/harness 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@damiangilgonzalez/harness 可以商用吗?

@damiangilgonzalez/harness 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@damiangilgonzalez/harness 的下载量有多少?

根据 npm 官方下载统计,@damiangilgonzalez/harness 在 2026/10/11 – 2026/11/09 这 30 天内被下载 2,132 次,日均约 71 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@damiangilgonzalez/harness 还在维护吗?

最新版本 1.3.31 发布于 2026/11/10(3 天前);至今共发布 25 个版本,其中过去 12 个月发布了 25 个;首次发布于 2026/09/15。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。