design: update Code of Conduct proposal

Incorporate feedback from the ~80 community members
with whom I have corresponded so far.

Update golang/go#13073

Change-Id: I99e78b5005f5cee08b17adf89f3e64ecdbf3f1fc
Reviewed-on: https://go-review.googlesource.com/17011
Reviewed-by: Andrew Gerrand <adg@golang.org>
diff --git a/design/13073-code-of-conduct.md b/design/13073-code-of-conduct.md
index d3e7fe4..c0d53aa 100644
--- a/design/13073-code-of-conduct.md
+++ b/design/13073-code-of-conduct.md
@@ -1,295 +1,426 @@
-# Proposal: A Code of Conduct for the Go community

-

-Author: Andrew Gerrand <adg@golang.org>

-

-Last updated: 30 October 2015

-

-**Please send all comments or questions directly to <adg@golang.org>.**

-

-> (This is a departure from the typical proposal process, since discussions

-> Around Codes of Conduct tend to devolve quickly. By restricting the

-> discussion Of this proposal to 1:1 conversations between myself and members

-> of the Community, I hope to better hear everyone’s specific concerns without

-> generating unnecessary noise.)

-

-## Abstract

-

-This proposal provides a Code of Conduct for the Go community. The code is to

-be enforced in all project-operated spaces (the GitHub project, mailing lists,

-IRC, etc). Other Go-related spaces (forums, events, etc) are encouraged to

-adopt the code as well.

-

-## Background

-

-Since Go’s release nearly 6 years ago, a sizable community has grown around the

-language. The golang-nuts mailing list has more than 17k members and receives

-thousands of posts each month, and there are many major Go conferences each

-year with thousands of attendees.

-

-For a community of this scale to survive and prosper, it needs guidelines to

-encourage productive and positive experiences, and to effectively deal with

-negative experiences. 

-

-The community must also grow to survive. An explicit goal of this proposal is

-to promote cultural diversity within our community and make it more welcoming

-and inclusive. 

-

-## Proposal

-

-A Code of Conduct document is added to the “go” repository as

-/doc/conduct.html, visible on the web at golang.org/conduct (as with

-golang.org/security). The document is linked prominently from official Go

-spaces (such as the golang-nuts mailing list).

-

-The document text is as follows.

-

----

-

-### About the Code of Conduct

-

-#### Why have one?

-

-Online communities include people from many different backgrounds. The first

-goal of the Code of Conduct (CoC) is to specify a baseline of common courtesy

-so that people with different social mores and communication styles can

-communicate with each other effectively, productively, and respectfully.

-

-Another goal of the CoC is to make our community welcoming to people from

-different backgrounds. Diversity is critical to the project; for Go to become a

-success, it needs contributors and users from all backgrounds. (See Go, Open

-Source, Community.)

-

-To be explicit: the Go contributors are committed to providing a friendly, safe

-and welcoming environment for all, regardless of gender, sexual orientation,

-disability, ethnicity, religion, or similar personal characteristic.

-

-#### Where does it apply?

-

-The Code of Conduct applies generally. If you participate in or contribute to

-the Go ecosystem in any way, you should observe the Code of Conduct.

-

-Explicit enforcement of the Code of Conduct can only practically apply to the

-official forums operated by the Go project (the official Go GitHub projects, Go

-project code reviews, the #go-nuts IRC channel, the /r/golang sub-reddit, and

-the various golang-* mailing lists operated on Google Groups).

-

-Other Go groups (such as conferences, meetups, and other unofficial forums) are

-encouraged to use this Code of Conduct as well.

-

-Furthermore, if your conduct outside the Go community is against our values

-(below), it may affect your ability to participate within our community.

-

-### Gopher values

-

-This section states the values to which Go enthusiasts (“Gophers”) should

-aspire, and the kinds of behaviors that are not acceptable in our community.

-

-* Be friendly and welcoming

-* Be patient

-   * Remember that people have varying communication styles, and that not everyone speaks English fluently.

