Skip to content
Back to skills

Replication Package

ASecurity

Assemble, anonymize, validate, or audit a research replication package. Use when preparing code and permitted data for reviewer or public release. Not for auditing code quality alone; use $code-suite or $replication-audit as appropriate.

  • 144 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 23, 2026
ai-agentspythongobashgit

Security analysis

A100/100

Pro scans all 14 files and shows the line behind each finding

Scanned September 23, 2026

npx -y skills add flonat/flonat-research --skill replication-package --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Replication Package?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Replication Package
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/flonat-replication-package/badge)](https://www.skillsdirectory.com/skills/flonat-replication-package)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: replication-package
description: "Assemble, anonymize, validate, or audit a research replication package. Use when preparing code and permitted data for reviewer or public release. Not for auditing code quality alone; use $code-suite or $replication-audit as appropriate."
allowed-tools: Bash(cp*), Bash(rm*), Bash(mkdir*), Bash(ls*), Bash(git*), Bash(find*), Bash(sed*), Bash(grep*), Bash(du*), Bash(wc*), Bash(dirname*), Bash(basename*), Bash(readlink*), Bash(rsync*), Bash(mv*), Read, Write, Edit, Glob, Grep, AskUserQuestion, Skill
argument-hint: "[project-path] [--mode assemble|blind|audit]"
skill-dependencies: [latex]
---

# Replication Package — Assemble, Anonymize, and Audit

> Build publication-ready replication packages, optionally anonymize for double-blind review, or audit an existing package for reproducibility. The original project is never modified.

## Modes

| Mode | What it does | Use case |
|------|-------------|----------|
| **Assemble** | Clean copy + AI trace removal + AEA-style README | Sharing, Zenodo deposit, journal supplementary |
| **Blind** | Everything in Assemble + identity anonymization | Double-blind conference/journal submission |
| **Audit** | Read-only 11-check reproducibility validation | Pre-deposit quality gate, self-check |

**Default mode:** Assemble. Infer Blind if the user says "anonymize", "double-blind", or "blind review". Infer Audit if the user says "audit", "check reproducibility", or "validate package".

## When to Use

- Submitting supplementary materials or replication files to a journal
- Depositing a package on Zenodo, Dataverse, or ICPSR
- Sharing a project repo publicly (GitHub, institutional repository)
- Preparing for double-blind submission (Blind mode)
- Self-checking reproducibility before deposit (Audit mode)

## When NOT to Use

- Quick one-off cleanup of a single file — do it manually
- Removing a single AI artifact — just delete it directly
- Projects with no empirical or computational component

---

## Critical Rules

1. **Never modify the original project.** All work happens on a copy in a sibling folder.
2. **Dry-run mandatory.** Always show what will be removed/changed and get user confirmation before any deletions.
3. **Binary files are never modified.** Warn the user to manually check PDFs (Document Properties), images (EXIF data), and datasets for embedded metadata.
4. **Self-citations are always interactive.** Never auto-remove or auto-anonymize a citation. Flag each potential self-citation and let the user decide per citation. **In Blind mode, surface every self-citation against the loaded submission author list and require a per-citation decision (third-person OK / blind the entry).** When the cited paper's author list is a subset of the submission's, third-person is structurally insufficient and the bib entry MUST be blinded — see `_shared/double-blind-anonymity-checklist.md` §P4–P5.
5. **Resolve symlinks.** Use `rsync -aL` so symlinked content (e.g., Overleaf `paper/` symlinks) becomes real files in the copy.
6. **Preserve compilability.** The output must still compile/run — only infrastructure and identity are removed, not project functionality.
7. **Blind mode runs the structured-metadata field check (A2) before reporting clean.** `pyproject.toml` `[project] authors`, `package.json` `author`/`contributors`, `Cargo.toml` `[package] authors`, `CITATION.cff`, `LICENSE` holder, etc. — see `_shared/double-blind-anonymity-checklist.md` §"Structured-metadata field check (A2)" for the full target list. This was the CCS 2026 #1328 desk-reject trigger and is now non-skippable.

---

## Assemble Mode (Non-Blind)

Phases 1-7: Scan → Copy → Scrub AI Traces → Generate README → Verify → Fresh Git → Report.

Full workflow: [`references/assemble-workflow.md`](references/assemble-workflow.md)

---

## Blind Mode (Assemble + Anonymization)

Runs all Assemble phases, then continues with Phases 8-12: Collect Identity → Anonymize LaTeX → Anonymize Other Files → Anonymous Git → Leak Check Report.

Full workflow: [`references/blind-workflow.md`](references/blind-workflow.md)

---

## Audit Mode (Read-Only)

11-check reproducibility validation: Compilation, Script order, Output presence, Dependencies, Data provenance, README, File sizes, End-to-end clarity, AI traces, Identity leaks, Numeric reproduction.

Full workflow: [`references/audit-workflow.md`](references/audit-workflow.md)

**Check 11 (Numeric reproduction)** is N/A unless an `expected_values.json` (the manuscript's reported numbers) sits at the package root. When present, the audit parses the package's **committed output files** and scores them against that ground truth within tolerance — catching paper-vs-output drift. It is read-only and never re-runs scripts. Convention + scoring rubric: [`references/expected-values-schema.md`](references/expected-values-schema.md).

### HPC-run results

If the project used [HPC cluster] (`hpc/` directory with `*.sbatch`), the results in `out/<jobid>/` should include `git-sha.txt` + `git-status.txt` (written by the sbatch templates before `srun`). Audit must verify these exist and the SHA matches a commit in the repo — this is the compute-reproducibility equivalent of Script order + Dependencies for HPC runs. The Assemble README should document the `hpc/` entry point and the HF/conda env-setup script alongside `code/` + `data/`. See Task Management `docs/guides/hpc.md`.

---

## What This Skill Does NOT Do

- **Does not modify the original project** — all changes are in the sibling folder (Assemble/Blind) or purely read-only (Audit).
- **Does not modify binary files** — PDFs, images, datasets are copied as-is. User must check these manually for embedded metadata.
- **Does not auto-handle self-citations** — every potential self-citation requires user decision.
- **Does not anonymize the paper title** — titles are generally not considered identifying (but some venues disagree; user should check).
- **Does not strip PDF metadata** — if a compiled PDF exists, its Document Properties may contain author info. User should recompile from the anonymized source or use `exiftool` to strip metadata.
- **Does not run scripts** — it verifies their presence and order but does not execute them (too risky without a controlled environment). Check 11 (Numeric reproduction) likewise compares the package's *already-committed* output files against the manuscript; it never re-runs the pipeline, so it catches paper-vs-output drift, not full fresh-run reproduction.

---

## Examples

### Assemble mode (default)

> "Build a replication package for my research paper"

Runs Assemble mode on the current project, creates `../mcdm-paper-replication/`.

### Blind mode

> "Anonymize my paper for AAAI double-blind submission"

Runs Blind mode, creates `../mcdm-paper-replication-blind/`.

### Audit mode

> "Audit the reproducibility of my replication package"

Runs Audit mode (read-only) on the specified package directory.

### Explicit path and mode

> "replication-package <project-path> --mode blind"

Runs Blind mode on the specified project path.

---

## Cross-References

- **`data-sensitivity` rule** — raw data is read-only; replication packages must document data provenance without modifying `data/raw/`
- **`overleaf-separation` rule** — `paper/` structure is preserved; symlinks resolved by rsync
- **`shared/multi-language-conventions.md`** — dependency detection patterns for Python, R, Julia, MATLAB
- **`shared/publication-output.md`** — output file verification and freshness checks
- **`latex`** — compilation check in Audit mode
- **`references/aea-readme-template.md`** — AEA-style README template for Assemble mode
- **`references/figure-table-crosswalk.md`** — per-figure/table crosswalk (with LaTeX Label) + paper-consistency check, appended to the README (Phase 4)
- **`references/logging-skeletons.md`** — per-script logging + master-script skeletons (R/Python/Julia/Stata) offered in Phase 5
- **`references/release-readiness-checklist.md`** — 14-point PASS/FAIL pre-release gate emitted at Phase 7 (`RELEASE-READINESS.md`)
- **`references/rules.dropboxignore`** — Dropbox-sync ignore file for Dropbox-synced packages (Phase 6)
- **`references/anonymization-patterns.md`** — replacement tables for Blind mode
- **`references/audit-rubric.md`** — 11-check scoring rubric for Audit mode
- **`references/expected-values-schema.md`** — `expected_values.json` convention + numeric-reproduction scoring rubric (Check 11)
- **`references/deposit-checklist.md`** — platform-specific deposit completeness checklist
- **`references/report-template.md`** — report format for Blind mode
- **`_shared/double-blind-anonymity-checklist.md`** — authoritative paper+artifact anonymity matrix (P1–P8, A1–A9). Blind mode must run all artifact-side checks (A1–A9) before reporting clean.

---

> **Note:** This skill replaces the former `/export-project-clean` and `/export-project-anon` skills. All their functionality is preserved in Assemble and Blind modes respectively.

---

## Output Verification (Guard)

This skill writes files. Before any auto-commit, emit an outputs manifest and run the shared verifier. See [`skills/_shared/verify-outputs.md`](../_shared/verify-outputs.md) for the full protocol.

**Required tail steps** (before `git commit`):

1. Write the manifest to
   `<project>/.context/state/outputs-manifest-<UTC-timestamp>.json`, listing
   every file this skill claims to have written in this invocation (paths
   relative to the project root).
2. Run:

   ```bash
   uv run python "<skills-root>/_shared/verify_outputs.py" \
       --manifest "$MANIFEST" \
       --project-root "$PROJECT_ROOT"
   ```

3. If the verifier exits non-zero, **do not commit** — surface the missing-files list to the user and stop. The verifier has already logged an `error` entry to `~/.local/state/ai-workflows/skill-outcomes.jsonl`, which feeds the shared skill-health dashboard.

**Why:** closes the "hallucinated outputs" failure class (commit `b2cff75`, 2026-04-18).

Files in this skill

  • SKILL.md9.9 KB
  • references/aea-readme-template.md5.4 KB
  • references/anonymization-patterns.md3.8 KB
  • references/assemble-workflow.md10 KB
  • references/audit-rubric.md11.1 KB
  • references/audit-workflow.md3.8 KB
  • references/blind-workflow.md4 KB
  • references/deposit-checklist.md6.6 KB
  • references/expected-values-schema.md4.8 KB
  • references/figure-table-crosswalk.md3.7 KB
  • references/logging-skeletons.md3.7 KB
  • references/release-readiness-checklist.md3.1 KB
  • references/report-template.md2.1 KB
  • references/rules.dropboxignore677 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.