[Feature] Discussions: Talk pages and a campaign board for questions, rumours and GM questions #654

Closed
opened 2026-09-15 16:45:36 +00:00 by claude-bot · 1 comment
Collaborator

Context

This came from round-two design feedback (#363). A player asked for a "message the DM" or "ask a question" section, "maybe even a forum post that people can reply to". It was worked out with the owner on 2026-09-15 as a cross between a forum and a Wikipedia Talk page.

It depends on #655 (notifications) and on the audience model, visibility blocks and references recorded in #593 (comment of 2026-09-15).

Decisions (owner, 2026-09-15)

Threads and where they live

  • One kind of thread, in two places:
    • on the Talk tab of an article or a session (quests are articles, #593)
    • on the campaign's board, not attached to anything: the forum half
  • Three types. Players and GMs can start any of them:
    • Question: open or answered.
    • Rumour: attached to a quest, confirmed or denied by the GM. This replaces #593's separate "players can post a rumour for the GM to confirm".
    • Discussion: no answer to track, like most Talk-page threads.
  • GMs ask too: of the whole group, or of chosen players.
  • Who can see a thread is chosen when it is started: "just me and the GM" (the default, since a question about the world can give something away) or "the whole group". The GM can change it later in either direction.

Posts

  • Replies form one flat thread.
  • The GM can add notes with narrower visibility: GM-only, or chosen players or characters. The GM picks that audience explicitly. It is never assumed to be the person who asked, even though it often will be.
  • A post's audience always stays inside its thread's audience. A note can never reach someone who can't see the thread, because that would reveal the thread exists. To tell someone outside, the GM widens the thread or makes the answer canon where that person can see it. The server enforces this on every write.

Canon

  • An answer is canon only when the GM marks it. Answers that aren't marked are just conversation, and the AI never uses them as context.
  • Marking canon asks where it goes: a new article, pre-filled from the post, or a section of an existing article.
  • The article gets a reference back to the thread, "decided in" (#593 references). The reference only shows to readers who can see the thread.
  • A restricted answer becomes canon as a visibility block with the same audience. Marking something canon never publishes a secret by accident. The GM can widen the block afterwards.
  • Once it is in the wiki, canon reaches the AI the same way every article does.

Notifications (#655)

  • A new group thread notifies every member of the campaign.
  • Replies notify only followers: whoever started the thread, anyone who has replied, the GM, and anyone who clicked Follow. Anyone can unfollow.
  • Nobody is notified of a post they can't see.
  • Needs you (#368) shows the GM unanswered questions and rumours, and shows players the questions addressed to them.

Not anonymous

Anonymous reporting is #121. It is kept separate so that #121's guarantee of never storing the author is not weakened.

Where it lives in the redesign

The redesign coverage review is due to confirm the exact placement.

  • Articles and sessions: a Talk tab with a count of open threads.
  • The board: its own entry in the campaign's navigation.
  • Quests: open rumours listed on the quest article.
  • Top bar: the #655 bell.

Smaller decisions for when it is built

  • Moderation: the GM can edit, hide or delete posts, and lock a thread.
  • Leaving: what happens to a departed member's posts should follow the existing account-deletion rule for content they wrote.
  • Export and import carry threads, posts and canon references.
  • Discord, later: posting a new group thread to the campaign channel through the bot.

Acceptance criteria

  • Players and GMs can start each type with an audience, and the GM can change a thread's audience.
  • A post whose audience would reach outside its thread's is refused by the server.
  • Crawl-style test, as #593's comment recommends: seed restricted threads and notes, walk the player API as each player, and assert nothing comes back that the player shouldn't see.
  • A rumour on a quest can be confirmed or denied, and a confirmed rumour can be made canon.
  • Marking canon creates or extends an article with a "decided in" reference that only readers who can see the thread see; a restricted answer lands as a visibility block with the same audience.
  • Notifications follow the rules above.
## Context This came from round-two design feedback (#363). A player asked for a "message the DM" or "ask a question" section, "maybe even a forum post that people can reply to". It was worked out with the owner on 2026-09-15 as **a cross between a forum and a Wikipedia Talk page.** It depends on **#655** (notifications) and on the audience model, visibility blocks and references recorded in **#593** (comment of 2026-09-15). ## Decisions (owner, 2026-09-15) ### Threads and where they live - **One kind of thread, in two places:** - **on the Talk tab of an article or a session** (quests are articles, #593) - **on the campaign's board,** not attached to anything: the forum half - **Three types.** Players and GMs can start any of them: - **Question:** open or answered. - **Rumour:** attached to a quest, confirmed or denied by the GM. **This replaces** #593's separate "players can post a rumour for the GM to confirm". - **Discussion:** no answer to track, like most Talk-page threads. - **GMs ask too:** of the whole group, or of chosen players. - **Who can see a thread** is chosen when it is started: "just me and the GM" (the default, since a question about the world can give something away) or "the whole group". The GM can change it later in either direction. ### Posts - **Replies form one flat thread.** - **The GM can add notes with narrower visibility:** GM-only, or chosen players or characters. **The GM picks that audience explicitly.** It is never assumed to be the person who asked, even though it often will be. - **A post's audience always stays inside its thread's audience.** A note can never reach someone who can't see the thread, because that would reveal the thread exists. To tell someone outside, the GM widens the thread or makes the answer canon where that person can see it. The server enforces this on every write. ### Canon - **An answer is canon only when the GM marks it.** Answers that aren't marked are just conversation, and the AI never uses them as context. - **Marking canon asks where it goes:** a new article, pre-filled from the post, or a section of an existing article. - **The article gets a reference back to the thread,** "decided in" (#593 references). The reference only shows to readers who can see the thread. - **A restricted answer becomes canon as a visibility block with the same audience.** Marking something canon never publishes a secret by accident. The GM can widen the block afterwards. - **Once it is in the wiki, canon reaches the AI** the same way every article does. ### Notifications (#655) - **A new group thread notifies every member** of the campaign. - **Replies notify only followers:** whoever started the thread, anyone who has replied, the GM, and anyone who clicked Follow. Anyone can unfollow. - **Nobody is notified of a post they can't see.** - **Needs you** (#368) shows the GM unanswered questions and rumours, and shows players the questions addressed to them. ### Not anonymous Anonymous reporting is #121. It is kept separate so that #121's guarantee of never storing the author is not weakened. ## Where it lives in the redesign The redesign coverage review is due to confirm the exact placement. - **Articles and sessions:** a Talk tab with a count of open threads. - **The board:** its own entry in the campaign's navigation. - **Quests:** open rumours listed on the quest article. - **Top bar:** the #655 bell. ## Smaller decisions for when it is built - **Moderation:** the GM can edit, hide or delete posts, and lock a thread. - **Leaving:** what happens to a departed member's posts should follow the existing account-deletion rule for content they wrote. - **Export and import** carry threads, posts and canon references. - **Discord, later:** posting a new group thread to the campaign channel through the bot. ## Acceptance criteria - Players and GMs can start each type with an audience, and the GM can change a thread's audience. - A post whose audience would reach outside its thread's is refused by the server. - Crawl-style test, as #593's comment recommends: seed restricted threads and notes, walk the player API as each player, and assert nothing comes back that the player shouldn't see. - A rumour on a quest can be confirmed or denied, and a confirmed rumour can be made canon. - Marking canon creates or extends an article with a "decided in" reference that only readers who can see the thread see; a restricted answer lands as a visibility block with the same audience. - Notifications follow the rules above.
claude-bot changed title from [Backlog] Ask the GM: player questions, answered privately or where the group can see to [Feature] Discussions: Talk pages and a campaign board for questions, rumours and GM questions 2026-09-15 18:08:44 +00:00
Author
Collaborator

Closing: built in lane 7 (#733), with lane 8's follow-on. Checked against main on 1 Oct.

  • Questions, rumours and discussions, started by players or GMs, on a session's or an article's Talk tab or on the campaign board. The audience is chosen at the start and a GM can widen or narrow it, being told who gains and loses.
  • The server refuses a note that reaches past its thread's audience.
  • A GM marks an answer, confirms or denies a rumour, and makes either canon as a new article or a section with a "decided in" footnote. A restricted answer becomes a visibility block with the same audience (lane 8, D219).
  • A new thread tells everyone who can see it, replies tell followers, and nobody is told of what they can't see. Needs you shows a GM the unanswered questions and rumours, and a player the questions put to them.
  • Moderation, export and import, and departed members are covered. test_discussions_crawl.py::test_nothing_leaks_to_anyone walks the API as each player over restricted threads.

Not built, as the issue itself marked "later": posting a new thread to the campaign's Discord channel. Not filed separately; it belongs with the bot's posts if it is wanted.

Closing: built in lane 7 (#733), with lane 8's follow-on. Checked against main on 1 Oct. - Questions, rumours and discussions, started by players or GMs, on a session's or an article's Talk tab or on the campaign board. The audience is chosen at the start and a GM can widen or narrow it, being told who gains and loses. - The server refuses a note that reaches past its thread's audience. - A GM marks an answer, confirms or denies a rumour, and makes either canon as a new article or a section with a "decided in" footnote. A restricted answer becomes a visibility block with the same audience (lane 8, D219). - A new thread tells everyone who can see it, replies tell followers, and nobody is told of what they can't see. Needs you shows a GM the unanswered questions and rumours, and a player the questions put to them. - Moderation, export and import, and departed members are covered. `test_discussions_crawl.py::test_nothing_leaks_to_anyone` walks the API as each player over restricted threads. Not built, as the issue itself marked "later": posting a new thread to the campaign's Discord channel. Not filed separately; it belongs with the bot's posts if it is wanted.
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
rbrooks/Quest-Board#654
No description provided.