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.

소스 정보

저장소
SethGammon/Citadel
최근 소스 활동
2026년 9월 19일 21:49
감지된 SKILL.md 언어
영어
스타
927
포크
83

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
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 --- ```
GitHub에서 보기