Use before every double-blind submission, supplementary upload, anonymous artifact mirror or rebuttal attachment. Scans .tex/.bib/code/zip/PDF (text, metadata, embedded paths, compressed object streams) for author names, first-person self-citations, personal code-host URLs, e-mails, local paths, acknowledgements and funding lines, using a configurable deny-list.
Pro scans all 7 files and shows the line behind each finding
Scanned 9/26/2026
npx -y skills add jiayaoqijia/cryptoskill --skill acprk-anonymize-check --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Acprk Anonymize Check?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/jiayaoqijia-acprk-anonymize-check)More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.
---
name: anonymize-check
description: Use before every double-blind submission, supplementary upload, anonymous artifact mirror or rebuttal attachment. Scans .tex/.bib/code/zip/PDF (text, metadata, embedded paths, compressed object streams) for author names, first-person self-citations, personal code-host URLs, e-mails, local paths, acknowledgements and funding lines, using a configurable deny-list.
---
# Anonymize check
## Script
`scripts/anon_check.py` (standard library only; uses PyMuPDF or poppler if present).
```bash
# 1. keep a private deny-list (never commit a filled-in one publicly)
cp skills/anonymize-check/scripts/denylist.example.txt paper/.denylist.txt # then edit
# 2. scan sources, the built PDF, the supplementary zip, the artifact directory
python3 skills/anonymize-check/scripts/anon_check.py paper/ paper/main.pdf \
supplementary.zip artifact/ --deny-file paper/.denylist.txt \
--allow-url 'github\.com/<third-party-org>/'
# 3. self-test (synthetic sample; must print PASS)
python3 skills/anonymize-check/scripts/anon_check.py --selftest
```
Exit status 1 if any HIGH finding. `--json` for machine-readable output,
`--min-severity MEDIUM` to reduce noise.
## What it flags
| severity | finding |
|---|---|
| HIGH | deny-list term in text/code/filename/PDF bytes; e-mail; local path (`/home/<u>`, `/Users/<u>`, `C:\Users\<u>`); non-anonymous `\author`/`\institute`/`\thanks`/`\email`; acknowledgements section; PDF Author metadata; embedded figure path (`PTEX.FileName`) containing a username or deny term; `.git` inside an archive; URL containing a deny term |
| MEDIUM | first-person self-citation ("our previous work", "we previously showed", "our paper~\cite"); personal code-host URL (github/gitlab/.github.io/...) not in the allow-list; funding statement; PDF Title/Subject/Keywords metadata; `.git` directory in an artifact folder; hits inside comments (downgraded one level) |
| LOW | deny term inside `.bib` (allowed: self-citations stay in the bibliography with real authors, referred to in the third person); "camera-ready"/"de-anonymised" wording; Creator/Producer metadata (informational) |
## Manual checks the script cannot do
- Self-citations are written in the third person ("Example et al. [12] showed")
and critiqued like any other work; not omitted, not "anonymised" in the bib.
- No "blinded" citation that is obviously the authors' own when a third-person
citation would do (follow the venue's policy; IACR generally prefers third person).
- Supplementary/artifact README avoids "our prior paper", "same codebase as",
"inherited from our earlier implementation".
- Anonymous mirrors (e.g. anonymous.4open.science) are refreshed after the last
push, and each file URL returns HTTP 200 (a private source repository can make the
mirror return 403). Check with `curl -sI`.
- Figures: no screenshots with usernames, terminal prompts, or window titles.
- Experiment logs in the artifact: hostnames, IPs, usernames stripped.
- Overleaf/Git history is not shared with reviewers.
- Submission form fields (conflicts, abstract) are separate from the PDF; the PDF
itself must be anonymous.
## Remediation snippets
```latex
% Empty PDF metadata (hyperref)
\hypersetup{pdfauthor={},pdftitle={},pdfsubject={},pdfkeywords={},pdfcreator={},pdfproducer={}}
% Avoid embedding figure source paths (pdfTeX)
\pdfsuppressptexinfo=-1 % place in the preamble (pdfTeX >= 1.40.15)
```
```bash
# strip metadata from a finished PDF (qpdf/exiftool if available)
exiftool -all:all= -overwrite_original main.pdf && qpdf --linearize main.pdf main_clean.pdf
# zip an artifact without VCS data
git archive --format=zip -o artifact.zip HEAD # or: zip -r artifact.zip artifact -x '*.git*'
```
Record the final clean run (command + summary line + PDF sha256) in `SUBMISSION.md`.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!