Skip to main content

verify

Self-test the Citadel hook pipeline from within a live session. Exercises real tool calls (Write, Edit, Bash, Read) and checks that hooks fired, telemetry accumulated, and no errors occurred. Reports HOOK HEALTH: PASS or HOOK HEALTH: FAIL with a per-hook breakdown.

Datos de origen

Repositorio
SethGammon/Citadel
Última actividad en el origen
19 de septiembre de 2026 a las 21:49
Idioma detectado de SKILL.md
inglés
Estrellas
924
Forks
82

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
verify
license
MIT
description
Self-test the Citadel hook pipeline from within a live session. Exercises real tool calls (Write, Edit, Bash, Read) and checks that hooks fired, telemetry accumulated, and no errors occurred. Reports HOOK HEALTH: PASS or HOOK HEALTH: FAIL with a per-hook breakdown.
user-invocable
true
auto-trigger
false
trigger_keywords
["verify","verify hooks","hook health","self-test","check hooks","harness health"]
last-updated
2026-03-27T00:00:00.000Z
# /verify — Hook Pipeline Self-Test Use this when: - Hooks were recently updated and you want a live sanity check - Something feels wrong (tools seem too slow, quality-gate not firing) - After installing Citadel in a new project ## Protocol ### Step 1: Baseline Read the current telemetry state: ``` .planning/telemetry/hook-timing.jsonl → count lines (baseline_timing) .planning/telemetry/audit.jsonl → count lines (baseline_audit) .planning/telemetry/hook-errors.log → size in bytes (baseline_errors) ``` If telemetry directory doesn't exist, note it (init-project may not have run). ### Step 2: Exercise hooks Run these tool calls in sequence. Each exercises a different hook: 1. **Write** a temp file at `.planning/verify-temp.ts`: ```typescript // citadel verify probe export const verifyProbe = true; ``` → Exercises: PreToolUse (protect-files, governance), PostToolUse (post-edit) 2. **Edit** the same file — change `true` to `false`: → Exercises: PreToolUse (protect-files, governance), PostToolUse (post-edit) 3. **Bash** a harmless read command: `echo "verify-probe"` → Exercises: PreToolUse (governance) 4. **Read** the temp file back → Exercises: PreToolUse (protect-files — should allow, it's not .env) 5. **Delete** the temp file: `rm .planning/verify-temp.ts` or equivalent → Cleanup ### Step 3: Check side effects After all tool calls complete, read telemetry again: | Check | Expected | Result | |---|---|---| | hook-timing.jsonl grew | +2 or more lines (Write + Edit post-hooks) | PASS/FAIL | | audit.jsonl grew | +3 or more lines (Write + Edit + Bash pre-hooks) | PASS/FAIL | | hook-errors.log unchanged | same size as baseline | PASS/FAIL | ### Step 4: Report Output a results block: ``` === HOOK HEALTH CHECK === hook-timing.jsonl: +N lines [PASS / FAIL] audit.jsonl: +N lines [PASS / FAIL] hook-errors.log: no errors [PASS / FAIL — N new errors] HOOK HEALTH: PASS ``` Or if any check fails: ``` HOOK HEALTH: FAIL Failing checks: - hook-timing.jsonl did not grow: PostToolUse hooks may not be firing → Verify hooks are installed: node scripts/verify-hooks.js → Check settings.json: cat .claude/settings.json | grep PostToolUse - audit.jsonl did not grow: governance hook may not be firing → Check: node hooks_src/governance.js <<< '{}' ``` ## Edge Cases **No .planning/telemetry/ directory**: Init-project may not have run. Output: "HOOK HEALTH: FAIL — .planning/telemetry/ not found. Run: node hooks_src/init-project.js" **Hooks installed but telemetry still zero**: The project may have a harness.json that disables telemetry. Check `features.telemetry` in `.claude/harness.json`, Citadel's shared config path for all runtimes including Codex. **First-time run (no baseline)**: If the files don't exist before the test, they should be created during the test. Treat "file created" as equivalent to "grew". ## What This Does NOT Test - Hook correctness on edge cases (use verify-hooks.js for that) - Full PreToolUse → tool → PostToolUse sequence isolation (use integration-test.js) - Skill output quality (use skill-bench.js --execute) ## Quality Gates - All 3 telemetry checks must pass: timing grew, audit grew, no new errors - Temp file must be cleaned up regardless of pass/fail outcome - Report must include exact counts (+N lines), not just PASS/FAIL - If .planning/telemetry/ does not exist, FAIL immediately — do not fabricate counts ## Contextual Gates **Disclosure:** Creates and deletes `.planning/verify-temp.ts` during the test. No other files modified. **Reversibility:** green — temp file deleted on completion; no persistent changes. **Trust gates:** Any — no restrictions. ## Exit Protocol ``` ---HANDOFF--- - Hook pipeline: PASS / FAIL - hook-timing.jsonl: +N lines - audit.jsonl: +N lines - hook-errors.log: N new errors (0 expected) - Reversibility: green — no persistent changes; verify-temp.ts cleaned up - Next: if FAIL, run node scripts/verify-hooks.js for deeper diagnostics --- ```
Ver en GitHub