模板创建器Skill template-creator

模板创建器技能用于在多代理编排框架中创建、验证和注册标准化模板,涵盖代理、技能、工作流、报告等类型。它确保系统一致性,处理创建后的目录更新、集成验证和安全合规,适用于AI智能体开发和自动化流程标准化。关键词:模板创建、AI代理、多代理框架、标准化、自动化、技能集成、安全合规、工作流编排。

AI智能体 0 次安装 0 次浏览 更新于 3/10/2026

名称: 模板创建器 描述: ‘创建和注册代理、技能、工作流、钩子和代码模式的模板。处理创建后的目录更新、消费技能集成和README注册。在创建新模板类型或标准化模式时使用。’ 版本: 2.1.0 类别: 创建器 模型: sonnet 调用方式: 双方 用户可调用: true 工具: [读取, 写入, 编辑, Bash, Glob, Grep]

第一阶段集成: 模板工具根据.claude/config/tool-manifest.json验证

模板应引用清单中的工具以确保一致性

单一真相源: .claude/config/tool-manifest.json

分配代理: [规划师, 架构师, 开发者] 触发器: [‘创建模板’, ‘新模板’, ‘模板用于’] 依赖项: [研究合成] 输出路径: [‘.claude/templates/’] 最佳实践:

  • 包含所有必填字段和占位符
  • 在模板中添加文档注释
  • 为跟踪更改而版本化模板
  • 包含验证示例
  • 使用一致的占位符格式
  • 每次创建后更新template-catalog.md
  • 清理生成模板占位符 错误处理: 优雅 流式处理: 支持 输出位置: .claude/templates/ 已验证: false 最后验证时间: 2026-02-19T05:29:09.098Z

模式: 认知/提示驱动 – 没有独立的实用脚本;通过代理上下文使用。

模板创建器技能

为多代理编排框架创建、验证和注册模板。

+==============================================================+
|  必填: 研究合成必须在此技能之前调用                          |
|  调用: Skill({ skill: "research-synthesis" })                |
|  未研究 = 信息不足的模板 = 被拒绝                            |
+==============================================================+
|                                                              |
|  不要直接写入模板文件!                                      |
|                                                              |
|  这包括:                                                     |
|    - 复制存档模板                                            |
|    - 从_archive/备份恢复                                    |
|    - "快速"手动创建                                          |
|                                                              |
|  为什么: 直接写入绕过必填的创建后步骤:                       |
|    1. 模板目录更新(模板不可发现)                          |
|    2. README.md更新(模板对消费者不可见)                    |
|    3. 消费技能更新(模板从未使用)                          |
|    4. CLAUDE.md更新(如果用户可调用)                        |
|                                                              |
|  结果: 模板存在于文件系统中但从未使用。                      |
|                                                              |
|  执行: unified-creator-guard.cjs阻止直接模板写入。覆盖: CREATOR_GUARD=off(危险)|
|                                                              |
|  始终正确调用此技能:                                         |
|    Skill({ skill: "template-creator" })                      |
|                                                              |
+==============================================================+

路由器更新要求(关键 - 不要跳过)

创建任何模板后,必须更新:

  1. .claude/templates/README.md - 添加模板条目
  2. .claude/context/artifacts/catalogs/template-catalog.md - 添加目录条目
  3. CLAUDE.md第2节或8.5节,如果模板是框架重要或用户可调用的
  4. 消费创建器技能,如果模板标准化了工件类型
  5. .claude/context/memory/learnings.md - 记录创建

验证:

grep "<模板名称>" .claude/templates/README.md || echo "错误: README未更新!"
grep "<模板名称>" .claude/context/artifacts/catalogs/template-catalog.md || echo "错误: 目录未更新!"

为什么: 不在目录中的模板对其他创建者不可见,永远不会被使用。


概述

模板确保多代理框架的一致性。此技能创建以下模板:

  • 代理定义 - 标准化的代理结构
  • 技能定义 - 可重用的能力模式
  • 工作流定义 - 多代理编排模式
  • 生成提示 - 代理生成提示模板,由spawn-template-resolver.cjs消费
  • 报告 - 报告文档模板
  • 代码风格指南 - 语言特定的编码标准
  • 通用文档 - ADR、规范、检查清单和其他框架文档

核心原则: 模板是系统的DNA。一致的模板产生一致、可预测的代理和技能。

何时使用

始终:

  • 创建将被复制的新类型工件
  • 标准化代码库中的现有模式
  • 添加新的模板类别
  • 用更好的模式改进现有模板

例外:

  • 永远不会被复制的一次性文件
  • 临时/可丢弃代码

模板类型

