Skip to content

Commit e75ffc7

Browse files
committed
Add content deletion request handling workflow to "Moderator Instructions"
Previously, the forum assets provided post templates for handling content deletion requests, but did not provide instructions for handling the requests. A comprehensive workflow is now provided in the "Moderator Instructions" asset topic, as well as templates for each post specified by the workflow. These supersede the previous post templates and so those templates are removed.
1 parent c08cc28 commit e75ffc7

File tree

26 files changed

+326
-40
lines changed

26 files changed

+326
-40
lines changed

.markdown-link-check.json

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,12 @@
8686
{
8787
"pattern": "^https://forum\\.arduino\\.cc/t/about-the-windows-virtual-shields-for-arduino-category/847513$"
8888
},
89+
{
90+
"pattern": "^https://forum\\.arduino\\.cc/t/content-deletion-escalation/1329581$"
91+
},
92+
{
93+
"pattern": "^https://forum\\.arduino\\.cc/t/content-deletion-not-necessary/1329583$"
94+
},
8995
{
9096
"pattern": "^https://forum\\.arduino\\.cc/t/flag-for-post-making-responsible-use-of-ai-generated-content/1289013$"
9197
},
@@ -98,12 +104,24 @@
98104
{
99105
"pattern": "^https://forum\\.arduino\\.cc/t/moderation-guidelines/54905$"
100106
},
107+
{
108+
"pattern": "^https://forum\\.arduino\\.cc/t/obtain-content-deletion-reason/1329584$"
109+
},
110+
{
111+
"pattern": "^https://forum\\.arduino\\.cc/t/post-ownership-has-been-transferred/1329586$"
112+
},
113+
{
114+
"pattern": "^https://forum\\.arduino\\.cc/t/solved-content-deletion-not-necessary/1329591$"
115+
},
101116
{
102117
"pattern": "^https://forum\\.arduino\\.cc/t/staging-site-sandbox-forum-instance/1112538$"
103118
},
104119
{
105120
"pattern": "^https://forum\\.arduino\\.cc/t/this-forum-section-will-be-in-read-only/376698$"
106121
},
122+
{
123+
"pattern": "^https://forum\\.arduino\\.cc/t/topic-closed-so-deletion-not-necessary/1329587$"
124+
},
107125
{
108126
"pattern": "^https://forum\\.arduino\\.cc/t/start-here-install-guide-faq/366571$"
109127
},
@@ -116,9 +134,6 @@
116134
{
117135
"pattern": "^https://forum\\.arduino\\.cc/t/duplicate-topic-deleted/1087957$"
118136
},
119-
{
120-
"pattern": "^https://forum\\.arduino\\.cc/t/we-dont-like-to-delete/1087947$"
121-
},
122137
{
123138
"pattern": "^https://forum\\.arduino\\.cc/t/request-to-delete-your-account-italian/1087962$"
124139
},
@@ -134,9 +149,6 @@
134149
{
135150
"pattern": "^https://forum\\.arduino\\.cc/t/topic-split-from-another-topic/1087951$"
136151
},
137-
{
138-
"pattern": "^https://forum\\.arduino\\.cc/t/request-to-delete-post-or-topic-italian/1087961$"
139-
},
140152
{
141153
"pattern": "^https://forum\\.arduino\\.cc/t/moved-to-french-section/1087946$"
142154
},
@@ -146,9 +158,6 @@
146158
{
147159
"pattern": "^https://forum\\.arduino\\.cc/t/request-to-delete-your-account/1087963$"
148160
},
149-
{
150-
"pattern": "^https://forum\\.arduino\\.cc/t/request-to-delete-posts-or-topic/1087960$"
151-
},
152161
{
153162
"pattern": "^https://forum\\.arduino\\.cc/t/duplicate-topics-merged/1087959$"
154163
},

content/categories/staff/moderation/_topics/moderator-instructions/1.md

