a11y-pass
Catch the accessibility failures that ship in almost every AI-built UI. Use after building any interactive component.
Get a PDF into the model without blowing the context window or losing structure. Native PDF beats OCR-then-text for most cases; extract-then-summarize beats native for very long docs.
$ npx -y skills add Archive228/loopkit --skill pdf-ingestion --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/pdf-ingestionContext preview
The summary Claude sees to decide when to auto-load this skill.
Get a PDF into the model without blowing the context window or losing structure. Native PDF beats OCR-then-text for most cases; extract-then-summarize beats native for very long docs.
name: pdf-ingestion description: Get a PDF into the model without blowing the context window or losing structure. Native PDF beats OCR-then-text for most cases; extract-then-summarize beats native for very long docs. when_to_use: user drops a PDF, "read this report", extracting tables/figures from a doc, long-form doc summarization, spec document that lives as PDF
Three ways to feed a PDF to the model, in increasing order of preprocessing:
1. **Native PDF input** — pass the file directly. Model sees pages as images + extracted text. Best for docs under ~100 pages with meaningful layout (tables, figures, forms). Preserves structure.
2. **Text extraction then send** — `pdftotext` / `pypdf` / equivalent, then send the text. Loses layout but cheap. Fine for prose-heavy docs where tables don't matter.
3. **Extract → chunk → summarize → send** — for docs >100 pages or when you'll query the same doc many times. Preprocess once, cache the summary.
| Doc shape | Path | |---|---| | <20 pages, layout matters (report, form, invoice) | Native | | <20 pages, pure prose (article, memo) | Text extraction | | 20-100 pages, mixed | Native, but chunk if context tight | | >100 pages | Extract → chunk → summarize | | Scanned PDF (no text layer) | OCR first (Tesseract or vision model), then treat as extracted text | | Tables are the point | Native — text extractors mangle tables | | Figures/diagrams are the point | Native + explicit "describe the figure on page N" prompt |
If the PDF is a spec, extract it into `PROMPT.md` via `spec-first` — the agent should re-read prose, not re-scan the PDF, on every turn.
33 battle-tested skills + minimal .claude harness for any coding agent (Claude Code, Cursor, Codex, Gemini CLI).
Catch the accessibility failures that ship in almost every AI-built UI. Use after building any interactive component.
Before compaction Loopkit extracts decisions into claude-decisions.json (machine-readable). Read it alongside claude-progress.txt…
Review a diff against the goal spec assuming the code is BROKEN. The reviewer
Verify that an endpoint checks ownership, not just authentication. Use on any handler that reads or mutates user data.
Find the exact commit that introduced a bug. Use when something worked before and broke, and you don't know which change did it.
Before picking new work, smoke-test the last "completed" feature. If it's broken, revert and re-open it before touching anything…