-* Be respectful

-   * In particular, respect differences of opinion.

-* Be charitable

-   * Interpret the arguments of others in good faith, do not seek to disagree.

-   * When we do disagree, try to understand why.

-* Be thoughtful

-   * Productive communication requires effort. Think about how your words will be interpreted.

-   * Remember that sometimes it is best to refrain from commenting entirely.

-* Avoid destructive behavior, for example:

-   * Snarking (pithy, unproductive, sniping comments)

-   * Derailing (try to stay on topic; if you want to talk about something else,

-     start a new conversation)

-   * Unconstructive criticism (don't merely decry the current state of affairs;

-     offer suggestions as to how things may be improved)

-   * Insulting, demeaning, hateful, oppressive, exclusionary, or otherwise

-     hurtful remarks.

-   * Romantic or sexual commentary, remarks, or questions.

-   * Harassment (either in public or private; if someone asks you to stop

-     speaking to/at them, you must stop immediately)

-   * Flirting with offensive or sensitive issues, particularly if they're

-     off-topic; this all too often leads to unnecessary conflict.

-   * “Microaggressions,” the small, subtle, often subconscious actions that

-     marginalize people in oppressed groups.

-* Don't just aim to be technically unimpeachable, aim to be your best self.

-   * If someone takes issue with something you said or did, resist the urge to

-     be defensive. Just stop doing what it was they complained about and

-     apologize.

-

-### Enforcement

-

-The official Go forums (as described in the “Where does it apply” section

-above) are not free speech venues. They are for structured conversation about

-Go.

-

-If you wish to conduct yourself in a way that goes against the values stated in

-the previous section, you will be asked to stop. If you do not stop, you will

-be removed from our community spaces.

-

-The forum moderators are volunteers that are free to act with their own

-discretion. Moderators are held to a higher standard than other community

-members. If a moderator creates an inappropriate situation, they should expect

-less leeway than others, and should expect to be removed for their position if

-they cannot adhere to the code. 

-

-Complaints about moderator actions must be dealt with in private

-(use the reporting process below).

-

-### Reporting issues

-

-The Code of Conduct Working Group are a group of people that represent the Go community. They are responsible for handling code-related issues. They are:

-

-* Aditya Mukerjee <dev@chimeracoder.net>

-* Andrew Gerrand <adg@golang.org>

-* Dave Cheney <dave@cheney.net>

-* Jason Buberel <jbuberel@google.com>

-* Peggy Li <peggyli.224@gmail.com>

-* Sarah Adams <sadams.codes@gmail.com>

-* Steve Francia <steve.francia@gmail.com>

-* Verónica López <gveronicalg@gmail.com>

-

