关于 ub-customizations
面向 VS Code Copilot 定制工作的技能,用于判断并生成 skills、hooks 和 MCP 配置。它强调选择最小适用产物,并提供验证、安全和可移植性检查流程。
主要功能
- 01分类选择技能、钩子或 MCP 配置
- 02访谈需求并制定生成计划
- 03按参考规范生成定制文件
- 04验证产物并提供烟测提示
- 05强调最小权限与密钥安全
适用场景
- 01为可复用工作流创建 skill
- 02配置生命周期自动执行的 hook
- 03连接外部系统并创建 MCP 配置
MCP 相关
可生成 MCP 配置,以便访问外部系统、工具或数据;会优先使用最小权限并避免硬编码密钥。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ robert-hoffmann/ uncle-bob --skill ub-customizations安装后在 Claude Code 中输入/ub-customizations确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/bundles.mdhooks.mdmcp.mdprompt-engineering.mdskills.mdvalidation.md详细介绍
UB Customizations — VS Code Copilot 自定义项构建器
使命
在此技能的范围内,将用户引导至正确的 VS Code Copilot 工件,生成安全有效的技能、钩子或 MCP 配置,验证输出,并且仅在确实能改善工作流时推荐配套工件。
实现时应考虑目标宿主和工具的实际情况,但生成的自定义项应优先遵循当前官方指南,并选择具有向前兼容性的工件,而不是默认保留已弃用或旧版的自定义方式。
不适用场景
- 不要将此技能用于常规的仓库工作流规划;请交由
ub-workflow处理。 - 不要将此技能用于纯治理政策或证据问题;请交由
ub-governance处理。 - 不要将此技能用于维护可复用的跨技能编写约定;请交由
ub-authoring处理。 - 如果用户只需在现有技术栈中实现常规代码,而不需要技能、钩子或 MCP 工件,请勿使用此技能。
协作
- 将
ub-customizations作为构建技能、钩子和 MCP 配置的默认工作流。 - 如果任务涉及可复用的跨技能约定,例如路由质量描述、不适用边界、命名或共享编写结构,请使用
ub-authoring。 - 只有在自定义任务同时更改共享的可安装编写约定时,才同时使用两者。
工件选择矩阵
在生成任何内容之前,先对请求进行分类。
| 用户需求 | 主要工件 | 常见配套项 | 原因 |
|---|---|---|---|
| 含脚本/资源的可复用多步骤能力 | 技能 | 可选的 MCP 配置 | 按需执行的领域工作流,可附带参考资料、脚本或资源 |
| 确定性的生命周期自动化 | 钩子 | 可选的辅助脚本 | 在 Agent 生命周期节点保证执行;并非宽松的指导 |
| 外部系统、API、数据库、浏览器 | MCP 配置 | 可选的技能 | 通过工具/资源和经过身份验证的外部访问,提供真正的新能力 |
| 其他所有需求 | 不属于此处的范围 | 请直接查看其他自定义原语 | 指令、提示词文件、自定义 Agent 和插件打包不再是此技能的一等范围 |
经验法则
- 如果是包含参考资料、脚本或资源的可复用多步骤能力 → 技能。
- 如果必须在生命周期事件之前或之后确定性地运行 → 钩子。
- 如果需要工作区之外的真实外部能力、工具或数据 → MCP。
- 如果技能依赖外部系统,应将技能与 MCP 配套使用,而不是只让技能承担全部职责。
- 始终在此技能范围内选择满足需求的最小工件。
- 本地脚本足够时,不要使用 MCP。
- 如果技能才是真正合适的选择,不要用钩子提供宽泛的指导。
始终在此技能范围内选择满足需求的最小工件。
深度分类访谈
在生成任何内容之前,通过针对性问题访谈用户。如有 askQuestions,请使用它;对于任何多选问题,请遵循共享的 ub-authoring 选择题约定。若上下文中已明确答案,则跳过相应问题。
核心问题(始终询问)
- 你想构建或更改什么? 请描述所需的行为、工作流、自动化或集成。
- 这是可复用的按需工作流、确定性的生命周期操作,还是外部集成?
- 它是否需要在特定生命周期节点自动运行? 如果需要,哪些事件很重要?
- 它是否需要访问外部系统、API、数据库、浏览器或远程数据源?
- 它是否需要附带参考资料、脚本或资源,以指导重复使用?
条件式深入问题(相关时询问)
- 哪些生命周期事件很重要? 如果涉及 hook,请使用 VS Code hook 事件。
- 哪些外部系统、凭据、传输方式或信任边界很重要? 如果涉及 MCP,请使用此问题。
- 配套产物是否能显著改善工作流? 如果技能依赖外部系统,请推荐 Skill + MCP。
分类后,在生成内容前说明推荐方案、假设和理由。
平台与研究政策
- 将最新的稳定版 VS Code 和 GitHub Copilot 自定义指南作为产物选择、文件结构和功能建议的首选基准。
- 生成前先确认工作区和宿主环境的实际情况:存储库结构、现有自定义产物、目标宿主、可用工具和可移植性要求。
- 在确定目标环境中实际可以安全交付的内容时,将存储库和宿主环境的实际情况视为实施的黄金标准。
- 在提出重要或涉及平台的建议前,使用网络搜索,根据 VS Code 和 GitHub 官方文档核实最新的自定义指南。
- 如果官方指南与存储库或宿主环境的实际情况在重要建议上存在重大差异,请标记
OFFICIAL_CONFLICT,采用适合宿主环境的方案,并说明迁移或可移植性方面的影响。 - 如果官方来源彼此之间对重要建议存在分歧,也请标记
OFFICIAL_CONFLICT,而不是悄然掩盖分歧。 - 如果经过针对性研究后仍无法通过官方来源确认某项重要声明,请标记为
UNVERIFIED,或避免将其作为确定的指南来呈现。 - 仅在涉及重要、平台相关或存在争议的指南时说明冲突和不确定性;简单的产物生成无需说明。
套件建议
许多工作流需要多个产物协同工作。分类时请主动推荐以下套件:
| 套件 | 组成部分 | 推荐时机 |
|---|---|---|
| A | Skill + MCP | 工作流可重复使用,但依赖外部系统、经过身份验证的工具或远程数据 |
| B | Hook + 辅助脚本 | 确定性的生命周期自动化需要使用不适合放在内联 shell 中的逻辑 |
如需了解详细的套件指南和示例场景,请阅读 references/bundles.md。
生成工作流
按顺序执行以下步骤:
1. 分类
解析请求。使用上方的选择矩阵确定所需的产物类型。
2. 访谈
提出分类问题。与用户确认所选产物类型。
3. 规划
说明假设、文件树和理由。针对要生成的产物类型,加载相应参考资料:
| 产物类型 | 要加载的参考资料 |
|---|---|
| Skills | references/skills.md |
| Hooks | references/hooks.md |
| MCP 配置 | references/mcp.md |
有关自定义产物的编写指南,请阅读
references/prompt-engineering.md。
有关可复用的跨技能编写规范,请阅读
../ub-authoring/references/authoring-conventions.md。
在生成重要或涉及平台的自定义内容前,请比较官方指南、存储库实际情况和目标宿主环境的实际情况,并在适用时标记 OFFICIAL_CONFLICT 或 UNVERIFIED。
4. 生成
根据已加载的参考资料创建文件。采用以下默认原则:
- 共享编写规范:依赖
ub-authoring复用命名、路由和共享结构规范。 - 最小权限:仅开放必要的工具;尽量避免危险的默认设置。
- 不硬编码密钥:使用 MCP
inputs、环境变量或.env引用。 - 描述简洁:以触发和发现为目标,而非营销。
5. 验证
对每个生成的产物,按照 references/validation.md 中的验证清单进行检查。提供:
- 验证清单(逐项标注通过/失败)
- 冒烟测试提示词(如何测试产物)
- 可移植性说明(仅适用于 VS Code、兼容 Copilot,或广泛可移植)
6. 迭代
提交输出供审阅。根据用户反馈进行完善。修改后重新验证。
输出约定
对于此目录中非简单定制工作的输出,请将本节视为稳定的输出要求。
每次生成的响应都应包含以下结构:
- 建议 — 生成什么以及原因
- 事实来源说明 — 检测到的宿主环境、仓库中的实际产物,以及与最新官方指南之间的任何实质性差异
- 假设 — 所采用的默认设置和未解决的歧义
- 文件树 — 要创建或更新的目录和文件
- 生成的内容 — 按文件分别列出输出
- 验证清单 — 人工审阅事项和技术检查
- 冒烟测试提示词 — 如何验证产物有效
- 可移植性说明 — 哪些部分仅适用于 VS Code、兼容 Copilot,或可广泛移植
- 风险 / 后续事项 — 预览功能、密钥、信任及不受支持的宿主功能
- 冲突说明(如相关) — 使用
OFFICIAL_CONFLICT或UNVERIFIED,并简要说明及其对实现的影响
完成清单
- 产物选择应是满足请求所需的最小方案。
- 应说明并论证任何推荐的多产物组合。
- 生成的文件应符合所选定制类型的要求。
- 工具访问权限应遵循最小权限原则,而非默认广泛开放。
- 应明确说明验证和冒烟测试方法。
- 应指出仅适用于 VS Code 与可移植到 Agent-Skills 的行为之间的区别。
- 相关时应揭示密钥处理、信任或预览功能方面的风险。
- 相关时应明确披露任何实质性的官方来源冲突或未经验证的重要指南。
安全默认原则
- 尽可能默认采用只读规划。
- 为生成的钩子和 MCP 服务默认设置最小权限范围。
- 绝不硬编码 API 密钥、令牌或机密信息。
- 破坏性操作应由审批钩子或确认机制控制。
- 为钩子和 MCP 配置添加审阅警告。
- 推荐第三方技能或 MCP 服务时,应警告相关的信任与安全风险。
应避免的反模式
- 如果钩子或 MCP 配置才是合适的方案,不要默认选择技能。
- 既然现在有了
ub-authoring,就不要再将此技能视为跨目录编写规范的维护者。 - 不要生成庞大的单体文件——应使用渐进式披露并引用其他资料。
- 不要将钩子用于非强制性指导——钩子用于确定性的生命周期操作。
- 不要将 MCP 用于简单的本地任务——MCP 用于提供真正的外部能力。
- 不要默认授予广泛的工具访问权限或密钥访问权限——应遵循最小权限原则并使用明确的输入。
时效性审查
- 变动性:高
- 审查建议:修改相关内容时以及定期维护期间进行审查;条件允许时,以每季度一次为目标。
- 触发信号:VS Code Copilot 技能、钩子或 MCP 接口变更;Agent Skills 规范变更;MCP 架构变更;生命周期事件变更;或与官方 Agent Skills 规范相关的可移植性指南变更。
- 执行方式:仅提供建议;默认情况下,时效性警告不应阻止无关的自定义工作。
- 稳定核心:选择满足需求的最小化产物、遵循最小权限原则、明确验证方式,以及区分构建者与内容编写者的职责,这些仍是长期有效的指导原则。