Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add documentation with Read The Docs #139

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .deploy/mirror-chores.service
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[Unit]
Description=Chores by Mirror
Description=Chores by Chore Wheel
Documentation=https://github.com/zaratanDotWorld/mirror
After=network.target

Expand Down
2 changes: 1 addition & 1 deletion .deploy/mirror-hearts.service
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[Unit]
Description=Hearts by Mirror
Description=Hearts by Chore Wheel
Documentation=https://github.com/zaratanDotWorld/mirror
After=network.target

Expand Down
2 changes: 1 addition & 1 deletion .deploy/mirror-things.service
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[Unit]
Description=Things by Mirror
Description=Things by Chore Wheel
Documentation=https://github.com/zaratanDotWorld/mirror
After=network.target

Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Mirror 🪞
# Chore Wheel 🔆

[![CircleCI](https://dl.circleci.com/status-badge/img/gh/zaratanDotWorld/mirror/tree/master.svg?style=svg)](https://dl.circleci.com/status-badge/redirect/gh/zaratanDotWorld/mirror/tree/master) [![Documentation Status](https://readthedocs.org/projects/mirror/badge/?version=latest)](https://mirror.readthedocs.io/en/latest/?badge=latest)

Expand All @@ -8,11 +8,11 @@

### Overview:

Mirror is self-governance software for coliving, helping reshape the economics of housing.
Chore Wheel is self-governance software for coliving, helping reshape the economics of housing.

Developed in collaboration with social scientists and game designers, Mirror is a set of tools and processes which enable groups of individuals to easily and effectively share space, without reliance on expensive managers or tedious meetings. By lowering the cost of cooperation, Mirror helps to bring coliving into the mainstream, reducing both the price and environmental impact of housing.
Developed in collaboration with social scientists and game designers, Chore Wheel is a set of tools and processes which enable groups of individuals to easily and effectively share space, without reliance on expensive managers or tedious meetings. By lowering the cost of cooperation, Chore Wheel helps to bring coliving into the mainstream, reducing both the price and environmental impact of housing.

Mirror draws influence from the work of Elinor Ostrom, and is designed in reference to her [eight principles](https://en.wikipedia.org/wiki/Elinor_Ostrom#Design_principles_for_Common_Pool_Resource_(CPR)_institution):
Chore Wheel draws influence from the work of Elinor Ostrom, and is designed in reference to her [eight principles](https://en.wikipedia.org/wiki/Elinor_Ostrom#Design_principles_for_Common_Pool_Resource_(CPR)_institution):

1. Clearly defined the group boundaries (and effective exclusion of external un-entitled parties) and the contents of the common pool resource;
2. The appropriation and provision of common resources that are adapted to local conditions;
Expand Down
4 changes: 2 additions & 2 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

# -- Project information

project = 'Mirror'
copyright = '2023, Daniel Kronovet'
project = 'Chore Wheel'
copyright = '2023, Kronosapiens Labs'
author = 'Daniel Kronovet'

release = '0.3'
Expand Down
4 changes: 0 additions & 4 deletions docs/development/architecture.rst

This file was deleted.

61 changes: 61 additions & 0 deletions docs/development/design-principles.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
Design Principles
=================

Three Institutional Layers
The overall design of Chore Wheel can be understood in terms of three layers, evoking the three layers described in Elinor Ostrom’s seminal *Governing the Commons*.
The first, or **constitutional layer**, involves the design of the modules themselves.
In this first layer, the design of the entire system and its implementation are up for discussion.
There are no constraints, as software can be changed in arbitrary ways.
The constitutional layer can be understood as governing the system from without by changing rules themselves.

The second layer, the **political layer**, involves participants collaboratively setting explicit parameters that govern the behavior of the system.
An example would be choosing the frequency with which a certain chore is to be performed.
In the political layer, residents have control over the system’s behavior, but only within the constraints set by the constitutional layer.
We can think of this as governing the system from within.

Third and finally, the **operational layer** involves residents individually interacting with the system given the constraints created by the constitutional and political layers.
In this third layer, residents complete and verify chores, vote on issues, and procure supplies.

This three-layer design is meant to balance flexibility with simplicity – keeping daily interactions clear and straightforward, and providing residents with a structured means for shaping and controlling their environment, while still allowing for unstructured, open-ended changes to be made as needed.

Cheap Information
A guiding motivation for Chore Wheel is the reduction of the cost of information.
As observed in *Governing the Commons*, the cost of information is inextricably linked to the design of the system itself.
A well-designed system, which makes high-quality information cheaply available, will lead to consistently higher-quality decisions and thus better outcomes.
Chore Wheel achieves this by placing an “event stream” at the center of every module.
Every action, ultimately an attempt to claim some house resource, creates an event.
This can then be interacted with by all residents, most simply in the form of an endorsement or a challenge.

Permissionless by Default
A major design motif for Chore Wheel is “permissionless by default.” Whenever possible, synchronous voting should be avoided.
In practice, this means that most actions take the form of challenge-response.
In such a system, any resident can propose an action (e.g. such as making a purchase out of a shared account).
If there is no response to the proposal by other residents, the action will be allowed – and likely occur – after a set period of time.
This will be recorded as having passed with a vote of 1-0, representing implicit consent.
However, if other residents do not abstain, they may either oppose or support it with their own votes.
For major actions, a minimum number or percentage of votes in favor may be required, so as to encourage residents to “do their homework” and establish support prior to initiating the vote.

This approach allows uncontroversial actions to go forward unimpeded (due to a lack of opposition), while allowing for controversial actions to be decided by vote.
This “lazy consensus” approach mimics the processes successfully practiced by groups such as the Apache Software Foundation and Wikipedia.
To both discourage initiating frivolous voting and encourage participation in out-of-band communication, residents who propose failed actions will receive a small penalty.

Chat-based Interfaces
A second major design motif for Chore Wheel is an orientation around chat-based interfaces.
It is currently being developed as a set of Slack applications but is, in principle, portable to Discord, or any extensible chat platform.
The vision is for residents to interact with Chore Wheel via a series of chat bots, allowing governance interactions to occur seamlessly alongside other house communication.
Each module lives in a dedicated channel and interacts with residents via an events log, which is a series of messages providing information and interactivity.
To avoid spam in these channels, they will be read-only for residents.
However, residents may add comments and reactions to help keep them engaged with the channels without disrupting their utility.
Organizing all interactions as events in a log has positive knock-on effects for auditability and reliability, as any specific state can be reconstructed from the underlying event stream.

Anonymity and Identity
One critical design consideration is the appropriate role and degree of anonymity.
What actions must be taken publicly and which can be private? No one should have to respond to anonymous criticism, yet publicly identifying oneself can be intimidating and thus disenfranchising.
Ultimately, we choose to require identity for *initial* actions (e.g. completing a chore, issuing a challenge, or making a purchase), but allowing all votes to be anonymous.
In this way, at least one person is always linked to any action but the majority of the inputs can be private.

Subjective Inputs
Last but not least, Chore Wheel chooses to use only *subjective* inputs.
This means that explicit surveillance is not necessary, and communities using Chore Wheel can sidestep invasive measures practiced elsewhere such as mounting a camera behind the sink to see who leaves dirty dishes.
Such explicit information-gathering approaches create an uncomfortable environment, turn the home into a public sphere, and introduce a new class of measurement error.
The constrained physical environment allows for frequent eyeballs to perform the same monitoring function in a more pleasant, less invasive way, while also providing a few degrees of discretion (e.g. “wiggle room”).
10 changes: 5 additions & 5 deletions docs/index.rst
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
Mirror
Chore Wheel
======

**Mirror is pioneering software for co-living, running on Slack.**
**Chore Wheel is pioneering software for coliving, running on Slack.**

Created by **economists** and **game designers**, Mirror is a family of tools helping people share space:
Created by **economists** and **game designers**, Chore Wheel is a family of tools helping people share space:

- :ref:`chores` for keeping it clean
- :ref:`hearts` for mutual accountability
- :ref:`things` for bulk purchasing
- and more to come

Mirror is **open-source** and **privacy-preserving**.
Chore Wheel is **open-source** and **privacy-preserving**.
It contains the latest thinking in **ethical technology**, with four core principles:

- No managers or privileged roles
Expand Down Expand Up @@ -53,4 +53,4 @@ Contents
:maxdepth: 2
:caption: Development

development/architecture.rst
development/design-principles.rst
6 changes: 3 additions & 3 deletions docs/overview/getting-started.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
Getting Started
===============

Getting started with Mirror is quick and easy, and you can be up-and-running in twenty minutes.
Getting started with Chore Wheel is quick and easy, and you can be up-and-running in twenty minutes.

.. note::
.. tip::

| It is recommended that everyone be physically present during the set-up process.
| Perhaps over brunch?
Expand All @@ -19,7 +19,7 @@ If the house doesn't have a Slack workspace, they should `create one <https://sl

.. note::

One of the design principles of Mirror is "no managers or privileged roles".
One of the design principles of Chore Wheel is "no managers or privileged roles".
In practice, allowing a small number of privileged actions makes a few things much easier.
These actions are available to any admin in the workspace.

Expand Down
Loading