Install any skill in seconds. Free to start, no credit card required.
Get Started Free →brycewang-stanford/split-pdf
Download, split, and deeply read academic PDFs.
Passed 12 of 21 test cases with the skill, and 8 of 21 without it.
and 4 more in the full report
6 fixed7 passed either way8 still failing1 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 6 test cases the skill fixed. Same model, same prompt, with and without the skill.
When splitting `./articles/glaeser_2001.pdf` into 4-page chunks in `./articles/split_glaeser_2001/`, what naming convention should be used for the split chunk covering pages 1 through 4?
| Checked | Without skill | With skill |
|---|---|---|
| The response specifies the split chunk filename as `glaeser_2001_pp1-4.pdf`. | Missed | Passed |
The instructions your model reads when the skill loads.
CRITICAL RULE: Never read a full PDF. Never. Only read the 4-page split files, and only 3 splits at a time (~12 pages). Reading a full PDF will either crash the session with an unrecoverable "prompt too long" error — destroying all context — or produce shallow, hallucinated output. There are no exceptions.
The user wants you to read, review, or summarize an academic paper. The input is either:
./articles/smith_2024.pdf)"Gentzkow Shapiro Sinkinson 2014 competition newspapers")Important: You cannot search for a paper you don't know exists. The user MUST provide either a file path or a specific search query — an author name, a title, keywords, a year, or some combination that identifies the paper. If the user invokes this skill without specifying what paper to read, ask them. Do not guess.
If a local file path is provided:
./articles/, copy it there (do not move — preserve the original location)If a search query or paper title is provided:
./articles/ in the project directory (create the directory if needed)CRITICAL: Always preserve the original PDF. The downloaded or provided PDF in ./articles/ must NEVER be deleted, moved, or overwritten at any point in this workflow. The split files are derivatives — the original is the permanent artifact. Do not clean up, do not remove, do not tidy. The original stays.
Create a subdirectory for the splits and run the splitting script:
from PyPDF2 import PdfReader, PdfWriter
import os, sys
def split_pdf(input_path, output_dir, pages_per_chunk=4):
os.makedirs(output_dir, exist_ok=True)
reader = PdfReader(input_path)
total = len(reader.pages)
prefix = os.path.splitext(os.path.basename(input_path))[0]
test cases passed, vs 8 / 21 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.