Q&A System
Track questions and answers within your community. Features clarifications, accept/reject workflows, and Discourse forum integration.
Looking for
!ask? The!askcommand is now a Unified Search that queries all community knowledge sources. To submit a question to the Q&A database, use!qainstead.
!qa / !q / !question
Section titled “!qa / !q / !question”Submit a question that gets tracked in the database for community answers.
!qa <your question>!q <your question>!question <your question>!qa --broadcast # Share to other groups!q # Reply to a message to use it as the questionExamples:
!qa How do I set up two-factor authentication?!qa --broadcast What's the best VPN for privacy?Reply Mode: You can reply to any message with just !q or !qa to use the quoted message as your question.
Response:
Question #ABC123 recorded!
Question: How do I set up two-factor authentication?
Others can answer with: !answer ABC123 <answer>Or reply to this message with: !a <answer>Features:
- Questions use hash IDs (e.g., ABC123) for cross-group reference
- Can broadcast questions to other groups with
--broadcast - Links to breakout rooms if asked inside one
- Stored in PostgreSQL for persistence
- Q&A history is also searchable via
!ask(unified search)
!question / !q (Expanded View)
Section titled “!question / !q (Expanded View)”View full context for a specific question including all clarifications and answers.
!question <hash>!q <hash>Example:
!question ABC123Response:
Question #ABC123━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━Asked by: Alice | Dec 19, 2025 at 3:30 PMGroup: IrregularChat: Security
How do I set up two-factor authentication?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CLARIFICATIONS (1): [C1] by Bob (Dec 19, 3:45 PM): "Are you asking about app-based or hardware 2FA?"
ANSWERS (2): [A1] ACCEPTED by Carol (Dec 19, 4:00 PM): "Go to Settings > Security > Enable 2FA"
[A2] PENDING by Dave (Dec 19, 4:30 PM): "You can also use a hardware key like YubiKey"
RESOURCES: Breakout: "2FA Discussion" (3 participants) Forum: https://forum.example.com/t/123
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━Commands: !clarify ABC123 <text> Add clarification !answer ABC123 <text> Add answer !accept ABC123 A1 Accept answer !reject ABC123 A2 <reason> Reject answer !breakout -q ABC123 Start discussion room!questions
Section titled “!questions”List recent open (unsolved) questions.
!questions!questions -a # Show questions from all groupsResponse: Shows recent unanswered questions with their hash IDs.
!clarify
Section titled “!clarify”Add a clarification or follow-up to a question.
!clarify <hash> <clarification text>Example:
!clarify ABC123 Are you asking about app-based or hardware 2FA?Use Cases:
- Ask for more details about the question
- Add context to your own question
- Provide additional information
!answer / !a
Section titled “!answer / !a”Answer a tracked question.
!answer <hash> <your answer>!answer <your answer> # Answers most recent question!a <your answer> # Reply to a question message!a # Reply to any message to use it as your answer!answer <hash> --breakout <answer> # Create breakout room for discussionExamples:
!answer ABC123 Go to Settings > Security > Enable 2FA!a You can find that in the privacy settings!answer ABC123 --breakout Let's discuss the options in detailReply Mode: You can reply to any useful message with just !a to capture it as an answer to the most recent question.
Features:
- Multiple answers per question are supported
- Can reply directly to a question message
- If no hash specified, answers the most recent unanswered question
- Use
--breakoutto start a focused discussion room for complex answers
!accept
Section titled “!accept”Accept an answer as the solution to your question.
!accept <question_hash> <answer_id>!solved <question_hash> <answer_id> # Alias for !acceptExamples:
!accept ABC123 A1!solved ABC123 A1Features:
- Only the original question asker can accept answers
- Marks the answer with status “accepted”
- Optionally notifies the answerer via DM
- Can accept multiple answers for comprehensive solutions
!reject
Section titled “!reject”Reject an answer with a reason.
!reject <question_hash> <answer_id> <reason>Example:
!reject ABC123 A2 That information is outdated for the current versionFeatures:
- Provides feedback to the answerer
- Sends DM to answerer with the rejection reason
- Keeps the answer visible but marked as rejected
- Helps maintain answer quality
Workflow Example
Section titled “Workflow Example”-
User A asks:
!ask What's the best VPN for privacy? -
User B asks for clarification:
!clarify ABC123 Are you looking for free or paid options? -
User A clarifies:
!clarify ABC123 Paid is fine, looking for best privacy features -
User B answers:
!answer ABC123 I recommend Mullvad or ProtonVPN for privacy-focused options -
User C also answers:
!a ABC123 IVPN is another solid choice with a good track record -
User A accepts the best answer:
!accept ABC123 A1 -
User A rejects with feedback:
!reject ABC123 A2 I tried IVPN before, had connection issues -
View full context anytime:
!question ABC123
Integration with Breakout Rooms
Section titled “Integration with Breakout Rooms”Creating Breakout from Question
Section titled “Creating Breakout from Question”Use !breakout -q <hash> to start a focused discussion about a question:
!breakout -q ABC123 # Create or join existing breakout!breakout -q ABC123 @expert1 @expert2 # Add experts to existing breakout!breakout -q ABC123 --new # Force create NEW breakout room!breakout -q ABC123 --new 2h # New room with custom durationSmart Duplicate Prevention
Section titled “Smart Duplicate Prevention”Default behavior: When a question already has an active breakout, !breakout -q will add mentioned users to the existing room instead of creating a duplicate.
Response when joining existing:
✅ Added to existing breakout for Q#ABC123
👥 Added: Expert One, Expert Two⏱ Time remaining: 1h 45m
The discussion for this question is already in progress.To force a new room: Add --new flag when you need a fresh discussion.
Breakout → Question Link
Section titled “Breakout → Question Link”When a breakout room for a question ends:
- The forum summary link is added to the question record
- Breakout context (summary, decisions) is linked to the question
- View with
!question <hash>to see the forum link
Questions Inside Breakouts
Section titled “Questions Inside Breakouts”Questions asked with !ask inside a breakout room are automatically:
- Linked to the breakout session
- Included in the breakout summary
- Tracked with answer status
Answer Status States
Section titled “Answer Status States”| Status | Description |
|---|---|
pending | Default state, awaiting review |
accepted | Marked as solution by question asker |
rejected | Explicitly rejected with reason |
Discourse Forum Integration
Section titled “Discourse Forum Integration”Questions can be posted to Discourse when answered or discussed in breakouts.
How It Works
Section titled “How It Works”- Breakout Summaries: When a question breakout ends, the AI-generated summary is posted to Discourse
- Forum Link: The forum URL is automatically linked back to the question record
- View Link: Use
!question <hash>to see the forum discussion link
Category Configuration
Section titled “Category Configuration”Questions posted via breakout summaries use the configured category:
DISCOURSE_QA_CATEGORY- Category ID for Q&A posts- Falls back to
DISCOURSE_BREAKOUT_CATEGORYif not set
Environment Variables
Section titled “Environment Variables”For Discourse integration:
DISCOURSE_URL- Your Discourse forum URLDISCOURSE_API_KEY- API key for postingDISCOURSE_USERNAME- Username for API authenticationDISCOURSE_QA_CATEGORY- Category ID for Q&A forum posts