-(Membership changes to the Community Working Group can be proposed via the

-[Go Change Proposal Process](https://golang.org/s/proposal-process).)

-

-If you encounter a Code of Conduct-related issue, you should report it to the

-Code of Conduct Working Group using the process described below. Do not post

-about the issue publicly or try to rally sentiment against a particular

-individual or group.

-

-* Mail conduct@golang.org or fill in [TODO(adg): anonymous web form]

-   * Your mail will reach the Go Code of Conduct Working Group.

-   * Reports are confidential within the working group.

-   * Note that if you choose to remain anonymous then you cannot be notified of

-     the outcome of your report.

-   * You may contact a member of the group directly if you do not feel

-     comfortable contacting the group as a whole. (You may receive a delayed

-     response in this case.)

-   * If your report concerns a member of the working group they will be recused

-     from working group discussions of the report.

-   * The working group will strive to handle reports with sensitivity, to

-     protect the privacy of the involved parties, and to avoid conflicts of

-     interest.

-* You will receive a response within 24-48 hours (likely sooner).

-* The group will meet to review the incident and determine what happened.

-   * With the permission of person reporting the incident, the group may reach

-     out to other community members for more context.

-* The group will reach a decision as to how to act. These include:

-   * Nothing.

-   * A request for a private or public apology.

-   * A private reprimand from the working group to the individual(s) involved.

-   * A public reprimand.

-   * An imposed vacation (for instance, asking someone to "take a week off"

-     from a mailing list or IRC).

-   * A permanent or temporary ban from some or all Go spaces (mailing lists,

-     IRC, etc.)

-* The group will reach out to the original reporter to let them know the

-  decision.

-* Appeals to the decision may be made to the working group, or to any of its

-  members directly.

-

-### Summary (tl;dr)

-

-* Treat everyone with respect and kindness

-* Be mindful of how your words may be interpreted

-* Don’t be destructive or antagonistic

-* If you have an issue, please mail conduct@golang.org

-

----

-

-## Rationale

-

-*Do we need a Code of Conduct?* Some community members have argued that people should be trusted to do the right thing, or simply ignored when they do not. To address the former: there are varying definitions of the “right thing”; a Code of Conduct specifies what that means. To address the latter: if we allow negative forms of communication to flourish, we will be left only with people who enjoy that kind of communication.

-

-*Why write our own?* There are many existing Codes of Conduct to choose from, so we could have saved some time by simply re-using an existing one. This document does draw heavily on existing documents such as the Rust and Django Codes of Conduct, but it includes some original material too. I opted for this approach to specifically address the needs of the Go community as I understand them.

-

-### Examples of CoC issues and their resolutions

-

-These fictional examples show how community members and the working group might

-use the Code of Conduct’s guidelines to resolve a variety of issues. In each

-case, the goal of the intervention is to raise the level of discourse and to

-make people feel welcome in our community spaces.

-

-Rude and unwelcoming behavior:

-

-* J and S are emailing back and forth on a golang-nuts thread.

-* D enters the conversation and proposes an alternative solution. 

-* J and S ignore D and continue their discussion.

-* D re-articulates their point in a different way.

-* J responds to D by asking them to "butt out".

-* S emails J privately, noting that J's reaction was uncalled-for, and suggests that J apologize to D.

-* J replies that they have nothing to apologize for.

-* S reports the incident to the CoC Working Group.

-* T, a member of the working group, contacts J and S separately to get details on the incident.

-* T asks J to apologize for being unwelcoming and exclusive, and notifies S that this action was taken.

-* J acknowledges their mistake and apologizes to D.

-* The issue is resolved.

-

-A classic troll:

-

-* Q repeatedly posts about a particular issue, raising the issue on unrelated threads, as well as starting many redundant threads.

-* The forum moderators warn Q to stop, as derailing threads and spamming are against the CoC.

-* Q refuses and becomes belligerent, making insulting remarks about the moderators and other members of the community.

-* The moderators ban Q from the forum, and post a message explaining this.

-* The issue is resolved.

-

-Condescending behavior:

-

-* M posts a message to /r/golang describing the approach they're planning to take for wrapping http.HandlerFunc and asking for feedback.

-* P replies to the message "Why don’t you just do it the obvious way?" with an explanation of an alternate approach. =

-* N, a bystander to this exchange, replies “That may have been obvious to you, but you shouldn’t assume that it’s obvious to just anyone.”

-* P replies “Well I guess you’re an idiot too, then.”

-* Q, a moderator, observes this interaction and sends a message to P to tell them their behavior is unacceptable.

-* P insists there is nothing wrong with their behavior.

-* Q bans P, and posts to the original thread “I have banned P because their behavior was unacceptable. Sorry for the trouble.”

-* The issue is resolved.

-

-Two examples of “microaggressions”:

-

-* J is a regular poster to the golang-nuts mailing list. On one thread, they make the comment “Go’s type system is so simple even my grandma could understand it.”

-* Another poster points out that the comment goes against the code of conduct, since it marginalises women and the elderly by implying that something need be simple for an old woman to understand it.

-* J says “Fair point. Sorry for saying that.”

-* The issue is resolved.

-

-

-* K has typically female name and posts to a mailing list to announce a Go-to-Forth compiler they wrote.

-* N replies “It’s impressive to see a woman doing such great work. Nice job!”

-* K writes to the CoC Working Group to say “I felt really deflated for my work to be seen as impressive just because I’m a woman. Can you say something to N for me?”

-* T, a member of the working group, reaches out to N to explain how their words affected K.

-* Recognizing the hurt N has caused, N sends an email to K to apologise.

-* The issue is resolved.

-

-## Compatibility

-

-Some people feel stifled by the general concept of a Code of Conduct. Others

-may find explicit efforts to improve diversity in our community unpalatable for

-various reasons. While a major goal of this proposal is to make the community

-more inclusive, this does by definition exclude people that cannot abide by the

-goals and principles of the code. I see this as a regrettable but necessary and

-inescapable design tradeoff. The implementation of the code may cause us to

-lose a few people, but we stand to gain much more.

-

-## Implementation

-

-I (Andrew Gerrand) will submit the Code of Conduct text to the main Go

-repository, so that it is available at the URL https://golang.org/conduct.

-I will also set up the conduct@golang.org email address and the anonymous web

-form. 

-

-Then I will link the document prominently from these places:

-

-* `README.md` and `CONTRIBUTING.md` files in the official Go repositories.

-* The golang-nuts and golang-dev mailing list welcome messages.

-* The #go-nuts IRC channel topic.

-* The /r/golang subreddit sidebar.

-

-I will work with the existing moderators of these spaces to implement the Code

-of Conduct in those spaces, recruiting additional moderators where necessary.

-

-Operators of unofficial Go events and forums are encouraged to adopt this Code

-of Conduct, so that our community members enjoy a consistent experience across

-venues.

-

-## Open issues

-

-The Working Group does not yet include anyone from Asia, Europe, or Africa.

-In particular, Europe and China are home to a large swath of Go users, so it

-would be valuable to include some people from those areas in the working group.

+# Proposal: A Code of Conduct for the Go community
+
+Author: Andrew Gerrand <adg@golang.org>
+
+Last updated: 17 November 2015
+
+*Please send comments or questions directly to <adg@golang.org>.*
+
+## Abstract
+
+This proposal specifies a Code of Conduct for the Go community.
+The code is to be enforced in all project-operated spaces (specified
+in the Code of Conduct text, below). Other Go-related spaces (forums,
+events, etc) are encouraged to adopt the code as well.
+
+## Background
+
+Since Go’s release over 6 years ago, a sizable community has grown around the
+language. The golang-nuts mailing list has more than 17k members and receives
+thousands of posts each month, and there are many major Go conferences each
+year with thousands of attendees.
+
+Today the various Go spaces are moderated by people that are unknown to the
+public with no specified policy. It is not clear to the members of these spaces
+how they are expected to conduct themselves. In the rare cases where people are
+banned, they are afforded no recourse.
+
+For a community of this scale to grow and prosper, it needs guidelines
+to encourage productive and positive participation, and a process for
+resolving conflict when it inevitably arises.
+
+The community must also grow to survive. An explicit goal of this proposal
+is to promote cultural diversity within our community and thereby make it more
+welcoming and inclusive. 
+
+## Proposal
+
+A Code of Conduct document is added to the “go” repository as
+`doc/conduct.html`, visible on the web at https://golang.org/conduct.
+The document is linked prominently from official Go spaces (such as the
+golang-nuts mailing list).
+
+The document text is as follows.
+
+---
+
+### About the Code of Conduct
+
+#### Why have one?
+
+Online communities include people from many different backgrounds.
+The first goal of the Code of Conduct is to specify a baseline standard
+of behavior so that people with different social values and communication
+styles can talk about Go effectively, productively, and respectfully.
+
+A second goal is to provide a mechanism for resolving conflicts in the
+community when they arise.
+
+A third goal of the Code of Conduct is to make our community welcoming to
+people from different backgrounds. Diversity is critical to the project; for Go to
+be successful, it needs contributors and users from all backgrounds.
+(See [Go, Open Source, Community](https://blog.golang.org/open-source).)
+
+To be explicit: the Go contributors are committed to providing a friendly, safe
+and welcoming environment for all, regardless of gender, sexual orientation,
+disability, ethnicity, religion, or similar personal characteristic.
+
+With that said, a healthy community must allow for disagreement and debate.
+The Code of Conduct is not a mechanism for people to silence others with whom they
+disagree.
+
+#### Where does it apply?
+
+The Code of Conduct applies generally. If you participate in or contribute to
+the Go ecosystem in any way, you are expected to observe the Code of Conduct.
+
+Explicit enforcement of the Code of Conduct can only practically apply to the
+official forums operated by the Go project (“Go spaces”):
+- the official Go GitHub projects,
+- Go project code reviews,
+- the #go-nuts IRC channel on Freenode,
+- the /r/golang subreddit, and
+- the golang-nuts and golang-dev mailing lists operated on Google Groups.
+
+Other Go groups (such as conferences, meetups, and other unofficial forums) are
+encouraged to adopt this Code of Conduct.
+
+### Gopher values
+
+These are the values to which people in the Go community (“Gophers”) should aspire.
+
+* Be friendly and welcoming
+* Be patient
+   * Remember that people have varying communication styles and that not
+     everyone is using their native language.
+     (Meaning and tone can be lost in translation.)
+* Be thoughtful
+   * Productive communication requires effort.
+     Think about how your words will be interpreted.
+   * Remember that sometimes it is best to refrain from commenting entirely.
+* Be respectful
+   * In particular, respect differences of opinion.
+* Be charitable
+   * Interpret the arguments of others in good faith, do not seek to disagree.
+   * When we do disagree, try to understand why.
+* Avoid destructive behavior:
+   * Derailing: stay on topic; if you want to talk about something else,
+     start a new conversation.
+   * Unconstructive criticism: don't merely decry the current state of affairs;
+     offer suggestions as to how things may be improved.
+   * Snarking (pithy, unproductive, sniping comments)
+   * Discussing potentially offensive or sensitive issues;
+     this all too often leads to unnecessary conflict.
+   * Microaggressions: brief and commonplace verbal, behavioral and
+     environmental indignities that communicate hostile, derogatory or negative
+     slights and insults to a person or group.
+
+People are complicated.
+You should expect to be misunderstood and to misunderstand others;
+when this inevitably occurs, resist the urge to be defensive or assign blame.
+Try not to take offense where no offense was intended.
+Give people the benefit of the doubt.
+Even if the intent was to provoke, do not rise to it.
+It is the responsibility of *all parties* to de-escalate conflict when it arises.
+
+### Unwelcome behavior
+
+These actions are explicitly forbidden in Go spaces:
+
+* Insulting, demeaning, hateful, or threatening remarks.
+* Discrimination based on gender, race, nationality, sexuality, religion, age or physical disability.
+* Bullying or systematic harassment.
+* Unwelcome sexual advances.
+* Incitement to or condoning of any of these.
+
+### Moderation
+
+The Go spaces are not free speech venues; they are for discussion about Go.
+These spaces have moderators.
+The goal of the moderators is to facilitate civil discussion about Go.
+
+When using the official Go spaces you should act in the spirit of the “Gopher values”.
+If you conduct yourself in a way that is explicitly forbidden by the CoC,
+you will be warned and asked to stop.
+If you do not stop, you will be removed from our community spaces temporarily.
+Repeated, wilful breaches of the CoC will result in a permanent ban.
+
+Moderators are held to a higher standard than other community members.
+If a moderator creates an inappropriate situation, they should expect less
+leeway than others, and should expect to be removed from their position if they
+cannot adhere to the CoC.
+
+Complaints about moderator actions must be handled using the reporting process below.
+
+### Reporting issues
+
+The Code of Conduct Working Group is a group of people that represent the Go
+community. They are responsible for handling conduct-related issues.
+Their purpose is to de-escalate conflicts and try to resolve issues to the
+satisfaction of all parties. They are:
+
+* Aditya Mukerjee <dev@chimeracoder.net>
+* Andrew Gerrand <adg@golang.org>
+* Dave Cheney <dave@cheney.net>
+* Jason Buberel <jbuberel@google.com>
+* Peggy Li <peggyli.224@gmail.com>
+* Sarah Adams <sadams.codes@gmail.com>
+* Steve Francia <steve.francia@gmail.com>
+* Verónica López <gveronicalg@gmail.com>
+
+If you encounter a conduct-related issue, you should report it to the
+Code of Conduct Working Group using the process described below.
+**Do not** post about the issue publicly or try to rally sentiment against a
+particular individual or group.
+
+* Mail conduct@golang.org or submit an anonymous report. [TODO(adg): set up anonymous web form]
+   * Your message will reach the Go Code of Conduct Working Group.
+   * Reports are confidential within the working group.
+   * Should you choose to remain anonymous then the group cannot
+     notify you of the outcome of your report.
+   * You may contact a member of the group directly if you do not feel
+     comfortable contacting the group as a whole. That member will then raise
+     the issue with the group as a whole, preserving the privacy of the reporter (if desired).
+   * If your report concerns a member of the working group they will be recused
+     from working group discussions of the report.
+   * The working group will strive to handle reports with discretion and
+     sensitivity, to protect the privacy of the involved parties,
+     and to avoid conflicts of interest.
+* You will receive an initial response within 24-48 hours (likely sooner).
+* The group will meet to review the incident and determine what happened.
+   * With the permission of person reporting the incident, the group may reach
+     out to other community members for more context.
+* The group will reach a decision as to how to act. These may include:
+   * Nothing.
+   * A request for a private or public apology.
+   * A private reprimand from the working group to the individual(s) involved.
+   * A public reprimand.
+   * An imposed vacation (for instance, asking someone to "take a week off"
+     from a mailing list or IRC).
+   * A permanent or temporary ban from some or all Go spaces (mailing lists,
+     IRC, etc.).
+* The group will reach out to the original reporter to let them know the
+  decision.
+* Appeals to the decision may be made to the working group,
+  or to any of its members directly.
+
+**Note that the goal of the Code of Conduct and the Working Group is to resolve
+conflicts in the most harmonious way possible.**
+We hope that in most cases issues may be resolved through polite discussion and
+mutual agreement.
+Bannings and other forceful measures are to be employed only as a last resort.
+
+### Summary
+
+* Treat everyone with respect and kindness.
+* Be thoughtful in how you communicate.
+* Don’t be destructive or antagonistic.
+* If you encounter an issue, please mail conduct@golang.org.
+
+---
+
+## Rationale
+
+*Do we need a Code of Conduct?*
+Some community members have argued that people should be trusted to do the
+right thing, or simply ignored when they do not.
+To address the former: there are varying definitions of the “right thing”; a
+Code of Conduct specifies what that means.
+To address the latter: if we allow destructive forms of communication (those
+that go against the "Gopher Values") to flourish, we will be left only with
+people who enjoy that kind of communication.
+
+The CoC also makes moderation processes more transparent: the various Go spaces
+have always been moderated spaces, but the rules were never written down.
+It seems better to be explicit about the behavior we expect in those spaces.
+
+*Why write our own?*
+There are many existing Codes of Conduct to choose from,
+so we could have saved some time by simply re-using an existing one.
+This document does draw heavily on existing documents such as the Rust,
+FreeBSD, and Django Codes of Conduct, but it includes some original material
+too.
+I opted for this approach to specifically address the needs of the Go community
+as I understand them.
+
+*Is behavior outside Go spaces covered by this CoC?*
+An earlier draft of this proposal included a clause that behavior outside Go
+spaces may affect one’s ability to participate within them. After much
+community feedback, I removed the clause. It was seen as unnecessarily
+overreaching and as providing an opportunity for malicious people to oust
+community members for their behavior unrelated to Go.
+
+*The “Gopher Values” are not my values. I consider myself part of the Go
+community; shouldn’t the CoC represent me, too?*
+Members of the Go community are from many different cultures; it would be
+impossible to represent the full range of social norms in a single document.
+Instead, the values described by the CoC are designed to reflect the lowest
+common denominator of behavior necessary for civil discourse.
+Community members (including the author of this document) whose norms may be
+regarded by others as impolite or aggressive are expected to be self-aware and
+thoughtful in how they communicate to avoid creating conflict.
+
+*The Code of Conduct document seems unnecessarily long.
+Can’t it just be a version of the Golden Rule?*
+The Go community comprises thousands of people from all over the world; it
+seems unrealistic to assume that those individuals should have compatible ideas
+about how to get along with each other.
+By describing the kind of behavior to which one should aspire, and those
+behaviors that are explicitly forbidden, we at least give all community members
+an idea of what is expected of them.
+
+Note that *this* document is a proposal document; the Code of Conduct itself is
+a subset of the proposal document and is about 12,000 words long, including the
+description of the reporting process. The “Gopher Values” section—the meat of
+the thing—is under 300 words.
+
+### Examples of CoC issues and their resolutions
+
+These fictional examples show how community members and the working group might
+use the Code of Conduct’s guidelines to resolve a variety of issues. In each
+case, the goal of the intervention is to raise the level of discourse and to
+make people feel welcome in our community spaces.
+
+*Rude and unwelcoming behavior:*
+
+* B and C are posting back and forth on a golang-nuts thread.
+* D enters the conversation and proposes an alternative solution. 
+* B and C ignore D and continue their discussion.
+* D re-articulates their point in a different way.
+* B responds to D by asking them to "butt out".
+* C emails B privately, noting that B's reaction was uncalled-for, and suggests that B apologize to D.
+* B replies that they have nothing to apologize for.
+* C reports the incident to the CoC Working Group.
+* E, a member of the working group, contacts B and C separately to get details on the incident.
+* E asks B to apologize for being unwelcoming and rude, and notifies C that this action was taken.
+* B acknowledges their mistake and apologizes to D.
+* The issue is resolved.
+
+In this case, B could have avoided conflict by just saying nothing, or by
+responding politely to D’s messages. It’s not OK to be rude or exclusive in the
+public forum. (If B and C want to discuss things privately, they should take it
+off-list.)
+
+*A classic troll:*
+
+* B repeatedly posts about a particular issue, raising the issue on unrelated
+  threads, as well as starting many redundant threads.
+* The forum moderators warn B to stop, as derailing threads and spamming are
+  against the CoC.
+* B refuses and becomes belligerent, making insulting remarks about the
+  moderators and other members of the community.
+* The moderators ban B from the forum for 10 days, and post a message explaining this.
+* The issue is resolved.
+
+In this case, the goal is for the user to come back after a while and hopefully
+be more productive in the future. We don’t want to ban them forever; it is
+important to keep people with unpopular opinions around to prevent the
+community from becoming an echo chamber.
+
+*Condescending behavior:*
+
+* B posts a message to /r/golang describing the approach they're planning to
+  take for wrapping http.HandlerFunc and asking for feedback.
+* C replies to the message "Why don’t you just do it the obvious way?" with an
+  explanation of an alternate approach.
+* D, a bystander to this exchange, replies “That may have been obvious to you,
+  but you shouldn’t assume that it’s obvious to just anyone.”
+* C replies “Well I guess you’re an idiot too, then.”
+* E, a moderator, observes this interaction and sends a message to C to tell
+  them their behavior is unacceptable.
+* C insists there is nothing wrong with their behavior.
+* E replies publicly to C on the original thread to say “Condescension and
+  personal insults are not appropriate in this forum. Please observe the Code
+  of Conduct when posting here.”
+* The issue is resolved.
+
+*A microaggression:*
+
+* B has typically female name and posts to a mailing list to announce a
+  Go-to-Forth compiler they wrote.
+* C replies “I am amazed to see a woman doing such great work. Nice job!”
+* B writes to the CoC Working Group to say “I felt really deflated for my work
+  to be seen as impressive just because I’m a woman. Can you say something to C
+  for me?”
+* D, a member of the working group, reaches out to C to explain how comments
+  like that can make women feel out of place in technical communities.
+* Recognizing the hurt C has caused, C sends an email to B to apologise.
+* The issue is resolved.
+
+In this case, we see the a working group member acting as a mediator for
+someone who didn’t feel comfortable confronting someone directly.
+The working group member D contacted C in private to discuss the issue,
+to avoid bringing shame to C in public, since C apparently meant no harm.
+
+*Impatient behavior:*
+
+* B asks a seemingly simple question on the mailing list.
+* C replies back with an answer and an additional comment to
+  "RTFM before you ask simple questions!!!"
+* B points out the small detail C overlooked in the question to clarify the
+  complexity.
+* C replies back "Ack! Sorry, I actually don't know."
+* B enters the conversation and criticizes C for his behavior in his
+  original reply, raising the issue further with a moderator.
+* D, a moderator, replies to the list to ask C to be less impatient in their responses,
+  suggesting they could have instead said something like "The docs cover this."
+* The issue is resolved.
+
+In this case, the moderators acted in a purely advisory role.
+
+*An abrasive newcomer, a pithy response:*
+
+* B makes their first post to golang-nuts:
+  "What's the deal with Go's error handling mechanism? It's brain dead and stupid."
+* C, a forum regular, replies “Oh no, not another one.”
+* D, another regular replies (compensating for C) “Hi, welcome to the list. As
+  I’m sure you can appreciate, this topic has come up many times before. Here
+  are some links to previous discussions and articles that discuss the topic.
+  Let us know if you have any questions that aren’t covered by those threads.
+  Thanks.”
+* E, a moderator, reaches out to C off list to ask them to refrain from this
+  kind of pithy, unhelpful commentary in the future.
+* There is no need for further action.
+
+In this case, we see a community member (D) try to steer the discussion in a
+productive direction, while a moderator tries to prevent future negativity
+without creating a public drama.
+
+## Compatibility
+
+Some people feel stifled by the general concept of a Code of Conduct.
+Others may find explicit efforts to improve diversity in our community
+unpalatable for various reasons.
+While a major goal of this proposal is to make the community more inclusive,
+this does by definition exclude people that cannot abide by the goals and
+principles of the code.
+I see this as a regrettable but necessary and inescapable design tradeoff.
+The implementation of the code may cause us to lose a few people, but we stand
+to gain much more.
+
+## Implementation
+
+I (Andrew Gerrand) will submit the Code of Conduct text to the main Go
+repository, so that it is available at the URL https://golang.org/conduct.
+I will also set up the conduct@golang.org email address and the anonymous web
+form. 
+
+Then I will link the document prominently from these places:
+
+* `README.md` and `CONTRIBUTING.md` files in the official Go repositories.
+* The golang-nuts and golang-dev mailing list welcome messages.
+* The #go-nuts IRC channel topic.
+* The /r/golang subreddit sidebar.
+
+I will work with the existing moderators of these spaces to implement the Code
+of Conduct in those spaces, recruiting additional moderators where necessary.
+
+Operators of unofficial Go events and forums are encouraged to adopt this Code
+of Conduct, so that our community members can enjoy a consistent experience
+across venues.
+
+## Open issues
+
+The Working Group does not yet include anyone from Asia, Europe, or Africa.
+In particular, Europe and China are home to a large swath of Go users, so it
+would be valuable to include some people from those areas in the working group.