| name | document-summarization |
| title | Document Summarization Skill |
| description | Summarize an uploaded document (DOCX, PDF, contract, filing, memo, opinion, etc.) by reading it structurally rather than linearly. Use whenever the user asks to summarize, recap, brief, give the gist of, pull key terms from, or "tell me what this is about" for an attached document. NOT for summarizing a chat conversation or vector-search results — only for a binary the user uploaded. |
| author | firelex |
| author_url | https://github.com/firelex/suzielaw/tree/main/apps/suzielaw/skills/document-summarization |
| license | MIT |
| version | 0.1.0 |
| execution_mode | open |
| jurisdiction | general |
| practice | general |
| language | en |
Document Summarization Skill
Lawyers don't read contracts cover-to-cover when they need a brief — they scan the table of contents, dive into the clauses that matter, and check defined terms when something looks unusual. This skill prescribes the same workflow using the document tools you already have.
When to use
Trigger when the user has attached a binary (DOCX, PDF, etc.) AND is asking for one of:
- A summary, brief, recap, executive summary, abstract
- Key terms, key points, key dates, parties, obligations
- "What is this about?", "what does this say?", "give me the gist"
- A risk summary or red-flag review
If multiple binaries are attached, treat each one separately unless the user explicitly asks to compare/synthesize.
If no binary is attached but a document is already in the chat (paste, vector-search hit), skip §1 and start at §2 with whatever doc_id is in scope.
Workflow
1. Convert the binary to a navigable document
For each attached binary the user wants summarized:
convert_to_markdown(file_id=<id from [Attachments]>)
Returns a doc_id. If conversion fails (scanned PDF with no extractable text, corrupt file), tell the user plainly — don't fabricate a summary from the filename.
2. Get the structure
get_outline(doc_id=<doc_id>)
Read the outline before reading any section. The outline tells you:
- Document type (contract, memo, filing, opinion, policy) — infer from headings
- Length and depth — a 4-section memo and a 60-section credit agreement need different treatment
- Where the load-bearing content is — definitions, recitals, operative covenants, schedules
3. Decide what to read
Pick sections to read in full based on the outline. Heuristics by document type:
- Contracts / agreements — definitions, term/termination, payment, IP, liability/indemnity, governing law, any section with an unusual or non-boilerplate heading. Skip standard boilerplate (notices, severability, counterparts) on the first pass.
- Memos / opinions — issue, short answer/conclusion, analysis. Read those three; skip lengthy facts unless the user asked about facts.
- Filings (briefs, motions) — introduction, statement of facts, argument headings, conclusion. Read the argument headings to see what's being argued; read the conclusion.
- Policies / regulations — scope, definitions, the operative requirements, penalties/enforcement.