tldr · v1.1 · 2026-10-14 · sha256 86d33eb42e83a45b
tldr v1.1A
Immutable. This exact content never changes and is served at /api/v1/blob/86d33eb42e83a45b.
--- name: tldr category: communication activation: command disable-model-invocation: true environments: coding, chat argument-hint: "[file | PR | URL | topic — empty means the last message]" description: Compressing something long into the few facts needed to decide or act — the last message and the work behind it, or a named file, PR, document, or thread. metadata: version: "1.1" --- # TL;DR Something got too long to hold. Hand back the **cliffs**: the few facts that let the user decide or act, and an honest line about what those facts leave out. Cliffs, not a **telegram**. A telegram is shorter and just as unusable — it drops the premises, so only someone who already read the source can parse it. The cliffs let someone who read nothing hold their own in the conversation. ## What to summarize | Argument | Target | |---|---| | *(none)* | The last assistant message **and the work behind it** — the tool calls, files, and findings it was reporting on. | | A path | That file or directory. | | A PR, issue, branch, or diff | The change: what it does, what it breaks, what a reviewer must look at. | | A URL or attached document | That document. | | A topic in prose | The part of this session about that topic. | Read the target in full first. Cliffs assembled from a diff stat, a file listing, or a page title are a guess wearing a summary's clothes. When the argument reads two ways — a word that is both a filename and a topic — resolve it from what the user has been doing and name the reading you picked in one clause. Answer rather than ask. ## The shape ```markdown **Bottom line.** [One sentence. What survives if they read nothing else.] - [Load-bearing fact] - [Load-bearing fact] - [3–5, ordered by what the decision turns on, not by source order] **Your move.** [The decision waiting on them, the next step, or "nothing — FYI".] **Left out:** [What was cut that could still matter, or "nothing that changes the above".] ``` The shape is the length budget; there is no word count to hit. The same thread as a telegram, its source, and its cliffs: Telegram: `Auth → gateway. Cache unchanged. New secret. LGTM w/ nit.` Source: ```markdown Mara: gateway migration ships Friday, I own the rollout. Luis: rate limiting is untested, keep it out of this PR. Mara: agreed, rate limiting waits; `GATEWAY_JWT_KEY` must exist first. ``` Cliffs: ```markdown **Bottom line.** Mergeable once the secret exists; rate-limit timing is settled. - Auth checks move to the gateway; Mara owns the Friday rollout. - Deploy fails without `GATEWAY_JWT_KEY` in staging and prod. - Rate limiting ships next week (inferred — agreed as follow-up, no date given). **Your move.** Create `GATEWAY_JWT_KEY`, then confirm Friday with Mara. **Left out:** the caching refactor (no behavior change) and three naming nits. ``` The telegram only parses for someone who already read the PR; the cliffs carry the premises (*what* moved, *why* deploy fails) and keep the disagreement as two positions. ## Load-bearing A fact is **load-bearing** when removing it changes what the user does next. Load-bearing detail survives verbatim: numbers, versions, paths, identifiers, error strings, names, owners, deadlines, decisions taken. Adjectives, transitions, restatements, and the order the source happened to use are what compression eats. Three things stay load-bearing however long the source is: - **Claims, not topics.** "Covers auth, caching, and deploy" is a table of contents. Say what it *says*: "auth moves to the gateway, caching is unchanged, deploy needs a new secret." - **The disagreement.** An unresolved thread or two conflicting sources stay two positions in the cliffs. Collapsing them into one confident answer is the most expensive error this skill can make. - **The gaps.** "I could not read section 4" and "section 4 does not matter" are different sentences; write the true one. Mark inference as inference: "(inferred — the doc never says)". Prose follows the conversation, terms follow the source. The cliffs are written in the language the chat is in — an English PR summarised into a German thread comes back German. What stays in the source's own words are the terms themselves: identifiers, error strings, and a repo's `GLOSSARY.md` ubiquitous language. Translating those, or inventing a cleaner label, makes the reader translate back. ## When it is a different ask - **Writing a status from activity or for an outside audience.** A standup drafted from recent activity is a `repo-status` task (suggest the user run the command); a status for readers outside the working group is `stakeholder-update`. - **Short, and it still did not land.** The gap is missing premises. Back up and re-explain with them. In a German chat, suggest the user run `was`, which re-pitches the last message in plain German. - **The reasoning is the point** — a trade-off, a review call. Give the shape of the argument: both positions and what each turns on. - **Already short, no core, or a summary just written.** Say that in one line; a thinner copy helps nobody. ## Before sending Point each bullet at its source line or passage. A bullet with no source goes out or goes marked "(inferred)". ## Done when The user could act on the cliffs without opening the source, every bullet changes what they would do, and every number, path, and name in them was copied rather than remembered.