Governance
The architect proposes. The human approves. The gated arm applies. The service never provisions on its own.
Approving in the queue is applying — there is no second step. Destructive actions require scope in telemetry (require_scope), not a hidden button.
SOCIETY_GOVERNANCE_ENFORCE is OFF by default. Turning it on is an environment decision. The Console toggle in Dev is in-memory: it does not survive a container restart.
Kill-switches (default off): SOCIETY_SPAWN_ENABLED, SOCIETY_RAG_WRITE_ENABLED, SOCIETY_SKILL_PUBLISH_ENABLED, SOCIETY_EVALUATOR_AUTO_APPROVALS_ENABLED.
Roles (claim roles from the OIDC ID token → scopes):
| Role | Can, in short |
|---|---|
admin | Operate the society, SOUL/prompts, users; not dev:write |
operator | Approve, deploy, governance; no delete or prompt reconfig |
member | Conversation UI; :own reads |
viewer | Society read, no approval queue |
service | M2M (gated arm, graph emitters) |
dev:write and * are superadmin-only: no matrix role grants them.