mcpField
T
template-creator

template-creator

github.com/oimiragieoAgent 工作流4465 次安装17 周前更新
代码仓库

关于 template-creator

template-creator 是用于多 Agent 编排框架的技能,可创建、验证并登记模板,覆盖 Agent、技能、工作流、报告和文档等类型。它要求先进行研究,并强调占位符说明与安全约束。

主要功能

  1. 01创建多种类型的框架模板
  2. 02验证模板结构与命名
  3. 03登记模板并更新目录
  4. 04检查占位符文档与安全要求

适用场景

  1. 01为新型 Agent 或技能制定模板
  2. 02标准化重复使用的工作流或报告
  3. 03扩充模板类别并维护框架目录

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/oimiragieo/agent-studio --skill template-creator

安装后在 Claude Code 中输入/template-creator确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

commands/
template-creator.md
hooks/
post-execute.cjs
pre-execute.cjs
references/
research-requirements.md
rules/
template-creator.md
schemas/
input.schema.json
output.schema.json
scripts/
main.cjs
templates/
implementation-template.md

详细介绍

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

模板创建器技能

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

+==============================================================+
|  MANDATORY: Research-Synthesis MUST be invoked BEFORE         |
|  this skill. Invoke: Skill({ skill: "research-synthesis" })   |
|  FAILURE TO RESEARCH = UNINFORMED TEMPLATE = REJECTED         |
+==============================================================+
|                                                               |
|  DO NOT WRITE TEMPLATE FILES DIRECTLY!                        |
|                                                               |
|  This includes:                                               |
|    - Copying archived templates                               |
|    - Restoring from _archive/ backup                          |
|    - "Quick" manual creation                                  |
|                                                               |
|  WHY: Direct writes bypass MANDATORY post-creation steps:     |
|    1. Template catalog update (template NOT discoverable)     |
|    2. README.md update (template INVISIBLE to consumers)      |
|    3. Consuming skill update (template NEVER used)            |
|    4. CLAUDE.md update (if user-invocable)                    |
|                                                               |
|  RESULT: Template EXISTS in filesystem but is NEVER USED.     |
|                                                               |
|  ENFORCEMENT: unified-creator-guard.cjs blocks direct         |
|  template writes. Override: CREATOR_GUARD=off (DANGEROUS)     |
|                                                               |
|  ALWAYS invoke this skill properly:                           |
|    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 "<template-name>" .claude/templates/README.md || echo "ERROR: README NOT UPDATED!"
grep "<template-name>" .claude/context/artifacts/catalogs/template-catalog.md || echo "ERROR: CATALOG NOT UPDATED!"

原因:未列入目录的模板对其他创建器不可见,因此永远不会被使用。


概述

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

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

**核心原则:**模板是系统的 DNA。一致的模板能够产出一致且可预测的 Agent 和技能。

使用时机

始终适用:

  • 创建将被重复使用的新工件类型
  • 在代码库中规范化现有模式
  • 添加新的模板类别
  • 通过更好的模式改进现有模板

例外情况:

  • 永远不会重复使用的一次性文件
  • 临时/一次性代码

模板类型

类型位置数量用途主要使用者
生成提示词.claude/templates/spawn/4Agent 生成提示词模板router、spawn-prompt-assembler
Agent.claude/templates/agents/2Agent 定义样板agent-creator
技能.claude/templates/skills/1技能定义样板skill-creator
工作流.claude/templates/workflows/1工作流定义样板workflow-creator
报告.claude/templates/reports/5报告文档模板qa、developer、researcher
代码风格.claude/templates/code-styles/3语言风格指南developer、code-reviewer
文档.claude/templates/(根目录)8+通用文档模板(ADR、规范)planner、architect、qa

**交叉引用:**完整清单(28 个有效模板)请参阅 .claude/context/artifacts/catalogs/template-catalog.md。有关生成模板解析逻辑,请参阅 .claude/lib/spawn/spawn-template-resolver.cjs。

模板安全合规性

关键安全要求:

  1. 不得包含机密信息(SEC-TC-007): 模板不得包含机密信息、凭据、令牌或 API 密钥
  2. 路径安全: 所有模板引用必须使用相对路径(.claude/templates/...),不得使用绝对路径
  3. 不得包含敏感元数据: 模板不得暴露内部系统路径或用户目录
  4. 不得使用 Windows 保留名称: 模板名称不得使用 nul、con、prn、aux、com1-com9、lpt1-lpt9
  5. 保留要求(SEC-TMPL-006): 被 SEC-TMPL-006 标记的模板必须保留在指定位置
  6. Spawn 模板占位符安全性(SEC-TC-001): prompt: 字段中包含 {{PLACEHOLDER}} 令牌的 Spawn 模板,必须引用 prompt-factory.cjs 中的 sanitizeSubstitutionValue() 来清理替换值。Spawn 提示词中未经清理的占位符会形成提示词注入攻击面。不得将 {{PLACEHOLDER}} 令牌放在用户输入会未经清理直接替换的位置。
  7. 不得使用 Eval/Exec: 模板不得包含 eval()、exec()、Function() 或其他代码执行模式

