Contributing

We accept submissions for improving our code and documentation alike.

If you're interested in contributing, but don't know where to start, feel free to send us an email.

Code guidelines

Our official guide to contributing can be found here, which is most useful for large and low-level changes.

Before contributing code, you should familiarize yourself with the Hoon style guide. For a good example of preferred Hoon coding style, see ford.hoon.

Community Guidelines

Urbit is both code and community. We have guidelines for the former, and we also have guidelines for the latter.

Jurisdiction

Urbit is a decentralized system, both technically and in spirit. This means that no one, Tlon Corp. or otherwise, has the technical ability to police the entire network. But we do admit that moderation is necessary; we just think that it’s not strictly a technical problem.

What we can do, and what we propose to do in this document, is define how we plan on moderating our little, but important, corner of Urbit. We define the limits of our jurisdiction as the general-purpose discussion channel /urbit-help, our forum, fora and, adjacently, the GitHub issues on any of the official urbit repos.

Our hope is that the system established here can serve as a model for other corners of Urbit. But it bears repeating: Tlon is technically incapable of moderating the Urbit network in general.

Use of these guidelines

The goal of these guidelines is to provide clear principles which can be used by moderators for the resolution of disputes in this jurisdiction. The hope is that, by knowing the guidelines that will be cited in case of a dispute, users can have clear expectations of how to comport themselves and how a judgement will be made. The ideal is that, right before pressing "Submit" on an inflammatory Fora post, the errant Urbiter will pause and remember the following mandates.

The Pentalogue

1. Stay on topic

Conflicts about the work, about building Urbit, are good conflicts. Conflicts about haircuts, politics or sports are not productive and are best conducted in a DM or a private circle.

2. Treat everyone like a person

All of us have pre-loaded talking points against our preferred ideological and intellectual opponents. Unleashing them prematurely often impedes communication and sours otherwise productive dialogue. It is also not nice. So, instead of treating a human being as merely an avatar for an idea, treat them like a person.

“Treating someone like a person” means responding to what people actually say, instead of what you think such a person would say.

Before responding to something that seems objectionable, make sure that the other party is actually saying what you think they’re saying. Ask questions and be nice.

3. Skin in the game

No one likes comments like "this sux" in a thread of otherwise serious commentary. If other people have something to lose (even if it’s just face), be respectful. And, ideally, put some skin in the game yourself.

In general, establish yourself in a conversation or a subject area before you start attacking anyone. Better yet: don't attack anyone.

4. Assume good faith

If anyone has gone through the trouble of booting a ship, submitting an issue, learning Hoon, reading through our docs or otherwise shown themselves committed to our wild-eyed vision, they are to be assumed to be a friend.

If you can choose to interpret a statement as a sneaky slight or a clumsy compliment, choose the latter.

5. Respect the mods

We believe that all good governance terminates in a human relationship, and that moderators fulfill that role. All moderators will be forced to make judgments not covered by this document, and that will doubtless make some unhappy; maybe even you. Please respect the fact that someone took this responsibility on for the greater good.

The flipside of this is that moderators are expected to act in accordance with the dignity of that office. Abuse of power will not be tolerated.

Adjudication

The body responsible for the hearing of and ruling on claims is the Council, composed of moderators. Moderators are to serve for a term of one year.

Any planet-holder on the network dissatisfied with the behavior of another planet-holder must first send a complaint to the Council with a link to the offending message or document.

The case will be assigned a moderator at random, who will decide the matter. The finding will include a punishment which can range from censure to temporary or permanent blacklisting.

If one of the parties in the case would like to file an appeal, the case can be heard and ruled on by the entire Council. All proceedings of the Council are public and all past behavior in the jurisdiction can be considered in the Councils’ decision.