Add Slack platform adapter and comprehensive platform skills system
Major Features: - Implemented full Slack channel-bot adapter with Socket Mode - Added 35+ Mastodon platform skills across 7 categories - Created constitution publishing system for Mastodon Slack Adapter (NEW): - Full PlatformAdapter implementation (1071 lines) - Socket Mode for real-time events - 16 channel-scoped governance skills - User group management as channel "roles" - Channel access control and management - Message pinning and moderation - Platform limitations documentation - Comprehensive setup guide (SLACK_SETUP.md) Mastodon Platform Skills (ENHANCED): - Account Moderation (9 skills): suspend, silence, disable, mark sensitive, delete status - Account Management (4 skills): approve, reject, delete data, create account - Report Management (4 skills): assign, unassign, resolve, reopen - Federation Management (4 skills): block/unblock domains, allow/disallow federation - Security Management (4 skills): block IP/email domains - Constitution Management (2 skills): publish constitution, update profile - Documented web-only limitations (role management requires tootctl) Constitution Publishing: - Publish constitution as pinned Mastodon thread - Automatic deprecation of previous versions - Version control with change summaries - Thread splitting for long documents - CLI tool: scripts/publish_constitution.py - Documentation: CONSTITUTION_PUBLISHING.md Configuration & Integration: - Added SlackConfig model with bot_token, app_token, channel_id - Updated PlatformConfig to support type: slack - Added slack-sdk>=3.33.0 dependency - Bot.py now routes to Slack adapter - Updated example config with Slack section Documentation: - SLACK_SETUP.md: Complete Slack setup guide - PLATFORM_SKILLS.md: All 35+ Mastodon skills documented - CONSTITUTION_PUBLISHING.md: Constitution publishing guide - Updated README.md: Merged QUICKSTART, added Slack to supported platforms - Updated PLATFORMS.md: Slack marked as implemented with examples - Updated .gitignore: Added instance-specific state files Security: - All sensitive files properly gitignored - Instance-specific state (.constitution_post_id) excluded - Credentials properly handled in config Breaking Changes: None Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
17
PLATFORMS.md
17
PLATFORMS.md
@@ -4,7 +4,16 @@ This guide explains how to implement Govbot adapters for new social/communicatio
|
||||
|
||||
## Overview
|
||||
|
||||
Govbot uses a **platform-agnostic architecture** that separates governance logic from platform-specific code. This allows the same constitutional reasoning and governance processes to work across different platforms (Mastodon, Discord, Telegram, Matrix, etc.).
|
||||
Govbot uses a **platform-agnostic architecture** that separates governance logic from platform-specific code. This allows the same constitutional reasoning and governance processes to work across different platforms.
|
||||
|
||||
**Currently Implemented**:
|
||||
- ✅ **Mastodon** - Instance-wide governance with full admin/moderation API
|
||||
- ✅ **Slack** - Channel-scoped governance with Socket Mode
|
||||
|
||||
**Planned**:
|
||||
- 🚧 **Discord** - Server-wide governance (see example skeleton below)
|
||||
- 🚧 **Telegram** - Group governance
|
||||
- 🚧 **Matrix** - Room governance
|
||||
|
||||
The key abstraction is the **PlatformAdapter** interface, which defines how Govbot interacts with any platform.
|
||||
|
||||
@@ -841,8 +850,10 @@ class DiscordAdapter(PlatformAdapter):
|
||||
|
||||
## Getting Help
|
||||
|
||||
- Review the Mastodon adapter for a complete example
|
||||
- Check the base PlatformAdapter for interface documentation
|
||||
- Review the **Mastodon adapter** (`src/govbot/platforms/mastodon.py`) for an instance-wide governance example
|
||||
- Review the **Slack adapter** (`src/govbot/platforms/slack.py`) for a channel-scoped governance example
|
||||
- Check the base PlatformAdapter (`src/govbot/platforms/base.py`) for interface documentation
|
||||
- See setup guides: [MASTODON_SETUP.md](MASTODON_SETUP.md), [SLACK_SETUP.md](SLACK_SETUP.md)
|
||||
- Look at test files for testing patterns
|
||||
- Ask questions in project discussions
|
||||
|
||||
|
||||
Reference in New Issue
Block a user