Skip to content

Commit

Permalink
meta: moderation policy updates
Browse files Browse the repository at this point in the history
  • Loading branch information
jasnell committed May 31, 2017
1 parent 7b9ecb5 commit dc4d4fc
Showing 1 changed file with 40 additions and 32 deletions.
72 changes: 40 additions & 32 deletions Moderation-Policy.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ If you are not a member of the Node.js GitHub Organization and wish to submit a

By default, this policy applies to all repositories under the Node.js GitHub Organization and all Node.js Working Groups.

Individual Working Groups and Top Level Projects chartered by the TSC may adopt an alternative Moderation Policy for any repository under their stewardship so long as:
Individual Working Groups and Top Level Projects may adopt an alternative Moderation Policy for any repository under their stewardship so long as:
* The Moderation Policy is openly documented as part of the Working Group or Project Charter and;
* Includes provisions for clearly and openly documenting Moderation actions taken.

Expand All @@ -31,34 +31,33 @@ Any alternative Moderation Policy used for a given repository must be included i

### Terms

* *Collaborator* refers to any individual with configured write (commit) permissions to any Node.js GitHub organization repository *other than the Moderation Repository*. See [GitHub's access permissions documentation](https://help.github.com/articles/what-are-the-different-access-permissions/) for more information.
* *TSC* refers to the [Node.js Technical Steering Committee](https://github.com/nodejs/node#tsc-technical-steering-committee).
* *Collaborator* refers to any individual with configured write (commit) permissions to any Node.js GitHub organization repository *other than the Moderation Repository*. See [GitHub's access permissions documentation][] for more information.
* *TSC* refers to the [Node.js Technical Steering Committee][].
* *CommComm* refers to the [Node.js Community Committee][].
* *Post* refers to the content and titles of any issue, pull request, comment or wiki page.
* *Moderate* refers to the act of modifying the content and title of, or deleting, any Post for the purpose of correcting or addressing Code of Conduct violations.
* *Remove* refers to the act of removing the configured write (commit) permissions for an individual Collaborator's GitHub account from *all* Node.js GitHub Organization repositories as well as removing the account from the Node.js GitHub Organization membership.
* *Ban* refers to the act of blocking an individual GitHub account from any further participation in the Node.js GitHub Organization.
* *Ban* refers to the act of blocking an individual GitHub account from any further participation in the Node.js GitHub Organization. Bans may be *temporary* (24 hours) or *indefinite*.
* *Requester* refers to an individual requesting Moderation on a Post.

### Grounds for Moderation

Any Post considered to be in violation of the Node.js [Code of Conduct][] is subject to Moderation.

The TSC is solely responsible for deciding what constitutes inappropriate behavior that may be subject to Moderation (see: [Escalation to the TSC](#escalation-to-the-tsc)).

### Requesting Moderation

Anyone may request Moderation of a Post. Requesting Moderation of a Post can be accomplished in one of four ways:

* Via the [report@nodejs.org](mailto:report@nodejs.org) email address,
* Via private email to individual TSC members,
* Via private email to individual Moderation Team members,
* Via a new Post in the same thread as the Post being requested for Moderation,
* Via a new Post in the private nodejs/moderation repository.

Note that Collaborators may Moderate non-Collaborator Posts at any time without submitting an initial request (see: [Non-Collaborator Posts](#non-collaborator-posts)).

Use of the [report@nodejs.org](mailto:report@nodejs.org) email address -- or private email to individual TSC members -- is appropriate when the individual requesting the Moderation does not feel comfortable directly or publicly making the request. All emails sent to the [report@nodejs.org](mailto:report@nodejs.org) address are currently forwarded to all members of the TSC.
Use of the [report@nodejs.org](mailto:report@nodejs.org) email address -- or private email to individual Moderation Team members -- is appropriate when the individual requesting the Moderation does not feel comfortable directly or publicly making the request. All emails sent to the [report@nodejs.org](mailto:report@nodejs.org) address are currently forwarded to all members of the Moderation Team.

When a request is sent by email to the [report@nodejs.org](mailto:report@nodejs.org) (or directly to a TSC member) a new issue detailing the request must be created in the private nodejs/moderation repository. The identity of the individual submitting the request should be omitted from the issue unless permission to include the identity is provided by the reporter.
When a request is sent by email to the [report@nodejs.org](mailto:report@nodejs.org) (or directly to a Moderation Team member) a new issue detailing the request must be created in the private nodejs/moderation repository. The identity of the individual submitting the request should be omitted from the issue unless permission to include the identity is provided by the reporter.

Requests should contain as much information and context as possible, including the URL and a screenshot of the Post in question. Screenshots may be modified to obscure obscene or offensive content.

Expand All @@ -68,7 +67,7 @@ Collaborators should never discuss the specific details of a Moderation request

Note that quoting the original content of a Post within a Moderation request or nodejs/moderation repository issue is not considered a violation of the [Code of Conduct][]. However, discretion is advised when including such quotes in requests posted to public repositories.

Requests for Moderation that do not appear to have been submitted in good faith with intent to address a legitimate [Code of Conduct][] violation, as determined by the TSC, may be ignored.
Requests for Moderation that do not appear to have been submitted in good faith with intent to address a legitimate [Code of Conduct][] violation may be ignored.

### Consideration of Intent

Expand All @@ -79,64 +78,73 @@ Note, however, that unfamiliarity with the [Code of Conduct][] does not excuse a
### Guidelines and Requirements

* All Posts are expected to respect the Node.js [Code of Conduct][].
* Only Collaborators with commit rights to a given repository may Moderate Posts within that repository's issue tracker.
* The TSC serves as the final arbiter for all Moderation issues (see: [Escalation to the TSC](#escalation-to-the-tsc)).
* Only a TSC member may Remove or Ban an individual from the Node.js GitHub Organization.
* For any Removal or Banning action, an issue describing the reasons for the action, and identifying the Github account being acted upon, must be posted to the Moderation Repository with an explanation provided by the TSC member performing the action.
* Any Collaborator with commit rights to a given repository may Moderate Posts within that repository's issue tracker.
* The Moderation Team serves as the final arbiter for all Moderation issues.
* Moderation Team members may Remove or Ban an individual from the Node.js GitHub Organization.
* For any Removal or Banning action, an issue describing the reasons for the action, and identifying the Github account being acted upon, must be posted to the Moderation Repository with an explanation provided by the Moderation Team member performing the action.
* Any individual Banned from the Node.js GitHub Organization will be recommended for exclusion from any Node.js Foundation sponsored event or activity.
* Minor edits to the formatting of a Post or to correct typographical errors are not considered to be "Moderation". Such edits and their intent should still be documented with a short note indicating who made the edit and why.

#### Collaborator Posts

* Collaborators must not Moderate any Post authored by another Collaborator without first giving the author at least 24 hours (from the time of the initial request) to modify or remove the Post on their own.
* If the author of the Post disagrees that Moderation is required, the matter can be [escalated to the TSC](#escalation-to-the-tsc) for resolution. In such cases, no Moderation action should be taken until a decision by the TSC is made.
* In extreme circumstances involving either obvious gross violations of the Node.js [Code of Conduct][] or possible compromise of a Collaborator's GitHub account, the TSC can be consulted to waive the 24 hour grace period and dispute process.
* Prior to Moderating any Post authored by a Collaborator, the author must be given a reasonable opportunity to modify or remote the Post on their own.
* If the author of the Post disagrees that Moderation is required, the matter can be escalated to the Moderation Team for resolution. In such cases, no Moderation action should be taken until a decision by the Moderation Team is made.
* When Moderating any Post authored by another Collaborator, the moderating Collaborator must:
* Explain the justification for Moderating the post,
* Identify all changes made to the Post, and
* Identify the steps previously taken to resolve the issue.
* If the Moderation action included Banning an indication of whether the Ban is permanent or temporary is required, along with a note justifying the action.
* Explanations of Moderation actions on Collaborator Posts must be provided in:
* A new post within the original thread, or
* A new issue within the private nodejs/moderation repository.
* Any Collaborator who habitually authors Posts that must be Moderated can be Removed or Banned from further participation in the Node.js GitHub organization for an indefinite period of time. Such action can only be taken through normal TSC motion and vote (see: [Escalation to the TSC](#escalation-to-the-tsc)).
* Any Collaborator habitually violating the Code of Conduct or this Moderation policy may be Banned temporarily or, in extreme cases, Removed and Banned permanently.

#### Non-Collaborator Posts

* Posts authored by non-Collaborators are always subject to immediate Moderation by any Collaborator if the content is intentionally disruptive or in violation of the [Code of Conduct][].
* When Moderating non-Collaborator Posts, the moderating Collaborator should:
* Explain the justification for Moderating the post, and
* Identify all changes made to the Post.
* If the Moderation action included Banning an indication of whether the Ban is permanent or temporary is required, along with a note justifying the action.
* If an explanation of a Moderation action for a non-Collaborator Post is provided, it should be provided in:
* The original Post being modified (as replacement or appended content),
* A new post within the original thread, or
* A new issue within the private nodejs/moderation repository.
* Moderation of Posts authored by non-Collaborators may result in those non-Collaborators being Banned from further participation in the Node.js GitHub organization for an indefinite period of time.
* In the case where a GitHub Account appears to have been created with no intention to collaborate in good faith, swift actions may be taken without following the above procedures including: removing Posts, Banning, and reporting accounts to GitHub.
* A new issue within the private nodejs/moderation repository.
* Moderation of Posts authored by non-Collaborators may result in those non-Collaborators being Banned temporarily or permanently from further participation in the Node.js GitHub organization.
* In the case where a GitHub Account appears to have been created with no intention to collaborate in good faith, swift actions may be taken without following the above procedures including: removing Posts, Banning permanently, and reporting accounts to GitHub.

Note that Moderating non-Collaborator posts can often lead to retaliation or escalation of inappropriate behavior by the individual whose post is being Moderated. This is true primarily of individuals whose intent is to harass, disrupt or annoy individual members of the community. In such cases, it is best to handle the Moderation as quickly and as quietly as possible without drawing any further undue attention to the Post in question.

### Escalation to the TSC
#### Temporary Interaction Limits

The Moderation Team may, at their discretion, choose to enable GitHub's [Temporary Interaction Limits][] on any GitHub repository in the Node.js GitHub Organization.

### Privacy of the nodejs/moderation Repository

Any Moderation issue or dispute can be escalated to the TSC by "mentioning" `@nodejs/tsc` in the body of a GitHub issue either in the original thread or in the private nodejs/moderation repository. Optionally, the `tsc-agenda` label may be attached to the issue to request that it be added to the TSC meeting agenda.
The nodejs/moderation Repository is used to discuss the potentially sensitive details of any specific moderation issue. The repository is private but accessible to all Collaborators. The details of any issue discussed within the nodejs/moderation repository are expected to remain confidential and are not to be discussed in any public forum or social media service.

(Note that using the `@nodejs/tsc` syntax to mention the TSC in the body of a request only will only work if the author of the Post is currently a member of the Node.js GitHub organization.)
Any Collaborator found to be violating the privacy of the nodejs/moderation repository by repeatedly sharing or discussing the details of nodejs/moderation issues in any public forum or social media service risks being permanently Removed from the Node.js GitHub organization.

All Moderation-related decisions follow the normal [TSC motion and voting process](https://GitHub.com/nodejs/TSC/blob/master/TSC-Charter.md#section-8-voting).
### Moderation Team

TSC members directly involved in a Moderation issue -- as either the Requester or author of the Post in question -- are expected to excuse themselves from any decisions required to resolve the issue.
The Node.js Moderation Team is tasked with enforcement of this policy.

### Privacy of the nodejs/moderation Repository
Moderation team members are Collaborators nominated by either the TSC or CommComm and must be approved by *both* committees. If there are objections to a specific nomination, then a simple majority vote of all TSC and CommComm members is required. Moderators are removed from the Moderation Team following the same process.

The nodejs/moderation Repository is used to discuss the potentially sensitive details of any specific moderation issue. The repository is private but accessible to all Collaborators. The details of any issue discussed within the nodejs/moderation repository are expected to remain confidential and are not to be discussed in any public forum or social media service.
Twice per month, the Moderation Team must provide a report of all Moderation actions taken by the Moderation Team to both the CommComm and TSC.

Any Collaborator found to be violating the privacy of the nodejs/moderation repository by repeatedly sharing or discussing the details of nodejs/moderation issues in any public forum or social media service risks being removed from the Node.js GitHub organization through standard TSC motion and vote.
#### Escalation of Issues

### TSC Delegation of Authority to a "Moderation Working Group"
Any Moderation issue or dispute may be escalated to the TSC and CommComm for review by tagging the original issue, pull request, or associated nodejs/moderation repository tracking issue with the `moderation-review` label. Any such Moderation action may be overturned through a simple majority vote of all TSC and CommComm members.

For any Moderation issue that does not directly involve a TSC member, the TSC may choose to delegate some or all of it's Moderation-related responsibilities to a "Moderation Working Group". All members of such a Working Group must be Collaborators and the TSC will have responsibility for selecting the membership of that Moderation Working Group.
Moderation Team members directly involved in a Moderation issue -- as either the Requester or author of the Post in question -- are expected to recuse themselves from any decisions required to resolve the issue.

### Modifications to This Policy

Modifications to this policy are made through normal [TSC motion and vote](https://GitHub.com/nodejs/TSC/blob/master/TSC-Charter.md#section-8-voting). Any Collaborator may submit a PR proposing changes to this policy. Those PRs must be labeled using the `tsc-agenda` label. Including a mention to `@nodejs/tsc` can be used to call the issue to TSC's attention.
Modifications to this policy are subject to approval by both the TSC and CommComm. If there any objections to any proposed change, a simple majority vote of all CommComm and TSC members is required.

[Code of Conduct]: https://GitHub.com/nodejs/TSC/blob/master/CODE_OF_CONDUCT.md
[Node.js Technical Steering Committee]: https://github.com/nodejs/node#tsc-technical-steering-committee
[Node.js Community Committee]: https://github.com/nodejs/community-committee
[GitHub's access permissions documentation]: https://help.github.com/articles/what-are-the-different-access-permissions/
[Temporary Interaction Limits]: https://github.com/blog/2370-introducing-temporary-interaction-limits

0 comments on commit dc4d4fc

Please sign in to comment.