Lines changed: 69 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ For an overview of the Discourse moderation system, see the "[**Discourse Modera
3131
- [Deal with cross-post](#deal-with-cross-post)
3232
- [Split hijacked topic](#split-hijacked-topic)
3333
- [Reopen auto-closed topic](#reopen-auto-closed-topic)
34+
- [Handle content deletion request](#handle-content-deletion-request)
35+
- [Content deletion handling overview](#content-deletion-handling-overview)
36+
- [Redirect content deletion](#redirect-content-deletion)
3437
- [General](#general)
3538
- [Move topic to correct category](#move-topic-to-correct-category)
3639
- [Close topic](#close-topic)
@@ -47,7 +50,7 @@ For an overview of the Discourse moderation system, see the "[**Discourse Modera
4750
- [Make staff post](#make-staff-post)
4851
- [Adjust user Trust Level](#adjust-user-trust-level)
4952
- [Silence user](#silence-user)
50-
- [Suspend an account](#suspend-an-account)
53+
- [Suspend account](#suspend-account)
5154
- [Change post ownership](#change-post-ownership)
5255
- [Resources](#resources)
5356
- [Feedback and discussion](#feedback-and-discussion)
@@ -207,7 +210,7 @@ This flag is created by **`@system`** when a user account creation is detected a
207210

208211
Please note that Arduino has a firm policy against deleting any accounts, so you must not use the <kbd>**Delete user...**</kbd> button Discourse presents. Instead, the following procedure is used to suspend the account:
209212

210-
1. Suspend the user account, [following these instructions](#suspend-an-account)
213+
1. Suspend the user account, [following these instructions](#suspend-account)
211214
1. Go back to [the flag review page](https://forum.arduino.cc/review).
212215
1. Click the <kbd>**Approve User**</kbd> button.
213216
**** This is done to clear the flag in a manner compliant with [Arduino's user account policies](https://forum.arduino.cc/t/about-user-account-deletion-and-user-content-deletion/627095). It does not affect the suspension.
@@ -283,7 +286,7 @@ Instructions for dealing with specific common occurrences.
283286

284287
##### [Context](#context)
285288

286-
Although some forms of inappropriate behavior (e.g., malicious [spam](#delete-spam), hate speech) should always result in an immediate [account suspension](#suspend-an-account), there are other cases where the user can be encouraged to follow the forum rules and become a responsible member of the community. In these cases, the history of moderation actions against the user can provide important context for determining the appropriate action to take in response to the current violation.
289+
Although some forms of inappropriate behavior (e.g., malicious [spam](#delete-spam), hate speech) should always result in an immediate [account suspension](#suspend-account), there are other cases where the user can be encouraged to follow the forum rules and become a responsible member of the community. In these cases, the history of moderation actions against the user can provide important context for determining the appropriate action to take in response to the current violation.
287290

288291
The [**"Investigate user" instructions**](#investigate-user) explain how to access this information.
289292

@@ -297,7 +300,7 @@ The moderation system offers several tools to deal with inappropriate behavior,
297300
- [**Staff Post**](#make-staff-post) - mark a moderator's reply regarding inappropriate behavior as an official proclamation.
298301
- [**Trust Level**](#adjust-user-trust-level) - reduce the user's "Trust Level" to put automated limits on their forum use.
299302
- [**Silence User**](#silence-user) - block the user from making new posts, flags, or PMs.
300-
- [**Suspend User**](#suspend-an-account) - block the user from logging in.
303+
- [**Suspend User**](#suspend-account) - block the user from logging in.
301304

302305
---
303306

@@ -485,6 +488,64 @@ When a reopen request flag is received, it should be reviewed to determine wheth
485488

486489
---
487490

491+
<a name="handle-content-deletion-request"></a>
492+
493+
### [Handle content deletion request](#handle-content-deletion-request)
494+
495+
In addition to assisting the immediate recipient, forum helpers hope the benefit of their contributions will be multiplied by serving as a reference for others with similar questions in years to come. For this reason, deletion of forum posts can have a harmful effect. Deletion of the initial post of a topic results in the deletion of the entire topic and the loss of the contributions from all participants. Even in other cases the deletion of a post may result in the loss of the context that gave meaning to replies. So deletion of posts should be avoided when possible in cases where deletion would cause harm.
496+
497+
Deletion requests are often an ["XY problem"](https://wikipedia.org/wiki/XY_problem). If the moderator can find a way to accomplish the user's root goal ("Y") other than their perceived solution of content deletion ("X"), then an outcome is achieved that is better for the forum community, and for the user (since harmful content deletion would result in a permanent suspension of their account).
498+
499+
#### Content deletion handling overview
500+
501+
This chart provides an overview of the workflow:
502+
503+
![content-deletion-handling-overview|227x500](upload://xCkOx3T4FX7dQwQHz4s8T5AK9Ns.png)
504+
505+
#### Redirect content deletion
506+
507+
A variety of distinct goals may lay behind a content deletion request. Each goal has its own alternative solution, which are described here:
508+
509+
##### Closure
510+
511+
The goal behind the request is the user does not want further discussion in their topic.
512+
513+
![redirect-content-deletion-closure|204x500, 75%](upload://8sUHXjXuN2pwiSjPXhsXrJxEgQi.png)
514+
515+
##### Privacy
516+
517+
The goal behind the request is to avoid the association of the content with the user's username.
518+
519+
###### Procedure for moderators
520+
521+
Do not take any further action. Leave further handling and review of the flag to the forum manager. The reason for this is the per-post anonymization procedure that will be used to accomplish the user's privacy goal is only possible with administrative privileges.
522+
523+
###### Procedure for forum manager
524+
525+
![redirect-content-deletion-privacy|239x500, 75%](upload://86H9keHIpqS4RIgyKt7KuVpiyqo.png)
526+
527+
**Footnotes**
528+
529+
<!-- markdownlint-capture --><!-- markdownlint-disable MD029 -->
530+
531+
1. Transfer ownership to @system.
532+
533+
<!-- markdownlint-restore -->
534+
535+
##### Resolved
536+
537+
The user believes that they should delete the content because the topic is resolved and they didn't consider that it can be valuable to others.
538+
539+
![redirect-content-deletion-resolved|339x500, 75%](upload://Y1DwJNHfslREmAFdI8Q0SjvOKe.png)
540+
541+
##### Tidy
542+
543+
The goal behind the request is that the user has no more need for the content and they didn't consider that it can be valuable to others.
544+
545+
![redirect-content-deletion-tidy|278x460, 65%](upload://55iWUSlRCnrH7q5FEKSDC7Jgatc.png)
546+
547+
---
548+
488549
<a name="general"></a>
489550

490551
## [General](#general)
@@ -595,7 +656,7 @@ This shows the user's posts, which can be used to find unreported inappropriate
595656

596657
#### [IP Lookup](#ip-lookup)
597658

598-
This tool allows you to see all the accounts associated with the user's [IP address](https://en.wikipedia.org/wiki/IP_address), which can be used to determine whether the user has other accounts (e.g., circumventing a [suspension](#suspend-an-account), [sock puppets](https://en.wikipedia.org/wiki/Sock_puppet_account)).
659+
This tool allows you to see all the accounts associated with the user's [IP address](https://en.wikipedia.org/wiki/IP_address), which can be used to determine whether the user has other accounts (e.g., circumventing a [suspension](#suspend-account), [sock puppets](https://en.wikipedia.org/wiki/Sock_puppet_account)).
599660

600661
1. Open the user's profile page.
601662
**** This can be accessed by clicking their user name, then the user name in the profile preview popup.
@@ -705,7 +766,7 @@ The "Silence" action is used in cases where the intent is to temporarily curtail
705766

706767
---
707768

708-
❗ In cases where the intent is to permanently exclude the user from the Arduino Forum, the account should instead be ["Suspended"](#suspend-an-account).
769+
❗ In cases where the intent is to permanently exclude the user from the Arduino Forum, the account should instead be ["Suspended"](#suspend-account).
709770

710771
---
711772

@@ -719,9 +780,10 @@ The "Silence" action is used in cases where the intent is to temporarily curtail
719780

720781
---
721782

783+
<a name="suspend-account"></a>
722784
<a name="suspend-an-account"></a>
723785

724-
### [Suspend an account](#suspend-an-account)
786+
### [Suspend account](#suspend-account)
725787

726788
The user is blocked from logging in to their account when it is suspended.
727789

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Assets for "Moderator Instructions" topic
2+
3+
## `content-deletion-handling-overview.mmd`
4+
5+
This is the [**Mermaid**](https://mermaid.js.org/) source file for the "**Content deletion handling overview**" workflow chart. Image is generated using [**mermaid-cli**](https://github.com/mermaid-js/mermaid-cli).
6+
7+
## `redirect-content-deletion-closure.mmd`
8+
9+
This is the [**Mermaid**](https://mermaid.js.org/) source file for the **Redirect content deletion > Closure** workflow chart. Image is generated using [**mermaid-cli**](https://github.com/mermaid-js/mermaid-cli).
10+
11+
## `redirect-content-deletion-privacy.mmd`
12+
13+
This is the [**Mermaid**](https://mermaid.js.org/) source file for the **Redirect content deletion > Privacy** workflow chart. Image is generated using [**mermaid-cli**](https://github.com/mermaid-js/mermaid-cli).
14+
15+
## `redirect-content-deletion-resolved.mmd`
16+
17+
This is the [**Mermaid**](https://mermaid.js.org/) source file for the **Redirect content deletion > Resolved** workflow chart. Image is generated using [**mermaid-cli**](https://github.com/mermaid-js/mermaid-cli).
18+
19+
## `redirect-content-deletion-tidy.mmd`
20+
21+
This is the [**Mermaid**](https://mermaid.js.org/) source file for the **Redirect content deletion > Tidy** workflow chart. Image is generated using [**mermaid-cli**](https://github.com/mermaid-js/mermaid-cli).
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
---
2+
config:
3+
flowchart:
4+
curve: monotoneY
5+
theme: base
6+
themeVariables:
7+
clusterBkg: '#ffffff'
8+
edgeLabelBackground: '#ffffff'
9+
lineColor: '#000000'
10+
primaryBorderColor: '#000000'
11+
primaryColor: '#f0f0f0'
12+
primaryTextColor: '#000000'
13+
---
14+
15+
flowchart TB
16+
subgraph main[" "]
17+
direction TB
18+
19+
20+
harm{"Deletion<br />harmful?"}
21+
harm -- "Yes" --> reasonGiven
22+
reasonGiven{"Reason<br />given?"}
23+
reasonGiven -- "Yes" --> redirectWorkflow
24+
redirectWorkflow[["#quot;<b>Redirect content<br />deletion</b>#quot;"]]
25+
redirectWorkflow --> redirectResult
26+
redirectResult{"Redirected?"}
27+
redirectResult -- "Yes" ---> done
28+
done["Done"]
29+
30+
redirectResult -- "No" --> deletionRequestInstructionsTemplate
31+
deletionRequestInstructionsTemplate["#quot;<b>Content deletion<br />escalation</b>#quot;<br />template"]
32+
deletionRequestInstructionsTemplate --> suspend
33+
suspend["Suspend account<br />(permanently)"]
34+
35+
reasonGiven -- "No" --> obtainReasonTemplate
36+
obtainReasonTemplate["#quot;<b>Obtain content<br />deletion reason</b>#quot;<br />template"]
37+
obtainReasonTemplate --> redirectWorkflow
38+
39+
harm -- "No" --> delete
40+
delete["Delete<br />post"]
41+
delete ------> reviewB
42+
reviewB["Review flag"]
43+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
config:
3+
flowchart:
4+
curve: monotoneY
5+
theme: base
6+
themeVariables:
7+
clusterBkg: '#ffffff'
8+
edgeLabelBackground: '#ffffff'
9+
lineColor: '#000000'
10+
primaryBorderColor: '#000000'
11+
primaryColor: '#f0f0f0'
12+
primaryTextColor: '#000000'
13+
---
14+
15+
flowchart TB
16+
subgraph main[" "]
17+
direction TB
18+
19+
20+
closeTopic["Close<br />topic"]
21+
closeTopic --> closedTemplate
22+
closedTemplate["#quot;<b>Topic closed<br />so deletion<br />not necessary</b>#quot;<br />template"]
23+
closedTemplate --> review
24+
review["Review flag"]
25+
review --> overviewWorkflow
26+
overviewWorkflow[["#quot;<b>Content deletion<br />handling overview</b>#quot;"]]
27+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
config:
3+
flowchart:
4+
curve: monotoneY
5+
theme: base
6+
themeVariables:
7+
clusterBkg: '#ffffff'
8+
edgeLabelBackground: '#ffffff'
9+
lineColor: '#000000'
10+
primaryBorderColor: '#000000'
11+
primaryColor: '#f0f0f0'
12+
primaryTextColor: '#000000'
13+
---
14+
15+
flowchart TB
16+
subgraph main[" "]
17+
direction TB
18+
19+
20+
transferOwnership["Change post<br />ownership<sup>1</sup>"]
21+
transferOwnership --> transferOwnershipTemplate
22+
transferOwnershipTemplate["#quot;<b>Post ownership has<br />been transferred</b>#quot;<br />template"]
23+
transferOwnershipTemplate --> review
24+
review["Review flag"]
25+
review --> overviewWorkflow
26+
overviewWorkflow[["#quot;<b>Content deletion<br />handling overview</b>#quot;"]]
27+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
---
2+
config:
3+
flowchart:
4+
curve: monotoneY
5+
theme: base
6+
themeVariables:
7+
clusterBkg: '#ffffff'
8+
edgeLabelBackground: '#ffffff'
9+
lineColor: '#000000'
10+
primaryBorderColor: '#000000'
11+
primaryColor: '#f0f0f0'
12+
primaryTextColor: '#000000'
13+
---
14+
15+
flowchart TB
16+
subgraph main[" "]
17+
direction TB
18+
19+
20+
hasSolution{"Topic has<br />solution?"}
21+
hasSolution -- "Yes" --> notNecessaryTemplate
22+
notNecessaryTemplate["#quot;<b>Solved content<br />deletion not<br />necessary</b>#quot;<br />template"]
23+
notNecessaryTemplate --> review
24+
review["Review flag"]
25+
review --> overviewWorkflow
26+
overviewWorkflow[["#quot;<b>Content deletion<br />handling overview</b>#quot;"]]
27+
28+
hasSolution -- "No" --> addSolutionTemplate
29+
addSolutionTemplate["#quot;<b>Request adding<br />solution</b>#quot;<br />template"]
30+
addSolutionTemplate --> review
31+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
---
2+
config:
3+
flowchart:
4+
curve: monotoneY
5+
theme: base
6+
themeVariables:
7+
clusterBkg: '#ffffff'
8+
edgeLabelBackground: '#ffffff'
9+
lineColor: '#000000'
10+
primaryBorderColor: '#000000'
11+
primaryColor: '#f0f0f0'
12+
primaryTextColor: '#000000'
13+
---
14+
15+
flowchart TB
16+
subgraph main[" "]
17+
direction TB
18+
19+
20+
notNecessaryTemplate["#quot;<b>Content deletion<br />not necessary</b>#quot;<br />template"]
21+
notNecessaryTemplate --> review
22+
review["Review flag"]
23+
review --> overviewWorkflow
24+
overviewWorkflow[["#quot;<b>Content deletion<br />handling overview</b>#quot;"]]
25+
end
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<!--
2+
⚠ Make sure to follow the formal procedure for handling content deletion requests that is defined in the "**Moderator Instructions**":
3+
https://forum.arduino.cc/t/moderator-instructions/630548#handle-content-deletion-request (private)
4+
-->
5+
6+
Submit your content deletion request to [email protected].

0 commit comments

Comments
 (0)