snowdrift/tasks
12
1

Write up and request enhanced-flagging #412

Open
opened 2018年07月06日 02:15:32 +02:00 by snowdriftimport · 4 comments
snowdriftimport commented 2018年07月06日 02:15:32 +02:00 (Migrated from gitlab.com)
Copy link

Once the ideas here are all put together and formatted for presentation:

  • request someone to write an enhanced-flagging plugin for Discourse
  • contact Yuriy Rusko, director of phpBB about getting these features added there (yuriy@phpbb.com)
    • @wolftune talked to Yuriy at OSCON, he's into this and wants to implement it

Building on what we can do already (see #18 ):

Ideal features:

  • open proposal for a enhanced-flagging plugin we hope we can recruit someone to write1

  • marking as quotes the specific parts of a post that violate CoC

    • actually this should function like GitLab code reviews
    • in-line comments where the whole thread is hidden once it is marked as resolved
    • could be done without flagging at all, just meta-feedback that is fully public
    • the flagging to hide would be an optional feature when doing meta-feedback
    • permissions could be available for whether the meta issue can be marked resolved by anyone, by the original author, by the person giving feedback, or only by a moderator
      • potentially trust-levels could be used in various ways here
      • the commenter could potentially specify whether this is a case that needs more or less approval of the resolution
  • specifying what part(s) of CoC apply

    • set of checkboxes
  • Set appropriate permission level for flagging at all

  • Set permission level where one flagging hides and sends PM to prompt editing

    • probably users who have done some initial flagging that was appropriate and so on, higher level than initial flagging
    • ideally mods will see these flaggings in the list when visited but the notice should be auto-dismissed or never happen (so, no alert number to draw their attention, since we don't want them to step in for every flagging)
  • more substantially different text (multiple texts) for different types of flagging

  • flagger has options for how to deal with the post

    • include feedback with the flagging (with option to quote specific parts of original message)
      • within PM or public in the meta category?
      • anonymous or not?
      • appropriate UX for flagging when such feedback itself violates CoC
    • notify mods right away?
      • either way, include in activity for mods, but only send immediate notice if checked
    • hide or keep public
    • single-flag action vs tentative (bring to mod attention, no action unless mod agrees or additional user flags)
  • edited, fixed posts should hide the edit history for non-staff

  • (questionable:) adjust (remove?) punishments about trust-level etc. that come from quantities of flagging

    • if flagging is harmful to a user besides editing, it can't be used freely
    • for a user who has a serious pattern of problem posts without showing improvement, mods can be alerted and manually reduce that user's trust level or take other actions
    • if a count of flagged posts matters, make sure that successful editing clears that flag
  • really distinct messages for different flagging types and contexts

  • include the violation-checkboxes and feedback message withing the @system PM for flaggees

  • enable flagging of staff posts by non-staff

    • offer staff a lock option for special staff posts that will be unhideable (maybe just via "Add Staff Color")
  • offer a user preference (with good default) for how to be treated when flagged (or when a post is at issue)

    • some users would prefer problematic posts to be hidden until they have a chance to fix it (avoid public shame from being flagged)
    • some users would prefer to have their post stay public so they aren't censored / left out
    • another option: collapsed but visible upon click (like the "more details" function)
    • whether or not to show a public note that a flagging has happened (separate decision from the hide/leave/collapse)
    • perhaps an option for resolution in some cases would keep the availability (perhaps collapsed) of the original along with a retraction message, as in https://nickpunt.com/blog/deescalating-social-media/
    • giving the flaggees this setting enhances their control and could lead them to feel even more comfortable with the system and the way it helps them improve
    • multiple flaggers (and/or mods) could still decide to override the "don't hide" preference for posts that are bad enough; this setting is for mild problems
    • a separate preference on whether prefer conflict resolution to happen privately or publicly (and if public, whether open to anyone to post or only to see)
    • blacklist and whitelist options for individuals (e.g. while prefer hide my flagged post, keep them public for flags by user X)?
    • perhaps user has pref to not offer certain choices for flagging result but leaves other choices to flagger to choose

A notable thread:

https://meta.discourse.org/t/moving-off-topic-flagged-posts-should-automatically-clear-the-flags/31624

Dumped notes:

a range of appropriate options which can be independent or in combination:

  • mark a problem (privately or publicly)
  • block public replies
  • collapse (but able to be seen with a click)
  • move (to other public spot or to private)
  • hide (only mods can see)
  • engage mod help
  • punish the user (beyond merely what happens to the post), i.e. add a warning mark to their account

ideally, flagging should offer these options for human judgment.
Even further, it would be ideal to have a distinct-looking, collapsed-by-default, in-topic thread for the meta discussion of a post (whether or not the post itself is hidden, and with the option of the thread being effectively a PM in-line reply or being public)
So, flagging UI could offer the options of whether to do (or to just suggest) which of the options. A weakly problematic post could be let stand, just opens a semi-public (visible but don't draw attention, i.e. UNLISTED but maybe still linked) meta post to discuss. A more troublesome post could be collapsed, replying blocked, and a notice sent privately. A serious violation would be entirely hidden and maybe there'd be the black-mark punishment for the user (potentially clearable still).
Incidentally, collapsing a post should offer collapsing with it's replies, just as that's an option for moving and deleting.


  1. see topic at meta.discourse for one start but not the full thing. ↩︎

Once the ideas here are all put together and formatted for presentation: * [ ] request someone to write an enhanced-flagging plugin for Discourse * [ ] contact Yuriy Rusko, director of phpBB about getting these features added there (yuriy@phpbb.com) * @wolftune talked to Yuriy at OSCON, he's into this and *wants* to implement it Building on what we can do already (see #18 ): Ideal features: * [ ] open proposal for a enhanced-flagging plugin we hope we can recruit someone to write[^1] * marking as quotes the specific parts of a post that violate CoC - actually this should function like GitLab code reviews - in-line comments where the whole thread is hidden once it is marked as resolved - could be done without flagging at all, just meta-feedback that is fully public - the flagging to hide would be an *optional* feature when doing meta-feedback - permissions could be available for whether the meta issue can be marked resolved by anyone, by the original author, by the person giving feedback, or only by a moderator - potentially trust-levels could be used in various ways here - the commenter could potentially specify whether this is a case that needs more or less approval of the resolution * specifying what part(s) of CoC apply * set of checkboxes * [ ] Set appropriate permission level for flagging at all * https://meta.discourse.org/t/requiring-guidelines-reading-before-flagging-required-badges-as-part-of-tl/84161/2 * users achieve that level only after: * getting the "Read Guidelines" badge * *what other badges? maybe writing an intro welcome post (and we make a badge for that if there isn't one), and maybe some further level of participation* * probably still *show* the flag buttons, but when users click them, prompt them to take the necessary steps before they can flag? * Set permission level where *one* flagging hides *and* sends PM to prompt editing * probably users who have done some initial flagging that was appropriate and so on, higher level than initial flagging * ideally mods *will* see these flaggings in the list when visited but the *notice* should be auto-dismissed or never happen (so, no alert number to draw their attention, since we don't want them to step in for every flagging) * more substantially different text (multiple texts) for different types of flagging * flagger has options for how to deal with the post * [ ] include feedback with the flagging (with option to quote specific parts of original message) * within PM or public in the meta category? * anonymous or not? * appropriate UX for flagging when such feedback itself violates CoC * [ ] notify mods right away? * either way, include in activity for mods, but only send immediate notice if checked * [ ] hide or keep public * [ ] single-flag action vs tentative (bring to mod attention, no action unless mod agrees or additional user flags) * [ ] edited, fixed posts should hide the edit history for non-staff * [ ] (questionable:) adjust (remove?) punishments about trust-level etc. that come from quantities of flagging * if flagging is harmful to a user besides editing, it can't be used freely * for a user who has a serious pattern of problem posts without showing improvement, mods can be alerted and manually reduce that user's trust level or take other actions * if a count of flagged posts matters, make sure that successful editing clears that flag * [ ] really distinct messages for different flagging types and contexts * include the violation-checkboxes and feedback message withing the @system PM for flaggees * enable flagging of staff posts by non-staff * offer staff a lock option for special staff posts that will be unhideable (maybe just via "Add Staff Color") * [ ] offer a user preference (with good default) for how to be treated when flagged (or when a post is at issue) * some users would prefer problematic posts to be **hidden** until they have a chance to fix it (avoid public shame from being flagged) * some users would prefer to have their post **stay public** so they aren't censored / left out * another option: **collapsed** but visible upon click (like the "more details" function) * whether or not to show a **public note** that a flagging has happened (separate decision from the hide/leave/collapse) * perhaps an option for resolution in some cases would keep the availability (perhaps collapsed) of the original along with a retraction message, as in https://nickpunt.com/blog/deescalating-social-media/ * giving the flaggees this setting enhances their control and could lead them to feel even more comfortable with the system and the way it helps them improve * multiple flaggers (and/or mods) could still decide to override the "don't hide" preference for posts that are bad enough; this setting is for mild problems * a separate preference on whether prefer conflict resolution to happen privately or publicly (and if public, whether open to anyone to post or only to see) * blacklist and whitelist options for individuals (e.g. while prefer hide my flagged post, keep them public for flags by user X)? * perhaps user has pref to not offer certain choices for flagging result but leaves other choices to flagger to choose A notable thread: https://meta.discourse.org/t/moving-off-topic-flagged-posts-should-automatically-clear-the-flags/31624 [^1]: see [topic at meta.discourse](https://meta.discourse.org/t/checkboxes-for-custom-flag-reasons-and-anonymous-feedback/82860) for one start but not the full thing. Dumped notes: a range of appropriate options which can be independent or in combination: * mark a problem (privately or publicly) * block public replies * collapse (but able to be seen with a click) * move (to other public spot or to private) * hide (only mods can see) * engage mod help * punish the user (beyond merely what happens to the post), i.e. add a warning mark to their account ideally, flagging should offer these options for human judgment. Even further, it would be ideal to have a distinct-looking, collapsed-by-default, *in-topic* thread for the meta discussion of a post (whether or not the post itself is hidden, and with the option of the thread being effectively a PM in-line reply or being public) So, flagging UI could offer the *options* of whether to do (or to just suggest) which of the options. A weakly problematic post could be let stand, just opens a semi-public (visible but don't draw attention, i.e. UNLISTED but maybe still linked) meta post to discuss. A more troublesome post could be collapsed, replying blocked, and a notice sent *privately*. A serious violation would be entirely hidden and maybe there'd be the black-mark punishment for the user (potentially clearable still). Incidentally, collapsing a post should offer collapsing with it's replies, just as that's an option for moving and deleting.

mentioned in issue #375

mentioned in issue #375

Btw, to save here notes about how we edited Discourse text:

I see that the education.new-reply was updated to say:

"When posting, keep in mind:
* Follow the rules from the [Code of Conduct](/conduct)
 * But don't worry about perfection. The only consequence of a violation is being asked to fix issues by editing.
* Practice further [good communication ideals](https://community.snowdrift.coop/t/discussion-guidelines-suggestions-beyond-the-code-of-conduct/551)"

flag_reasons.responder.inappropriate was:

"The post was flagged as inappropriate: the community feels it is offensive, abusive, to be hateful conduct or a violation of our community guidelines."

I think that is unedited default text, not our words. I think the "responder" bit means this is what is sent to a moderator and not to the poster. I must have not edited this one. Note the strong language. There assumption is nothing gets flagged if it is less than "offensive, abusive, or hateful". What an accusation to levy on someone. And that is the style of language that was in most of the defaults. That sort of tone is not likely to get a healthy response from someone who got flagged.

I just now changed it to:

The post was flagged as **inappropriate**: someone believes it violates the [CoC](%{base_path}/guidelines) in some way other than being off-topic or spam.

Here's our old edit to flag_reasons.inappropriate that actually gets sent to users (I don't have the default text that Discourse uses otherwise, that can probably be looked up somewhere though):

Your post was flagged as violating some part(s) of the [Code of Conduct](/conduct). Unfortunately, the system doesn't currently let us ask the flagger(s) to identify the specific violation(s).
Perhaps you meant well, and it's just a misunderstanding. Perhaps you were a bit careless. Whatever the case, **please just edit to fix the post and resubmit it**.
For some further notes on healthy communication, see our [extra discussion guidelines](https://community.snowdrift.coop/t/discussion-guidelines-suggestions-beyond-the-code-of-conduct/551).
If you need help understanding the situation, improving your writing, or feel you were flagged wrongly, please contact a staff member.

Here's our edit to flag_reasons.spam:

Your post was flagged as **spam** (i.e. an advertisement, something that is overly promotional in nature instead of being useful or relevant to the topic). Possible solutions: <ul><li>remove the promotional part(s) of the message</li><li>edit the message to explain better why the promotional content is fair and relevant to the topic</li><li>to fully clear your post: first edit and repost (to clear the flag) and *then* delete the updated post</li></ul>"
And `flag_reasons.off_topic`:
"Your post was flagged as **off-topic or meta**. The content may be fine, but we don't want too many tangents or meta-issues to clutter topical discussions. Some options and notes for fixing this:<ul><li>edit it to stay more on topic and repost</li><li>edit and repost (to clear the flag) but then delete the post, perhaps posting in a new place either independently or via the "reply as new topic" function<ul><li>note that for meta posts about the discussion itself, one option is posting in the #feedback-support:meta category</li></ul></li><li>send a PM (private message) to bring the item to a particular person's attention outside the main topic itself</li><li>ask a staff member to move it to a better location<ul><li>note that any replies to your post that are all part of a tangent should be moved together as a group</li></ul></li></ul>

And system_messages.post_hidden.text_body_template:

## A post of yours needs some attention or action.
From this automated message, we hope you can understand what to do, but please contact a staff member with any questions.
### The post and problem
Your post:
<%{base_url}%{url}>
%{flag_reason}
 **If you choose to edit, the post will then be automatically unhidden and the flag cleared.** (Note that the system does put a %{edit_delay} minute delay for reposting).
### General flagging notes
A flagging does not necessarily mean you did anything seriously wrong. In any case, this is just a chance to fix the issue and learn for the future.
You are welcome to ask a staff member for help if you aren't clear what happened or what to do. 
Also, we hope to keep improving this system. Please let us know if you have concerns or feedback on this process.
Thanks for your understanding, your patience, and your part of maintaining healthy, productive discussion.
```
Btw, to save here notes about how we edited Discourse text: I see that the `education.new-reply` was updated to say: "When posting, keep in mind: * Follow the rules from the [Code of Conduct](/conduct) * But don't worry about perfection. The only consequence of a violation is being asked to fix issues by editing. * Practice further [good communication ideals](https://community.snowdrift.coop/t/discussion-guidelines-suggestions-beyond-the-code-of-conduct/551)" `flag_reasons.responder.inappropriate` was: "The post was flagged as **inappropriate**: the community feels it is offensive, abusive, to be hateful conduct or a violation of [our community guidelines](%{base_path}/guidelines)." I think that is unedited default text, not our words. I think the "responder" bit means this is what is sent to a moderator and not to the poster. I must have not edited this one. Note the strong language. There assumption is nothing gets flagged if it is less than "offensive, abusive, or hateful". What an accusation to levy on someone. And that is the style of language that was in most of the defaults. That sort of tone is not likely to get a healthy response from someone who got flagged. I just now changed it to: The post was flagged as **inappropriate**: someone believes it violates the [CoC](%{base_path}/guidelines) in some way other than being off-topic or spam. Here's our old edit to `flag_reasons.inappropriate` that actually gets sent to users (I don't have the default text that Discourse uses otherwise, that can probably be looked up somewhere though): ``` Your post was flagged as violating some part(s) of the [Code of Conduct](/conduct). Unfortunately, the system doesn't currently let us ask the flagger(s) to identify the specific violation(s). Perhaps you meant well, and it's just a misunderstanding. Perhaps you were a bit careless. Whatever the case, **please just edit to fix the post and resubmit it**. For some further notes on healthy communication, see our [extra discussion guidelines](https://community.snowdrift.coop/t/discussion-guidelines-suggestions-beyond-the-code-of-conduct/551). If you need help understanding the situation, improving your writing, or feel you were flagged wrongly, please contact a staff member. ``` Here's our edit to `flag_reasons.spam`: ``` Your post was flagged as **spam** (i.e. an advertisement, something that is overly promotional in nature instead of being useful or relevant to the topic). Possible solutions: <ul><li>remove the promotional part(s) of the message</li><li>edit the message to explain better why the promotional content is fair and relevant to the topic</li><li>to fully clear your post: first edit and repost (to clear the flag) and *then* delete the updated post</li></ul>" And `flag_reasons.off_topic`: "Your post was flagged as **off-topic or meta**. The content may be fine, but we don't want too many tangents or meta-issues to clutter topical discussions. Some options and notes for fixing this:<ul><li>edit it to stay more on topic and repost</li><li>edit and repost (to clear the flag) but then delete the post, perhaps posting in a new place either independently or via the "reply as new topic" function<ul><li>note that for meta posts about the discussion itself, one option is posting in the #feedback-support:meta category</li></ul></li><li>send a PM (private message) to bring the item to a particular person's attention outside the main topic itself</li><li>ask a staff member to move it to a better location<ul><li>note that any replies to your post that are all part of a tangent should be moved together as a group</li></ul></li></ul> ``` And `system_messages.post_hidden.text_body_template`: ```` ## A post of yours needs some attention or action. From this automated message, we hope you can understand what to do, but please contact a staff member with any questions. ### The post and problem Your post: <%{base_url}%{url}> %{flag_reason} **If you choose to edit, the post will then be automatically unhidden and the flag cleared.** (Note that the system does put a %{edit_delay} minute delay for reposting). ### General flagging notes A flagging does not necessarily mean you did anything seriously wrong. In any case, this is just a chance to fix the issue and learn for the future. You are welcome to ask a staff member for help if you aren't clear what happened or what to do. Also, we hope to keep improving this system. Please let us know if you have concerns or feedback on this process. Thanks for your understanding, your patience, and your part of maintaining healthy, productive discussion. ```

The governance repo would be a good place to capture these.

The governance repo would be a good place to capture these.

This is really a FLO-CL task, Aaron will open an issues there and then close this one.

This is really a FLO-CL task, Aaron will open an issues there and then close this one.
Sign in to join this conversation.
No Branch/Tag specified
master
master-pre-reset
v0.1.4
v0.1.3
v0.1.2
v0.1.1
release-0.1.0.1
Labels
Clear labels
Blocked
Confidential
We track some issues in a private repo, typically when they contain personal information. In the interest of transparency (and ease of tracking for us), we also keep a stub here in the public issues.
design
Visual design and assets
dev
dev/frontend

Archived

docs
Documentation
finances
Management of financial accounts; Grants and other funding sources
good first issue
Issues that do not require in-depth understanding of background or code
governance
Organisational structure and bylaws
legal
Legal terms, policies and documents
needs-info

Archived

ops
Operations
outreach
Community messaging and recruitment
product/blog
For the blog / Ghost
product/crm
For the CRM / CiviCRM
product/elm-site
Relates to https://codeberg.org/snowdrift/elm-website
product/forum
For the forum / Discourse
product/wiki
product/yesod-site
Relates to https://codeberg.org/snowdrift/snowdrift
research
Research, reference materials and studies
security
Issues about authorisation and authentication
type
bug
Broken feature or regression
type
chore
Housekeeping
type
feature
New feature or functionality
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
snowdrift/tasks#412
Reference in a new issue
snowdrift/tasks
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?