Borrowing it
Nothing to install: this file belongs to MarkusNeusinger/cite-citadel. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/MarkusNeusinger/cite-citadel/main/.claude/skills/verify-corpus/SKILL.mdgit clone --depth 1 https://github.com/MarkusNeusinger/cite-citadelWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/markusneusinger/cite-citadel/verify-corpus)<a href="https://agentmods.dev/skills/markusneusinger/cite-citadel/verify-corpus"><img src="https://agentmods.dev/badge/skills/markusneusinger/cite-citadel/verify-corpus/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/markusneusinger/cite-citadel/verify-corpus"><img src="https://agentmods.dev/badge/skills/markusneusinger/cite-citadel/verify-corpus.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00555 | $0.11871 |
| Opus 5.5 | $0.00222 | $0.04748 |
| Sonnet 5.5 | $0.00111 | $0.02374 |
| Haiku 4.5 | $0.00056 | $0.01187 |
Grade C, and why
verify-corpus scanned grade C with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 13d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Recursive force deletehighDestructive command
rm -rf with a variable or a broad path is one typo away from removing the wrong tree.
survives the `rm -rf`. How it starts
The opening of the file, as written. The whole thing — 643 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Verify a corpus end-to-end
Ten shipped corpora, each a corpora/<name>/ bundle (raw/, sometimes stages/ or a
materializable repo tree, a README.md) plus a hidden answer key at
.claude/skills/verify-corpus/<name>/ground-truth.md. The ingest agent
never sees the key — it lives outside the corpus, and Mode A points CITADEL_RAW_DIR at the
corpus raw/ only (defense in depth). This skill runs the real pipeline into a sandbox, then
grades that sandbox wiki against the key. Grading is a two-phase FACTS-style gate: phase 1 =
citadel check + lint exit 0 (structural eligibility); phase 2 = answer-key content grading.
Modes A/B grade the ingest lifecycle. Mode C (below) grades the curate lifecycle end-to-end — it seeds known defects into a sandbox, proves the offline detectors flag exactly them, then runs real curate sessions and grades that the model FIXES them without breaking valid pages.
Usage: verify-corpus <beverages|kelvarra|leuchtfeuer|pemberley|injection-resistance|clockwork|flurfunk|gazette|kontor|werkhof|all> [--grade-only]
| corpus | what it stresses | sandbox note | ground-truth |
|---|---|---|---|
beverages |
organized / links / provenance on a messy coffee+tea corpus; the showcase wiki | 10 files, one pass each | .claude/skills/verify-corpus/beverages/ground-truth.md |
kelvarra |
the hardest guarantee: a fictional world stated wrong about reality, kept as-stated and cited, never corrected | 7 files, one pass each | .claude/skills/verify-corpus/kelvarra/ground-truth.md |
leuchtfeuer |
reconcile / delete / force across 3 dated waves; temporal supersession; German→English; opinions & style | 3 waves (see the wave protocol) | .claude/skills/verify-corpus/leuchtfeuer/ground-truth.md |
pemberley |
large-source multi-segment chunking; relationship extraction; in-novel misinformation; narrative supersession | one ~730k-char file → ~18 segments, HOURS — set a LONG timeout and force chunking (see the pemberley note) | .claude/skills/verify-corpus/pemberley/ground-truth.md |
injection-resistance |
embedded adversarial instructions treated as content, never executed; real facts still extracted | 3 files, 3 quick sessions | .claude/skills/verify-corpus/injection-resistance/ground-truth.md |
clockwork |
a whole git repo folded in as ONE digest (kind=repo), then a second commit driving kind=repo-reconcile; folder-keyed provenance; one documented default superseded |
materialize the repo + 2 commits (see the clockwork note) | .claude/skills/verify-corpus/clockwork/ground-truth.md |
flurfunk |
informal genres (chat / social / interview / application / forum); attribution ("X said Y" ≠ "Y is true"), in-thread reversal, a quote-tweet negative row, CV timeline, partial lists, a source to-do, a folder-note caveat | 11 files (incl. a retros/ folder note + 3 siblings), one pass each |
.claude/skills/verify-corpus/flurfunk/ground-truth.md |
gazette |
PDF sources: CITADEL_PDF_MODE text-vs-images (a figure-only number + an image-only page), the publications genre, references-are-not-sources, page locators, chunked-window edges, a garbled text layer read from the page image, letterhead kept out of the facts, and dedup-by-basename (.ics behind its PDF twin) |
9 files (7 PDFs + 1 md + 1 .ics; 8 ingested, the .ics a skipped duplicate); three runs (text, images, then a chunked run — see the gazette note) |
.claude/skills/verify-corpus/gazette/ground-truth.md |
kontor |
binary Office documents (OOXML .pptx/.docx/.xlsx + legacy OLE .doc/.ppt/.xls); the Office extraction path, an embedded-chart image delta (CITADEL_IMAGE_SUPPORT), dedup-by-basename, ignore-patterns, source-exclusion enforcement (CITADEL_IGNORE_PATTERNS=+private); the usual judgment traps |
13 files (9 Office + 3 junk + 1 excluded private/ text file); two runs (images off then on — see the kontor note) |
.claude/skills/verify-corpus/kontor/ground-truth.md |
werkhof |
uniform enumerable sources (a 28-machine register, a 20-code fault catalogue, a 15-customer CSV): Registry completeness (no entry compressed away), per-row citations + locators, promotion past the granularity floor, a status supersession, near-miss keys |
4 files, one pass each | .claude/skills/verify-corpus/werkhof/ground-truth.md |
What ships with it
10 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- beverages/ground-truth.md 26 KB
- clockwork/ground-truth.md 15 KB
- flurfunk/ground-truth.md 21 KB
- gazette/ground-truth.md 25 KB
- injection-resistance/ground-truth.md 20 KB
- kelvarra/ground-truth.md 21 KB
- kontor/ground-truth.md 16 KB
- leuchtfeuer/ground-truth.md 33 KB
- pemberley/ground-truth.md 26 KB
- werkhof/ground-truth.md 6.6 KB
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 13d ago Changed · +38 lines · +16 tokens per session 3c32b831bda0
- 2mo ago First seen · 605 lines · 539 tokens per session scan C 885339d3b88d
verify-corpus is a skill published in the GitHub repository MarkusNeusinger/cite-citadel (3 stars, last pushed 15d ago), licensed MIT. It adds 555 tokens to every session and 11,871 once invoked, about $0.0022 per session on Opus 5.5. A static security scan graded it C with 1 finding (recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
verify-corpus compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| verify-corpusMarkusNeusinger/cite-citadel | Skill | 3 | 15d ago | MIT | C | 555 | Claude Code |
| vue-component-testingsoulcodex/agentic | Skill | 10 | 7d ago | MIT | A | 79 | Claude Code, Codex |
| e2e-testingQwenLM/qwen-code | Skill | 29k | yesterday | Apache-2.0 | A | 94 | Claude Code, Codex |
| terminal-captureQwenLM/qwen-code | Skill | 29k | yesterday | Apache-2.0 | A | 66 | Claude Code, Codex |
| tmux-real-user-testingQwenLM/qwen-code | Skill | 29k | yesterday | Apache-2.0 | A | 98 | Claude Code, Codex |
| agent-reproduce-alignQwenLM/qwen-code | Skill | 29k | yesterday | Apache-2.0 | A | 62 | Claude Code, Codex |
| test-appmendixlabs/mxcli | Skill | 137 | yesterday | Apache-2.0 | A | 86 | Claude Code |