/read — Academic PDF Reading Skill
Core Principle
Display first, restrain expansion. Show the page content, provide a terms glossary, give a brief summary and thesis connections. Do not auto-expand, auto-search, or auto-record unless the user explicitly asks. The reader controls the pace and direction.
Trigger Words
This skill activates on: read, next page, continue, skip to p.N, read p.N, /read.
PDF limits
Both are enforced in the dsh app and advisory as a plain Agent Skill.
Say which one you are in rather than asserting either.
- Maximum 15 pages per invocation. In the app a wider range is denied
before it runs, with
PAGE_RANGE_EXCEEDED.
- Maximum 90 pages per session — a context-health budget, counted in the
app from successful reads folded out of the session log, and denied with
PAGE_BUDGET_EXCEEDED. It counts what went through the harness; reading
done outside it is invisible to the count. The fold counts calls, not
distinct pages, so re-reading a page you already read spends the budget
again — say so before repeating a range.
- Outside the app nothing counts for you: the limits are a rule you follow
imperfectly, and you should not present the budget as tracked.
- When a request approaches the budget, say so and suggest a new session.
Workflow
- Identify the PDF. If the user provides a path, use it directly. If the user names an author or title, search the project's
literature/ directory using Glob to locate the file.
- Read the specified page(s). In the dsh app call the
read_pdf tool —
file_path, first_page, last_page — which is the surface the page
guards decide on. As a plain Agent Skill, use the host's own file reader
with whatever page selection it offers. Default to the next unread page if
the user says "next page" or "continue".
- Display structured output following the format below.
- Wait for user instruction. Do not proceed to the next page, take notes, or search for related material unless explicitly asked.
Output Format
For each page read, produce the following:
## p.{N} -- {Topic Summary}
### Content
**{Paragraph topic}**
> "{direct quote}" (p.{N})
- {key point}
- {key point}
**{Next paragraph topic}**
> "{direct quote}" (p.{N})
- {key point}
### Key Terms
| Term | Translation | Context |
|------|-------------|---------|
| {term} | {if non-English, provide translation} | {how it is used on this page} |
### Summary
{3-5 sentence summary of the page content. Focus on the argument structure and evidence presented.}
### Connections
- **Thesis link**: {one sentence connecting to the user's research}
- **Previous page**: {one sentence on continuity with previous page, or "First page" if N=1}
- **Open question**: {if any unresolved point or tension is raised}
---
Next page? Take notes? Expand a connection?
Ceremony Control
Emit the ### Key Terms table only when the page introduces genuinely new
terms, and ### Connections only when there is a real thesis link or open
question — skip empty sections rather than filling them for form's sake. For
a page range, one Key Terms table and one Connections block for the range is
usually right.
Handling Multiple Pages
When reading a range (e.g., "read p.10-15"):
Constraints
- Never auto-record notes. The user must explicitly say "take notes", "record this", or invoke
/note.
- Never auto-search for related literature, web sources, or definitions unless the user asks.
- Never launch agents or parallel tasks.
- All extensions require explicit user request -- expanding a connection, comparing with another source, verifying a claim.
- Literature directory is determined from project configuration. Do not hardcode paths.
- Keep connections to 1-2 sentences max. Do not elaborate. The user will ask if they want more.
- Preserve original language for key terms. If the source is in a non-English language, show the original term alongside the translation.
- Quote accurately. Use the exact text from the PDF. If a quote spans pages, note both page numbers.
1---2name: read3description: Read PDF page by page with structured output — key arguments, terms glossary, thesis connections. Use when reading academic papers, books, or articles.4---56# /read — Academic PDF Reading Skill78## Core Principle910**Display first, restrain expansion.** Show the page content, provide a terms glossary, give a brief summary and thesis connections. Do not auto-expand, auto-search, or auto-record unless the user explicitly asks. The reader controls the pace and direction.1112## Trigger Words1314This skill activates on: `read`, `next page`, `continue`, `skip to p.N`, `read p.N`, `/read`.1516## PDF limits1718Both are **enforced** in the dsh app and **advisory** as a plain Agent Skill.19Say which one you are in rather than asserting either.2021- **Maximum 15 pages per invocation.** In the app a wider range is denied22 before it runs, with `PAGE_RANGE_EXCEEDED`.23- **Maximum 90 pages per session** — a context-health budget, counted in the24 app from successful reads folded out of the session log, and denied with25 `PAGE_BUDGET_EXCEEDED`. It counts what went through the harness; reading26 done outside it is invisible to the count. The fold counts calls, not27 distinct pages, so re-reading a page you already read spends the budget28 again — say so before repeating a range.29- Outside the app nothing counts for you: the limits are a rule you follow30 imperfectly, and you should not present the budget as tracked.31- When a request approaches the budget, say so and suggest a new session.3233## Workflow34351. **Identify the PDF.** If the user provides a path, use it directly. If the user names an author or title, search the project's `literature/` directory using Glob to locate the file.362. **Read the specified page(s).** In the dsh app call the `read_pdf` tool —37 `file_path`, `first_page`, `last_page` — which is the surface the page38 guards decide on. As a plain Agent Skill, use the host's own file reader39 with whatever page selection it offers. Default to the next unread page if40 the user says "next page" or "continue".413. **Display structured output** following the format below.424. **Wait for user instruction.** Do not proceed to the next page, take notes, or search for related material unless explicitly asked.4344## Output Format4546For each page read, produce the following:4748```49## p.{N} -- {Topic Summary}5051### Content5253**{Paragraph topic}**5455> "{direct quote}" (p.{N})5657- {key point}58- {key point}5960**{Next paragraph topic}**6162> "{direct quote}" (p.{N})6364- {key point}6566### Key Terms6768| Term | Translation | Context |69|------|-------------|---------|70| {term} | {if non-English, provide translation} | {how it is used on this page} |7172### Summary7374{3-5 sentence summary of the page content. Focus on the argument structure and evidence presented.}7576### Connections7778- **Thesis link**: {one sentence connecting to the user's research}79- **Previous page**: {one sentence on continuity with previous page, or "First page" if N=1}80- **Open question**: {if any unresolved point or tension is raised}8182---83Next page? Take notes? Expand a connection?84```8586## Ceremony Control8788Emit the `### Key Terms` table only when the page introduces genuinely new89terms, and `### Connections` only when there is a real thesis link or open90question — skip empty sections rather than filling them for form's sake. For91a page range, one Key Terms table and one Connections block for the range is92usually right.9394## Handling Multiple Pages9596When reading a range (e.g., "read p.10-15"):97- Produce the structured output for each page individually.98- At the end, add a range summary section:99 ```100 ## Pages {start}--{end} Summary101 {5-8 sentence summary of the range as a whole}102 ```103104## Constraints1051061. **Never auto-record notes.** The user must explicitly say "take notes", "record this", or invoke `/note`.1072. **Never auto-search** for related literature, web sources, or definitions unless the user asks.1083. **Never launch agents** or parallel tasks.1094. **All extensions require explicit user request** -- expanding a connection, comparing with another source, verifying a claim.1105. **Literature directory** is determined from project configuration. Do not hardcode paths.1116. **Keep connections to 1-2 sentences max.** Do not elaborate. The user will ask if they want more.1127. **Preserve original language** for key terms. If the source is in a non-English language, show the original term alongside the translation.1138. **Quote accurately.** Use the exact text from the PDF. If a quote spans pages, note both page numbers.