Comments and Mentions | LlamaPress Pattern Catalog
LlamaPress
Coordinate
Pattern

Comments and Mentions

A discussion attached to the record it is about, where naming someone notifies them — so context and conversation stay in the same place.

Coordinate

The decision about a record was made in a chat thread or an email that nobody can find six months later. The record shows the outcome and none of the reasoning, so the next person re-litigates it or repeats the mistake.

Live demo — try it Open full screen
Use when
  • Decisions about a record need discussion, and the reasoning matters later.
  • More than one person touches the record.
  • The conversation currently happens in chat or email and gets lost.
Avoid when
  • One person works alone. A notes field is simpler and enough.
  • The discussion is really about the process, not this record — that belongs somewhere shared.
  • The record is high-volume and low-stakes; a comment box on every row is noise nobody reads.

Anatomy

  ┌─ Comments ────────────────────────────────────────────┐
  │ Dana · 3 days ago                                     │
  │ @priya the labour hours on level 3 look high — can    │
  │ you check against the timesheets before we send?      │
  │                                        ↑ notifies Priya
  │ Priya · 2 days ago                            (edited)│
  │ Checked. 48 hours is right, two crews for three days. │
  │                                                       │
  │ ⌁ Dana changed the amount from $8,400 to $8,900       │  ← activity,
  │   2 hours ago                                          │    interleaved
  └───────────────────────────────────────────────────────┘
  • On the record, so the thing being discussed is visible while discussing it.
  • Mention notifies. This is the whole pattern. Comments without mentions are a diary.
  • Edits are marked, deletions leave a tombstone. A thread that can be silently rewritten is worthless in exactly the situation you kept it for.
  • Interleaved with activity, so "why did the amount change" and "the amount changed" are adjacent.

Why it works

It puts the reasoning next to the record. The alternative is not "no discussion" — the discussion always happens. The alternative is that it happens in a channel with no connection to the record, and is therefore unfindable at exactly the moment someone needs it.

Mentions are what make it a coordination tool rather than an archive. A comment that nobody is told about is a message in a bottle; @-naming someone turns the record into the place work gets asked for, which is what pulls conversation out of chat.

The retention argument

Comments accumulate the why behind decisions, and that turns out to be the most valuable and least reproducible content in an internal system. Anyone can reconstruct what a record says; almost nobody can reconstruct why it says that.

This is also why the integrity rules matter more than they seem. Silent editing and silent deletion are cheap to allow and quietly destroy the one property that makes the thread worth keeping.

Getting it wrong

  • Comments with no mentions, so nothing is ever seen in time.
  • Silent edit or delete, which makes the thread untrustworthy.
  • Notifying people about their own actions, which trains everyone to ignore notifications.
  • A separate "internal notes" and "comments" split with no clear rule, so people put things in the wrong one and something private reaches a customer.
  • Comments on high-volume records nobody reads, which is noise disguised as collaboration.
  • No link back from the notification, so being mentioned means going to find the record yourself.

Exemplars

GitHub issues are the reference: the discussion, the activity and the record are one thread, and years later the reasoning is still attached to the code it produced.

Linear interleaves comments and property changes in one timeline, which is the detail that makes "why did this move to blocked" answerable in one glance.

Google Docs comments show the strongest version of proximity — the comment is anchored to the exact text it is about, which is as close as this pattern can get.

The extractable rule: comments preserve the why, and mentions are what make anyone read them. Build the mention, or you have built an archive.

Instead of this, consider

Same problem, different trade-off. Pick on the condition, not on taste.

Activity Timeline
When: You need the record of what changed, not a discussion about it.
Assign an Owner
When: The real need is to make someone responsible, not to talk about it.

Ask Leo for this

Paste this into your Leo chat. It describes the behaviour, not the code, so Leo can fit it to your data.

Prompt
Add comments to this record.

- Put the comment thread on the record itself, below the detail, so the
  context is on screen while people write.
- Typing @ offers people to mention, and mentioning someone notifies them with
  a link straight to this comment. That is the entire coordination mechanism —
  without it, comments are a diary nobody reads.
- Show who wrote each comment and when, and keep them in chronological order.
- Allow editing your own comment for a short window, and mark it as edited.
  Never allow silent editing, and never allow editing someone else's.
- Deleting a comment leaves a visible tombstone that says a comment was
  removed and by whom. A thread that can be silently rewritten cannot be
  relied on in a dispute.
- Interleave comments with the record's activity events in one chronological
  thread if you have both, so cause and discussion sit together.
- Let people who are not mentioned follow the record, and always notify the
  owner.
- Never notify someone for their own action.

Related

Pattern
Activity Timeline
The system half of the same thread — what changed, alongside what was said.
Pattern
Assign an Owner
Who gets notified by default, and who is accountable for acting on a comment.