用途
wizard 是一个交互式引导配置向导,使用 AskUserQuestion 流程。它用于为 RU 类工作建立一套“引导规则”:哪些类型的工作应被鼓励优先处理,哪些应被避免。它强调中立呈现工作类别,由用户自行分类,然后解决冲突。
主要能力
- 工作领域选择:中立地列出所有工作类别,让用户选择想要配置的项目。预定义类别包括:缺陷修复(Bug fixes)、功能补全(Feature completion)、性能(Performance)、错误处理(Error handling)、安全(Security)、文档(Documentation)、依赖升级(Dependency upgrades)、代码格式化(Code formatting)、测试扩展(Test expansion)、重构(Refactoring)、API 变更(API changes)、数据库变更(Database changes)。
- 逐项分类:对每个选中的项目,询问应 Encourage(优先)还是 Forbid(避免),或 Skip(无偏好)。被鼓励的加入 guidance.encouraged[],被禁止的加入 guidance.forbidden[],跳过的两边都不加入。
- 自定义项目:询问是否添加预定义列表之外的自定义工作领域,若选择是则输入文本,并逐项询问鼓励还是禁止。
- 冲突检测:在分类完成后检查同一项目同时出现在鼓励和禁止列表中的情况。冲突可能来自用户在两个分类中重复选择同一项,或自定义项目与预定义类别重复。每个冲突都会询问以“Encourage wins”(鼓励优先,从禁止中移除)、“Forbid wins”(禁止优先,从鼓励中移除),还是“Remove both”(两者移除,保持中性)解决。
- 保存配置:收集并验证后,运行脚本保存到
$PROJECT_DIR/.claude/ru-config.json,确保存在guidance结构,并展示当前指引摘要(禁止项数量、鼓励项数量及各自列表),同时提示查看方式/ru:settings show与修改方式/ru:forbid或/ru:encourage。
参数
--clear:在开始前清空现有指引(全新配置)。
使用方式
该技能按五步流程执行:
- 步骤 1:工作领域选择(中立、多选)。
- 步骤 2:对每个选中项分类(Encourage / Forbid / Skip)。
- 步骤 3:自定义项目(可选),若添加则逐项分类。
- 步骤 4:冲突解决(如有)。
- 步骤 5:保存配置并展示摘要。
配置保存脚本片段:
/usr/bin/env bash << 'RU_CONFIGURE_SAVE'
PROJECT_DIR="${CLAUDE_PROJECT_DIR:-$(pwd)}"
CONFIG_FILE="$PROJECT_DIR/.claude/ru-config.json"
# Ensure config file exists with guidance structure
mkdir -p "$PROJECT_DIR/.claude"
if [[ ! -f "$CONFIG_FILE" ]]; then
echo '{"guidance": {"forbidden": [], "encouraged": []}}' > "$CONFIG_FILE"
fi
# Ensure guidance structure exists
if ! jq -e '.guidance' "$CONFIG_FILE" >/dev/null 2>&1; then
jq '. + {guidance: {forbidden: [], encouraged: []}}' "$CONFIG_FILE" > "$CONFIG_FILE.tmp" && mv "$CONFIG_FILE.tmp" "$CONFIG_FILE"
fi
echo "Configuration saved to: $CONFIG_FILE"
echo ""
echo "Current guidance:"
echo " Forbidden: $(jq -r '.guidance.forbidden | length' "$CONFIG_FILE") items"
echo " Encouraged: $(jq -r '.guidance.encouraged | length' "$CONFIG_FILE") items"
echo ""
jq -r '.guidance.forbidden[]' "$CONFIG_FILE" 2>/dev/null | while read item; do
echo " ✗ FORBID: $item"
done
jq -r '.guidance.encouraged[]' "$CONFIG_FILE" 2>/dev/null | while read item; do
echo " ✓ ENCOURAGE: $item"
done
echo ""
echo "To view: /ru:settings show"
echo "To modify: /ru:forbid or /ru:encourage"
RU_CONFIGURE_SAVE
添加条目辅助脚本:
/usr/bin/env bash << 'ADD_GUIDANCE_ITEM'
PROJECT_DIR="${CLAUDE_PROJECT_DIR:-$(pwd)}"
CONFIG_FILE="$PROJECT_DIR/.claude/ru-config.json"
TYPE="${1:-forbidden}" # "forbidden" or "encouraged"
ITEM="${2:-}" # Item to add
if [[ -z "$ITEM" ]]; then
exit 0
fi
# Ensure file exists
mkdir -p "$PROJECT_DIR/.claude"
if [[ ! -f "$CONFIG_FILE" ]]; then
echo '{"guidance": {"forbidden": [], "encouraged": []}}' > "$CONFIG_FILE"
fi
# Add item with timestamp
TIMESTAMP=$(date -u +%Y-%m-%dT%H:%M:%SZ)
jq --arg item "$ITEM" --arg ts "$TIMESTAMP" \
".guidance.${TYPE} = ((.guidance.${TYPE} // []) + [\$item] | unique) | .guidance.timestamp = \$ts" \
"$CONFIG_FILE" > "$CONFIG_FILE.tmp" && mv "$CONFIG_FILE.tmp" "$CONFIG_FILE"
ADD_GUIDANCE_ITEM
清空指引辅助脚本:
/usr/bin/env bash << 'CLEAR_GUIDANCE'
PROJECT_DIR="${CLAUDE_PROJECT_DIR:-$(pwd)}"
CONFIG_FILE="$PROJECT_DIR/.claude/ru-config.json"
if [[ -f "$CONFIG_FILE" ]]; then
TIMESTAMP=$(date -u +%Y-%m-%dT%H:%M:%SZ)
jq --arg ts "$TIMESTAMP" \
'.guidance = {forbidden: [], encouraged: [], timestamp: $ts}' \
"$CONFIG_FILE" > "$CONFIG_FILE.tmp" && mv "$CONFIG_FILE.tmp" "$CONFIG_FILE"
echo "Guidance cleared."
fi
CLEAR_GUIDANCE
适用场景
适用于需要为 RU(相关工作流)建立偏好指引的场景:用户希望明确哪些工作类型应被优先处理、哪些应避免,并通过交互式问答完成配置,且配置以 JSON 形式保存在项目 .claude 目录下,便于后续查看和修改。
限制与说明
- 资料未提供收费、价格、平台或具体使用效果等信息。
- 故障排查:jq 报错通常因配置文件格式错误,可用
/ru:settings reset重建;不出现选项可能是 AskUserQuestion 问题,需检查 multiSelect 设置;配置未保存可能是缺少 .claude 目录,可用mkdir -p .claude创建;冲突未显示可能因同一项大小写不同,需使用完全相同的文本;自定义输入为空可能是跳过了文本提示,需重新运行向导并输入项目。 - 该技能自称“自演进”(Self-Evolving Skill),会通过使用改进;若指令错误、参数漂移或需要变通方法,应立即可靠地修复文件,且仅针对真实、可复现的问题更新。任务完成前需进行执行后反思,包括定位 SKILL.md 规范路径、修复导致失败的指令、推广表现更好的实践、修复与现实不符的脚本或依赖,并记录到演进日志(含触发、修复与证据),不应延迟。