| name | load-report |
| description | Normalise a report file (PDF, DOCX, HTML, large markdown) into Claude-readable text with page anchors preserved. Use as the input adapter for the other report-analyst skills when the user passes a path on disk rather than pasted text. |
When to use
Any time the user passes a path to a report and a downstream skill (verdict, extraction, summary) needs to read it. Not for pasted text.
How to run
- Inspect the file extension:
.pdf — prefer Claude's native PDF reading (the model can read PDFs directly). If that's unavailable or the PDF is image-only, fall back to pdftotext -layout <file> - from poppler-utils. For OCR-needed PDFs, flag the user and suggest running ocrmypdf first.
.docx / .doc — convert via pandoc -f docx -t markdown <file>.
.html / .htm — convert via pandoc -f html -t markdown <file> (or lynx -dump for layout fallback).
.md / .txt — read directly.
- Preserve page anchors wherever the source has them. For PDFs, use the form
[p.N] at the start of each page's text. Downstream skills depend on these for citation.
- Output a normalised markdown file at
/tmp/report-analyst/<sanitised-name>.md (or in the working directory if the user prefers — ask if it matters).
- Return the path of the normalised file plus a one-line note about source format and page count.
Edge cases
- Image-only PDFs — flag and suggest OCR. Do not try to analyse blank text.
- Reports >200 pages — return successfully but note the size; downstream skills should chunk.
- DOCX with tables / figures — pandoc may mangle complex tables; flag if the report is table-heavy and recommend manual conversion or PDF input instead.
- Encrypted PDFs — fail clearly; ask the user to provide an unencrypted copy.
Output
Loaded: <original-path>
Format: <pdf | docx | html | md>
Pages: <N if known>
Normalised: <output-path>
Notes: <any flags — image-only, OCR-needed, table-heavy, etc.>
Then return control to the calling skill.