| 1 | --- |
| 2 | name: oh-my-ppt-source-reading |
| 3 | description: Source-document reading workflow for Oh My PPT. Read before generating slides from reference documents or retrieved snippets. |
| 4 | --- |
| 5 | |
| 6 | # Oh My PPT Source Reading |
| 7 | |
| 8 | ## Boundary |
| 9 | |
| 10 | Use this skill only when the host prompt already provides source documents or source snippets. |
| 11 | |
| 12 | Do not discover, infer, or guess source document paths. Use only the `sourceDocumentPaths` explicitly provided by the host prompt. If no source document path is provided, do not scan the project looking for one. |
| 13 | |
| 14 | ## When to use |
| 15 | |
| 16 | - `sourceDocumentPaths` are present. |
| 17 | - Retrieved source snippets are present. |
| 18 | - The task asks to preserve facts, metrics, terminology, conclusions, or page points from a reference document. |
| 19 | - A slide outline appears to come from a parsed reference document. |
| 20 | |
| 21 | ## When not to use |
| 22 | |
| 23 | - No source document path or source snippet is provided. |
| 24 | - The task is a pure visual/style edit that does not use source facts. |
| 25 | - The task is only about layout, animation, or chart mechanics with already supplied data. |
| 26 | |
| 27 | ## Reading workflow |
| 28 | |
| 29 | 1. Treat retrieved snippets as an index into the source, not as final evidence. |
| 30 | 2. Extract search terms from the current slide title, content points, user instruction, snippets, and any known entities/metrics. |
| 31 | 3. Use the DeepAgents filesystem tool `grep(pattern, path, glob)` inside the provided `sourceDocumentPaths` to locate relevant headings, paragraphs, tables, dates, metrics, entities, and terminology. `pattern` is a literal string, not a shell regex; call `grep` multiple times for multiple search terms. |
| 32 | 4. Use the DeepAgents filesystem tool `glob(pattern, path)` only if the provided path points to a directory or the host prompt explicitly says multiple matching source files may exist. |
| 33 | 5. Use `read_file` only on targeted sections or line ranges found by snippets/grep. Do not read an entire long document into context at once. |
| 34 | 6. If the initial grep/read did not yield enough source-grounded evidence, refine search terms and repeat grep -> targeted read. Try synonyms, broader or narrower scope, adjacent section headings, and known entities/metrics. |
| 35 | 7. Base every exact fact, metric, date, name, and quoted conclusion on the inspected snippets and source passages — then build the slide into a full argument around them (analytical structure, reading conclusion), not just the bare evidence. |
| 36 | 8. If an exact fact/metric/date/name is still missing after reasonable attempts, do not invent it — omit that specific claim or state it qualitatively. Do not leave the page sparse: expand it with analysis derived from the inspected material instead (see "When the inspected material is thin"). |
| 37 | |
| 38 | ### Example |
| 39 | |
| 40 | Slide title: "Q3 Revenue Highlights" |
| 41 | Content points: "YoY growth rate", "top product contribution", "regional breakdown" |
| 42 | |
| 43 | 1. Snippet mentions "revenue grew 15% YoY" -> search terms: `revenue`, `15%`, `YoY`, `Q3`. |
| 44 | 2. Call `grep(pattern="revenue", path="/source.md")`, then `grep(pattern="15%", path="/source.md")`, then `grep(pattern="Q3", path="/source.md")` -> matches near the Q3 finance section and regional table. |
| 45 | 3. Call `read_file(path="/source.md", offset=118, limit=60)` only around those matches -> confirms the exact growth and regional values. |
| 46 | 4. Build the slide with the confirmed facts. If "top product contribution" has no source backing, omit that exact claim (do not invent the product) — but keep the page full by expanding the angles you did confirm (see "When the inspected material is thin"). |
| 47 | |
| 48 | ## Evidence rules |
| 49 | |
| 50 | - Preserve source terminology, product names, system names, roles, dates, metrics, conclusions, risks, decisions, and examples. |
| 51 | - Use only source facts relevant to the current slide. Do not move material for other slides into this slide. |
| 52 | - Do not invent exact facts, metrics, dates, system names, status claims, examples, risks, decisions, or conclusions. |
| 53 | - If a retrieved snippet conflicts with the source passage you inspected, trust the inspected source passage over the snippet. |
| 54 | - If the source conflicts with the page outline, follow the source facts. If the source conflicts with an explicit user instruction, follow the user instruction but avoid unsupported source claims. |
| 55 | |
| 56 | ## When the inspected material is thin — expand into a full argument |
| 57 | |
| 58 | A half-empty slide is a failure, not fidelity. When the inspected source for a slide is sparse (one number, one chart, a few facts), do not just render that bare evidence and leave the rest of the canvas blank. Expand the slide into a complete argument with analytical and presentational structure DERIVED FROM the inspected material: |
| 59 | |
| 60 | - context or background the source implies |
| 61 | - comparison dimensions (vs baseline, vs other groups, vs a prior period) |
| 62 | - cause/effect or mechanism |
| 63 | - implications, consequences, or a "so what" |
| 64 | - evidence grouping, annotations, or a one-line reading conclusion |
| 65 | |
| 66 | This is interpretation grounded in the source, NOT fabrication. The boundary: |
| 67 | |
| 68 | - ✅ Allowed and expected: reasoning, structure, framing, and presentation derived from what you inspected — use it to make the slide feel complete and balanced (a complete argument, not more modules or a filled canvas). |
| 69 | - ❌ Forbidden: inventing exact facts, metrics, dates, names, quotes, or conclusions the source does not contain. |
| 70 | |
| 71 | If an exact value is missing, state it qualitatively or omit that specific claim — but keep building the argument with the structure above so the slide feels complete and balanced. |
| 72 | |
| 73 | ## Long-document discipline |
| 74 | |
| 75 | - Read nearby sections progressively rather than large ranges. Prefer 50-80 lines around grep matches; avoid reading 200+ lines in a single call unless the section itself requires it. |
| 76 | - Keep notes mentally scoped to the current slide. |
| 77 | - Stop reading once the current slide has enough source-grounded evidence. |
| 78 | - Never use source snippets for one slide as evidence for another slide unless the source passage directly matches that other slide. |
| 79 | |
| 80 | ## Output discipline |
| 81 | |
| 82 | - Do not rewrite the reference document into a generic storyline, marketing narrative, consulting framework, or inspirational theme unless the user explicitly asks for that transformation. (This prevents drifting off the source's topic or genre — it does not forbid the analytical expansion above: comparison, implications, and a so-what that stay on-topic are expected.) |
| 83 | - Slide text should be concise and presentation-ready, but still traceable to source evidence. |
| 84 | - Compress long source passages; do not paste long verbatim excerpts. |
| 85 | - Preserve exact numbers and names only when they appear in the source passage you inspected. |
| 86 | - For charts/tables, use only source-backed labels and values. If exact values are unavailable, use qualitative wording instead of invented numbers. |
| 87 |