Generate a TL;DR summary of a specific document or learning unit in the Knowledge base. Pulls chunks from pgvector and synthesizes via Claude Haiku. Use when the user wants a quick overview ('summary of lesson 5', 'TL;DR of this PDF', 'explain document X in one paragraph').
Scanned 5/29/2026
npx -y skills add evolution-foundation/evo-nexus --skill knowledge-summarize --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Knowledge Summarize?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/evolution-foundation-knowledge-summarize)More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.
---
name: knowledge-summarize
description: "Generate a TL;DR summary of a specific document or learning unit in the Knowledge base. Pulls chunks from pgvector and synthesizes via Claude Haiku. Use when the user wants a quick overview ('summary of lesson 5', 'TL;DR of this PDF', 'explain document X in one paragraph')."
---
# knowledge-summarize
Group: **Consumption**. Generate TL;DR of a document or unit using indexed chunks.
## When to trigger
- "Summary of lesson 5"
- "TL;DR of this PDF"
- "Explain document X"
- "Summary of module Y"
## Arguments
| Name | Type | Required | Description |
|---|---|---|---|
| `document_id` | str | one of two | Document UUID |
| `unit_id` | str | one of two | Unit UUID (aggregates all docs) |
| `connection` | str | no | Defaults to first ready |
| `max_tokens` | int | no | Limit (default 500) |
## Workflow
### Step 1 — Fetch chunks
```python
from dashboard.backend.sdk_client import evo
if document_id:
doc = evo.get(f"/api/knowledge/v1/documents/{document_id}",
headers={"X-Knowledge-Connection": connection})
chunks = doc["chunks"]
title = doc["title"]
elif unit_id:
docs = evo.get(f"/api/knowledge/v1/documents?unit_id={unit_id}",
headers={"X-Knowledge-Connection": connection})
chunks = []
for d in docs:
full = evo.get(f"/api/knowledge/v1/documents/{d['id']}",
headers={"X-Knowledge-Connection": connection})
chunks.extend(full["chunks"])
title = f"Unit {unit_id} ({len(docs)} documents)"
```
### Step 2 — Concatenate + truncate
Concatenate `chunk.content` separated by `\n\n`. If total > 40k chars: sample first/middle/last third.
### Step 3 — LLM call
Model: `claude-haiku-4-5-20251001`.
Prompt:
```
Summarize the document in structured markdown. Max {max_tokens} tokens.
## {title}
**TL;DR (1 paragraph):** ...
**Key points:**
- ...
- ...
**Target audience / when to use:** (optional)
### Document
{concatenated_chunks}
```
### Step 4 — Render
Return summary + footer `Based on {N} chunks from {M} documents`.
## Actionable failures
- Neither `document_id` nor `unit_id` passed → "Pass one of the two (mutually exclusive)."
- Not found → "Not found. Use `knowledge-browse` to list."
- `ANTHROPIC_API_KEY` missing → "Set `ANTHROPIC_API_KEY` in `.env`."
- Doc status != ready → "Not indexed (status={status}). Re-upload the document or wait for ingestion to complete."
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!