关于 update-claude-settings
一个根据仓库中实际存在的文件和工具审查、更新 Claude 项目设置的技能。它提出精简的权限与集成建议,写入前要求批准,并验证生成的 JSON。
主要功能
- 01检测仓库工具链
- 02审查现有 Claude 设置
- 03建议适用的命令和集成
- 04修改前要求批准
- 05验证更新后的 JSON
适用场景
- 01审查项目的 Claude 设置
- 02为已检测到的开发工具添加权限
- 03根据项目集成检查 MCP 配置
MCP 相关
它可根据检测到的项目服务建议 MCP 集成,并在有依据或获得明确请求时更新 `.mcp.json`。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ ulpi-io/ skills --skill update-claude-settings安装后在 Claude Code 中输入/update-claude-settings确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/command-catalog.mdoutput-contract.mdstack-detection.mdwebfetch-and-mcp.md详细介绍
不可妥协的规则:
- 推荐任何命令前,先根据仓库文件检测实际技术栈。
- 提出更改前,先读取现有的
.claude/settings.json、.claude/settings.local.json和.mcp.json。 - 仅包含项目中实际检测到的工具对应的命令和集成。
- 排除破坏性系统命令、绝对路径和用户专属路径。
- 写入任何设置文件前,必须获得用户明确批准。
更新 Claude 设置
输入
$request:可选指导,例如本地设置还是共享设置、技术栈提示或请求集成
目标
通过以下步骤生成可信的设置更新:
- 检测实际工具链和框架
- 将该技术栈与当前 Claude 设置进行比较
- 仅提出必要的命令权限、域名和 MCP 集成
- 在写入前获得批准
- 验证生成的 JSON 文件
步骤 0:确定目标模式
确定用户希望更新的内容:
.claude/settings.local.json.claude/settings.json.mcp.json- 仅提供审查建议,不进行写入
默认行为:
- 用户本地权限优先使用
.claude/settings.local.json - 仅当用户明确要求共享项目设置时,才使用
.claude/settings.json - 仅当检测到的集成有充分依据时,才更新
.mcp.json
成功标准:明确指定目标文件,以及仅审查还是写入模式。
步骤 1:检测实际技术栈
检查仓库根目录和相关配置文件,以识别:
- 语言
- 包管理器
- 框架
- 构建工具
- 单体仓库结构
- 服务集成
- 项目本地 CLI 或基础设施工具
加载 references/stack-detection.md,查看指示文件和检测规则。
规则:
- 根据实际文件检测,不做假设
- 选择包管理器时,优先依据锁文件,而非猜测
- 使用依赖清单确认框架和集成
- 如果仓库实际上为空,请停止并询问用户预期使用的技术栈,而不是编造设置
成功标准:明确列出检测到的技术栈,并由实际文件佐证。
步骤 2:读取当前设置并找出差距
读取现有的:
.claude/settings.json.claude/settings.local.json.mcp.json
记录:
- 当前允许的命令
- 必须保留的拒绝规则或用户自定义设置
- 已不再适用的工具对应的过期命令
- 当前工具缺少的命令
规则:
- 不要盲目覆盖现有设置
- 尽可能保留用户意图
- 区分共享设置和本地设置
成功标准:了解当前配置状态,以及与检测到的技术栈之间的差距。
步骤 3:整理建议
根据以下内容整理建议:
- 安全基线命令
- 技术栈专用命令
- 包管理器专用命令
- 框架专用命令
- 文档域名
- 针对检测到的服务的 MCP 建议
加载:
references/command-catalog.md,用于选择命令references/webfetch-and-mcp.md,用于选择域名和 MCP 建议references/output-contract.md,用于了解输出结构和文件目标规则
规则:
- 仅包含针对已检测工具的命令
- 包含 Claude 实际需要的正确开发命令,而不只是只读检查命令
- 除非确实存在多个包管理器,否则不要建议相互竞争的包管理器命令
- 不要建议使用 GitHub MCP;改用
ghCLI
成功标准:建议与检测到的技术栈相符,且不包含过时或不安全的条目。
步骤 4:展示建议并确认
写入前,先展示:
- 检测到的技术栈摘要
- 目标文件
- 建议的命令类别
- 域名和 MCP 建议
- 当前设置已存在时的新增项、移除项和保持不变的部分
如果用户需要在以下选项中做出选择,请使用 AskUserQuestion:
- 本地设置还是共享设置
- 仅审计还是应用更改
- 选择性应用还是完整应用
在用户明确批准更新之前,不要写入任何内容。
成功标准:用户已批准预期的设置更改。
步骤 5:写入已批准的文件
对已批准的目标进行最小且正确的编辑。
规则:
- 除非现有自定义设置与检测到的实际情况直接冲突,否则予以保留
- 本地设置保持为本地设置,共享设置保持为共享设置
- 只有在检测到明确的集成,或用户明确要求时,才写入
.mcp.json - 不要在 JSON 文件中添加注释
成功标准:已将批准的设置更改写入正确的文件。
步骤 6:验证并报告
验证:
- 每个写入的 JSON 文件都能正确解析
- 命令权限与检测到的技术栈相符
- 未混入破坏性命令或系统级命令
- 包管理器权限与实际锁文件相符
- 目标文件与用户批准的文件一致
报告:
- 检测到的技术栈
- 已写入或保持不变的文件
- 命令、域名和集成的数量
- 保留的自定义设置或尚未解决的歧义
成功标准:用户可以清楚看到具体变更,且文件有效。
防护规则
- 不要让模型主动调用此技能;此技能会修改持久配置。
- 不要添加
context: fork;此工作流会编辑当前仓库。 - 不要添加
paths:;这是通用维护技能。 - 不要在
SKILL.MD中内联大型命令表、框架矩阵或冗长的失败案例列表。 - 不要添加针对未检测到的工具的命令。
- 不要包含破坏性系统命令、绝对路径或特定用户的路径。
- 未经明确批准,不要写入任何文件。
何时加载参考资料
-
references/stack-detection.md用于检测锁文件、框架、服务和单体仓库。 -
references/command-catalog.md用于了解基准命令、特定技术栈的命令以及包管理器排除规则。 -
references/webfetch-and-mcp.md用于了解文档域名和 MCP 服务建议规则。 -
references/output-contract.md用于了解输出格式、目标文件选择、合并策略和验证要求。
输出约定
报告:
- 检测到的技术栈摘要
- 目标文件
- 建议的新增项、移除项和保持不变的部分
- 文件是已写入还是仅经过审计
- JSON 验证结果以及尚未解决的歧义