# Harness Drift From History > Compone audit-list + oia-audit + audit-trend en un único comando: busca la auditoría más reciente, ejecuta una nueva y avisa si la distancia estructural supera el umbral. Fuente: https://skillsagentes.com/skills/ruvnet/ruflo/harness-drift-from-history Markdown: https://skillsagentes.com/skills/ruvnet/ruflo/harness-drift-from-history.md Repositorio: https://github.com/ruvnet/ruflo Autor: ruvnet Licencia: MIT Actualizado: hace 2 meses Coste de contexto: 87 tok instalada, 638 tok al activarse, 638 tok con todos los archivos del bundle Bundle: 1 archivo, 2 KB Permisos que pide: bash ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add ruvnet/ruflo --skill harness-drift-from-history --agent claude-code # Cursor npx -y skills add ruvnet/ruflo --skill harness-drift-from-history --agent cursor # Codex npx -y skills add ruvnet/ruflo --skill harness-drift-from-history --agent codex # Gemini CLI npx -y skills add ruvnet/ruflo --skill harness-drift-from-history --agent gemini # Windsurf npx -y skills add ruvnet/ruflo --skill harness-drift-from-history --agent windsurf # Cline npx -y skills add ruvnet/ruflo --skill harness-drift-from-history --agent cline ``` ## Qué hace - Busca el registro de auditoría más reciente en el namespace metaharness-audit. - Ejecuta una auditoría oia-audit nueva contra el repo actual. - Compara ambas auditorías por similitud estructural (ADR-152 §3.1) y genera un informe de deriva. - Dispara una alerta cuando la similitud cae por debajo de --threshold. ## Cuándo usarla - Quieres saber si algo cambió estructuralmente desde la última auditoría, en un solo comando. - Vas a programar detección de deriva semanal en CI o cron. ## Qué la activa - "Comprueba si hubo deriva desde la última auditoría" - "Ejecuta drift-from-history con umbral 0.95" ## Antes de instalar - Necesita un historial de auditorías previas en metaharness-audit; sin él devuelve un error con instrucciones para generarlo. - Necesita en el PATH: npx - runs shell commands ## Archivos - SKILL.md — 2 KB ## SKILL.md Reproducido tal cual desde ruvnet/ruflo bajo MIT. Esta sección es el documento original y está en inglés. The natural ops question after running `oia-audit` weekly is "did anything drift?" Before this skill, the answer required a three-step sequence: ```bash npx ruflo metaharness audit-list --format json # → pick a key by hand npx ruflo metaharness oia-audit --format json > /tmp/curr.json npx ruflo metaharness audit-trend \ --baseline-key --current /tmp/curr.json \ --alert-on-distance-below 0.95 ``` This skill collapses it into one command: ```bash npx ruflo metaharness drift-from-history --threshold 0.95 ``` ## What it does 1. Lists records from `metaharness-audit` namespace via audit-list.mjs 2. Picks the most recent record by `startedAt` (or `--baseline-since 7d` skips anything newer than 7 days) 3. Runs a fresh `oia-audit` against the current path 4. Diffs the two via audit-trend, applying `--alert-on-distance-below ${threshold}` 5. Returns the structured drift report ## Architectural constraint inheritance (ADR-150) | Constraint | How drift-from-history satisfies it | |---|---| | Removable | Pure subprocess composition over existing scripts — no new `@metaharness/*` import | | Optional | If oia-audit reports `degraded:true`, this skill exits 3 with a degraded payload | | Graceful | Empty audit history → exit 2 with hint to seed it; never crashes | | CI-gate | Smoke step 17z16 anchors the dispatcher entry + subcommand listing | ## Exit codes - 0 — similarity ≥ threshold (or threshold not crossed) - 1 — drift detected: similarity < threshold (alert fired) - 2 — config error (no history, audit-list failed) - 3 — upstream metaharness absent (degraded payload returned) ## Example ```bash $ npx ruflo metaharness drift-from-history --threshold 0.95 # drift-from-history Baseline: audit-2026-06-16T22-58-47-840Z Current: 2026-06-16T23:05:02.231Z Structural similarity: 1 (near-identical) Distance: 0 ✓ similarity ≥ 0.95 — OK ``` ## Implementation [`scripts/drift-from-history.mjs`](../../scripts/drift-from-history.mjs) ## Dónde encaja - Categoría: [DevOps e infraestructura](https://skillsagentes.com/categorias/devops-infraestructura.md) — Despliegues, contenedores, IaC y flujos de gestión de incidentes. - Creador: [ruvnet](https://skillsagentes.com/creators/ruvnet.md) — 275 skills en el directorio - [Todas las skills](https://skillsagentes.com/skills.md) - [Ranking de instalaciones](https://skillsagentes.com/ranking.md) ## Otras skills del mismo repositorio - [Harness Gepa](https://skillsagentes.com/skills/ruvnet/ruflo/harness-gepa.md): Inspecciona y audita genomas GEPA: carga y valida un genoma, renderiza el system prompt que compila, o clasifica los modos de fallo de una transcripción de ejecución. - [Deepseek Reason](https://skillsagentes.com/skills/ruvnet/ruflo/deepseek-reason.md): Completion en modo razonamiento contra deepseek-reasoner (R1) de DeepSeek. Devuelve el chain-of-thought por separado de la respuesta final. Lee DEEPSEEK_API_KEY y degrada si falta o la API no responde. - [Deepseek Chat](https://skillsagentes.com/skills/ruvnet/ruflo/deepseek-chat.md): Completion de un solo turno contra el modelo deepseek-chat de DeepSeek vía /v1/chat/completions. Lee DEEPSEEK_API_KEY y degrada con status:degraded si falta o la API no responde. Para tareas sin razonamiento. - [Adr Index](https://skillsagentes.com/skills/ruvnet/ruflo/adr-index.md): Construye o reconstruye el índice de ADRs y su grafo de dependencias ejecutando scripts/import.mjs, en vez de cientos de llamadas MCP. - [Agntcy Status](https://skillsagentes.com/skills/ruvnet/ruflo/agntcy-status.md): Muestra el estado de la integración AGNTCY/SLIM/CASA: si los paquetes están instalados, qué transporte está activo y si el enforcement de CASA está habilitado. --- Skills Agentes · [Índice de páginas en markdown](https://skillsagentes.com/sitemap.md) · [Inicio](https://skillsagentes.com/index.md)