Hooks y guards
Activa los hooks de contexto que achican la salida de herramientas, y corre las verificaciones locales de guardrail que mantienen sano un workshop compartido.
Objetivo#
Activar los dos hooks de contexto opcionales del harness (ambos apagados
por defecto), instalar y correr las verificaciones de orch guard, y
elegir un guard.profile que decide cuanto de esto conecta orch por ti.
Hooks de contexto (opt-in, apagados por defecto)#
orch.yaml:
context:
hooks:
post_tool: true # Claude Code PostToolUse / OpenCode tool.execute.after
pre_compact: true # Claude Code PreCompact
post_toolachica un resultado de herramienta sobredimensionado antes de que llegue al modelo (orch hook post-tool), usando los mismos ajustes de crush/externalize quecontext.guidance. Se salta cualquier nombre de herramienta listado encontext.guidance.protect_tools(por defecto:Bash,PowerShell,Read,Grep,Glob,Edit,Write,Agent,Task,WebFetch,Shell,bash,read_file,write_file— herramientas de codigo donde una reescritura con perdida ocultaria un resultado real).pre_compactcorre el mismo condensador queorch memory condensesobre.workflow/BOARD.mdy.orch/LAST_SESSION.mdjusto antes de que la compactacion nativa del harness descarte la transcripcion — asi la seccion## Clarifieddel board y los checkboxes abiertos sobreviven byte por byte en vez de resumirse.
Ninguno de los dos hooks hace algo por si solo: ambos necesitan
orch guard wire --claude (o --profile) para instalarse de verdad en
~/.claude/settings.json / la carpeta del plugin de OpenCode.
Verificaciones de orch guard#
orch guard dup <file> # deniega/advierte sobre un archivo que duplica un simbolo compartido o clona un cuerpo de funcion
orch guard code-lang [root] # los identificadores/strings deben coincidir con workspace.code_lang
orch guard lang [root] # los docs deben coincidir con workspace.locale
orch guard ddl [files...] # migraciones/CREATE TABLE necesitan un companero seeder/repository
orch guard tracker [TRACKER.md] # sanidad de la tabla de estado de TRACKER.md (T1–T4)
orch guard lock <path> --holder # deniega editar shared/** sin un lock valido
orch guard dup es advisory por defecto — imprime donde vive la copia
existente y deja que la escritura continue. Define guard.dup.mode: block
en orch.yaml para denegar la escritura en vez de eso (off desactiva el
escaneo por completo). guard.dup.window / min_tokens / max_files
ajustan el escaneo de clones.
Pasos#
-
Elige un perfil (o acepta el default recomendado):
orch guard profile lite # docs + skills; sin hooks (recomendado dia 1) orch guard profile shared # + hooks de git pre-commit/pre-push en repos shared/project orch guard profile strict # + wire de hooks de usuario en Claude, conciencia de locale/tracker orch guard profile bring # mantiene tu propio CLAUDE/rules; orch solo agrega locks/simbolos orch guard profile none # solo orch.yaml -
Conecta los adaptadores de ese perfil:
orch guard wire --profileO conecta adaptadores especificos directamente:
--git,--claude,--cursor. -
Instala los hooks de git directamente (independiente de
guard wire):orch guard hooks install [repo] orch guard hooks status [repo] orch guard hooks run [repo] # lo que realmente llaman los hooks instalados
Verificar#
orch guard profile
orch guard hooks status
Deshacer#
orch guard unwire # quita los adaptadores de Claude/Cursor/OpenCode
orch guard unwire --git # tambien quita pre-commit/pre-push de git
orch guard hooks uninstall [repo]
Relacionado#
memory-and-ledger.md— que es lo que condensapre_compact.troubleshooting.md— "el hook no hizo nada" cuando el workspace no esta registrado.