Discord Thread Naming Backstop Workflow
/install discord-thread-naming-backstop-workflow
执行 Discord 线程命名兜底巡检与静默改名
这个技能帮助你在严格范围内为 Discord 新线程做命名兜底,避免误扫历史线程、误改旧标题,且在失败时有一致的告警与回补闭环。
When to use this skill
- 当你需要只检查某个父频道下“最近新建”的线程,并对漏掉 prehook 的异常标题做低扰动修正。
- 当用户强调“不要回扫历史”“只处理最近 20 分钟”“今天但明显是截断/JSON 污染的也可处理”时。
- 当你需要按固定命名模板
【类型】目标 - YYYYMMDD自动推断新名,并在失败时做重试、一致性校验、P2/RESOLVED 通知。 - 当任务要求成功时尽量静默,避免刷屏,只在最终失败或“先失败后成功”时发送通知。
Steps
-
锁定执行范围
- 只针对以下固定范围执行:
guildId="1478785964896817267"channelId="1478785965580357754"(🎛️丨dispatch)- 只处理线程,不改 parent channel。
- 为什么:这个任务的核心就是“兜底漏网的新线程”,范围一旦放宽,就会误改历史线程或错误频道。
- 只针对以下固定范围执行:
-
按指定接口读取线程列表
- 仅使用:
message(action="thread-list", guildId="1478785964896817267", channelId="1478785965580357754", includeArchived=false, limit=50) - 若第一次失败,立即重试 1 次;两次都失败才进入 P2 告警。
- 本次实际执行中,
thread-list成功读取,且后续复核时也再次成功。 - 为什么:用户明确限制了读取方式;先读列表再筛选,能保证行为可审计且可控。
- 仅使用:
-
用 Asia/Shanghai 时区判定候选线程
- 将当前时间视为
Asia/Shanghai,本次记录中的执行时点为:2026-03-14 10:352026-03-14 10:382026-03-14 10:402026-03-14 10:42
- 只保留满足任一条件的线程:
thread_metadata.create_timestamp在最近 20 分钟内;- 或者创建于今天,且名称明显属于“主消息截断 / 长标题 / JSON 污染”异常,例如:
- 长度
> 60 - 含
{}[]\" - 含代码块、URL、键值对痕迹
- 明显是口语长句截断,如“请你为我…/帮我…/当前…/那么…/另外关于…”
- 长度
- 必须跳过:
- 创建时间早于今天的历史线程;
- 今天但超过 20 分钟,且只是“普通旧标题但不规范”的线程。
- 为什么:这是防止兜底任务退化为历史清扫任务的关键边界。
- 将当前时间视为
-
先检查是否已经合规
- 用以下规则判断线程名是否已规范:
^【[^】]+】.+ - \d{8}$ - 已匹配规范的线程直接跳过,不做任何改动。
- 本次实际执行中,可见线程要么已合规,要么属于不应处理的历史线程。
- 为什么:兜底任务应只修复漏网异常,不应对已合规对象重复操作。
- 用以下规则判断线程名是否已规范:
-
限制处理数量
- 单次运行最多处理
3个线程。 - 为什么:即使有异常,也要控制改动规模,避免一次任务影响过大或在异常场景下放大错误。
- 单次运行最多处理
-
为每个待修正线程生成操作 ID
- 格式:
rename-\x3CthreadId>-\x3CYYYYMMDDHHmmss> - 为什么:后续重试、告警、回补都依赖这个 opId 做单次运行内去重与追踪。
- 格式:
-
推断新线程名
- 使用模板:
【{类型}】{目标} - {YYYYMMDD} - 约束:
- 时区:
Asia/Shanghai - 总长度:
\x3C= 100
- 时区:
- 类型只允许以下之一:
任务 / 分析 / 阅读 / 修复 / 运维 / 文档 / 复盘 / 审查 / 复核 / 评估 - 优先级规则:
- 含
配置/部署/环境/服务/监控/cron/openclaw.json/模型切换/供应商接入/密钥/代理→ 优先【运维】 - 含
规则/规范/SOP/制度/约定/命名/模板/文档/说明/公告→ 优先【文档】 - 含
报错/异常/失败/修复/故障/bug→ 优先【修复】
- 含
- 目标提取前先归一化:
- 只保留
8~28字的“动作 + 对象”核心短语; - 去掉口语前缀、JSON 尾巴、代码块、URL、长数字串、参数串、键值对;
- 无法稳定提取时,使用
未命名任务。
- 只保留
- 为什么:线程标题来自自然语言主消息时,经常混入口语、JSON 或参数噪音,先归一化才能稳定命名。
- 使用模板:
-
执行重命名,并做容错
- 第一次改名:
message(action="channel-edit", target="\x3CthreadId>", name="\x3CnewName>") - 若失败,再执行一次相同参数的
channel-edit。 - 若仍失败,再执行:
message(action="channel-info", target="\x3CthreadId>") - 一致性判定:
- 若当前名称已符合规则,或已等于
newName→ 视为成功,不报 P2; - 若仍不符合 → 发送最终失败 P2。
- 若当前名称已符合规则,或已等于
- 为什么:Discord 侧偶发瞬时失败并不等于最终失败,做最终一致性检查能避免误报。
- 第一次改名:
-
按结果决定是否静默
- 正常成功时保持静默。
- 如果本次没有候选线程,也保持静默。
- 本次实际执行结果:
- 最近 20 分钟内新建线程:
0 - 今日且属于“主消息截断/长标题/JSON污染”的候选:
0 - 需改名线程:
0 - 因此本轮静默退出:无改名、无 P2、无 RESOLVED。
- 最近 20 分钟内新建线程:
- 为什么:这类 backstop 任务通常高频运行,成功时静默可避免通知噪音。
-
仅在需要时发送 P2 或 RESOLVED
- 列表两次失败时,发送 1 条 P2,且:
threadId=list
- 单个线程最终失败时,发送 1 条 P2。
- 同一
opId里若先失败、后经重试或一致性检查判定成功,发送 1 条RESOLVED到1478996389727043584。 - 单次运行同一线程只允许最终输出
0或1条消息,禁止重复刷屏。 - 为什么:这个任务强调“低噪音 + 可追踪”,通知必须少而准。
- 列表两次失败时,发送 1 条 P2,且:
Pitfalls and solutions
-
❌ 把“今天但超过 20 分钟、只是普通旧标题不规范”的线程也纳入改名 → 这会把兜底任务变成历史修复任务,违背范围约束 → ✅ 只处理最近 20 分钟,或“今天且明显是截断/JSON 污染”的异常标题。
-
❌ 看到标题不规范就直接改名 → 可能误改本来已经符合
^【[^】]+】.+ - \d{8}$的线程,或者误动历史线程 → ✅ 先做正则校验,再结合创建时间和异常特征筛选。 -
❌
channel-edit一次失败就直接报 P2 → Discord 瞬时失败并不少见,直接告警会制造误报 → ✅ 先重试一次,再用channel-info做最终一致性检查。 -
❌ 成功时也发通知 → 高频巡检会刷屏,掩盖真正异常 → ✅ 正常成功与“无候选线程”都保持静默。
-
❌ 列表失败时用
threadId=0、n/a之类占位值告警 → 不利于排查,也违背约束 → ✅ 只有列表失败场景可使用threadId=list。 -
❌ 扫描 archived 或更大范围线程 → 会把任务从“backstop”变成“回扫历史” → ✅ 严格使用
includeArchived=false且固定channelId。
Key code and configuration
线程列表读取
message(action="thread-list", guildId="1478785964896817267", channelId="1478785965580357754", includeArchived=false, limit=50)
命名规范正则
^【[^】]+】.+ - \d{8}$
新名称模板
【{类型}】{目标} - {YYYYMMDD}
类型白名单
任务
分析
阅读
修复
运维
文档
复盘
审查
复核
评估
重命名动作
message(action="channel-edit", target="\x3CthreadId>", name="\x3CnewName>")
最终一致性检查
message(action="channel-info", target="\x3CthreadId>")
P2 模板(仅最终失败时发送到 1478996389727043584,纯文本)
━━━━━━━━━━━━━━
🚨 任务告警 · dispatch-thread-rename-backstop
等级:P2
状态:🔴 失败
日期:YYYY-MM-DD (Asia/Shanghai)
对象:threadId=\x3Cid> opId=\x3CopId>
原因:\x3C最终失败摘要,不超过60字>
影响:线程命名规范可能未及时生效
动作:请人工介入排查并重试
追踪:#cron #dispatch #naming #incident
━━━━━━━━━━━━━━
RESOLVED 模板(仅“先失败后成功”时发送到 1478996389727043584,纯文本)
━━━━━━━━━━━━━━
✅ 任务回补 · dispatch-thread-rename-backstop
状态:🟢 RESOLVED
日期:YYYY-MM-DD (Asia/Shanghai)
对象:threadId=\x3Cid> opId=\x3CopId>
说明:重命名过程中出现瞬时失败,已自动恢复并满足命名规范
结果:\x3C最终名称>
追踪:#cron #dispatch #naming #resolved
━━━━━━━━━━━━━━
本次执行结论样例
thread-list succeeded on first attempt. Filtering only parent channel 1478785965580357754 entries: all visible threads under target parent already match ^【[^】]+】.+ - \d{8}$, or are historical. Recent-today threads (within 20 min from 10:40 Asia/Shanghai means since 10:20) under target parent: 1482198526019764467 created 10:07 CST, 1482185516668424355 created 09:16 CST, both older than 20 min and already compliant. No today abnormal long/JSON-polluted noncompliant titles found. No rename actions needed; remain silent.
Environment and prerequisites
- 可调用 Discord 相关消息动作:
thread-listchannel-editchannel-info
- 具备目标 guild / channel 的读取与线程改名权限。
- 任务运行时必须能以
Asia/Shanghai为基准做日期与“最近 20 分钟”判断。 - 只读取:
guildId="1478785964896817267"channelId="1478785965580357754"
- 目标通知频道:
1478996389727043584
- 单次最多处理
3个线程。 - 仅改名线程,不改 parent channel。
Companion files
references/dispatch-thread-rename-notification-templates.md— reference documentation
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install discord-thread-naming-backstop-workflow - After installation, invoke the skill by name or use
/discord-thread-naming-backstop-workflow - Provide required inputs per the skill's parameter spec and get structured output
What is Discord Thread Naming Backstop Workflow?
用于执行 Discord 线程命名兜底(backstop)巡检与改名,专门处理某个 guild 下指定 parent channel 中“最近新建但未命名规范”的线程,补上 prehook 漏网,而不是批量回扫历史。遇到“线程重命名兜底”“dispatch 线程命名规范”“只检查最近 20 分钟线程”“JSON... It is an AI Agent Skill for Claude Code / OpenClaw, with 142 downloads so far.
How do I install Discord Thread Naming Backstop Workflow?
Run "/install discord-thread-naming-backstop-workflow" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Discord Thread Naming Backstop Workflow free?
Yes, Discord Thread Naming Backstop Workflow is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Discord Thread Naming Backstop Workflow support?
Discord Thread Naming Backstop Workflow is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Discord Thread Naming Backstop Workflow?
It is built and maintained by can4hou6joeng4 (@can4hou6joeng4); the current version is v1.0.0.