类型 位置 数量 目的 主要消费者
生成 .claude/templates/spawn/ 4 代理生成提示模板 路由器, 生成提示组装器
代理 .claude/templates/agents/ 2 代理定义样板 代理创建器
技能 .claude/templates/skills/ 1 技能定义样板 技能创建器
工作流 .claude/templates/workflows/ 1 工作流定义样板 工作流创建器
报告 .claude/templates/reports/ 5 报告文档模板 qa, 开发者, 研究员
代码风格 .claude/templates/code-styles/ 3 语言风格指南 开发者, 代码审查员
文档 .claude/templates/ (根目录) 8+ 通用文档模板 (ADR, 规范) 规划师, 架构师, qa

交叉引用: 查看.claude/context/artifacts/catalogs/template-catalog.md获取完整库存(28个活动模板)。对于生成模板解析逻辑,参见.claude/lib/spawn/spawn-template-resolver.cjs

模板安全合规

关键安全要求:

  1. 无秘密 (SEC-TC-007): 模板不能包括秘密、凭据、令牌或API密钥
  2. 路径安全: 所有模板引用必须使用相对路径(.claude/templates/...),不能使用绝对路径
  3. 无敏感元数据: 模板不能暴露内部系统路径或用户目录
  4. 无Windows保留名称: 模板名称不能使用nulconprnauxcom1-com9lpt1-lpt9
  5. 保留要求 (SEC-TMPL-006): 被SEC-TMPL-006标记的模板必须保持在指定位置
  6. 生成模板占位符安全 (SEC-TC-001):prompt:字段中有{{PLACEHOLDER}}令牌的生成模板必须引用prompt-factory.cjs中的sanitizeSubstitutionValue()进行值清理。未清理的占位符在生成提示中创建提示注入表面。不要将{{PLACEHOLDER}}令牌放置在用户提供输入直接替换而无清理的地方。
  7. 无Eval/Exec: 模板不能包含eval()exec()Function()或其他代码执行模式

执行: unified-creator-guard.cjs钩子阻止直接模板写入(默认: 阻止模式)。

铁律

无模板无占位符文档

每个{{PLACEHOLDER}}必须有相应的注释解释:

  1. 应替换的值
  2. 有效选项/格式
  3. 示例值

无例外:

  • 每个占位符都有文档
  • 每个必填字段都有标记
  • 每个可选字段都有默认值

工作流步骤

步骤0: 研究合成(必填 - 阻塞)

根据CLAUDE.md第3节要求,在模板创建前调用research-synthesis:

Skill({ skill: 'research-synthesis' });

模板研究重点:

  • 搜索现有模板: Glob: .claude/templates/**/*.md
  • 审查模板目录: 读取.claude/context/artifacts/catalogs/template-catalog.md
  • 检查类似模板是否已存在于生态系统中
  • 如果为新领域创建,通过WebSearch研究最佳实践模板结构

阻塞: 模板创建无法在没有研究合成调用的情况下进行。

步骤0.5: 伴侣检查

在继续创建前,运行生态系统伴侣检查:

  1. 使用.claude/lib/creators/companion-check.cjs中的companion-check.cjs
  2. 调用checkCompanions("template", "{模板名称}")以识别伴侣工件
  3. 审查伴侣检查清单 — 注意哪些必需/推荐伴侣缺失
  4. 计划在此工件完成后创建或验证缺失伴侣
  5. 在创建后集成笔记中包括伴侣发现

此步骤是信息性的(不阻止创建),但确保考虑完整的工件生态系统。

步骤1: 收集需求

分析请求:

  1. 模板类型: 哪个类别(生成、代理、技能、工作流、报告、代码风格、文档)?
  2. 目的: 此模板将用于什么?
  3. 必填字段: 哪些字段是强制的?
  4. 可选字段: 哪些字段是可选的,带有默认值?
  5. 验证规则: 应用哪些约束?
  6. 消费者: 哪些创建者/代理将使用此模板?

示例分析:

模板请求: "创建安全审计报告模板"
- 类型: 报告
- 目的: 标准化安全审计报告结构
- 必填: 发现、严重级别、建议
- 可选: 合规框架、修复时间线
- 规则: 严重性必须是CRITICAL|HIGH|MEDIUM|LOW
- 消费者: 安全架构师, qa

步骤2: 模板类型分类

分类模板以确定输出路径和验证规则:

类型 输出路径 关键字段 验证重点
生成 .claude/templates/spawn/ subagent_type, prompt, model, task_id TaskUpdate协议, allowed_tools, model
代理 .claude/templates/agents/ name, description, tools, skills, model, enforcement_hooks 前端完整性, 对齐部分
技能 .claude/templates/skills/ name, version, tools, invoked_by SKILL.md结构, 内存协议
工作流 .claude/templates/workflows/ phases, agents, dependencies 阶段排序, 代理引用
报告 .claude/templates/reports/ type, findings, recommendations 发现严重性, 证据要求
代码风格 .claude/templates/code-styles/ language, conventions, examples 约定清晰度, 示例质量
文档 .claude/templates/ (根目录) 根据模板类型变化 部分完整性

