Skip to content

Add gated entry flow for new group chat members #40

Description

@BreadrichEngels

Summary

Right now anyone who joins the group chat gets full access immediately. This adds a pending/gated state for new members so the bot can hold them back until they clear some kind of check.

Proposed behavior

  • When a new member joins, the bot puts them in a restricted state (can't post, or can only see a limited channel/thread) instead of granting full access right away.
  • The bot prompts them with a configurable challenge, starting with: answer a question correctly.
  • On a correct answer, the bot promotes them to full member status.
  • On a wrong answer, configurable behavior: retry, timeout, or kick.
  • If they don't respond within a set time window, configurable behavior: kick, mute, or ping a mod.

Extensibility (worth designing up front)

Frame this as a general "onboarding gate" system rather than a single question-check feature, so future checks can plug in without reworking the flow. Other checks that could live in the same system:

  • CAPTCHA-style button click ("I'm not a bot")
  • Agree to rules / code of conduct
  • Verify a wallet or signature (given the bot's name, a natural fit)
  • Manual mod approval
  • Invite-link-specific rules (different gate depending on which link was used to join)

Suggested implementation shape

  • A PendingMember state tracked per user per group.
  • A pluggable GateCheck interface so each check type (question, captcha, wallet verify, mod approval) is its own module.
  • Config per group for which check(s) are required and what happens on pass / fail / timeout.

Open questions

  • Should multiple checks be chainable (e.g. answer a question AND agree to rules)?
  • Should the question/challenge be configurable per group or hardcoded to start?

Feature request from Josh. Filed via Breadbrich Engels.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions