file-readinglisted
Install: claude install-skill Wide-Moat/open-computer-use
# Reading Uploaded Files
## Why this skill exists
When a user uploads a file in claude.ai, Claude Desktop, or Cowork,
the file is written to `/mnt/user-data/uploads/<filename>` and you are told the path
in an `<uploaded_files>` block. **The content is not in your context.**
You must go read it.
The naive thing — `cat /mnt/user-data/uploads/whatever` — is wrong for
most files:
- On a PDF it prints binary garbage.
- On a 100MB CSV it floods your context with rows you will never use.
- On a DOCX it prints the raw ZIP bytes.
- On an image it does nothing useful at all.
This skill tells you the right first move for each type, and when to
hand off to a deeper skill.
## General protocol
1. **Look at the extension.** That is your dispatch key.
2. **Stat before you read.** Large files need sampling, not slurping.
```bash
stat -c '%s bytes, %y' /mnt/user-data/uploads/report.pdf
file /mnt/user-data/uploads/report.pdf
```
3. **Read just enough to answer the user's question.** If they asked
"how many rows are in this CSV", don't load the whole thing into
pandas — `wc -l` gives a fast approximation (it counts newlines,
not CSV records, so it may over-count if quoted fields contain
embedded newlines).
4. **If a dedicated skill exists, go read it.** The table below tells
you when. The dedicated skills cover editing, creating, and advanced
operations that this skill does not.
## `extract-text`
For docx, odt, epub, xlsx, pptx, rtf, and ipynb the first mov