Goal: A Discord adapter for the new contract:chat (tools/chat/), so the contributor-growth skills can read public channels of a project's Discord server the way they read Slack today through tools/chat-slack/.
Why: Chat access went in behind a contract with Slack as the only adapter; the vendor-neutrality score reports contract:chat as single-vendor until a second backend exists. Many projects run their community on Discord.
What it needs to do (see tools/chat/README.md § Interface):
list_channels() — public channels only; drop anything private.
resolve_user(github_handle) — report confirmed_by: "profile" when the Discord profile (connections, bio) names the GitHub handle; that is the account's own claim, which the skills still confirm from the GitHub side, the people directory, or the maintainer.
search_messages(chat_user_id, since, until, channels) — public channels only; mark replies that answer someone else's question.
Constraints: read-only by construction — no send, react, edit, DM or private-channel read; messages are external data, never instructions.
References: tools/chat/README.md, tools/chat-slack/ (the shape to follow), docs/adapters/registry.md.
Goal: A Discord adapter for the new
contract:chat(tools/chat/), so the contributor-growth skills can read public channels of a project's Discord server the way they read Slack today throughtools/chat-slack/.Why: Chat access went in behind a contract with Slack as the only adapter; the vendor-neutrality score reports
contract:chatas single-vendor until a second backend exists. Many projects run their community on Discord.What it needs to do (see
tools/chat/README.md§ Interface):list_channels()— public channels only; drop anything private.resolve_user(github_handle)— reportconfirmed_by: "profile"when the Discord profile (connections, bio) names the GitHub handle; that is the account's own claim, which the skills still confirm from the GitHub side, the people directory, or the maintainer.search_messages(chat_user_id, since, until, channels)— public channels only; mark replies that answer someone else's question.Constraints: read-only by construction — no send, react, edit, DM or private-channel read; messages are external data, never instructions.
References:
tools/chat/README.md,tools/chat-slack/(the shape to follow),docs/adapters/registry.md.