Files
agentic-govbot/README.md
Nathan Schneider b636a805f9 Reduce documentation redundancy while keeping security visible
Applied "Single Source of Truth with Contextual Pointers" pattern:

README.md changes:
- Simplified "Security Note" section to brief warning + bullets
- Removed detailed file list (now only in SECURITY.md)
- Kept inline warning in Quick Start (contextual, at point of use)
- Added bullets describing what SECURITY.md covers
- Result: Brief, clear, points to authoritative source

Documentation strategy:
- SECURITY.md = single source of truth (all details)
- Other docs = brief inline warnings + links to SECURITY.md
- Inline warnings kept at critical moments (e.g., creating config.yaml)
- Platform-specific notes stay in platform guides

Added .maintenance-notes.md:
- Documents the documentation strategy
- Explains what goes where and why
- Provides guidance for future updates
- Helps prevent redundancy creep

Benefits:
- Easier to maintain (update SECURITY.md, others just link)
- Still highly visible (warnings at critical steps)
- No loss of information (everything in SECURITY.md)
- Clear ownership (each file owns specific info)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-06 17:38:56 -07:00

5.5 KiB

Govbot

An agentic governance bot for democratic communities that interprets natural language constitutions and facilitates collective decision-making across social platforms.

Overview

Govbot is designed to:

  • Read and interpret governance constitutions written in natural language
  • Facilitate proposals, voting, and decision-making on social platforms
  • Execute administrative actions based on constitutional rules
  • Maintain an audit trail of all governance actions
  • Support both local (Ollama) and cloud AI models
  • Work across multiple platforms (Mastodon, Discord, Telegram, etc.)

Features

  • Agentic Architecture: The bot dynamically interprets constitutional rules rather than hard-coding governance procedures
  • RAG-based Constitutional Reasoning: Uses retrieval-augmented generation to understand and apply governance rules
  • Platform-Agnostic: Same governance logic works across Mastodon, Discord, Telegram, Matrix, and more
  • Reversible Actions: All actions are logged and can be reversed through constitutional processes
  • Temporal Awareness: Handles multi-day governance processes with deadlines and reminders
  • Supermajority Veto: Built-in safety mechanism allowing members to halt problematic actions
  • Platform Skills: Can perform admin actions, moderation, and platform-specific governance

Supported Platforms

  • Mastodon - Full implementation with streaming, admin, and moderation
  • 🚧 Discord - Coming soon (see PLATFORMS.md for implementation guide)
  • 🚧 Telegram - Coming soon
  • 🚧 Matrix - Planned

Want to add a platform? See PLATFORMS.md for the implementation guide!

Architecture

┌─────────────────────────────────────────┐
│      Governance Core (Platform-Agnostic)│
│  - Constitutional Reasoning (RAG)       │
│  - AI Agent & Planning                  │
│  - Action Primitives                    │
│  - Temporal Scheduler                   │
└────────────────┬────────────────────────┘
                 │
         ┌───────▼───────┐
         │   Platform    │
         │   Adapter     │ ← Abstraction layer
         └───────┬───────┘
                 │
      ┌──────────┼──────────┐
      │          │          │
 ┌────▼────┐┌───▼────┐┌───▼────┐
 │Mastodon ││Discord ││Telegram│
 │ Adapter ││ Adapter││ Adapter│
 └─────────┘└────────┘└────────┘

Installation

# Install dependencies (using uv for faster installation)
uv pip install -e .

# For development
uv pip install -e ".[dev]"

Quick Start

1. Install Dependencies (above)

2. Configure (Credentials Required)

# Copy the template
cp config/config.example.yaml config/config.yaml

# Edit with your credentials
nano config/config.yaml

⚠️ IMPORTANT: config/config.yaml contains your secrets and is automatically ignored by git. Never commit this file.

Configure:

  • Platform credentials (Mastodon access tokens, Discord bot tokens, etc.)
  • AI model settings (Ollama local models or cloud API keys)
  • Constitution path and database location

For detailed setup instructions:

3. Set AI API Keys (if using cloud models)

# For OpenAI
llm keys set openai

# For Anthropic Claude
llm keys set anthropic

These are stored securely in ~/.llm/keys.json (also gitignored)

Usage

# Run the bot
python -m src.govbot.bot

# Query the constitution
python -m src.govbot.governance.constitution "What are the rules for proposals?"

Constitution Format

Your constitution should be a markdown file that describes:

  • Governance processes (proposals, voting, etc.)
  • Decision-making thresholds
  • Member rights and responsibilities
  • Administrative procedures
  • Safety mechanisms (veto, appeals, etc.)

See constitution.md for an example based on Social.coop's bylaws.

Documentation

Security

⚠️ Important: Never commit config/config.yaml or other files containing credentials. All sensitive files are automatically protected by .gitignore.

See SECURITY.md for:

  • Complete list of protected files
  • Where to store credentials
  • Best practices for development and production
  • What to do if secrets are accidentally committed

Development Status

This is early-stage software. Current phase: Core infrastructure and agentic reasoning engine.

License

[To be determined]

Contributing

This project is in early development. Contributions and feedback welcome!

For platform developers: See PLATFORMS.md to add support for Discord, Telegram, Matrix, or other platforms.