# Shelly Code of Conduct
Shelly is an open-source Unix-style shell and language written in Rust. Everyone is welcome to participate, provided they treat other people with basic respect.
We want Shelly to be a place where people can discuss shell behaviour, language design, code, documentation, bugs, and disagreements without having to tolerate harassment or discrimination.
## Expected behaviour
Participants are expected to:
- Treat other contributors and users with respect.
- Critique ideas, code, and technical decisions rather than attacking people.
- Assume reasonable good faith, while still accepting correction when something causes harm.
- Respect people's names, pronouns, identities, backgrounds, and boundaries.
- Keep technical disagreements focused on the work.
- Help maintain an environment where people can participate without being intimidated, degraded, or excluded.
Strong disagreement is fine. Blunt technical criticism is fine. Saying that an implementation is broken, an idea is flawed, or an approach should be replaced is fine.
Harassing the person who wrote it is not.
## Unacceptable behaviour
The following behaviour is not acceptable in this project:
- Harassment, intimidation, threats, stalking, or sustained personal attacks.
- Discrimination or derogatory treatment based on race, colour, ethnicity, nationality, gender, gender identity or expression, sex, sexual orientation, disability, age, religion, or similar personal characteristics.
- Racist, sexist, homophobic, transphobic, ableist, or otherwise degrading slurs or insults.
- Deliberately misgendering someone or repeatedly using a name or pronouns they have asked you not to use.
- Sexual harassment or unwanted sexual attention.
- Publishing or threatening to publish another person's private information without permission.
- Encouraging harassment or discrimination against another person or group.
- Repeatedly disrupting discussions after being asked to stop.
- Retaliating against someone for reporting a problem in good faith.
Context matters, but "it was a joke" does not automatically make harmful behaviour acceptable.
## Disagreement and tone
This project does not require contributors to be endlessly polite, agreeable, or cheerful.
Technical discussions may be blunt, direct, and strongly argued. You may say that code is broken, a design is bad, an argument is unconvincing, or a patch should not be merged.
What is not acceptable is turning technical disagreement into personal abuse.
Do not insult, demean, threaten, harass, or use slurs against other contributors. Do not attack someone based on their identity or personal characteristics. Do not deliberately try to humiliate people.
Criticize the work as hard as necessary. Treat the person doing the work with basic human decency.
You are not your work. Having a bad idea is okay. Treating other people poorly isn't.
Seniority, project ownership, technical expertise, or the quality of someone's contributions do not excuse abusive behaviour.
## Scope
This Code of Conduct applies to Shelly project spaces including the repository, issues, pull requests, discussions, code review, project chat or other communication conducted on behalf of Shelly.
It may also apply to behaviour outside those spaces when that behaviour directly affects the safety or ability of people to participate in the project.
## Reporting problems
If you experience or witness behaviour that violates this Code of Conduct, report it privately to the Shelly maintainer.
Reports will be reviewed as fairly and confidentially as reasonably possible. People making good-faith reports will not be punished simply because a report cannot ultimately be substantiated.
Knowingly false or malicious reports may themselves be treated as misconduct.
## Enforcement
Responses will depend on the seriousness and history of the behaviour.
Possible actions include a private warning, removal of comments or other content, temporary restrictions on participation, rejection of contributions, or a permanent ban from project spaces.
Severe harassment, threats, deliberate discrimination, doxxing, or similar behaviour may result in immediate removal without a prior warning.
The goal of enforcement is to protect the project and the people participating in it, not to create drama or score points.
## The short version
Be decent to people.
Argue about the code as hard as you need to.
Race, gender, gender identity, sexuality, disability, religion, nationality, and other personal characteristics are not grounds for treating somebody as lesser.
If someone tells you that you've crossed a line, take it seriously.
We're here to build Shelly.