redaction-check

redaction-check is a skill for Claude Code from TimSimpsonJr/magpie. It costs 144 tokens per session (1,505 once invoked), scanned A, original, MIT.

A PDF inspection tool that looks for failed redactions, metadata, embedded files, form values, and text that may remain underneath blacked-out areas. Redaction means permanently hiding sensitive information in a document.

In plain words
What is it for?
Use it to investigate redactions in received FOIA responses, or check your own PDF before release. FOIA is a process for requesting government records.
Why use it?
A visual black box does not always remove the underlying text or other hidden data, so the tool provides human-review flags before or after publication.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the magpie plugin — 13 skills, 2 agents, 1 MCP server shipped together

Good fit Use it to investigate redactions in received FOIA responses, or check your own PDF before release. FOIA is a process for requesting government records.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/timsimpsonjr/magpie/redaction-check
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add TimSimpsonJr/magpie --skill redaction-check
Clone the repo
git clone --depth 1 https://github.com/TimSimpsonJr/magpie

Made for: Claude Code.

Or install magpie, the plugin that ships this one along with the rest of its 13 skills, 2 agents, 1 MCP server.

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

agentmods badge for redaction-check

README.md
[![agentmods](https://agentmods.dev/badge/skills/timsimpsonjr/magpie/redaction-check/github.svg)](https://agentmods.dev/skills/timsimpsonjr/magpie/redaction-check)
Your own site
<a href="https://agentmods.dev/skills/timsimpsonjr/magpie/redaction-check"><img src="https://agentmods.dev/badge/skills/timsimpsonjr/magpie/redaction-check/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.

agentmods 80×15 button for redaction-check

Your own site · 80×15
<a href="https://agentmods.dev/skills/timsimpsonjr/magpie/redaction-check"><img src="https://agentmods.dev/badge/skills/timsimpsonjr/magpie/redaction-check.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 144 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,505 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00144 $0.01505
Opus 5 $0.00072 $0.00753
Sonnet 5 $0.00029 $0.00301
Haiku 4.5 $0.00014 $0.00151

Measured 9d ago against content hash 74a0c3a17d2e, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-09, from the pricing page.

Security

Grade A, and why

redaction-check scanned grade A with 0 findings 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 9d 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.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/redaction-check/SKILL.md · 101 lines

How it starts

The opening of the file, as written. The whole thing — 101 lines — stays where its author put it; the contents beside it link to each section on GitHub.

redaction-check

Find BAD REDACTIONS in a PDF and emit each as a FLAG-FOR-A-HUMAN LEAD -- NEVER an "improper redaction" verdict. A layered set of independent checks runs over one PDF and returns a RedactionReport. This is the INPUT side of Phase 7 (the output side is redact-output).

The verified library facts (the x-ray inspect() contract, the pikepdf / pdfminer APIs, the AGPL/PyMuPDF licensing call, the coordinate trap) live in references/prior-art.md -- consult it before changing a check or a dependency.

The one entrypoint

from scripts.redaction_check import check_redactions

report = check_redactions(pdf_path, mode="received")   # or mode="pre-publish"
publishable = report.publishable_view()                # safe to route to Librarian

mode:

  • received -- inspect a FOIA response WE GOT for the AGENCY's bad redactions. Findings are investigative LEADS (recover/quantify what they failed to hide; feed request-the-gap). safe_to_publish is None (no pass/fail).
  • pre-publish -- inspect OUR OWN output before release. A finding is a STOP signal; severities come from a pinned map and the report carries safe_to_publish: bool.

The checks (each a LEAD)

  1. box_over_text -- Free Law x-ray (lazy -> PyMuPDF): a rectangle drawn over still-extractable text. The recovered under-box text is LOCAL-only.
  2. text_layer -- pdfminer.six: extractable text that CO-OCCURS (page-level) with another redaction signal. NOT a standalone "text exists" alarm.
  3. metadata -- pikepdf docinfo + XMP: leaked author / producer / title / dates.
  4. incremental_save -- raw bytes: %%EOF paired with startxref > 1 (a prior revision may hold pre-redaction content). A lead, not proof.
  5. unapplied_redact -- pikepdf: a /Subtype /Redact annot MARKED but never APPLIED (underlying content still present).
  6. embedded_files -- pikepdf: attachments + /AF + /FileAttachment (may carry un-redacted source). Name + size only; never extract contents.
  7. acroform_values -- pikepdf: form field /V values behind a flat-looking page.
  8. annotation_text -- pikepdf: comment-annot /Contents (a reviewer note).

Read the full file on GitHub · 101 lines

Files

What ships with it

1 file 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.

Changes

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.

  1. 9d ago First seen · 101 lines · 144 tokens per session scan A 74a0c3a17d2e

Subscribe to this mod's changes

redaction-check is a skill published in the GitHub repository TimSimpsonJr/magpie (2 stars, last pushed 2mo ago), licensed MIT. It adds 144 tokens to every session and 1,505 once invoked, about $0.0007 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

pdf-table-extractor-brief

Produces a structured extraction plan and clean spreadsheet template for pulling tabular data out of a PDF document — identifying the table structure, defining column headers, flagging extraction pitfalls, and providing a ready-to-use template that ensures the data lands in a consistent, analysable format.

ur-grue/autopunk-media-skills · 61 tokens

pdf-design

Designs PDF reports and proposals from HTML with previews and branding. Use to create, export, or securely upload a PDF.

jamditis/claude-skills-journalism · 28 tokens

document-design

Creates print-ready HTML that exports to PDF. Use to make a proposal, report, one-pager, newsletter, slides, or flyer.

jamditis/claude-skills-journalism · 31 tokens

data-table-formatter

Formats raw or messy data into a clean, publication-ready table with appropriate headers, sorted rows, consistent number formatting, and a source note — ready to drop into an article, report, or web page.

ur-grue/autopunk-media-skills · 46 tokens

foia-request-writer

Drafts legally complete public records requests (federal FOIA and all 50 state laws), administrative appeals, and redaction challenge strategies for U.S. government records.

ur-grue/autopunk-media-skills · 40 tokens

osint-tool-catalog

Produces a categorised catalog of open-source intelligence tools relevant to a journalist's investigation, with practical guidance on what each tool does, when to use it, and what its limitations are.

ur-grue/autopunk-media-skills · 43 tokens