Skip to content

Duplicates and Hold Votes

Monica Cellio edited this page Sep 6, 2021 · 5 revisions

Draft for discussion

Codidact supports duplicate suggestions and hold suggestions. Duplicates are not a type of hold -- the focus of a duplicate is "get to an answer more quickly" and link posts together, while hold is more about closing a question down until problems are addressed. We think the user experience of duplicates can be improved if they're not treated as closures/holds.

Duplicates

Background links (not entirely current, but close enough):

Suggesting a duplicate

Anybody can propose that a top-level post is a duplicate of another top-level post in the same community. (This could be a different category.) This spec also covers "superseded" or other duplicate-like phrasings -- the behavior is the same, even if a community customizes its wording.

To suggest a duplicate, any user can:

  • select the Tools menu under the post
  • select "suggest duplicate" from the menu (move "close" to this menu at the same time to reduce confusion)
  • fill out an in-page form with a required link and an optional comment (the comment can be helpful when it's not obvious why the other question is a duplicate)

Should we disable the option if you have a suggestion pending, i.e. one suggestion per user at a time?

On submission:

  • A "Possible duplicate" comment thread is created or updated. A comment is added with the link and (if provided) additional comment. These comments are attributed (duplicate suggestions are not anonymous).
  • If there are now enough votes for the same duplicate target ("enough" to be defined), the question is marked as a duplicate.
  • Otherwise, for the author of the post, we display a notice with action buttons (described below). For those with the Curate ability, we provide a way to register agreement or disagreement (described below).
  • The author and everybody who has already answered the question receive inbox notifications of suggested duplicates.
  • The author receives an inbox notification if the question is marked as a duplicate by community votes.
  • State changes (marking a question as a duplicate or reversing it) are recorded in the post history.

While duplicate suggestions are pending, starting an answer generates a "hey, this might be a duplicate" alert, form and wording to be determined. This serves two purposes: (a) if you know enough to answer the question you probably know enough to contribute to the evaluation of whether it's a duplicate, and (b) you might want to answer that other question instead (or in addition).

Curators

Users with the Curate ability can disagree with duplicate suggestions. On viewing the post, the curator sees the "possible duplicate" link(s) (like the author does), along with a "disagree" button for each. On activating the button, the user is given a modal with a place to type an optional comment, which is added to the thread. The vote count for the duplicate is decremented.

The notice is updated to add something like "N curators disagreed". (Again, only the author and curators -- the people who can act on it -- see this notice. This information helps them make decisions.)

Feedback to author

The author sees a notice on the question along the following lines:

This question might be a duplicate of (other title with link) (could be multiple).
Community members provided the following feedback: (comment text that accompanied votes, unsigned here, and link to thread)
Please read the linked question and its answers. If your question is different, you can edit to clarify.

And two buttons: "Yes, it's a duplicate" and "No, I will edit".

If the author agrees it's a duplicate, the question is so marked (author's vote is binding). A notice is added and "[duplicate]" is added to the title. If there are multiple suggestions, the author selects one or more.

If the author disagrees and begins an edit (either via the button or the usual way):

  • It's the usual edit interface, except that "My question is not a duplicate of (link) because" has been inserted at the bottom and (ideally) the cursor is positioned there. If there's more than one dupe suggestion, do this for each and position cursor at the first.

  • If the author has the Edit ability, when the author submits the edit, the duplicate notice is removed from the question (for all viewers) and this review/resolution is logged in the history. (We can talk about yo-yo cases, where the author keeps rejecting duplicate votes this way, but I think it's something we should consider later. Let's not over-complicate it to start.)

  • If the author does not yet have the Edit ability, the duplicate notice remains and is updated to add a message along the lines of "thanks for your edit; the community will review to see if it's not a dupe any more" (not those words).

Edit review

Users who can review edits see a notice on the post (similar to the "suggested edit pending" one) that says something like: "This question was suggested as a duplicate of (link) and the author has edited to address the suggestion. (review button)".

Entering the review shows the diff (like for a suggested edit) and includes a link to the suggested duplicate. It'd be nice to be also show it somehow, but a link is sufficient at least initially.

The options for the review are "Not a duplicate" and "Still a duplicate".

  • Choosing "still a duplicate" prompts for a comment and is treated like a duplicate vote. If there are multiple duplicate suggestions, the reviewer checks off which ones apply (maybe it's not a dupe of A any more but still is of B).

  • Choosing "not a duplicate" resolves the suggestions -- the question is reset to its "ordinary" state, with the resolution being logged in the post history, and the "possible duplicate" comment thread is archived. (Subsequent duplicate suggestions start over with a new thread.)

Reopening

If a post was marked as a duplicate, everybody sees the duplicate notice. Those with the curate ability also get the "disagree" button, like when duplicate votes are still pending. Here the comment is required -- explain why the duplicate status should be removed. The comment is added to a "possibly not a duplicate" thread. The duplicate notice is updated for the author and curators to add something like:

This question might have been incorrectly marked as a duplicate. Community members provided the following feedback: (comment text, link to thread).

Unaddressed issues

  • Retracting votes
  • Third-party edit from someone trying to help -- how does that affect the flow?

Hold

Putting a question on hold means it can't be answered in its present form, such as because more information is needed.

Background links (not entirely current, but close enough):

Key points

Low on time right now, so just a summary -- the wireframe captures much of this reasonably well.

  • Suggesting a hold is similar to suggesting a duplicate (but requires Curate) -- modal, choose reason, optional comment.
  • When a question has at least one active hold vote, other community members with the Curate ability can vote in either direction -- to put it on hold or to say it's fine (leave it open). If there are more "leave open" votes than "hold" votes, resolve.
  • While there are hold votes pending, the community and the OP see messages on the post (the OP sees prompts to act).
  • The author is shown the following options:
    • Withdraw Question: puts it on hold, title is appended with "[withdrawn]"
    • Edit: edit window with extra guidance, and the first edit from a user with the (Participate Everywhere? Edit?) ability resolves the hold (resets the question to normal state). If there are more hold votes after, that trick doesn't work again. The goal here is to help users who are acting in good faith to expedite the resolution.
    • Question is Fine: this is here mainly to give the user a way to register a disagreement, so people don't think their only options are to edit or withdraw. Maybe the hold vote is wrong, after all.
  • We'll use comment threads and inbox notifications (similar to duplicate suggestions).