Simpler approach
Permissions
A site or document has the following permissions:
Comment - A person can add comments to the community
Write - A person can add or edit community knowledge (documents)
Administrate - Moderation, and setting access permissions
Contact
A contact is from one account to another. It may specify an edge name.
It must specify a Contact mode:
Following - Showing public interest to another account/site
Welcoming - Allowed as a member in this site
Blocking - Stops content from this account
Contact Roles
Describe relationship between two accounts
Follower - One-way "Following" contact
Member - One-way "Following" contact, with a reciprocal "welcoming" or "following" contact.
Blocked - Either party has a "blocking" contact
Capability Roles
Describes relationship between an account and a document
Writer - Grants Write+Comment Permission
Agent - Grants Everything
Capabilities
Explicit granting of Roles to recipient account
Invites
Asking to become a follower
Private Actions
In addition, a person might take some private actions with regard to a site
Subscribe / Sync & Store /Archive - continuously download content from this site, and save it on your computer or server
Get Notified - get emails or sounds when something happens in this site
Favorite - create a shortcut/bookmark to have easy access to the site
When a person "joins" a community, they are generally trying to become a member and raise their level of abilities.
All roles effectively require two-way consent. Nobody can force you to read or join with a site. And site administrators have the ability to close off abilities to unknown people.
Examples
A community of Java programmers allows anybody to read, associate, and comment. The list of associates is public. Alice can "join" to become publicly associated, and she has the ability to comment. But she cannot write until a site admin gives her a write capability.
Open Reading, Open Members, Open Comments, Closed Writing
Anybody is allowed to read, join as a member, and comment. Only specific people are allowed to edit the documents.
A community of amateur rocket builders.
Open Reading, Closed Membership, Member Comments and Writing
Everyone can read the content and list of members. You must ask to join as a member. Once you are a member, you can comment and write.
A community of YIMBY housing advocates
Open Reading, Open Membership, Member-only Comments and Writing
You must join as a member before you are allowed to comment and write documents.
Flowchart
Protocol Extensions
Site/Document Attributes
Reading: Open/Closed/Members/Followers
Commenting: Open/Closed/Members/Followers
Writing: : Open/Closed/Members/Followers