skills/ridewind/my-skills/code-review:config-manager

code-review:config-manager

SKILL.md

Code Review 配置管理器

管理 code review skills 和 commands 的配置文件,包括自动发现能力、管理预设配置、验证配置等。

能力类型

配置管理器支持两种类型的 review 能力:

  • skill: SKILL.md 格式的技能文件
  • command: 插件中的命令(~/.claude/plugins/cache/*/commands/*.md

自动排除: 发现过程中会自动排除自身(code-review:config-managercode-review:executor),避免循环依赖。

配置文件位置

配置文件支持三级优先级(级联覆盖):

  • 全局配置: ~/.config/claude/code-review-skills/config.yaml
  • 用户配置: ~/.claude/code-review-skills/config.yaml
  • 项目配置: .claude/code-review-skills/config.yaml

优先级:项目 > 用户 > 全局

工作流程

Step 0: 识别用户意图

首先确定用户想要做什么:

  • 初始化配置: 用户说 "初始化 review 配置"、"创建配置文件"
  • 发现/更新 skills: 用户说 "更新 skills"、"发现 skills"、"同步 skills"
  • 管理预设: 用户说 "管理预设"、"编辑预设"、"创建预设"
  • 查看配置: 用户说 "查看配置"、"显示配置"、"配置状态"
  • 验证配置: 用户说 "验证配置"、"检查配置"

根据用户意图,跳转到相应的步骤。


Step 1: 初始化配置(可选)

当用户首次使用或需要创建新配置时执行。

1.1 确定配置层级

询问用户要在哪个层级创建配置:

  • 项目配置(推荐用于特定项目)
  • 用户配置(推荐用于个人默认配置)
  • 全局配置(推荐用于系统级默认)

1.2 创建默认配置

运行 scripts/init-config.sh 创建默认配置文件:

# 项目配置
./scripts/init-config.sh --project

# 用户配置
./scripts/init-config.sh --user

# 全局配置
./scripts/init-config.sh --global

1.3 确认创建成功

验证配置文件已创建并显示路径。

完成初始化后,跳转到 Step 2 发现 skills。


Step 2: 自动发现并更新 Review 能力

扫描环境中所有可用的 skills 和 commands,使用 LLM 智能识别与 code review 相关的能力。

2.1 收集候选项

运行收集脚本,输出所有候选 skills 和 commands 到 JSON 文件:

./scripts/discover-skills.sh --collect-only /tmp/candidates.json

脚本会自动完成以下工作:

  • 读取配置文件中的 skills_directories 字段确定搜索目录
  • 扫描所有 SKILL.md 文件(skills)
  • 扫描 ~/.claude/plugins/cache/ 下的所有 commands
  • 自动排除自身(code-review:config-manager, code-review:executor
  • 对相同 ID 的 commands 去重(保留最新版本)
  • 输出 JSON 文件包含所有候选项

2.2 LLM 判断筛选

读取 JSON 文件,对每个候选项进行判断:

{
  "collected_at": "2025-01-15T10:00:00+08:00",
  "total_candidates": 50,
  "candidates": [
    {
      "id": "pr-review-toolkit:review-pr",
      "name": "pr-review-toolkit:review-pr",
      "type": "command",
      "source_file": "~/.claude/plugins/cache/.../review-pr.md",
      "description": "Comprehensive PR review using specialized agents"
    },
    ...
  ]
}

判断标准:

对于每个候选项,判断其是否适合用于 code review 工作流:

  1. 核心 review 能力:直接用于代码审查的能力

    • 代码质量审查、安全审计、性能分析
    • PR/MR 审查、代码清理
    • 测试覆盖率分析
  2. 辅助 review 能力:支持 review 过程的能力

    • 文档生成、架构分析
    • 调试辅助、错误诊断
  3. 不应包含

    • 与代码审查无关的通用开发工具
    • 纯粹的代码生成能力
    • 项目初始化/配置工具
    • 版本控制操作(非审查相关)

筛选方式:

根据候选项的 description 字段和 id 判断是否应该包含在 code review 配置中。

输出筛选后的 JSON 文件,格式与输入相同:

{
  "collected_at": "2025-01-15T10:05:00+08:00",
  "total_candidates": 15,
  "candidates": [
    {
      "id": "pr-review-toolkit:review-pr",
      "name": "pr-review-toolkit:review-pr",
      "type": "command",
      "source_file": "~/.claude/plugins/cache/.../review-pr.md",
      "description": "Comprehensive PR review using specialized agents"
    },
    ...
  ]
}

2.3 更新配置文件

使用筛选后的 JSON 文件更新配置:

./scripts/discover-skills.sh --from-json /tmp/filtered.json [配置文件路径]

脚本会:

  • 从 JSON 文件读取筛选后的候选项
  • 为每个候选项推断 category 和 tags
  • 更新配置文件的 available_skills 部分
  • 保留用户已编辑的 presets

Step 2-alt: 直接模式(简单场景)

对于简单场景或用户确认需要快速更新,可以使用直接模式:

./scripts/discover-skills.sh [配置文件路径]

直接模式使用正则表达式过滤候选项,可能不够准确。建议使用 LLM 判断流程获得更准确的结果。


Step 2-manual: 手动发现(备选方案)

如果脚本执行失败或用户需要手动控制,按以下步骤操作:

2.1 确定 Skills 搜索目录(手动备选)

首先,读取配置文件中的 skills_directories 字段。

如果配置文件中没有此字段或为空,使用以下默认策略:

策略 1: 优先搜索项目内的 skills 目录

Glob: skills/**/SKILL.md
Glob: .skills/**/SKILL.md

策略 2: 如果策略 1 未找到,搜索更广泛的范围但排除常见无关目录

Glob: */SKILL.md
Glob: */*/SKILL.md

排除的无关目录:

  • node_modules/
  • .git/
  • vendor/
  • dist/
  • build/
  • target/
  • pycache/
  • .venv/

策略 3: 搜索插件 commands

搜索 ~/.claude/plugins/cache/ 目录下的 commands:

Glob: ~/.claude/plugins/cache/*/commands/*.md
Glob: ~/.claude/plugins/cache/*/*/commands/*.md

排除 temp_git*.orphaned_at 目录。

策略 4: 询问用户 skills 位置

如果前几种策略都找不到足够的能力,询问用户 skills 目录的路径。

添加自定义搜索目录:

如果用户需要搜索其他位置的 skills,编辑配置文件添加 skills_directories 字段:

skills_directories:
  - "skills"              # 项目内 skills 目录
  - "../my-skills/skills"  # 其他项目的 skills 目录
  - "~/.claude/skills"     # 用户级 skills 目录

使用 Glob 工具对每个目录执行 **/SKILL.md 搜索(限制在指定目录内)。

2.2 识别 Review 相关能力(手动备选)

对每个 SKILL.md 文件和 command 文件,使用 Read 工具读取 frontmatter(--- 之间的内容)。

通过关键词判断是否是 review 相关的能力:

  • review, auditor, reviewer
  • security, audit, threat
  • test, testing, coverage
  • performance, optimization
  • quality, cleanup, lint

同时检查 description 中是否包含这些关键词。

排除自身: 跳过 code-review:config-managercode-review:executor

2.3 提取能力元信息(手动备选)

对于每个识别出的能力,提取以下信息:

id: "plugin:command-name"   # 对于 command: plugin:command
id: "skill:name"            # 对于 skill: 从 SKILL.md 的 name 字段
name: "显示名称"            # 从 name 字段
type: "skill" | "command"   # 能力类型
category: "分类"            # 根据 description 推断
description: "描述"         # 从 description 字段
tags: ["tag1", "tag2"]      # 从 description 推断
recommended_for: ["场景"]   # 基于 category 和 description

分类规则:

  • 包含 "security", "audit", "threat" → "安全审计"
  • 包含 "test", "coverage", "tdd" → "测试+清理"
  • 包含 "performance", "optimization", "database" → "性能+架构"
  • 包含 "code-quality", "lint", "cleanup" → "代码质量"
  • 其他 → "代码质量"

2.4 更新配置文件(手动备选)

将提取的能力添加到配置文件的 available_skills 部分。

重要: 更新时需要保留用户已编辑的 presets。

读取当前配置文件,保留 presets 部分,只更新 available_skillsmetadata.last_updated

使用 Edit 工具更新配置文件:

metadata:
  version: "0.2.0"
  last_updated: "2025-01-15"  # 当前日期

available_skills:
  - id: "code-review:code-review"
    name: "code-review:code-review"
    type: "command"
    category: "安全审计"
    description: "..."
    tags: ["review", "security"]
    recommended_for: ["所有项目"]
  # ... 更多能力

2.5 显示更新结果

向用户报告:

  • 发现了多少个 skills
  • 发现了多少个 commands
  • 按分类分组显示
  • 更新的配置文件路径

Step 3: 管理预设配置

允许用户创建、编辑、删除预设配置。

3.1 显示当前预设

使用 Read 工具读取配置文件,提取 presets 部分。

向用户展示当前的预设列表:

当前预设配置:

1. 快速审查 (2 个 skills)
   - code-review:code-review
   - codebase-cleanup:code-reviewer

2. 全面审查 (5 个 skills)
   - code-review:code-review
   - security-scanning:security-auditor
   ...

3. 安全优先 (3 个 skills)
   ...

3.2 询问用户操作

使用 AskUserQuestion 让用户选择操作:

  • 创建新预设
  • 编辑现有预设
  • 删除预设
  • 复制预设

3.3 执行相应操作

创建新预设:

  1. 询问预设名称
  2. 询问描述
  3. 显示所有可用的 skills(按分类分组)
  4. 让用户选择 skills(AskUserQuestion,multiSelect=true)
  5. 将新预设添加到配置文件

编辑预设:

  1. 让用户选择要编辑的预设
  2. 显示当前包含的 skills
  3. 询问要添加/删除哪些 skills
  4. 更新配置文件

删除预设:

  1. 让用户选择要删除的预设
  2. 确认删除操作
  3. 从配置文件中移除

复制预设:

  1. 让用户选择要复制的预设
  2. 询问新预设名称
  3. 复制并添加到配置文件

3.4 保存并验证

使用 Edit 工具更新配置文件。

运行 scripts/validate-config.sh 验证配置是否正确。


Step 4: 查看配置状态

显示当前配置的详细信息。

4.1 显示配置文件路径

按优先级检查三个层级,显示哪些配置文件存在:

配置文件状态:

✓ 项目配置: .claude/code-review-skills/config.yaml
✓ 用户配置: ~/.claude/code-review-skills/config.yaml
- 全局配置: 不存在

当前生效的配置将合并上述文件(项目配置优先级最高)

4.2 显示可用 Skills

读取配置文件的 available_skills,按分类分组显示:

可用 skills (共 15 个):

代码质量 (6):
  - code-review:code-review - 基础代码审查
  - codebase-cleanup:code-reviewer - 代码清理审查
  ...

安全审计 (4):
  - security-scanning:security-auditor - 安全审计专家
  - security-scanning:threat-modeling-expert - 威胁建模专家
  ...

性能+架构 (3):
  - application-performance:performance-engineer - 性能工程师
  ...

4.3 显示预设配置

显示所有预设及其包含的 skills(同 Step 3.1)。

4.4 显示合并结果(可选)

如果存在多层级配置,运行 scripts/merge-configs.sh 显示合并后的完整配置。


Step 5: 验证配置文件

检查配置文件的正确性。

5.1 运行验证脚本

./scripts/validate-config.sh [配置文件路径]

如果未指定路径,脚本会自动查找。

5.2 显示验证结果

脚本会检查:

  • YAML 语法正确性
  • 必需字段存在(metadata, available_skills, presets)
  • presets 结构正确
  • skill ID 格式有效

向用户显示验证结果,如果有错误,给出修复建议。


脚本工具

配置管理器提供以下脚本工具:

discover-skills.sh

自动发现并更新 code review skills 到配置文件。

推荐流程(LLM 判断):

# 1. 收集所有候选项到 JSON 文件
./scripts/discover-skills.sh --collect-only /tmp/candidates.json

# 2. 使用 LLM 判断筛选(在对话中完成)

# 3. 从筛选后的 JSON 更新配置
./scripts/discover-skills.sh --from-json /tmp/filtered.json [配置文件路径]

直接模式(简单场景):

./scripts/discover-skills.sh [配置文件路径]

参数说明:

  • --collect-only <输出文件> - 收集所有候选项到 JSON 文件,不做过滤
  • --from-json <JSON文件> [配置文件] - 从 JSON 文件更新配置
  • --help - 显示帮助信息

如果未指定配置文件路径,脚本会自动按优先级查找(项目 > 用户 > 全局)。

init-config.sh

初始化配置文件,创建默认配置。

./scripts/init-config.sh [--global|--user|--project] [路径]

validate-config.sh

验证配置文件的正确性。

./scripts/validate-config.sh [配置文件路径]

merge-configs.sh

合并多层级配置文件。

./scripts/merge-configs.sh [输出路径]

错误处理

配置文件不存在

提示用户运行 init-config.sh 初始化配置。

YAML 语法错误

提示用户运行 validate-config.sh 检查错误位置。

Skill 不存在

如果 preset 中引用的 skill 不在 available_skills 中,警告用户并建议运行更新。

权限问题

如果无法创建配置文件,检查目录权限,提示用户手动创建目录。


配置文件格式

配置文件使用 YAML 格式:

metadata:
  version: "0.2.0"
  last_updated: "2025-01-15"
  auto_sync: true

# Skills 搜索目录配置
# 支持相对路径(相对于配置文件所在目录)和绝对路径
skills_directories:
  - "skills"           # 默认:项目内的 skills 目录
  # - ".skills"          # 可选:隐藏的 skills 目录
  # - "../other-skills"  # 可选:其他项目的 skills 目录
  # - "~/.claude/skills" # 可选:用户级 skills 目录

# 可用的 code review skills 和 commands
# type 字段标识能力类型: skill 或 command
available_skills:
  - id: "code-review:code-review"
    name: "code-review:code-review"
    type: "command"
    category: "安全审计"
    description: "检查代码质量问题"
    tags: ["review", "security"]
    recommended_for: ["所有项目"]

  - id: "pr-review-toolkit:review-pr"
    name: "pr-review-toolkit:review-pr"
    type: "command"
    category: "测试+清理"
    description: "PR 审查工具"
    tags: ["review", "pr"]
    recommended_for: ["所有项目"]

presets:
  - name: "快速审查"
    description: "轻量级快速审查"
    skills:
      - "code-review:code-review"

注意事项

  1. 保留用户编辑: 更新 available_skills 时,始终保留用户的 presets 配置
  2. 配置合并: 多层级配置时,available_skills 取并集,presets 按名称覆盖
  3. YAML 格式: 编辑配置文件时注意 YAML 缩进和格式
  4. skill ID: skill ID 使用 skill:name 格式,确保与实际 skill 名称一致
Weekly Installs
15
First Seen
Feb 10, 2026
Installed on
claude-code15
mcpjam14
openhands14
junie14
windsurf14
zencoder14