Skip to content

fix(skills): migrate /name and /ccwork off deprecated discord-bot CLI#559

Merged
bakeb7j0 merged 1 commit into
mainfrom
fix/558-discord-bot-cli-migration
Apr 29, 2026
Merged

fix(skills): migrate /name and /ccwork off deprecated discord-bot CLI#559
bakeb7j0 merged 1 commit into
mainfrom
fix/558-discord-bot-cli-migration

Conversation

@bakeb7j0
Copy link
Copy Markdown
Contributor

Summary

Migrates the three skill bodies that still invoked the deprecated discord-bot bash CLI (removed in commit b079782) to use the disc-server MCP. Triggered by a live /name failure: the discord-bot CLI routes through the scream-hole proxy without an /api/v10 prefix and returns HTTP 404, surfacing as a noisy onboarding error.

Changes

  • skills/name/SKILL.md — step 7 replaces discord-bot send "$ROLL_CALL" with mcp__disc-server__disc_send({channel_id: "roll-call", message: ...}). Drops the jq lookup against ~/.claude/discord.json since the MCP accepts channel names directly.
  • skills/ccwork/SKILL.md — Setup-Discord wizard:
    • discord-bot list-channelsmcp__disc-server__disc_list
    • discord-bot create-channelmcp__disc-server__disc_create_channel
    • discord-bot sendmcp__disc-server__disc_send
    • Behavioral change: the "Agent Comms" category-creation step is removed. The MCP's disc_create_channel schema ({guild_id, name, type}) doesn't accept a parent-category parameter, so auto-created channels land at the top level. Users can drag them into a category in Discord's UI for visual grouping.
    • Critical reviewer fix: the test-message step originally passed channel_id: "default" (a config role-key, not a Discord channel name — the actual default channel is typically named agent-ops). Replaced with a jq lookup against the just-written config to resolve the snowflake ID.
    • Stale "four roles" count corrected to "three" after the category-removal.
  • skills/ccwork/tours/orientation.md — drops ~/.local/bin/discord-bot from the installed-scripts ls and updates the narration to describe disc-server MCP instead of the removed CLI.
  • docs/ (6 files) — sweeps leftover CLI references surfaced by code review:
    • docs/discord-config.mdscream_hole_url description and "Used By" cell now reference disc-server MCP
    • docs/discord-watcher.md — instructions now call mcp__disc-server__disc_read / disc_send instead of CLI
    • docs/getting-started.md — drops discord-bot from the example --check output
    • docs/troubleshooting.md — section 6 now describes MCP auth errors
    • docs/concepts.md — Layer 2 narrative recasts the example scripts as vox/slackbot-send/file-opener and adds a paragraph on MCP servers, with a one-line historical reference to the discord-bot → disc-server migration as concrete grounding
    • docs/skill-reference.md — channel-name resolution citation updated

The token-file path ~/secrets/discord-bot-token is intentionally preserved verbatim everywhere — that names the bot's secret token file, not the deprecated CLI tool.

Linked Issues

Closes #558

Test Plan

  • ./scripts/ci/validate.sh → 122 passed, 0 failed (after each edit)
  • rg 'discord-bot[^-]' skills/ docs/ returns only the deliberate historical reference in concepts.md (zero CLI invocations)
  • rg 'discord-bot-token' skills/ docs/ confirms token-file references are preserved (5 hits, all the bot token file path)
  • trivy fs --scanners vuln --severity HIGH,CRITICAL . → 0 findings
  • Code review caught a Critical bug (channel_id: "default" would not resolve through Discord's name-lookup) and 2 Important issues (stale count + 6 leftover doc references); all fixed in this PR
  • Live verification post-merge: invoke /name in a fresh CC session, confirm roll-call check-in succeeds via the MCP path
  • Live verification post-merge: walk /ccwork setup discord against a test guild, confirm list/create/send all complete via the MCP

Notes

The Critical finding is worth calling out — the migration could've shipped a non-functional /ccwork setup discord if the reviewer hadn't caught the role-key-vs-channel-name confusion. The disc-server MCP resolves channel names against Discord's API; it doesn't read the user's ~/.claude/discord.json to dereference role keys. So channel_id: "default" is meaningless to the MCP — the role key has to be dereferenced before the MCP call.

The discord-bot bash CLI was removed in b079782 in favor of the
disc-server MCP, but three skill bodies still invoked it. Live
failure observed: /name's roll-call check-in routed through the
scream-hole proxy without an /api/v10 prefix and returned 404,
surfacing as a noisy onboarding error.

Migrates skill prose to mcp__disc-server__disc_send / disc_list /
disc_create_channel / disc_read, and sweeps six doc files for
leftover CLI references surfaced in code review. The token-file
path ~/secrets/discord-bot-token is intentionally preserved
everywhere — that path names the bot's secret token file, not
the deprecated CLI tool.

Behavioral changes:
- /ccwork setup discord drops the "Agent Comms" category-creation
  step (the MCP's disc_create_channel schema doesn't accept a
  parent-category parameter). Auto-created channels land at the
  top level; users can drag them into a category in Discord's UI.
- The /ccwork test-message step now resolves the default channel
  ID from the just-written config rather than passing the literal
  role key "default" as a channel name (the role key isn't a
  Discord channel name and wouldn't resolve).

Closes #558

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@bakeb7j0 bakeb7j0 added this pull request to the merge queue Apr 29, 2026
Merged via the queue into main with commit c51b0e3 Apr 29, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(skills): migrate /name and /ccwork off deprecated discord-bot CLI to disc-server MCP

1 participant