name: 工件更新器 description: 更新现有工件(技能、代理、钩子、工作流、模板、模式、命令、规则、工具)并进行适当验证和集成 version: 1.0.0 model: sonnet invoked_by: both user_invocable: true tools: [Read, Write, Edit, Bash] args: ‘–type <artifact-type> --path <artifact-path> [–changes <description>]’ best_practices:
- 始终在更新前验证工件存在
- 运行更新后集成检查清单
- 为破坏性更改排队跨创建者审查 error_handling: graceful streaming: supported verified: false lastVerifiedAt: 2026-02-19T05:29:09.098Z
工件更新器
+======================================================================+
| 警告:工件更新工作流是强制性的 - 请先阅读此说明 |
+======================================================================+
| |
| 此技能通过适当验证更新现有工件: |
| 1. 检测工件类型(技能/代理/钩子/工作流等) |
| 2. 加载并验证现有工件 |
| 3. 应用请求的更改 |
| 4. 运行更新后集成检查清单 |
| 5. 如果需要,排队跨创建者审查 |
| |
| 不要直接编辑工件文件 - 请使用此技能。 |
| |
+======================================================================+
目的
统一的更新工作流,用于更新所有创建者类型的现有工件。取代旧的更新器技能(代理更新器、技能更新器、钩子更新器、工作流更新器、模式更新器)。
何时使用
- 更新现有技能、代理、钩子、工作流、模板、模式、命令、规则或工具
- 修改工件前置元数据
- 向现有工件添加新部分
- 弃用或归档工件
工作流
步骤 1:检测工件类型
根据文件路径确定正在更新的工件类型:
| 路径模式 | 工件类型 | 创建者技能 |
|---|---|---|
.claude/skills/**/SKILL.md |
skill | skill-creator |
.claude/agents/**/*.md |
agent | agent-creator |
.claude/hooks/**/*.cjs |
hook | hook-creator |
.claude/workflows/**/*.md |
workflow | workflow-creator |
.claude/templates/**/* |
template | template-creator |
.claude/schemas/**/*.json |
schema | schema-creator |
.claude/commands/*.md |
command | command-creator |
.claude/rules/*.md |
rule | rule-creator |
.claude/tools/**/*.{cjs,mjs} |
tool | tool-creator |
步骤 2:加载并验证现有工件
const { readFile } = require('fs/promises');
const path = require('path');
async function loadArtifact(artifactPath) {
// 验证工件存在
const content = await readFile(artifactPath, 'utf-8');
// 解析前置元数据(用于技能、代理、命令、模式)
// 验证结构
return { content, metadata };
}
步骤 3:应用更改
基于更改类型:
前置元数据更新:
// 解析 YAML 前置元数据
// 更新指定字段
// 保留现有字段
// 用更新的前置元数据重写
内容更新:
// 加载完整内容
// 应用请求的修改
// 保留结构和格式
// 写回
弃用:
// 向前置元数据添加弃用通知
// 向内容添加弃用警告
// 不要删除文件(会破坏引用)
步骤 4:运行更新后集成检查清单
const { runIntegrationChecklist } = require('.claude/lib/creator-commons.cjs');
// 为此工件类型运行集成检查清单
const result = await runIntegrationChecklist(artifactType, artifactPath);
// 检查失败
if (result.mustHave.some(item => !item.passed)) {
console.error(
'更新后集成失败:',
result.mustHave.filter(i => !i.passed)
);
}
集成检查清单验证:
- 目录/注册条目仍然存在且有效
- 如果需要,更新 CLAUDE.md 引用
- 代理分配仍然有效
- 未引入损坏的交叉引用
步骤 5:排队跨创建者审查
const { queueCrossCreatorReview } = require('.claude/lib/creator-commons.cjs');
// 如果检测到破坏性更改,排队审查
if (isBreakingChange(changes)) {
await queueCrossCreatorReview(artifactType, artifactPath, {
changeType: 'update',
description: changeDescription,
breakingChanges: true,
});
}
破坏性更改检测
需要跨创建者审查的更改:
技能:
- 移除或重命名技能
- 更改技能前置元数据
name字段 - 移除必需参数
代理:
- 更改代理路由关键字
- 修改代理类型(核心/领域/专用)
- 移除分配的技能
钩子:
- 更改钩子生命周期(PreToolUse → PostToolUse)
- 修改验证逻辑(阻塞 → 非阻塞)
- 移除环境变量支持
工作流:
- 移除工作流阶段
- 更改阶段依赖关系
- 修改质量门
模式:
- 移除必需字段
- 更改字段类型
- 使字段非空
使用示例
更新技能前置元数据
Skill({
skill: 'artifact-updater',
args: '--type skill --path .claude/skills/tdd/SKILL.md --changes "添加新工具:TaskUpdate"'
})
更新代理描述
Skill({
skill: 'artifact-updater',
args: '--type agent --path .claude/agents/core/developer.md --changes "添加 TDD 工作流引用"'
})
弃用钩子
Skill({
skill: 'artifact-updater',
args: '--type hook --path .claude/hooks/old-hook.cjs --changes "弃用,改用 new-hook.cjs"'
})
相关技能
skill-creator- 创建新技能agent-creator- 创建新代理hook-creator- 创建新钩子workflow-creator- 创建新工作流artifact-integrator- 深度集成分析
内存协议(强制性)
开始前:
读取 .claude/context/memory/learnings.md
完成后:
- 新更新模式 →
.claude/context/memory/learnings.md - 更新问题发现 →
.claude/context/memory/issues.md - 破坏性更改决策 →
.claude/context/memory/decisions.md
假设中断:如果不在内存中,它就没发生。