- Merge duplicate DM memories into canonical feedback_dm_wrapping_commands_to_mike (points at the productized discord-dm skill; keeps UA/Cloudflare-1010 + 50109 gotchas); git rm the session-created feedback_dm_wrapped_command_lines duplicate. - feedback_365_remediation_tool: record that Exchange Operator HAS Graph Mail.Send/ Mail.ReadWrite (corrects an earlier "suite has no Mail.Send") + the EXO-vs-Graph token-audience gotcha + Get-MessageTraceV2 + fresh-onboard EXO 401 propagation. - Remove a duplicate MEMORY.md index line --apply-safe added from a false-orphan. - Log the memory-dream false-orphan/dup-index defect to errorlog for skill linting. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2.0 KiB
name, description, metadata
| name | description | metadata | ||
|---|---|---|---|---|
| feedback_dm_wrapping_commands_to_mike | DM long/wrapping output (commands, consent links, URLs) to Mike in Discord via the discord-dm skill so it copies cleanly — terminal wrapping mangles long single lines on paste. |
|
Mike (2026-06-13): "For any command that wraps (like this one) DM me in discord, the line breaks suck." Reaffirmed 2026-06-15: any wrapped/long single-line output meant for him to copy — long one-liners, M365 admin-consent links, URLs with query strings, installer/ enrollment URLs — goes to Mike as a Discord DM, not left only in the terminal. Terminal wrapping inserts breaks/spaces that corrupt the line on paste.
How to apply: Use the discord-dm skill (the productized mechanism — supersedes the
old ad-hoc .claude/tmp/discord-dm.py): bash .claude/scripts/discord-dm.sh mike "<link-or-command>"
(or echo "$X" | bash .claude/scripts/discord-dm.sh mike). It's prepopulated with org user
IDs (mike/howard/rob/winter) + channel IDs (#bot-alerts/#dev-alerts). Still show the item
inline too, but the DM is the canonical copy-paste source. Short non-wrapping commands stay inline.
Mechanics / gotchas (the skill handles these, but know them):
- Bot token: vault
projects/discord-bot/bot-token.sops.yamlfieldcredentials.bot_token. - Mike's Discord uid
264814939619721216(Howard624667664501178379). - MUST set a
User-Agentheader (e.g.ClaudeToolsBot (claudetools, 1.0)) — Discord's API is behind Cloudflare, which 403s (errcode 1010) the default urllib/curl UA. - DM flow:
POST /users/@me/channels {"recipient_id":<uid>}→ channel id, thenPOST /channels/<id>/messages. - Build JSON with
jq -nc --argand feed curl viaprintf | --data-binary @-; a direct-d "$(...)"mangles multiline content → Discord50109 invalid JSON body.
Related: feedback_ascii_only_api_payloads (ASCII-only in Discord/coord payload text),
reference_resource_map (Discord bot), the discord-bot project.