步骤3: 名称验证 (SEC-TC-003)

在构建输出路径前,验证模板名称。

模板名称必须匹配此正则表达式:

/^[a-z0-9][a-z0-9-]*[a-z0-9]$/

验证规则:

  • 仅小写字母、数字和连字符
  • 必须以字母或数字开头和结尾(不能是连字符)
  • 无路径分隔符(/\)、无..、无特殊字符
  • 无Windows保留名称(nulconprnauxcom1-com9lpt1-lpt9

拒绝示例:

拒绝: "../hooks/malicious-hook"  (路径遍历)
拒绝: "My Template"             (空格, 大写)
拒绝: "-leading-hyphen"         (以连字符开头)
拒绝: "template_with_underscores" (不允许下划线)
接受: "security-audit-report"   (有效烤肉串大小写)
接受: "agent-template-v2"       (有效带版本)

步骤4: 确定输出路径

基于步骤2的分类,构建输出路径:

.claude/templates/<类别>/<已验证模板名称>.md

其中<类别>是: spawn/agents/skills/workflows/reports/code-styles/或根级别(无类别子目录)。

验证解析路径:

  • 路径必须以.claude/templates/开头
  • 路径在规范化后不能包含..
  • 路径必须以.md结尾

步骤5: 内容设计

设计模板内容,遵循这些标准:

占位符格式标准

占位符类型 格式 示例
必填字段 {{FIELD_NAME}} {{AGENT_NAME}}
可选字段 {{FIELD_NAME:default}} {{MODEL:sonnet}}
多行 {{FIELD_NAME_BLOCK}} {{DESCRIPTION_BLOCK}}
列表项 {{ITEM_N}} {{TOOL_1}}, {{TOOL_2}}

模板结构

---
# YAML前端,包含所有必填字段
名称: { { 名称 } }
描述: { { 描述 } }
# ... 其他字段带文档注释
---

# {{显示名称}}

## 创建后检查清单(阻塞 - 不要跳过)

<!-- 始终包括阻塞检查清单 -->

## 概述

{{概述描述}}

## 部分

<!-- 领域特定部分 -->

## 内存协议(必填)

<!-- 始终包括内存协议 -->

生成模板安全清单 (SEC-TC-001)

如果创建生成模板,必须验证:

  • [ ] 无{{PLACEHOLDER}}令牌在prompt:字段中,接受未清理的用户输入
  • [ ] 文档中包括对prompt-factory.cjssanitizeSubstitutionValue()的引用
  • [ ] 生成提示体中存在TaskUpdate协议
  • [ ] allowed_tools数组不向非编排器代理授予Task工具
  • [ ] 模板体中无提示覆盖模式(IGNORE PREVIOUSSYSTEM:等)
  • [ ] 模板大小小于50KB

文档注释

为每个占位符添加内联文档:

---
# [必填] 唯一标识符,小写带连字符
名称: { { 代理名称 } }

# [必填] 单行,描述它做什么以及何时使用
# 示例: "根据苹果HIG审查移动应用UX。用于iOS UX审计。"
描述: { { 描述 } }

# [可选] 默认: sonnet。选项: haiku, sonnet, opus
模型: { { 模型:sonnet } }
---

步骤6: 写入模板文件

写入到步骤4确定的已验证输出路径:

写入: .claude/templates/<类别>/<模板名称>.md

步骤7: 验证模板结构(阻塞)

在继续注册前,验证所有要求:

结构验证:

[ ] YAML前端是有效语法
[ ] 所有必填字段都有占位符
[ ] 所有占位符遵循{{UPPER_CASE}}命名约定
[ ] 所有占位符都有文档注释
[ ] 创建后检查清单部分存在
[ ] 内存协议部分存在
[ ] 包含验证命令
[ ] 提供示例值(如有帮助)

安全验证 (SEC-TC-007):

[ ] 模板内容中无秘密、凭据或API密钥
[ ] 无绝对文件路径(使用从PROJECT_ROOT的相对路径)
[ ] 无eval()、exec()、Function()或代码执行模式
[ ] 无提示覆盖模式("IGNORE PREVIOUS"、"SYSTEM:"等)
[ ] 模板大小小于50KB

验证命令:

# 检查无来自模板创建器本身的未解析占位符
grep "{{" <创建文件> | head -5  # 应仅显示预期占位符

# 检查YAML前端存在
head -50 <文件> | grep -E "^---$" | wc -l  # 应为2

# 检查必需部分存在
grep -E "^## 内存协议" <文件> || echo "错误: 缺少内存协议!"

阻塞: 模板必须通过所有验证检查才能继续。

步骤8: 更新模板目录(必填 - 阻塞)

更新模板目录以确保新模板可发现。

  1. 读取当前目录:

    cat .claude/context/artifacts/catalogs/template-catalog.md
    
  2. 基于类型确定模板类别:

    • 生成 (spawn/), 创建器 (agents/skills/workflows/), 文档 (根目录), 报告 (reports/), 代码风格 (code-styles/)
  3. 在正确类别部分添加模板条目:

    ### <模板名称>.md
    
    | 字段               | 值                                               |
    | ------------------ | ------------------------------------------------- |
    | **路径**           | `.claude/templates/<类别>/<模板名称>.md`         |
    | **类别**           | <类别> 模板                                       |
    | **状态**           | 活动                                             |
    | **由代理使用**     | <代理列表>                                        |
    | **由技能使用**     | <技能列表>                                        |
    
    **目的:** <目的描述>
    
  4. 更新模板类别摘要表(总计行)

  5. 验证更新:

    grep "<模板名称>" .claude/context/artifacts/catalogs/template-catalog.md || echo "错误: 目录未更新!"
    

重要: 当构建任何JSON注册条目时使用JSON.stringify() (SEC-TC-004)。永远不要手动连接字符串来构建JSON。location字段必须已验证以.claude/templates/开头且无..段。

阻塞: 模板必须出现在目录中。未目录化的模板不可见。

步骤9: 更新模板README(必填 - 阻塞)

更新目录后,更新.claude/templates/README.md:

  1. 添加到适当部分(或创建新部分)
  2. 文档使用说明
  3. 添加到快速参考表

条目格式:

### {{模板类型}} 模板 (`{{目录}}/`)

当{{使用案例}}时使用。

**文件:** `{{目录}}/{{模板名称}}.md`

**用法:**

1. 复制模板到`{{目标路径}}`
2. 替换所有`{{占位符}}`值
3. {{额外步骤}}

验证:

grep "<模板名称>" .claude/templates/README.md || echo "错误: README未更新 - 阻塞!"

阻塞: README必须包含模板条目。

步骤10: 更新CLAUDE.md(条件性 - 阻塞)

如果模板是框架重要或用户可调用的:

  1. 检查模板是否需要CLAUDE.md条目:

    • 是新生成模板? -> 更新第2节(生成模板)
    • 是新创建器模板? -> 更新相关创建器部分
    • 是用户可调用模板? -> 更新第8.5节
  2. 如果是,添加条目:

    **{模板名称}:** `.claude/templates/{类别}/{名称}.md`
    
  3. 验证:

    grep "<模板名称>" .claude/CLAUDE.md || echo "警告: 模板不在CLAUDE.md中(如果仅内部使用可能OK)"
    

注意: 并非所有模板都需要CLAUDE.md条目。只有框架重要的模板(生成模板、创建器模板)需要此步骤。

步骤11: 分配消费代理

模板存在以供创建者和代理消费。创建后:

  1. 基于模板类型识别消费者:

    • 代理模板 -> 代理创建器技能应引用
    • 技能模板 -> 技能创建器技能应引用
    • 工作流模板 -> 工作流创建器技能应引用
    • 报告模板 -> 相关代理(qa、开发者等)
    • 生成模板 -> 路由器文档, spawn-template-resolver
    • 代码风格模板 -> 开发者, 代码审查员
  2. 更新消费技能/代理以引用模板:

    **可用模板:**
    
    - 查看 `.claude/templates/<类别>/<模板名称>.md` 获取标准化<类型>模板
    
  3. 验证至少一个消费者引用模板:

    grep -r "<模板名称>" .claude/skills/ .claude/agents/ || echo "警告: 无消费者引用模板"
    

为什么: 没有消费者的模板一诞生就死亡。每个模板必须至少被一个消费技能或代理引用。

步骤12: 集成验证(阻塞 - 不要跳过)

此步骤验证工件是否正确集成到生态系统中。

在调用TaskUpdate({ status: "completed" })之前,运行创建后验证:

  1. 运行集成检查清单:

    node .claude/tools/cli/validate-integration.cjs .claude/templates/<类别>/<模板名称>.md
    
  2. 验证退出代码为0(所有检查通过)

  3. 如果退出代码为1(一个或多个检查失败):

    • 读取错误输出以获取特定失败
    • 修复每个失败:
      • 缺少README条目 -> 添加到.claude/templates/README.md
      • 缺少目录条目 -> 添加到template-catalog.md
      • 缺少内存更新 -> 更新learnings.md
    • 重新运行验证直到退出代码为0
  4. 仅在验证通过时继续

此步骤是阻塞的。 不要标记任务完成,直到验证通过。

为什么这重要: Party Mode事件显示,如果集成步骤被错过,完全实现的工件可能对路由器不可见。此验证确保无“不可见工件”模式。

参考: .claude/workflows/core/post-creation-validation.md

步骤13: 完成检查清单(阻塞)

所有项目必须在模板创建完成前通过:

[ ] 研究合成技能调用(步骤0)
[ ] 存在检查通过(无重复模板)
[ ] 模板名称验证通过 /^[a-z0-9][a-z0-9-]*[a-z0-9]$/ (步骤3)
[ ] 模板文件创建于 .claude/templates/<类别>/<名称>.md
[ ] 所有占位符使用 {{占位符名称}} 格式
[ ] 所有占位符都有文档注释
[ ] 模板中存在创建后检查清单部分
[ ] 模板中存在内存协议部分
[ ] 无硬编码值(所有通过占位符可配置)
[ ] 模板中无秘密、凭据或绝对路径 (SEC-TC-007)
[ ] 模板中无eval()或代码执行模式
[ ] template-catalog.md更新并包含结构化条目(步骤8)
[ ] .claude/templates/README.md更新并包含模板条目(步骤9)
[ ] CLAUDE.md更新,如果模板是框架重要的(步骤10)
[ ] 至少一个消费技能/代理引用模板(步骤11)
[ ] 集成验证通过(步骤12)
[ ] 模板至少与一个真实使用测试
[ ] 内存文件更新 (learnings.md)

阻塞: 如果任何项目失败,模板创建不完整。在继续前修复所有问题。


架构合规

文件放置 (ADR-076)

  • 模板: .claude/templates/{类别}/ (生成、代理、技能、工作流、报告、代码风格)
  • 存档模板: .claude/templates/_archive/
  • 模板目录: .claude/context/artifacts/catalogs/template-catalog.md
  • 测试: tests/ (不在.claude/中)

文档引用 (CLAUDE.md v2.2.1)

  • 引用文件使用@符号: @TOOL_REFERENCE.md, @SKILL_CATALOG_TABLE.md
  • 位于: .claude/docs/@*.md
  • 参见: CLAUDE.md第2节(生成模板)

Shell安全 (ADR-077)

  • 生成模板必须包括: cd "$PROJECT_ROOT" || exit 1 用于后台任务
  • 环境变量控制验证器(阻止/警告/关闭模式)
  • 参见: .claude/docs/SHELL-SECURITY-GUIDE.md
  • 应用于: 所有生成模板、后台任务模板

安全合规 (ADR-085, ADR-086, SEC-TMPL-006)

  • 模板不能包括硬编码秘密、凭据或API密钥
  • 模板必须使用相对路径(.claude/templates/...),不能使用绝对路径
  • 模板不能暴露内部系统路径或用户目录
  • 保留要求: security-design-checklist.md和error-recovery-template.md必须保持在指定位置
  • 生成模板占位符清理: 引用prompt-factory.cjs中的sanitizeSubstitutionValue()

最近ADRs

  • ADR-075: 路由器配置感知模型选择
  • ADR-076: 文件放置架构重新设计
  • ADR-077: Shell命令安全架构
  • ADR-085: 模板系统大修(生成解析器 + 死模板清理)
  • ADR-086: 模板创建器大修至v2.1创建器标准

模板创建的钢铁法则

这些规则不可违反。违反它们导致整个框架不一致。

1. 无模板无占位符文档
   - 每个{{占位符}}必须有内联注释
   - 注释解释有效值和示例

2. 无模板无创建后检查清单
   - 用户必须知道使用模板后做什么
   - 阻塞步骤防止不完整工件

3. 无模板无内存协议
   - 所有模板必须包括内存协议部分
   - 确保从模板创建的工件遵循内存规则

4. 无模板无README更新
   - 模板README必须文档新模板
   - 未文档化的模板不可见

5. 无占位符无命名约定
   - 使用{{大写带下划线}}
   - 永远不要使用小写或混合大小写

6. 无可选字段无默认值
   - 格式: {{字段:默认值}}
   - 使模板无需完全定制即可使用

7. 无模板无验证命令
   - 包括验证创建工件的命令
   - 用户可以验证他们的工作正确

8. 无代理模板无对齐部分
   - 代理模板必须包括{{执行钩子}}占位符部分
   - 代理模板必须包括{{相关工作流}}占位符部分
   - 代理模板必须包括输出标准块,引用workspace-conventions
   - 参考: @HOOK_AGENT_MAP.md和@WORKFLOW_AGENT_MAP.md获取原型集

9. 无模板无目录条目
   - 每个模板必须在template-catalog.md中注册
   - 未目录化的模板对系统不可见
   - 验证: grep "<模板名称>" .claude/context/artifacts/catalogs/template-catalog.md

10. 无模板无消费技能/代理
    - 每个模板必须被至少一个消费技能或代理引用
    - 没有消费者的模板一诞生就死亡
    - 验证: grep -r "<模板名称>" .claude/skills/ .claude/agents/

11. 无创建无研究合成
    - 根据CLAUDE.md第3节,研究合成必须在任何创建器之前调用
    - 模板创建也不例外
    - 调用: Skill({ skill: 'research-synthesis' })

参考模板

使用.claude/templates/spawn/universal-agent-spawn.md作为规范参考模板。

在最终化任何模板前,比较:

  • [ ] 有清晰的占位符文档
  • [ ] 占位符是大写带下划线
  • [ ] 有使用示例部分
  • [ ] 有集成笔记
  • [ ] 有创建后检查清单
  • [ ] 有内存协议

模板最佳实践

占位符标准

实践
命名 {{代理名称}} {{名称}}, {代理名称}
必填字段 始终存在 有时省略
可选字段 {{字段:默认}} 无默认指示器
文档 内联注释 单独的文档文件
示例 在注释中 未提供

结构标准

  1. YAML前端优先

    • 所有机器可读元数据
    • 解释每个字段的注释
  2. 创建后检查清单第二

    • 使用模板后的阻塞步骤
    • 验证命令
  3. 内容部分

    • 遵循类型的现有模式
    • 包括所有必需部分
  4. 内存协议最后

    • 所有模板的标准格式
    • 始终存在

验证示例

在模板中包括验证示例:

## 验证

替换占位符后,验证:

```bash
# 检查YAML有效
head -50 <文件> | grep -E "^---$" | wc -l  # 应为2

# 检查无未解析占位符
grep "{{" <文件> && echo "错误: 未解析占位符!"

# 检查必需部分存在
grep -E "^## 内存协议" <文件> || echo "错误: 缺少内存协议!"
```

系统影响分析(必填)

创建模板后,完成此7点分析:

[模板创建器] 系统影响分析为: <模板名称>

1. README更新(必填 - 步骤9)
   - 添加到.claude/templates/README.md
   - 文档使用说明
   - 快速参考表更新

2. 目录更新(必填 - 步骤8)
   - 添加到.claude/context/artifacts/catalogs/template-catalog.md
   - 文档类别、状态、代理、技能
   - 明确说明目的

3. CLAUDE.MD更新(条件性 - 步骤10)
   - 模板是框架重要的吗?如果是,添加到CLAUDE.md
   - 生成模板 -> 第2节
   - 创建器模板 -> 相关创建器部分
   - 用户可调用 -> 第8.5节

4. 消费者分配(必填 - 步骤11)
   - 哪些技能/代理消费此模板?
   - 模板引用是否添加到消费创建器技能?
   - 用grep验证跨skills/和agents/

5. 相关模板检查
   - 此模板是否取代现有模板?
   - 有需要交叉引用的相关模板吗?
   - 应更新或删除存档模板吗?

6. 安全合规 (SEC-TMPL-006, SEC-TC-001, SEC-TC-007)
   - 无秘密、凭据或绝对路径
   - 仅相对路径
   - 尊重保留要求
   - 生成模板占位符清理

7. 内存更新
   - 在learnings.md中记录创建
   - 在decisions.md中文档任何决策

工作流集成

此技能是统一工件生命周期的一部分。对于完整多代理编排:

路由器决策: .claude/workflows/core/router-decision.md

  • 路由器如何发现和调用此技能的工件

工件生命周期: .claude/workflows/core/skill-lifecycle.md

  • 发现、创建、更新、废弃阶段
  • 版本管理和注册更新
  • CLAUDE.md集成要求

外部集成: .claude/workflows/core/external-integration.md

  • 安全集成外部工件
  • 安全审查和验证阶段

生成模板解析器: .claude/lib/spawn/spawn-template-resolver.cjs

  • 生成操作的程序化模板选择
  • 模板评分和回退逻辑

交叉引用: 创建器生态系统

此技能是创建器生态系统的一部分。需要时使用伴侣创建器:

创建器 何时使用 调用
代理创建器 模板需要代理集成 Skill({ skill: 'agent-creator' })
技能创建器 模板需要技能集成 Skill({ skill: 'skill-creator' })
工作流创建器 模板需要工作流模式 Skill({ skill: 'workflow-creator' })
模式创建器 模板需要JSON模式 Skill({ skill: 'schema-creator' })
钩子创建器 模板需要钩子 Skill({ skill: 'hook-creator' })

集成工作流

创建需要额外工件的模板后:

// 1. 为新钩子类型创建模板
// 2. 需要使用模板创建示例钩子
Skill({ skill: 'hook-creator' });

// 3. 为新代理类别创建模板
// 4. 需要更新代理创建器以识别新类别
// 编辑.claude/skills/agent-creator/SKILL.md以添加类别

生态系统集成的创建后检查清单

模板完全创建并验证后:

[ ] 模板需要伴侣技能吗? -> 使用技能创建器
[ ] 模板需要伴侣工作流吗? -> 使用工作流创建器
[ ] 模板是否取代现有模板? -> 存档旧的
[ ] 模板应成为企业工作流的一部分吗? -> 更新第8.6节
[ ] 模板与生成模板解析器交互吗? -> 更新解析器配置

文件放置和标准

输出位置规则

此技能输出到: .claude/templates/

按类型的子目录:

  • spawn/ - 代理生成提示模板 (4模板)
  • agents/ - 代理定义模板 (2模板)
  • skills/ - 技能定义模板 (1模板)
  • workflows/ - 工作流定义模板 (1模板)
  • reports/ - 报告文档模板 (5模板)
  • code-styles/ - 语言风格指南 (3模板)
  • 根级别 - 通用文档模板 (8+模板)
  • _archive/ - 存档/废弃模板 (14模板)

强制引用

  • 文件放置: 参见.claude/docs/FILE_PLACEMENT_RULES.md
  • 开发者工作流: 参见.claude/docs/DEVELOPER_WORKFLOW.md
  • 工件命名: 参见.claude/docs/ARTIFACT_NAMING.md
  • 工作区约定: 参见.claude/rules/workspace-conventions.md (输出放置、命名、来源)

执行

文件放置由file-placement-guard.cjs钩子执行。 无效放置将在生产模式中被阻止。


分配代理

此技能通常由以下调用:

代理 角色 分配原因
规划师 规划标准化 为新模式创建模板
架构师 架构模式 为架构工件创建模板
开发者 代码模式 创建代码脚手架模板

调用此技能:

Skill({ skill: 'template-creator' });

示例

示例1: 创建报告模板

请求: “创建安全审计报告模板”

过程:

  1. 研究: 调用research-synthesis,审查.claude/templates/reports/中的现有报告模板
  2. 收集: 分析报告类型、安全重点、审计发现结构
  3. 验证名称: security-audit-report-template匹配/^[a-z0-9][a-z0-9-]*[a-z0-9]$/
  4. 设计: 安全审计报告的结构
  5. 创建: .claude/templates/reports/security-audit-report-template.md
---
# [必填] 报告标识符,小写带连字符
名称: { { 报告名称 } }

# [必填] 此报告文档什么
描述: { { 报告描述 } }

# [必填] 报告类型: 审计、实现、研究、反思、计划
类型: 审计

# [必填] 发现的严重级别
严重级别: [关键, 高, 中, 低]
---

# {{报告显示名称}} 报告

## 创建后检查清单(阻塞)

创建此报告后:

- [ ] 所有发现按严重性分类
- [ ] 建议可操作且具体
- [ ] 所有声明提供证据

## 发现

### 关键

{{关键发现}}

### 高

{{高发现}}

## 建议

{{建议}}

## 内存协议(必填)

**开始前:** 读取`.claude/context/memory/learnings.md`
**完成后:** 记录模式到learnings.md
  1. 更新目录: 添加到template-catalog.md下的报告模板
  2. 更新README: 添加到模板README的报告部分
  3. 分配消费者: 更新安全架构师和qa代理引用
  4. 更新内存: 记录在learnings.md中

示例2: 创建生成模板

请求: “创建专门代理生成提示模板”

过程:

  1. 研究: 调用research-synthesis,审查.claude/templates/spawn/universal-agent-spawn.md
  2. 收集: 分析生成模式、专门与通用
  3. 验证名称: specialized-agent-spawn匹配名称正则表达式
  4. 设计: 专门生成提示的结构,带安全考虑 (SEC-TC-001)
  5. 创建: .claude/templates/spawn/specialized-agent-spawn.md
---
# [必填] 模板标识符
名称: { { 模板名称 } }

# [必填] 此模板生成的代理类型
代理类型: { { 代理类型 } }

# [必填] 推荐模型: haiku, sonnet, opus
模型: { { 模型:sonnet } }

# [可选] 任务复杂性级别
复杂性: { { 复杂性:中 } }
---

# {{代理显示名称}} 生成模板

## 安全通知 (SEC-TC-001)

代入`prompt:`字段的占位符值必须使用`prompt-factory.cjs`中的`sanitizeSubstitutionValue()`清理。
这防止通过用户提供任务描述的提示注入。

## 用法

当生成{{代理类型}}代理时使用此模板。

## 生成模式

任务({
子代理类型: '{{代理类型}}',
模型: '{{模型}}',
任务ID: '{{任务ID}}',
提示: '你是{{代理身份}}。 ... TaskUpdate协议 ...'
});

## 验证

使用此模板后:

- [ ] task_id唯一且匹配提示
- [ ] 模型匹配代理复杂性要求
- [ ] TaskUpdate协议包括在提示中
- [ ] 成功标准明确定义
- [ ] 提示字段中无未清理用户输入
  1. 更新目录: 添加到template-catalog.md下的生成模板
  2. 更新README: 添加到模板README的生成部分
  3. 更新CLAUDE.md: 如果框架标准,添加到第2节(生成模板)
  4. 分配消费者: 更新路由器和spawn-template-resolver引用
  5. 更新内存: 记录在learnings.md中

故障排除

问题: 占位符未渲染

症状: {{占位符}}出现在最终文件中

解决方案:

  • 检查占位符格式(双大括号,大写)
  • 确保用户替换了所有占位符
  • 添加验证命令以捕获未替换的

问题: 模板不可发现

症状: 模板存在但创建者未找到

解决方案:

  • 验证template-catalog.md已更新(步骤8)
  • 验证README.md已更新(步骤9)
  • 检查文件在正确目录中
  • 运行: grep "<模板名称>" .claude/context/artifacts/catalogs/template-catalog.md

问题: 不一致模板结构

症状: 不同模板有不同格式

解决方案:

  • 创建前审查现有模板
  • 使用此技能的模式
  • 与参考模板比较 (universal-agent-spawn.md)
  • 运行跨模板一致性检查

问题: 生成模板注入风险

症状: 用户提供内容在生成模板占位符中可能操纵代理行为

解决方案:

  • 审查此技能中的SEC-TC-001指南
  • 确保引用sanitizeSubstitutionValue()
  • 不要将{{占位符}}令牌直接放置在prompt:字段中用于用户输入
  • 使用结构化任务描述,将用户内容与系统指令分开

问题: 创建器守卫阻止模板写入

症状: unified-creator-guard.cjs阻止你的模板写入

解决方案:

  • 确保你正确调用此技能: Skill({ skill: 'template-creator' })
  • 检查创建器状态活跃(3分钟TTL)
  • 如果调试: CREATOR_GUARD=warn (临时,之后恢复为block)
  • 永远不要在production中使用CREATOR_GUARD=off

内存协议(必填)

开始前:

cat .claude/context/memory/learnings.md

检查:

  • 先前创建的模板
  • 已知模板模式
  • 用户对模板行为的偏好

完成后:

  • 新模板模式 -> .claude/context/memory/learnings.md
  • 发现问题 -> .claude/context/memory/issues.md
  • 做出决策 -> .claude/context/memory/decisions.md

假设中断: 如果不在内存中,它就没发生。


创建后集成

创建完成后,运行生态系统集成检查清单:

  1. .claude/lib/creators/creator-commons.cjs调用runIntegrationChecklist(artifactType, artifactPath)
  2. .claude/lib/creators/creator-commons.cjs调用queueCrossCreatorReview(artifactType, artifactPath)
  3. 审查影响报告 — 在标记任务完成前解决所有mustHave
  4. 记录任何shouldHave项为后续任务

集成验证:

生态系统对齐合同(必填)

此创建器技能是协调创建器生态系统的一部分。这里创建的任何工件必须对齐并验证相关创建器:

  • agent-creator用于所有权和执行路径
  • skill-creator用于能力打包和分配
  • tool-creator用于可执行自动化表面
  • hook-creator用于执行和护栏
  • rule-creatorsemgrep-rule-creator用于策略和静态检查
  • template-creator用于标准化脚手架
  • workflow-creator用于编排和阶段门控
  • command-creator用于用户/操作员命令UX

交叉创建器握手(必需)

完成前,验证所有相关握手:

  1. 工件路由存在于.claude/CLAUDE.md和相关路由文档中。
  2. 发现/注册条目已更新(目录/索引/注册适用)。
  3. 伴侣工件已创建或明确豁免并说明原因。
  4. validate-integration.cjs对创建的工件通过。
  5. 技能索引在技能元数据更改时重新生成。

研究门(Exa优先,arXiv回退)

对于新模式、模板或工作流,研究是强制的:

  1. 首先使用Exa获取实现和生态系统模式。
  2. 如果Exa不足,使用WebFetch加arXiv引用。
  3. 在工件引用/文档中记录决策、约束和非目标。
  4. 保持更新最小化,避免过度工程。

回归安全交付

  • 对行为更改遵循严格的RED -> GREEN -> REFACTOR。
  • 为更改模块运行针对性测试。
  • 对更改文件运行lint/format。
  • 保持提交按关注点划分(逻辑/文档/生成工件)。