VERICIDAD · AUDITORÍA EN VIVO

Lo que dice esta web,
comprobado contra el sistema.

El 2026-10-29 se ejecutaron comandos de solo lectura contra el proyecto real (canary_agent_os-main/wt-rel04, canary 0.5.1 (0.6.0 disponible)). Comandos de solo lectura ejecutados contra el proyecto real: docs check, memory list/query, journal show/verify, status. Nada se mutó.

Tres niveles de verdad

Verificado en vivo: salida real capturada del sistema. Según documento: claim del documento de diseño, no activo en el proyecto auditado. Ilustrativo: comportamiento verificado, narración compuesta.

La semántica (52.167 fragmentos, ~92 ms) y el run de Stripe son del documento: en el proyecto auditado la memoria semántica estaba desactivada. Lo decimos en vez de disimularlo.

  1. VERIFICADO EN VIVO

    System 1: el filtro barato clasifica y exige la spec

    docs check sobre la frase exacta de esta web → FALTA spec (output abajo).

  2. VERIFICADO EN VIVO

    Journal append-only con cadena prev_hash

    journal show + verify sobre la tarea a2a-p3: 7 filas, cadena intacta, 0 huecos.

  3. VERIFICADO EN VIVO

    Gates que no aceptan un «casi»

    Gate real g4-tck-must-level: 48 fallidos / 17 ok / 170 skipped → evento de aprendizaje auto-registrado, severidad alta.

  4. VERIFICADO EN VIVO

    Lecciones accionables en el cuaderno

    p. ej. la del redirect 302 (abajo) — lección real con fuente.

  5. VERIFICADO EN VIVO

    Memoria estructural en DuckDB

    status: duckdb mode=embedded OK · memory list: 20 estructuradas, 20 lecciones, 3 tareas, 3 workflows, 3 validaciones.

  6. VERIFICADO EN VIVO

    Cada fase firma el dispatch ANTES de ejecutar

    las filas seq=6 y seq=7 del journal son dispatch de builder aún sin complete.

  7. VERIFICADO EN VIVO

    Push humano

    los registros reales de release terminan en «no push» / merge_ready a la espera del owner.

  8. SEGÚN DOCUMENTO

    Biblioteca semántica: 52.167 fragmentos, ~92 ms

    es claim del documento de diseño; en el proyecto auditado la memoria semántica está desactivada (semantic=0, qdrant off).

  9. SEGÚN DOCUMENTO

    El run de Stripe completo

    es el ejemplo trabajado del documento, no un log de sesión.

  10. SEGÚN DOCUMENTO

    Lección «adapter Stripe: reintentos con JobLock»

    ejemplo del documento; JobLock no aparece en el repo.

  11. ILUSTRATIVO

    Los «tres bloqueos» narrados en la guía de gates

    cada comportamiento está verificado (arriba), pero la narración como run único es compositiva.

OUTPUTS REALES

Capturados tal cual,
sin retocar.

System 1 en vivo — la frase exacta de esta web

canary docs check --task "quiero migrar pagos por fases a stripe, lo del webhook si ya hay algo usalo, y k no se rompa na"
doc governance — «quiero migrar pagos por fases a stripe, lo del webhook si ya hay algo usalo» (fuente: heuristic)
  [  FALTA] spec     specs/f*-*.md
  → crear con: canary docs create --type spec --name <slug>

El veredicto del paso ② del intake, tal cual: falta la spec de fases.

El diario real de una tarea (a2a-p3)

canary journal show --task-id 7c09a042-…
seq=1 event=dispatch phase=plan      agent=forge  outcome=ready
seq=2 event=dispatch phase=scout     agent=forge  outcome=None
seq=3 event=complete phase=scout     agent=forge  outcome=completed
seq=4 event=dispatch phase=architect agent=forge  outcome=None
seq=5 event=complete phase=architect agent=forge  outcome=completed
seq=6 event=dispatch phase=builder   agent=forge  outcome=None
seq=7 event=dispatch phase=builder   agent=forge  outcome=None

Siete filas: dispatch ANTES de complete en cada fase; el builder quedó despachado dos veces sin cerrar — y esa pausa también quedó registrada como lección.

Verificación de la cadena

canary journal verify --task-id 7c09a042-…
Journal verify OK: 7 rows, chain intact
"ok":true, "rows":7, "gaps":[], "chain_breaks":[], "digest_mismatches":[]

Contigüidad, cadena prev_hash y digests recomputables: todo cuadra.

Un gate rojo de verdad

learning event auto-registrado (validación g4-tck-must-level)
48 failed, 17 passed, 170 skipped in 5.47s, exit 1
severity=high · event_type=validation_failure
"real MUST-level conformance gap… escalated verbatim per SPEC rule, fail recorded with learning event"

El validador midió, el veredicto fue rojo, y el sistema NO lo disimuló: quedó como evento de aprendizaje de severidad alta, tal como promete la guía de gates.

Una lección real del cuaderno

canary memory query --query "adapter redirect"
«urllib.request.urlopen FOLLOWS 3xx redirects — a loopback-only HTTP adapter
contract MUST install a no-redirect opener or a 302 silently exfiltrates
query text+auth off-machine (auditor F1)» — w5 vector-bridge, outcome: recorded

Lección accionable con fuente: técnica + consecuencia + quién la encontró. Así son las lecciones reales del cuaderno.

Estado del sistema auditado

canary status
installed=0.5.1  current=0.6.0 · WARN update available
[duckdb] OK  mode=embedded · [qdrant] disabled · semantic=0
[drift] OK  tracked=335 modified=0 missing=0

Transparencia incluida: la memoria semántica estaba DESACTIVADA en este proyecto durante la auditoría — por eso esa parte consta como «según documento».