We’ve agreed that for MVP we want comments to be unobtrusive and threaded. We know that people leave comments for all sorts of reasons ranging from requests for clarification to long discussions. We have had lots of discussion about discussions in the past. This is a proposal for an approach, taking all of that into account.
Presenting comments
A post that has comments would show the first N top-level thread titles (more on that below). Each thread shows stats, something like “12 comments from 3 people”. Each thread has an expand/collapse controller. If there are more threads than those shown, there’s a way to see them too.
The author of the post will get a slightly different view, which I’ll describe below.
Below the list of threads, there is an option to add a comment. (What we’ll call this in the UI is still to be determined.)
Adding a comment
When you click on whatever that “add comment” link ends up saying, you get a dialogue that presents the following options:
- I have a question for the author (request for clarification or for more information)
- I have something to add to an existing discussion
- I want to start a new discussion
Choosing the first expands the “questions for author” thread (creating it if needed) and gives you a comment textbox at the end.
Choosing the second gives you a list of thread titles to choose from. When you select one, it expands that one and gives you a comment textbox at the end.
Choosing the third prompts for a short name, adds it, and adds a comment textbox for what will be the first comment in the thread.
Wait, named threads?
Yeah. The idea here is that discussion threads should be about something. Consider a question on cooking about a cake that uses saffron. Threads might include “gluten-free adjustments” and “where do I find saffron?”. On a worldbuilding question about planets in binary-star systems, threads might include “viability for life” and “gravitational forces” and “star brightness”. On a software-engineering question about git, threads might include “rebase versus merge” and “commit messages”.
I’m not wedded to the idea of naming threads. It’s something I’d like to explore. If it doesn’t work, then the first comment becomes the de facto name of the thread and it behaves like pretty much every threaded-comments system you’ve ever seen – discussions might meander and you’ll have to read it to find out. The title idea is an attempt to provide better guidance for readers and a bit of a hint to commenters – if things have veered wildly from the title, maybe it’s time to start a new thread.
Replying to comments
What I’ve said so far is about the “add a new comment” path that starts from the link on the post. Within a thread, comments would also have a reply affordance, so instead of going to the bottom, finding the link, choosing the thread again, and only then adding your comment, you could instead click “reply”, get your textbox in its proper position, and go. TBD: notifications. (Just the person you’re replying to? The person who created the thread? The post author? No one?)
Exception: in the “questions for author” thread, you can only reply (only get the reply affordance) if either (a) you are the author (more on this below) or (b) you are replying to a comment made by the author.
For the author
Most discussions are discussions and might not even really involve the author (like those two people who are 17 comments into something on a tangential point). One of the reasons long comment threads on SE get pruned is that they bury the stuff that is “what comments are actually for”, meaning things the author can or should act on. The “questions for author” thread is an attempt to make that better. If you just want to talk about rebase do it over there, but if you want to ask the author what happened when trying that merge, do it as a question for the author.
When the author views a post, the “questions for author” thread starts out expanded.
When the author begins to reply to a comment in the “questions for author” thread, there is some sort of prompt to edit instead, but it doesn’t prevent leaving a comment. (Sometimes a request for clarification requires clarification, after all.) There should be some way to turn off the “edit instead” prompt. Maybe it’s only shown to inexperienced users. TBD.
The author can mark comments in the “questions for author” thread as handled, which produces some presentation change to be determined. (Eventually we probably want to get them out of the way, which then means we need a way to view them, which requires design. Without going down that path we could just add a checkmark or something.)
Do threads have threads?
One of the problems with threaded comments is that when each reply is indented and there’s lots of back-and-forth, the results can be hard to read – you get a very narrow comment way over on the right because of all the indentation, and things get hard to read. We’ve been saying “threaded comments” all along, but is that what we mean by threads? Or is it sufficient to have the top-level threads as I’ve described here, within each thread present a flat list (like SE comments or any chat system), and provide some way to highlight those subthreads on hover? (On this last, see how TopAnswers does it, and I believe there are userscripts that do this with SE chat.)
Extended discussions (not MVP)
There comes a point where long discussions become circular, heated, or extremely tangential, to the point where it would be better to stop or take it elsewhere. Communities should set their own guidelines about this; communities vary in their tolerance for discussions. The system should provide some gentle prompts, like the software for this forum does, when somebody has “a lot of” or “frequent” comments. There might even be a maximum length or depth of a thread. All these thresholds would be configurable per-community.