Technically...

Velvet: This one happens on IRC.
Max: Of course.

Max: Here's what we need:
Max: * Every user becomes "editor", that is, has a branch.
Max:   Each branch is a full copy of the entire repo.
Max:   Each user can choose how they merge their branch 
Max:   to the many other branches
Max:   of the other editors
Max:   of the world.
Velvet: * Everyone is expected to log in as "anon" 
Velvet:   whenever they post 
Velvet:   on anyone's branch
Velvet:   especially their own.
Max: * git records everyone's commits to all branches
Max:   as "anon".
Max:   (This is after authentication.)
Max: * Each branch editor can identify who can access
Max:   by IP.
Velvet: * IPs are forgotten regularly
Velvet:   like every 30 mins of inactivity
Velvet:   everywhere on the site.
Velvet:   (That's a trust thing.
Velvet:   Use [tor](http://torproject.org))
Max: I'm sure there's more.
Velvet: The whole UI!
Velvet: * Each visitor to a site 
Velvet:   sees the master branch by default.
Velvet: * There's a menu to choose
Velvet:   other versions of this file
Velvet:   from other branches.
Velvet: * These branches can be local or remote.
Velvet: * There are preferences to select defaults for a logged-in user
Velvet:   on how to order the alternate versions in the menu,
Velvet:   on which branch shows by default on your start page,
Velvet:   on colors to use inline to identify alternate versions
Velvet:   in specified branches.
Velvet: And the culture:
Velvet: * Some branches are anon-open.
Velvet:   This means anon can add to them directly.
Velvet:   The editor reverses any changes
Velvet:   they don't like.
Velvet: * Some anon-open branches are specifically for
Velvet:   incoming new entries.
Velvet: * Their editor works to, for example:
Velvet:   wash entries clean of spam
Velvet:   or get rid of silly ones
Velvet:   or select for underground politics.
Velvet: * But others go through. 
Velvet:   Until so much piles up
Velvet:   that it's useless, 
Velvet:   and the user resets to (pulls) someone else's branch
Velvet:   hopefully relevant.
Velvet:   Or rather,
Velvet:   closes changes to (archives) the old branch, and
Velvet:   creates a new anon-open user-branch.
Velvet: * When a user adds to their own branch
Velvet:   text first goes through some
Velvet:   (pref-selected)
Velvet:   anon-open branch
Velvet:   with a random time-delay
Velvet:   within (preffed) maximum.
Velvet:   Only after the delay is it picked up
Velvet:   and committed to their own branch.