Agent skill

Verify

by SethGammon in SethGammon/Citadel

Self-test the Citadel hook pipeline from within a live session.

MITAuto-check: notesTesting & QA

Install Verify

skills CLI
$ npx skills add SethGammon/Citadel --skill verify -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install SethGammon/Citadel verify --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/SethGammon/Citadel.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/verify .claude/skills/verify && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
verify
GitHub stars
922
Token cost
~1.1k tokens
SKILL.md length
369 words
Files
1
Skills in repo
48
Repo updated
First seen
Licence
MIT

At a glance

Self-test the Citadel hook pipeline from within a live session.

  • Works in 4 steps: Baseline → Exercise hooks → Check side effects → …
  • Testing & QA work in your project
  • SKILL.md covers Protocol, Edge Cases, What This Does NOT Test and Quality Gates, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Verify is an agent skill from SethGammon/Citadel. 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.

Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Testing & QA. It works with Bash. The repository describes itself as: The operating layer for Claude Code + OpenAI Codex: persistent project memory, intent routing, safety hooks, cost telemetry, and parallel agent fleets. The licence is MIT.

When your agent uses it

  • Testing & QA work in your project

Example prompts

  • “/verify”

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Baseline
  2. Exercise hooks
  3. Check side effects
  4. Report

What it can do on your machine

Read from SKILL.md and the folder at commit e41ff1d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Verify loads about 1.1k tokens when it runs. Until then it costs about 68 tokens; SKILL.md has 369 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~68
When it runs · the whole SKILL.md, loaded when a task matches
~1.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:59
    (protect-files — should allow, it's not .env)

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from SethGammon/Citadel at commit e41ff1d, republished under its MIT licence (© SethGammon). 369 words, ~1,132 tokens.

Download SKILL.mdSave it as .claude/skills/verify/SKILL.md (or your agent's skills folder).
name
verify
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.
license
MIT
user-invocable
true
auto-trigger
false
trigger_keywords
verify, verify hooks, hook health, self-test, check hooks, harness health
last-updated
2026-03-27

/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:

CheckExpectedResult
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 unchangedsame size as baselinePASS/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 <<< '{}'
Show full SKILL.md (179 more words)Show less

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
---

© SethGammon, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/verify of SethGammon/Citadel.

Open the folder on GitHubat commit e41ff1d

Compare with similar skills

Verify next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Verify compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Verify this skillSethGammon/Citadel922—~1.1kAutomated safety check: NotesMIT
Typescript Hook Writerpr-pm/prpm122—~8.6kAutomated safety check: NotesMIT
E2Ekortix-ai/suna20k—~2.3kAutomated safety check: PassCustom licence
CI FixFastLED/FastLED7.5k—~897Automated safety check: PassMIT
Bats Shell Testing Patternswshobson/agents40k11 repos~1.3kAutomated safety check: PassMIT
Super Devshangyankeji/super-dev273—~2.6kAutomated safety check: NotesMIT

Similar skills

  • Expert guidance for developing Claude Code hooks in TypeScript with shared utilities, esbuild compilation, and Vitest testing - distributes compiled JS while maintaining TypeScript development…

    122 GitHub stars~8.6k tokensUpdated yesterday
    Testing & QAAuto-check: notes
  • E2E

    kortix-ai/suna

    Agentic end-to-end tests with e2e, the e2e runner. An agent skill from kortix-ai/suna.

    20k GitHub stars~2.3k tokensUpdated today
    Testing & QAAuto-check passed
  • CI Fix

    FastLED/FastLED

    Scan all CI builds and tests, find failures, fetch error logs, and fix the code.

    7.5k GitHub stars~897 tokensUpdated today
    Testing & QAAuto-check passed
  • Writes unit tests for shell scripts with Bats: error-condition tests, fixtures and mocks, cross-shell checks, parallel runs, helper files and CI integration.

    40k GitHub starsUsed in 11 repos~1.3k tokens
    Testing & QAAuto-check passed
  • Super Dev

    shangyankeji/super-dev

    Super Dev pipeline governance for research-first, commercial-grade AI coding delivery

    273 GitHub stars~2.6k tokensUpdated 3 mo ago
    Testing & QAAuto-check: notes
  • Ue Test Authoring

    JasonMa0012/MooaToon

    A skill your agent uses when writing or modifying UE automated tests (Automation, CQTest, Functional, Gauntlet, LowLevel) with Rider MCP available.

    749 GitHub stars~2.1k tokensUpdated 19 days ago
    Testing & QAAuto-check: notes

More from SethGammon/Citadel

All 48 skills in this repo
  • Create Skill

    SethGammon/Citadel

    Creates new skills from the user's repeating patterns. An agent skill from SethGammon/Citadel.

    922 GitHub stars~1.9k tokensUpdated 6 days ago
    Auto-check passed
  • Houseclean

    SethGammon/Citadel

    Cross-drive storage audit and cleanup. An agent skill from SethGammon/Citadel.

    922 GitHub stars~2.2k tokensUpdated 6 days ago
    Auto-check passed
  • Loop

    SethGammon/Citadel

    Bounded foreground repetition for the current session. An agent skill from SethGammon/Citadel.

    922 GitHub stars~1.4k tokensUpdated 6 days ago
    Auto-check passed
  • Triage

    SethGammon/Citadel

    GitHub issue and PR investigator. An agent skill from SethGammon/Citadel.

    922 GitHub stars~2.7k tokensUpdated 6 days ago
    Auto-check passed
  • Watch

    SethGammon/Citadel

    File sentinel that monitors the working directory for changes and marker comments, then auto-triggers appropriate skills.

    922 GitHub stars~2.9k tokensUpdated 6 days ago
    Auto-check passed
  • Archon

    SethGammon/Citadel

    Autonomous multi-session campaign agent. An agent skill from SethGammon/Citadel.

    922 GitHub stars~5.4k tokensUpdated 6 days ago
    Auto-check passed

Works with

Questions about Verify

What does Verify do?

Self-test the Citadel hook pipeline from within a live session. Verify is an agent skill from SethGammon/Citadel. Self-test the Citadel hook pipeline from within a live session.

When should I use Verify?

Verify fits situations like: testing & QA work in your project.

How do I install Verify in Claude Code?

Run `npx skills add SethGammon/Citadel --skill verify -a claude-code`. Or copy the skill folder (skills/verify in SethGammon/Citadel) into .claude/skills/verify in your project. Claude Code loads it when a task matches its description.

How do I install Verify in Codex?

Run `npx skills add SethGammon/Citadel --skill verify -a codex`. Or copy the skill folder (skills/verify in SethGammon/Citadel) into .agents/skills/verify in your project. Codex loads it when a task matches its description.

Can I use Verify in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add SethGammon/Citadel --skill verify -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/verify, .gemini/skills/verify, .github/skills/verify and .opencode/skills/verify in your project.

What does Verify need to run?

SKILL.md names no scripts, command-line tools or credentials: Verify is instructions for the agent only.

Does Verify access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Verify safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Verify use?

Verify is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Verify use?

About 1.1k tokens (SKILL.md is roughly 4.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Verify?

Skills that share tags, products or a category with Verify: Typescript Hook Writer (pr-pm/prpm, 122 stars), E2E (kortix-ai/suna, 20k stars), CI Fix (FastLED/FastLED, 7.5k stars) and Bats Shell Testing Patterns (wshobson/agents, 40k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Verify?

SethGammon (a GitHub user) maintains it in SethGammon/Citadel, which has 922 GitHub stars. The repository holds 48 skills in this directory. The repository was last updated on October 1, 2026.

Source: SethGammon/Citadel on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.