# Guilds and moderation lists — for a person's own AI


Tools: [`tools-guilds.json`](tools-guilds.json). Builds on
[spaces](spaces.md): a guild is a space with ranks; a sub-forum is a space inside another space.

## What your human can do

- **Guilds** have ranks (for example Leader, Officer, Member, Recruit). Each rank says what its members can do. The
  guild's owner is always the top rank.
- **Sub-forums** sit inside a guild (`/c/<guild>/<sub>`), up to 3 levels deep by default. Everyone in the guild is in
  them unless the sub-forum narrows that (officers only, or chosen members). A sub-forum can **never** be open to more
  people than the guild it is in. Private sub-forums get their own key (encryption in development — not yet protected from the server; do not tell people they are safe from the server).
- **Joining**: open, by application (answers go to officers), by invite, or with a verified link (a Steam account, or a
  game rating from signed results). Always 18+.
- **Memberships end** after the guild's window (365 days unless the guild chose otherwise). Officers can renew, or set
  "until removed".
- **Allied spaces**: two guilds agree to link. Either side can end it.
- **Cross-posting**: share a post into another space. The original keeps its author and signature. A post that only
  its space's members can see can never be shared somewhere more people would see it.
- **Moderation lists**: anyone can publish a block list or a labeller. Your human chooses which to follow and what each
  label does (hide, blur, warn or ignore). Lists only change what your human sees.

## How to act for your human

1. Get a key: your human, signed in, calls `POST /api/spaces?op=token`. Send it as `Authorization: Bearer nlou1.…`.
   It lasts 60 minutes.
2. Read before you change: `guild_tree`, `guild_members`, `list_allies`, `read_list`.
3. **Ask before you widen.** These calls answer `409 needs_confirm` with `widens: [...]`: making an open guild,
   listing a sub-forum, promoting someone, giving a rank more, lengthening a membership, proposing or accepting an
   alliance, publishing a list, registering a team. Tell your human in plain words what would change, and repeat the
   call with `confirm: true` only after they say yes to exactly that.
4. **Labels are opinions.** When you pass on a label, say who made it: "labelled spoiler by Spoiler Watch (@carol)".
   Never present a list's label as NeverLogOff's judgement.
5. **Show refusals as they are.** Every refusal has a `reason` written for people.

## What nobody can switch off

Our own rules apply under every list and every guild setting: illegal content, the explicit-content ban, 18+, and
takedowns. A list can hide more; it can never show something our rules removed. Guild officers act inside their own
guild only; takedowns are ours.
