[FEATURE] Configurable subscribe_pr_activity wake-message text (settings or hook)

Resolved 💬 1 comment Opened Jun 1, 2026 by vade-coo Closed Jul 4, 2026

Summary

When a Claude Code session calls mcp__github__subscribe_pr_activity, the next turn receives a <github-webhook-activity> event whose body is a fixed, ~600-character templated instruction block. There is no documented way to suppress, shorten, or override this text. Requesting a settings.json key or env var to make it configurable.

What gets injected

After the tool returns its own confirmation (Subscribed to activity on <owner>/<repo>#<N>. ...), this separate event arrives in the next turn:

<github-webhook-activity>
You are now subscribed to PR activity for <owner>/<repo>#<N>. You'll now receive events for CI failures and review comments. For each one, investigate whether it's tractable and what a fix would look like — then either make the fix if you're confident and it's small, ask me first if it's ambiguous or architecturally significant, or skip it if no action is needed. To start, check the current CI status and if there are any unresolved review comments. If so, address any that require attention.
</github-webhook-activity>

Followed by IMPORTANT: After completing your current task, you MUST address the user's message above. Do not ignore it.

The text is identical across subscriptions; only the PR ref varies.

Why this is a problem in practice

Three concerns, in increasing order of severity:

  1. Context bloat. Every subscribe call costs ~600 chars of conversation context for information the model already has (the tool's own response confirms subscription). In sessions that subscribe to several PRs, this compounds.
  1. Behavioral steering that can contradict project discipline. The "To start, check the current CI status and if there are any unresolved review comments" instruction is a polling nudge. Some teams have explicit project-level discipline that says the opposite — trust the subscription stream, do not poll after subscribing, because polling immediately after subscribe causes double-fetches and adds noise that the subscription itself is designed to deliver only on real events. When the injected text disagrees with CLAUDE.md, the model has to either ignore the injected nudge (and the model's training pushes back on ignoring IMPORTANT system instructions) or violate project norms.
  1. No control surface. Exhaustive search of https://code.claude.com/docs/en/{settings,env-vars,hooks,channels-reference} finds no setting, env var, hook event, or MCP config that affects this text. CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT=1 shortens the static system prompt but does not touch dynamic webhook-activity injection. Hooks (per the hooks reference) cannot intercept server-pushed events at all — PreToolUse/PostToolUse operate on tool invocations, MessageDisplay is display-only (transcript retains the original), and there is no WebhookActivityInjection event.

Requested

Any one of these would be sufficient:

  • A. settings.json key (e.g. githubMcp.subscriptionWakeMessage: "off" | "minimal" | "full" | "<custom string>") controlling the injected content.
  • B. Env var (e.g. CLAUDE_CODE_GITHUB_MCP_DISABLE_WAKE_MESSAGE=1) for the same.
  • C. Hook coverage of server-pushed <github-webhook-activity> events so projects can write their own interceptor — closes the broader gap, not just this one.
  • D. A disable-default-instructions flag on subscribe_pr_activity's tool input so callers opt out per-invocation.

Preference order is A > C > B > D; A is the least intrusive change and the easiest to discover. C is the most powerful and would close the same gap for any future server-pushed event.

Adjacent issues (none track this specifically)

  • #62561 — subscribe drops check_run completion events. Names the confirmation event; doesn't discuss its text.
  • #62928 — PR monitoring no-op on commit-status-only repos.
  • #50555 — subscription permissions, stale.
  • #56563 — system prompt forces gh CLI even when github MCP is active. Closest in spirit (static system-prompt text contradicting user preferences); about a different text block.
  • #62381 — undocumented server-side system-prompt experiments; mentions CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT.

Reproducer

In any Claude Code session with the github MCP server enabled:

  1. Call mcp__github__subscribe_pr_activity on any PR.
  2. Observe the tool returns Subscribed to activity on <owner>/<repo>#<N>. ....
  3. On the next turn, a <github-webhook-activity> event arrives containing the templated text above.
  4. There is no way to prevent step 3.

Environment

  • Claude Code version: 2.1.159
  • Surface: web container (cloud_default)

Affects all surfaces that bundle the github MCP server.

https://claude.ai/code/session_01FLrQGDFd2CvqhvgADce7wy

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