用途
forbid 技能用于在活跃的循环会话(loop session)中,向禁止列表添加条目。被列入禁止列表的项目会被机会发现(opportunity discovery)流程阻挡,即阻止在匹配话题上继续开展工作。根据触发词描述,它可用于“禁止话题”“添加禁用项”“阻止工作”等场景。
主要能力
- 添加禁用项:将指定短语加入禁止列表。
- 列出禁用项:显示当前所有被禁用的条目。
- 清空禁用项:一次性清除所有禁用条目。
- 按短语移除:使用模糊匹配(fuzzy)移除与给定短语匹配的条目。
该技能支持运行时配置:无论是否处于活跃循环均可使用,变更会在下一次迭代时应用。它被描述为自进化技能,通过使用不断改进;如果指令有误、参数发生偏移或需要变通方法,应基于真实、可复现的问题立即修正文件,而不是推迟。
使用方式
命令形式如下:
/ru:forbid documentation updates— 将“documentation updates”加入禁止列表/ru:forbid --list— 显示当前禁用项/ru:forbid --clear— 清空所有禁用项/ru:forbid --remove <phrase>— 移除与短语匹配的条目(模糊匹配)
执行过程通过运行一段 bash 脚本完成。脚本会读取项目目录(CLAUDE_PROJECT_DIR 或当前工作目录),定位配置文件 $PROJECT_DIR/.claude/ru-config.json。若配置文件不存在,则以 {"guidance": {"forbidden": [], "encouraged": []}} 创建;若缺少 guidance 结构,则补充该结构。
命令处理逻辑(基于脚本内容):
--list或-l:输出当前禁止列表,逐条显示并统计总数。--clear或-c:将.guidance.forbidden置为空数组。--remove <phrase>:从禁止列表中查找第一条(不区分大小写)包含该短语的条目;若未找到则报错退出;找到则移除该条目并更新时间戳。- 无参数:显示用法说明及当前禁用项。
- 其他参数:将参数作为条目加入禁止列表(去重),并更新时间戳,然后显示当前列表。
工作原理
- 配置文件:变更写入
.claude/ru-config.json。 - 下次迭代应用:Stop 钩子在每次迭代时重新读取配置。
- 模板渲染:禁用项会出现在
## USER GUIDANCE部分。
适用场景
- 在循环会话中阻止特定话题或工作方向。
- 临时或持续禁用某些机会发现条目。
- 希望在无需停止当前循环的情况下调整工作约束。
限制与注意事项
- 变更需等到下一次迭代才生效。
- 移除操作采用模糊匹配,仅移除第一条匹配项。
- 若 RU(循环)未运行,禁用项不会被强制执行,需先用
/ru:start启动。 - 条目未出现可能是拼写或大小写差异,可用
--list核对确切文本。
故障排查(据资料)
- jq 添加时报错:配置文件格式错误,可运行
/ru:settings reset重建。 - 条目未出现:拼写或大小写不同,用
--list验证确切文本。 - 禁用未强制执行:RU 未运行,用
/ru:start启动。 - 按短语移除失败:未找到匹配,用
--list查看确切条目名称。 - 找不到配置文件:
.claude目录缺失,可用mkdir -p .claude创建。
执行后反思
技能完成后应检查:命令是否成功(若失败,修正导致失败的指令或错误表);参数或输出是否变化(若底层工具接口偏移,更新用法示例和参数表);是否需要变通方法(若不得不临时处理,更新 SKILL.md 使下次调用无需重复变通)。仅在问题真实且可复现时更新,不做推测性修改。