强制机制: unified-creator-guard.cjs hook 会阻止直接写入模板(默认:阻止模式)。

铁律

NO TEMPLATE WITHOUT PLACEHOLDER DOCUMENTATION

每个 {{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

  • 检查生态系统中是否已存在类似模板

  • 研究特定领域的模板结构(至少需要 2 个查询):

    WebSearch({ query: 'best <domain/topic name> template report or files 2026' });
    WebSearch({ query: 'industry standard <template type> format <domain/tool> 2026' });
    

阻塞要求:未调用 research-synthesis,不得继续创建模板。

步骤 0.1:智能重复项检测(强制)

继续创建之前,运行 3 层重复项检查:

const { checkDuplicate } = require('.claude/lib/creation/duplicate-detector.cjs');
const result = checkDuplicate({
  artifactType: 'template',
  name: proposedName,
  description: proposedDescription,
  keywords: proposedKeywords || [],
});

处理结果:

  • EXACT_MATCH:停止创建。转而使用 template-updater 技能:Skill({ skill: 'template-updater' })
  • REGISTRY_MATCH:警告用户 — 该工件已注册,但文件可能缺失。创建前先调查,并请用户确认。
  • SIMILAR_FOUND:显示带有评分的候选项。询问用户:“存在类似工件。要继续创建新的,还是更新现有工件?”
  • NO_MATCH:继续下一步。

覆盖选项:如果用户明确传入 --force,则完全跳过此检查。


步骤 0.5:配套项检查

继续创建之前,运行生态系统配套项检查:

  1. 使用 .claude/lib/creators/companion-check.cjs 中的 companion-check.cjs
  2. 调用 checkCompanions("template", "{template-name}") 以识别配套工件
  3. 查看配套项检查清单 — 记录缺失的必需/推荐配套项
  4. 计划在此工件完成后创建或核实缺失的配套项
  5. 在创建后的集成说明中列出配套项检查结果

此步骤仅供参考(不会阻止创建),但可确保考虑到完整的工件生态系统。

步骤 1:收集需求

分析请求:

  1. 模板类型:属于哪一类别(spawn、agent、skill、workflow、report、code-style、document)?
  2. 用途:此模板将用于什么场景?
  3. 必填字段:哪些字段是必需的?
  4. 可选字段:哪些字段是可选的,且有默认值?
  5. 验证规则:适用哪些约束?
  6. 使用方:哪些创建器/Agent 会使用此模板?

分析示例:

Template Request: "Create a template for security audit reports"
- Type: Report
- Purpose: Standardize security audit report structure
- Required: findings, severity_levels, recommendations
- Optional: compliance_framework, remediation_timeline
- Rules: severity must be CRITICAL|HIGH|MEDIUM|LOW
- Consumers: security-architect, qa
步骤 2:模板类型分类

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

类型输出路径关键字段验证重点
Spawn.claude/templates/spawn/subagent_type, prompt, model, task_idTaskUpdate 协议、allowed_tools、model
Agent.claude/templates/agents/name, description, tools, skills, model, enforcement_hooksFrontmatter 完整性、对齐章节
Skill.claude/templates/skills/name, version, tools, invoked_bySKILL.md 结构、记忆协议
Workflow.claude/templates/workflows/phases, agents, dependencies阶段顺序、Agent 引用
Report.claude/templates/reports/type, findings, recommendations发现项严重性、证据要求
Code Style.claude/templates/code-styles/language, conventions, examples规范清晰度、示例质量
Document.claude/templates/(根目录)因模板类型而异章节完整性
步骤 3:名称验证(SEC-TC-003)

构造输出路径之前,必须验证模板名称。

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

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

验证规则:

  • 仅限小写字母、数字和连字符
  • 必须以字母或数字开头和结尾(不能是连字符)
  • 不得包含路径分隔符(/、\)、.. 或特殊字符
  • 不得使用 Windows 保留名称(nul、con、prn、aux、com1-com9、lpt1-lpt9)

拒绝示例:

REJECTED: "../hooks/malicious-hook"  (path traversal)
REJECTED: "My Template"             (spaces, uppercase)
REJECTED: "-leading-hyphen"         (starts with hyphen)
REJECTED: "template_with_underscores" (underscores not allowed)
ACCEPTED: "security-audit-report"   (valid kebab-case)
ACCEPTED: "agent-template-v2"       (valid with version)
步骤 4:确定输出路径

根据步骤 2 中的模板类型分类,构造输出路径:

.claude/templates/<category>/<validated-template-name>.md

其中,<category> 可以是以下之一: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 Frontmatter with all required fields
name: { { NAME } }
description: { { DESCRIPTION } }
# ... other fields with documentation comments
---

# {{DISPLAY_NAME}}

## POST-CREATION CHECKLIST (BLOCKING - DO NOT SKIP)



## Overview

{{OVERVIEW_DESCRIPTION}}

## Sections



## Memory Protocol (MANDATORY)


Spawn 模板安全检查清单(SEC-TC-001)

如果要创建 SPAWN 模板,还必须验证以下内容:

  • 在接受未经净化的用户输入的 prompt: 字段中,不含 {{PLACEHOLDER}} 标记
  • 文档中包含对 prompt-factory.cjs 中 sanitizeSubstitutionValue() 的引用
  • spawn 提示词正文中包含 TaskUpdate 协议
  • allowed_tools 数组不会向非编排 Agent 授予 Task 工具
  • 模板正文中不含提示词覆盖模式(IGNORE PREVIOUS、SYSTEM: 等)
  • 模板大小低于 50KB
文档注释

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

---
# [REQUIRED] Unique identifier, lowercase-with-hyphens
name: { { AGENT_NAME } }

# [REQUIRED] Single line, describes what it does AND when to use it
# Example: "Reviews mobile app UX against Apple HIG. Use for iOS UX audits."
description: { { DESCRIPTION } }

# [OPTIONAL] Default: sonnet. Options: haiku, sonnet, opus
model: { { MODEL:sonnet } }
---
步骤 6:写入模板文件

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

Write: .claude/templates/<category>/<template-name>.md
步骤 7:验证模板结构(阻断性)

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

结构验证:

[ ] YAML frontmatter is valid syntax
[ ] All required fields have placeholders
[ ] All placeholders follow {{UPPER_CASE}} naming convention
[ ] All placeholders have documentation comments
[ ] POST-CREATION CHECKLIST section present
[ ] Memory Protocol section present
[ ] Verification commands included
[ ] Example values provided where helpful

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

[ ] No secrets, credentials, or API keys in template content
[ ] No absolute file paths (use relative from PROJECT_ROOT)
[ ] No eval(), exec(), Function() or code execution patterns
[ ] No prompt override patterns ("IGNORE PREVIOUS", "SYSTEM:", etc.)
[ ] Template size under 50KB

验证命令:

# Check no unresolved placeholders from template-creator itself
grep "{{" <created-file> | head -5  # Should show only intended placeholders

# Check YAML frontmatter is present
head -50 <file> | grep -E "^---$" | wc -l  # Should be 2

# Check required sections present
grep -E "^## Memory Protocol" <file> || echo "ERROR: Missing Memory Protocol!"

阻断性要求:模板必须通过所有验证检查,才能继续下一步。

步骤 8:更新模板目录(必须 - 阻断性)

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

  1. 读取当前目录:

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

    • Spawn(spawn/)、Creator(agents/、skills/、workflows/)、文档(根目录)、报告(reports/)、代码风格(code-styles/)
  3. 在正确的类别分区中添加模板条目:

    ### <template-name>.md
    
    | Field              | Value                                             |
    | ------------------ | ------------------------------------------------- |
    | **Path**           | `.claude/templates/<category>/<template-name>.md` |
    | **Category**       | <Category> Templates                              |
    | **Status**         | active                                            |
    | **Used By Agents** | <agent-list>                                      |
    | **Used By Skills** | <skill-list>                                      |
    
    **Purpose:** <Purpose description>
    
  4. 更新模板类别汇总表(总计行)

  5. 验证更新:

    grep "<template-name>" .claude/context/artifacts/catalogs/template-catalog.md || echo "ERROR: CATALOG NOT UPDATED!"
    

**重要:**构建任何 JSON 注册表条目时,都要使用 JSON.stringify()(SEC-TC-004)。切勿手动拼接字符串来构建 JSON。必须验证 location 字段以 .claude/templates/ 开头,且不包含任何 .. 片段。

阻断性要求:模板必须出现在目录中。未列入目录的模板无法被发现。

步骤 9:更新模板 README(必须 - 阻断性)

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

  1. 添加到相应分区(或创建新分区)
  2. 说明使用方法
  3. 添加到快速参考表

条目格式:

### {{Template Type}} Templates (`{{directory}}/`)

Use when {{use case}}.

**File:** `{{directory}}/{{template-name}}.md`

**Usage:**

1. Copy template to `{{target-path}}`
2. Replace all `{{PLACEHOLDER}}` values
3. {{Additional steps}}

验证:

grep "<template-name>" .claude/templates/README.md || echo "ERROR: README NOT UPDATED - BLOCKING!"

阻断性要求:README 必须包含该模板条目。

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

如果模板对框架有重要意义,或可由用户调用:

  1. 检查模板是否需要在 CLAUDE.md 中添加条目:

    • 是否为新的 spawn 模板?-> 更新第 2 节(Spawn 模板)
    • 是否为新的 Creator 模板?-> 更新相关的 Creator 分区
    • 是否为可由用户调用的模板?-> 更新第 8.5 节
  2. 如果是,请添加条目:

    **{Template Name}:** `.claude/templates/{category}/{name}.md`
    
  3. 验证:

    grep "<template-name>" .claude/CLAUDE.md || echo "WARNING: Template not in CLAUDE.md (may be OK if internal-only)"
    

**注意:**并非所有模板都需要在 CLAUDE.md 中添加条目。只有对框架有重要意义的模板(spawn 模板、Creator 模板)才需要执行此步骤。

步骤 11:指定使用者 Agent

模板供创建器和 Agent 使用。创建完成后:

  1. 根据模板类型确定使用者:

    • Agent 模板 -> agent-creator 技能应引用该模板
    • 技能模板 -> skill-creator 技能应引用该模板
    • 工作流模板 -> workflow-creator 技能应引用该模板
    • 报告模板 -> 相关 Agent(qa、developer 等)
    • Spawn 模板 -> router 文档、spawn-template-resolver
    • 代码风格模板 -> developer、code-reviewer
  2. 更新使用该模板的技能/Agent,使其引用该模板:

    **Available Templates:**
    
    - See `.claude/templates/<category>/<template-name>.md` for standardized <type> template
    
  3. 验证至少有一个使用者引用该模板:

    grep -r "<template-name>" .claude/skills/ .claude/agents/ || echo "WARNING: No consumer references template"
    

**原因:**没有使用者的模板从一开始就毫无用处。每个模板都必须至少有一个使用它的技能或 Agent。

第 12 步:集成验证(阻塞性——切勿跳过)

此步骤用于验证该制品是否已正确集成到生态系统中。

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

  1. 运行集成检查清单:

    node .claude/tools/cli/validate-integration.cjs .claude/templates/<category>/<template-name>.md
    
  2. 确认退出代码为 0(所有检查均已通过)

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

    • 阅读错误输出,了解具体失败项
    • 修复每一项失败:
      • 缺少 README 条目 -> 添加到 .claude/templates/README.md
      • 缺少目录条目 -> 添加到 template-catalog.md
      • 缺少记忆更新 -> 更新 learnings.md
    • 重新运行验证,直到退出代码为 0
  4. 仅在验证通过后继续

此步骤为阻塞性步骤。 验证通过前,切勿将任务标记为已完成。

为何重要: Party Mode 事件表明,如果遗漏集成步骤,已完整实现的制品也可能对 Router 不可见。此验证可确保不会出现“不可见制品”模式。

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

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

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

[ ] Research-synthesis skill invoked (Step 0)
[ ] Existence check passed (no duplicate template)
[ ] Template name validates against /^[a-z0-9][a-z0-9-]*[a-z0-9]$/ (Step 3)
[ ] Template file created at .claude/templates/<category>/<name>.md
[ ] All placeholders use {{PLACEHOLDER_NAME}} format
[ ] All placeholders have documentation comments
[ ] POST-CREATION CHECKLIST section present in template
[ ] Memory Protocol section present in template
[ ] No hardcoded values (all configurable via placeholders)
[ ] No secrets, credentials, or absolute paths in template (SEC-TC-007)
[ ] No eval() or code execution patterns in template
[ ] template-catalog.md updated with structured entry (Step 8)
[ ] .claude/templates/README.md updated with template entry (Step 9)
[ ] CLAUDE.md updated if template is framework-significant (Step 10)
[ ] At least one consuming skill/agent references the template (Step 11)
[ ] Integration verification passed (Step 12)
[ ] Template tested with at least one real usage
[ ] Memory files updated (learnings.md)

阻塞性要求:如果任何一项失败,模板创建即为未完成。继续之前,先修复所有问题。


架构合规性

文件放置(ADR-076)
  • 模板:.claude/templates/{category}/(spawn、agents、skills、workflows、reports、code-styles)
  • 已归档模板:.claude/templates/_archive/
  • 模板目录:.claude/context/artifacts/catalogs/template-catalog.md
  • 测试:tests/(不得放在 .claude/ 中)
文档引用(CLAUDE.md v3.1.0)
  • 引用文件使用 @notation:@TOOL_REFERENCE.md、@SKILL_CATALOG_TABLE.md
  • 所在位置:.claude/docs/@*.md
  • 参见:CLAUDE.md 第 2 节(Spawn 模板)
Shell 安全(ADR-077)
  • Spawn 模板必须为后台任务包含:cd "$PROJECT_ROOT" || exit 1
  • 环境变量控制验证器(block/warn/off 模式)
  • 参见:.claude/docs/SHELL-SECURITY-GUIDE.md
  • 适用于:所有 spawn 模板、后台任务模板
安全合规性(ADR-085、ADR-086、SEC-TMPL-006)
  • 模板不得包含硬编码的机密信息、凭据或 API 密钥
  • 模板必须使用相对路径(.claude/templates/...),不得使用绝对路径
  • 模板不得暴露内部系统路径或用户目录
  • 保留要求:security-design-checklist.md 和 error-recovery-template.md 必须保留在指定位置
  • Spawn 模板占位符清理:在 prompt-factory.cjs 中引用 sanitizeSubstitutionValue()
近期 ADR
  • ADR-075:Router 感知配置的模型选择
  • ADR-076:文件放置架构重设计
  • ADR-077:Shell 命令安全架构
  • ADR-085:模板系统全面改造(spawn 解析器 + 清理无用模板)
  • ADR-086:Template-Creator 全面改造为 v2.1 Creator Standard

模板创建的铁律

这些规则不可违背。违反规则会导致框架内部不一致。

1. NO TEMPLATE WITHOUT PLACEHOLDER DOCUMENTATION
   - Every {{PLACEHOLDER}} must have an inline comment
   - Comments explain valid values and examples

2. NO TEMPLATE WITHOUT POST-CREATION CHECKLIST
   - Users must know what to do after using template
   - Blocking steps prevent incomplete artifacts

3. NO TEMPLATE WITHOUT MEMORY PROTOCOL
   - All templates must include Memory Protocol section
   - Ensures artifacts created from template follow memory rules

4. NO TEMPLATE WITHOUT README UPDATE
   - Templates README must document new template
   - Undocumented templates are invisible

5. NO PLACEHOLDER WITHOUT NAMING CONVENTION
   - Use {{UPPER_CASE_WITH_UNDERSCORES}}
   - Never use lowercase or mixed case

6. NO OPTIONAL FIELD WITHOUT DEFAULT
   - Format: {{FIELD:default_value}}
   - Makes templates usable without full customization

7. NO TEMPLATE WITHOUT VERIFICATION COMMANDS
   - Include commands to validate created artifacts
   - Users can verify their work is correct

8. NO AGENT TEMPLATE WITHOUT ALIGNMENT SECTIONS
   - Agent templates MUST include {{ENFORCEMENT_HOOKS}} placeholder section
   - Agent templates MUST include {{RELATED_WORKFLOWS}} placeholder section
   - Agent templates MUST include Output Standards block referencing workspace-conventions
   - Reference: @HOOK_AGENT_MAP.md and @WORKFLOW_AGENT_MAP.md for archetype sets

9. NO TEMPLATE WITHOUT CATALOG ENTRY
   - Every template MUST be registered in template-catalog.md
   - Uncataloged templates are invisible to the system
   - Verify: grep "<template-name>" .claude/context/artifacts/catalogs/template-catalog.md

10. NO TEMPLATE WITHOUT CONSUMING SKILL/AGENT
    - Every template MUST be referenced by at least one consuming skill or agent
    - Templates without consumers are dead on arrival
    - Verify: grep -r "<template-name>" .claude/skills/ .claude/agents/

11. NO CREATION WITHOUT RESEARCH-SYNTHESIS
    - Per CLAUDE.md Section 3, research-synthesis MUST be invoked before any creator
    - Template creation is no exception
    - Invoke: Skill({ skill: 'research-synthesis' })

参考模板

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

定稿任何模板前,请检查:

  • 占位符说明清晰
  • 占位符使用大写字母和下划线
  • 包含用法示例部分
  • 包含集成说明
  • 包含 POST-CREATION CHECKLIST
  • 包含 Memory Protocol

模板最佳实践

占位符规范
实践良好不良
命名{{AGENT_NAME}}{{name}}, {AGENT_NAME}
必填字段始终存在有时省略
可选字段{{FIELD:default}}没有默认值指示
文档内联注释单独的文档文件
示例在注释中未提供
结构规范
  1. 首先编写 YAML Frontmatter

    • 所有机器可读的元数据
    • 注释说明每个字段
  2. 其次编写 POST-CREATION CHECKLIST

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

    • 遵循该类型的现有模式
    • 包含所有必需章节
  4. 最后编写 Memory Protocol

    • 所有模板采用统一格式
    • 始终包含
验证示例

在模板中包含验证示例:

## Validation

After replacing placeholders, validate:

```bash
# Check YAML is valid
head -50 <file> | grep -E "^---$" | wc -l  # Should be 2

# Check no unresolved placeholders
grep "{{" <file> && echo "ERROR: Unresolved placeholders!"

# Check required sections present
grep -E "^## Memory Protocol" <file> || echo "ERROR: Missing Memory Protocol!"
```

系统影响分析(必须)

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

[TEMPLATE-CREATOR] System Impact Analysis for: <template-name>

1. README UPDATE (MANDATORY - Step 9)
   - Added to .claude/templates/README.md
   - Usage instructions documented
   - Quick Reference table updated

2. CATALOG UPDATE (MANDATORY - Step 8)
   - Added to .claude/context/artifacts/catalogs/template-catalog.md
   - Category, status, agents, skills documented
   - Purpose clearly stated

3. CLAUDE.MD UPDATE (CONDITIONAL - Step 10)
   - Is template framework-significant? If yes, add to CLAUDE.md
   - Spawn templates -> Section 2
   - Creator templates -> relevant creator section
   - User-invocable -> Section 8.5

4. CONSUMER ASSIGNMENT (MANDATORY - Step 11)
   - Which skills/agents consume this template?
   - Is template reference added to consuming creator skill?
   - Verify with grep across skills/ and agents/

5. RELATED TEMPLATES CHECK
   - Does this template supersede an existing one?
   - Are there related templates that need cross-references?
   - Should archived templates be updated or removed?

6. SECURITY COMPLIANCE (SEC-TMPL-006, SEC-TC-001, SEC-TC-007)
   - No secrets, credentials, or absolute paths
   - Relative paths only
   - Retention mandates respected
   - Spawn template placeholders sanitized

7. MEMORY UPDATE
   - Record creation in learnings.md
   - Document any decisions in decisions.md

工作流集成

此技能属于统一的制品生命周期。有关完整的多 Agent 编排,请参阅:

路由器决策: .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

  • 为生成操作以编程方式选择模板
  • 模板评分和回退逻辑

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

此技能属于创建者生态系统。需要时请使用配套创建者:

发现的缺口所需制品要调用的创建者时机
领域知识需要可复用的技能skillSkill({ skill: 'skill-creator' })缺口涵盖完整的技能领域
现有技能覆盖不完整skill updateSkill({ skill: 'skill-updater' })存在相关技能,但覆盖不完整
某项能力需要专属 AgentagentSkill({ skill: 'agent-creator' })需要由 Agent 负责该项能力
现有 Agent 需要更新能力agent updateSkill({ skill: 'agent-updater' })存在相关 Agent,但能力不完整
领域需要代码/项目脚手架templateSkill({ skill: 'template-creator' })需要可复用的代码模式
行为需要执行前/后的防护措施hookSkill({ skill: 'hook-creator' })需要强制执行行为
流程需要多阶段编排workflowSkill({ skill: 'workflow-creator' })需要多步骤协调
制品需要结构化的 I/O 验证schemaSkill({ skill: 'schema-creator' })需要用于制品 I/O 的 JSON schema
用户交互需要斜杠命令commandSkill({ skill: 'command-creator' })需要面向用户的快捷方式
重复逻辑需要可复用的 CLI 工具toolSkill({ skill: 'tool-creator' })需要 CLI 实用工具
仅涉及范围狭窄/单一制品的能力inline仅在此制品中记录过于具体,无法泛化
集成工作流

创建需要其他制品的模板后:

// 1. Template created for new hook type
// 2. Need to create example hook using template
Skill({ skill: 'hook-creator' });

// 3. Template created for new agent category
// 4. Need to update agent-creator to recognize new category
// Edit .claude/skills/agent-creator/SKILL.md to add category
生态集成的创建后检查清单

模板完全创建并验证后:

[ ] Does template need a companion skill? -> Use skill-creator
[ ] Does template need a companion workflow? -> Use workflow-creator
[ ] Does template supersede an existing template? -> Archive old one
[ ] Should template be part of enterprise workflows? -> Update Section 8.6
[ ] Does template interact with spawn-template-resolver? -> Update resolver config

文件位置与标准

输出位置规则

此技能的输出位置:.claude/templates/

按类型划分子目录:

  • spawn/ - Agent 派生提示词模板(4 个模板)
  • agents/ - Agent 定义模板(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 hook 强制执行。 在生产模式下,无效的位置将被拦截。


指派的 Agent

此技能通常由以下 Agent 调用:

Agent角色指派原因
planner规划标准化为新模式创建模板
architect架构模式为架构工件创建模板
developer代码模式创建代码脚手架模板

调用此技能:

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
---
# [REQUIRED] Report identifier, lowercase-with-hyphens
name: { { REPORT_NAME } }

# [REQUIRED] What this report documents
description: { { REPORT_DESCRIPTION } }

# [REQUIRED] Report type: audit, implementation, research, reflection, plan
type: audit

# [REQUIRED] Severity levels for findings
severity_levels: [CRITICAL, HIGH, MEDIUM, LOW]
---

# {{REPORT_DISPLAY_NAME}} Report

## POST-CREATION CHECKLIST (BLOCKING)

After creating this report:

- [ ] All findings categorized by severity
- [ ] Recommendations actionable and specific
- [ ] Evidence provided for all claims

## Findings

### CRITICAL

{{CRITICAL_FINDINGS}}

### HIGH

{{HIGH_FINDINGS}}

## Recommendations

{{RECOMMENDATIONS}}

## Memory Protocol (MANDATORY)

**Before starting:** Read `.claude/context/memory/learnings.md`
**After completing:** Record patterns to learnings.md
  1. 更新目录:将条目添加到 template-catalog.md 的 Report Templates 下
  2. 更新 README:将条目添加到 templates README 的 reports 部分
  3. 指派使用者:更新 security-architect 和 qa Agent 的引用
  4. 更新记忆:记录到 learnings.md
示例 2:创建派生模板

请求:“创建专用 Agent 派生提示词模板”

流程:

  1. 调研:调用 research-synthesis,查看 .claude/templates/spawn/universal-agent-spawn.md
  2. 收集:分析派生模式、专用型与通用型之间的差异
  3. 验证名称:模板名称符合名称正则表达式
  4. 设计:设计包含安全注意事项(SEC-TC-001)的派生提示词结构
  5. 创建:.claude/templates/spawn/{template-name}.md
---
# [REQUIRED] Template identifier
name: { { TEMPLATE_NAME } }

# [REQUIRED] Agent type this template spawns
agent_type: { { AGENT_TYPE } }

# [REQUIRED] Recommended model: haiku, sonnet, opus
model: { { MODEL:sonnet } }

# [OPTIONAL] Task complexity level
complexity: { { COMPLEXITY:medium } }
---

# {{AGENT_DISPLAY_NAME}} Spawn Template

## Security Notice (SEC-TC-001)

Placeholder values substituted into the `prompt:` field MUST be sanitized using
`sanitizeSubstitutionValue()` from `prompt-factory.cjs` before substitution.
This prevents prompt injection via user-provided task descriptions.

## Usage

Use this template when spawning {{AGENT_TYPE}} agents.

## Spawn Pattern

Task({
subagent_type: '{{AGENT_TYPE}}',
model: '{{MODEL}}',
task_id: '{{TASK_ID}}',
prompt: 'You are {{AGENT_IDENTITY}}. ... TaskUpdate protocol ...'
});

## Validation

After using this template:

- [ ] task_id is unique and matches prompt
- [ ] Model matches agent complexity requirements
- [ ] TaskUpdate protocol included in prompt
- [ ] Success criteria clearly defined
- [ ] No unsanitized user input in prompt field
  1. 更新目录:将条目添加到 template-catalog.md 的 Spawn Templates 下
  2. 更新 README:将条目添加到 templates README 的 spawn 部分
  3. 更新 CLAUDE.md:如果是框架标准模板,则添加到第 2 节(Spawn Templates)
  4. 指派使用者:更新 router 和 spawn-template-resolver 的引用
  5. 更新记忆:记录到 learnings.md

故障排除

问题:占位符未渲染

**症状:**最终文件中出现 {{PLACEHOLDER}}

解决方案:

  • 检查占位符格式(双大括号、大写字母和下划线)
  • 确保用户已替换所有占位符
  • 添加验证命令以检测未替换的占位符
问题:无法发现模板

**症状:**模板存在,但创建者找不到

解决方案:

  • 确认已更新 template-catalog.md(步骤 8)
  • 确认已更新 README.md(步骤 9)
  • 检查文件是否位于正确的目录中
  • 运行:grep "<template-name>" .claude/context/artifacts/catalogs/template-catalog.md
问题:模板结构不一致

症状: 不同模板的格式各不相同

解决方案:

  • 创建模板前先检查现有模板
  • 使用此技能中的模式
  • 对照参考模板(universal-agent-spawn.md)
  • 对所有模板运行一致性检查
问题:生成模板存在注入风险

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

解决方案:

  • 查看此技能中的 SEC-TC-001 指南
  • 确保引用了 sanitizeSubstitutionValue()
  • 不要在 prompt: 字段中直接放置用于接收用户输入的 {{PLACEHOLDER}} 标记
  • 使用结构化任务描述,将用户内容与系统指令分开
问题:Creator Guard 阻止写入模板

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

解决方案:

  • 确保已正确调用此技能:Skill({ skill: 'template-creator' })
  • 检查 creator 状态是否处于激活状态(TTL 为 3 分钟)
  • 调试时:使用 CREATOR_GUARD=warn(临时设置,完成后恢复为 block)
  • 生产环境中绝不要使用 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 项记录为后续任务

集成验证:

  • 将模板添加到 template-catalog.md
  • 模板所在位置有模板 README
  • 已将模板分配给使用它的技能
  • 已提供模板示例

生态系统一致性契约(强制)

此创建者技能属于协同运作的创建者生态系统。在此创建的任何产物都必须与相关创建者保持一致,并通过其验证:

  • agent-creator:负责归属和执行路径
  • skill-creator:负责能力打包和分配
  • tool-creator:负责可执行的自动化接口
  • hook-creator:负责强制执行和防护机制
  • rule-creator 和 semgrep-rule-creator:负责策略和静态检查
  • template-creator:负责标准化脚手架
  • workflow-creator:负责编排和阶段门控
  • command-creator:负责面向用户或操作员的命令体验
创建者间握手(必需)

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

  1. .claude/CLAUDE.md 和相关路由文档中存在产物路由。
  2. 已更新发现/注册表条目(视情况更新目录、索引或注册表)。
  3. 已创建配套产物,或明确说明豁免及其原因。
  4. 针对所创建的产物,validate-integration.cjs 已通过。
  5. 技能元数据发生变化时,重新生成技能索引。
研究门槛(Exa + arXiv — 两者均为必需)

对于新的模式、模板或工作流,必须进行研究:

  1. 使用 Exa 研究实现和生态系统模式:
    • mcp__Exa__web_search_exa({ query: '<topic> 2025 best practices' })
    • mcp__Exa__get_code_context_exa({ query: '<topic> implementation examples' })
  2. 搜索 arXiv 上的学术研究(AI/ML、Agent、评估、编排、记忆/RAG、安全领域均为必需):
    • 通过 Exa:mcp__Exa__web_search_exa({ query: 'site:arxiv.org <topic> 2024 2025' })
    • 直接调用 API:WebFetch({ url: 'https://arxiv.org/search/?query=<topic>&searchtype=all&start=0' })
  3. 在制品引用/文档中记录决策、约束和非目标。
  4. 尽量减少更新,避免过度设计。

主题涉及以下内容时,arXiv 搜索是必需步骤(不可作为备选): AI Agent、大模型评估、编排、记忆/RAG、安全、静态分析或任何新兴方法。

安全回归交付
  • 行为变更严格遵循 RED -> GREEN -> REFACTOR。
  • 对变更的模块运行针对性测试。
  • 对变更的文件运行 lint/format。
  • 按关注点划分提交(逻辑/文档/生成的制品)。

可选:评估质量门槛

运行共享评估框架,验证模板质量:

node .claude/skills/skill-creator/scripts/eval-runner.cjs --skill template-creator

模板制品的评分器断言:

  • 占位符标记已记录:所有 <PLACEHOLDER> 标记均已列出并附有说明;渲染后不再存在未记录的替换点
  • 输出结构符合模式:渲染后的模板输出符合其类型(spawn、artifact、code)对应的文档结构
  • Spawn 预算大小限制:Spawn 模板渲染后的大小低于 50KB(PROMPT_LENGTH_WARNING 阈值);超出此限制的模板将触发大小审查
  • 存在目录条目:模板已在 .claude/context/artifacts/catalogs/template-catalog.md 中注册,并注明类型、用途和占位符清单
  • 已记录使用该模板的技能:至少有一个技能或 Agent 在其工作流中引用此模板

完整评估流程及评分器/分析器 Agent 的用法,请参阅 .claude/skills/skill-creator/EVAL_WORKFLOW.md。

评论

支持 Markdown