# Port: `edsummary` → `extensions/summary`

2026-08-11

The twelfth port, and a small one with a specific job: a forty-post thread that
somebody needs the gist of.

🚨 **There is no model in this.** The name suggests one and the app does not
have one — it does not write a summary, it *selects* one. The most significant
posts, in the order they were written, so what you read is still the
conversation rather than a paraphrase of it. Nothing is rewritten, nothing is
invented, and nothing costs anything per view.

That is the better product as well as the cheaper one. A generated summary of a
technical argument is a summary somebody has to go and check; a shorter version
made of the actual posts is one they can act on.

## What makes a post significant

Engagement, structure and length, weighted so no single one can carry a post on
its own:

- **Reactions**, capped. Ten is as many as counts — past that a post is popular
  rather than more informative, and an uncapped count lets one crowd-pleaser
  push out three posts that answered the question.
- **The first post always belongs.** A summary without the question is a set of
  answers to nothing.
- **The answer always belongs**, where the site knows which one it is.

🚨 Those two are *taken*, not weighted. The original gives each a large bonus
and hopes, and on a thread where a few replies collected ten reactions each that
hope fails — the question drops out. The intent is the original's own, written
in its own comment; this makes it true rather than likely. A test proves it
against a thread built to break it: a short, unloved opening post and twelve
long, popular replies.
- **Length, relative to the longest post in this topic** rather than an absolute
  word count. Threads have their own register — a long post in a one-line
  banter thread is a different animal from a long post in a support thread, and
  a fixed threshold gets one of them wrong.
- **Very short posts lose points**, because "thanks" and "+1" are the noise a
  summary exists to remove.
- **The starter coming back mid-thread gains a little**, since that is usually
  a clarification or an update rather than another opinion.

Then the best are taken and **put back in chronological order**, which is the
part that makes it read as a conversation instead of a leaderboard.

## 🚨 What it does when Signal is installed

Signal — port #5 — already scores every post and marks which reply answered the
question. When it is there, Summary uses it: the marked answer is treated as
*the* answer, and Signal's own score is folded in as one more signal among the
rest.

It is folded in rather than substituted, deliberately. Signal is judging whether
a post *answers* something; Summary is choosing what a reader needs to follow
the thread, and those are related questions rather than the same one. A post
that settled an argument and a post that explained the background are both worth
carrying, and only one of them is an answer.

When Signal is absent, nothing degrades — the heuristic stands on its own, which
is what it was built to do.

## Three things Convoro cannot weigh

The original also counted quotes, "helpful" marks and featured posts. Convoro
has none of the three. They are dropped rather than approximated, because a
weight standing in for a signal the site does not collect is a number that looks
like evidence and is not.

## Where it appears

A banner on any topic past a configurable length, saying how long the thread is,
how long it takes to read, and how long the short version takes. 🚨 Both times
are stated, because "read the summary" is a decision and the reader is the one
making it — a banner that only offers is a banner that gets ignored.

**Nothing about the topic changes.** The summary is a separate view; the thread
is untouched, and there is a link back to the full one from the top and the
bottom of it.

## Not built

**A "summarise this" button on shorter topics.** The banner appears past a
threshold because summarising a twelve-post thread wastes a click to save
nothing, and an always-available control invites exactly that.
