关于 template-creator
template-creator 是用于多 Agent 编排框架的技能,可创建、验证并登记模板,覆盖 Agent、技能、工作流、报告和文档等类型。它要求先进行研究,并强调占位符说明与安全约束。
主要功能
- 01创建多种类型的框架模板
- 02验证模板结构与命名
- 03登记模板并更新目录
- 04检查占位符文档与安全要求
适用场景
- 01为新型 Agent 或技能制定模板
- 02标准化重复使用的工作流或报告
- 03扩充模板类别并维护框架目录
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ oimiragieo/ agent-studio --skill template-creator安装后在 Claude Code 中输入/template-creator确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
commands/template-creator.mdhooks/post-execute.cjspre-execute.cjsreferences/research-requirements.mdrules/template-creator.mdschemas/input.schema.jsonoutput.schema.jsonscripts/main.cjstemplates/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" }) |
| |
+==============================================================+
必须更新路由器(关键事项——切勿跳过)
创建任何模板后,必须更新:
.claude/templates/README.md——添加模板条目.claude/context/artifacts/catalogs/template-catalog.md——添加目录条目- 如果模板对框架意义重大或可由用户调用,则更新 CLAUDE.md 第 2 节或第 8.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/ | 4 | Agent 生成提示词模板 | router、spawn-prompt-assembler |
| Agent | .claude/templates/agents/ | 2 | Agent 定义样板 | 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。
模板安全合规性
关键安全要求:
- 不得包含机密信息(SEC-TC-007): 模板不得包含机密信息、凭据、令牌或 API 密钥
- 路径安全: 所有模板引用必须使用相对路径(
.claude/templates/...),不得使用绝对路径 - 不得包含敏感元数据: 模板不得暴露内部系统路径或用户目录
- 不得使用 Windows 保留名称: 模板名称不得使用
nul、con、prn、aux、com1-com9、lpt1-lpt9 - 保留要求(SEC-TMPL-006): 被 SEC-TMPL-006 标记的模板必须保留在指定位置
- Spawn 模板占位符安全性(SEC-TC-001):
prompt:字段中包含{{PLACEHOLDER}}令牌的 Spawn 模板,必须引用prompt-factory.cjs中的sanitizeSubstitutionValue()来清理替换值。Spawn 提示词中未经清理的占位符会形成提示词注入攻击面。不得将{{PLACEHOLDER}}令牌放在用户输入会未经清理直接替换的位置。 - 不得使用 Eval/Exec: 模板不得包含
eval()、exec()、Function()或其他代码执行模式
强制机制: unified-creator-guard.cjs hook 会阻止直接写入模板(默认:阻止模式)。
铁律
NO TEMPLATE WITHOUT PLACEHOLDER DOCUMENTATION
每个 {{PLACEHOLDER}} 都必须有相应注释,说明:
- 应替换为哪种值
- 有效选项/格式
- 示例值
无一例外:
- 每个占位符都有说明
- 每个必填字段都有标记
- 每个可选字段都有默认值
工作流步骤
步骤 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:配套项检查
继续创建之前,运行生态系统配套项检查:
- 使用
.claude/lib/creators/companion-check.cjs中的companion-check.cjs - 调用
checkCompanions("template", "{template-name}")以识别配套工件 - 查看配套项检查清单 — 记录缺失的必需/推荐配套项
- 计划在此工件完成后创建或核实缺失的配套项
- 在创建后的集成说明中列出配套项检查结果
此步骤仅供参考(不会阻止创建),但可确保考虑到完整的工件生态系统。
步骤 1:收集需求
分析请求:
- 模板类型:属于哪一类别(spawn、agent、skill、workflow、report、code-style、document)?
- 用途:此模板将用于什么场景?
- 必填字段:哪些字段是必需的?
- 可选字段:哪些字段是可选的,且有默认值?
- 验证规则:适用哪些约束?
- 使用方:哪些创建器/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_id | TaskUpdate 协议、allowed_tools、model |
| Agent | .claude/templates/agents/ | name, description, tools, skills, model, enforcement_hooks | Frontmatter 完整性、对齐章节 |
| Skill | .claude/templates/skills/ | name, version, tools, invoked_by | SKILL.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:更新模板目录(必须 - 阻断性)
更新模板目录,确保新模板可被发现。
-
读取当前目录:
cat .claude/context/artifacts/catalogs/template-catalog.md -
根据类型确定模板类别:
- Spawn(
spawn/)、Creator(agents/、skills/、workflows/)、文档(根目录)、报告(reports/)、代码风格(code-styles/)
- Spawn(
-
在正确的类别分区中添加模板条目:
### <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> -
更新模板类别汇总表(总计行)
-
验证更新:
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:
- 添加到相应分区(或创建新分区)
- 说明使用方法
- 添加到快速参考表
条目格式:
### {{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(有条件 - 阻断性)
如果模板对框架有重要意义,或可由用户调用:
-
检查模板是否需要在 CLAUDE.md 中添加条目:
- 是否为新的 spawn 模板?-> 更新第 2 节(Spawn 模板)
- 是否为新的 Creator 模板?-> 更新相关的 Creator 分区
- 是否为可由用户调用的模板?-> 更新第 8.5 节
-
如果是,请添加条目:
**{Template Name}:** `.claude/templates/{category}/{name}.md` -
验证:
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 使用。创建完成后:
-
根据模板类型确定使用者:
- Agent 模板 -> agent-creator 技能应引用该模板
- 技能模板 -> skill-creator 技能应引用该模板
- 工作流模板 -> workflow-creator 技能应引用该模板
- 报告模板 -> 相关 Agent(qa、developer 等)
- Spawn 模板 -> router 文档、spawn-template-resolver
- 代码风格模板 -> developer、code-reviewer
-
更新使用该模板的技能/Agent,使其引用该模板:
**Available Templates:** - See `.claude/templates/<category>/<template-name>.md` for standardized <type> template -
验证至少有一个使用者引用该模板:
grep -r "<template-name>" .claude/skills/ .claude/agents/ || echo "WARNING: No consumer references template"
**原因:**没有使用者的模板从一开始就毫无用处。每个模板都必须至少有一个使用它的技能或 Agent。
第 12 步:集成验证(阻塞性——切勿跳过)
此步骤用于验证该制品是否已正确集成到生态系统中。
在调用 TaskUpdate({ status: "completed" }) 前,运行创建后验证:
-
运行集成检查清单:
node .claude/tools/cli/validate-integration.cjs .claude/templates/<category>/<template-name>.md -
确认退出代码为 0(所有检查均已通过)
-
如果退出代码为 1(一项或多项检查失败):
- 阅读错误输出,了解具体失败项
- 修复每一项失败:
- 缺少 README 条目 -> 添加到
.claude/templates/README.md - 缺少目录条目 -> 添加到
template-catalog.md - 缺少记忆更新 -> 更新
learnings.md
- 缺少 README 条目 -> 添加到
- 重新运行验证,直到退出代码为 0
-
仅在验证通过后继续
此步骤为阻塞性步骤。 验证通过前,切勿将任务标记为已完成。
为何重要: 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}} | 没有默认值指示 |
| 文档 | 内联注释 | 单独的文档文件 |
| 示例 | 在注释中 | 未提供 |
结构规范
-
首先编写 YAML Frontmatter
- 所有机器可读的元数据
- 注释说明每个字段
-
其次编写 POST-CREATION CHECKLIST
- 使用模板后的阻塞步骤
- 验证命令
-
内容章节
- 遵循该类型的现有模式
- 包含所有必需章节
-
最后编写 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
- 为生成操作以编程方式选择模板
- 模板评分和回退逻辑
交叉引用:创建者生态系统
此技能属于创建者生态系统。需要时请使用配套创建者:
| 发现的缺口 | 所需制品 | 要调用的创建者 | 时机 |
|---|---|---|---|
| 领域知识需要可复用的技能 | skill | Skill({ skill: 'skill-creator' }) | 缺口涵盖完整的技能领域 |
| 现有技能覆盖不完整 | skill update | Skill({ skill: 'skill-updater' }) | 存在相关技能,但覆盖不完整 |
| 某项能力需要专属 Agent | agent | Skill({ skill: 'agent-creator' }) | 需要由 Agent 负责该项能力 |
| 现有 Agent 需要更新能力 | agent update | Skill({ skill: 'agent-updater' }) | 存在相关 Agent,但能力不完整 |
| 领域需要代码/项目脚手架 | template | Skill({ skill: 'template-creator' }) | 需要可复用的代码模式 |
| 行为需要执行前/后的防护措施 | hook | Skill({ skill: 'hook-creator' }) | 需要强制执行行为 |
| 流程需要多阶段编排 | workflow | Skill({ skill: 'workflow-creator' }) | 需要多步骤协调 |
| 制品需要结构化的 I/O 验证 | schema | Skill({ skill: 'schema-creator' }) | 需要用于制品 I/O 的 JSON schema |
| 用户交互需要斜杠命令 | command | Skill({ skill: 'command-creator' }) | 需要面向用户的快捷方式 |
| 重复逻辑需要可复用的 CLI 工具 | tool | Skill({ 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:创建报告模板
请求:“创建安全审计报告模板”
流程:
- 调研:调用
research-synthesis,查看.claude/templates/reports/中现有的报告模板 - 收集:分析报告类型、安全重点和审计结果结构
- 验证名称:
security-audit-report-template符合/^[a-z0-9][a-z0-9-]*[a-z0-9]$/ - 设计:设计安全审计报告的结构
- 创建:
.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
- 更新目录:将条目添加到 template-catalog.md 的 Report Templates 下
- 更新 README:将条目添加到 templates README 的 reports 部分
- 指派使用者:更新 security-architect 和 qa Agent 的引用
- 更新记忆:记录到 learnings.md
示例 2:创建派生模板
请求:“创建专用 Agent 派生提示词模板”
流程:
- 调研:调用
research-synthesis,查看.claude/templates/spawn/universal-agent-spawn.md - 收集:分析派生模式、专用型与通用型之间的差异
- 验证名称:模板名称符合名称正则表达式
- 设计:设计包含安全注意事项(SEC-TC-001)的派生提示词结构
- 创建:
.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
- 更新目录:将条目添加到 template-catalog.md 的 Spawn Templates 下
- 更新 README:将条目添加到 templates README 的 spawn 部分
- 更新 CLAUDE.md:如果是框架标准模板,则添加到第 2 节(Spawn Templates)
- 指派使用者:更新 router 和 spawn-template-resolver 的引用
- 更新记忆:记录到 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
假设工作可能会中断:如果没有记录在记忆中,就等于没有发生。
创建后的集成
创建完成后,运行生态系统集成检查清单:
- 调用
.claude/lib/creators/creator-commons.cjs中的runIntegrationChecklist(artifactType, artifactPath) - 调用
.claude/lib/creators/creator-commons.cjs中的queueCrossCreatorReview(artifactType, artifactPath) - 检查影响报告——在将任务标记为完成前,处理所有
mustHave项 - 将所有
shouldHave项记录为后续任务
集成验证:
- 将模板添加到 template-catalog.md
- 模板所在位置有模板 README
- 已将模板分配给使用它的技能
- 已提供模板示例
生态系统一致性契约(强制)
此创建者技能属于协同运作的创建者生态系统。在此创建的任何产物都必须与相关创建者保持一致,并通过其验证:
agent-creator:负责归属和执行路径skill-creator:负责能力打包和分配tool-creator:负责可执行的自动化接口hook-creator:负责强制执行和防护机制rule-creator和semgrep-rule-creator:负责策略和静态检查template-creator:负责标准化脚手架workflow-creator:负责编排和阶段门控command-creator:负责面向用户或操作员的命令体验
创建者间握手(必需)
完成前,验证所有相关握手:
.claude/CLAUDE.md和相关路由文档中存在产物路由。- 已更新发现/注册表条目(视情况更新目录、索引或注册表)。
- 已创建配套产物,或明确说明豁免及其原因。
- 针对所创建的产物,
validate-integration.cjs已通过。 - 技能元数据发生变化时,重新生成技能索引。
研究门槛(Exa + arXiv — 两者均为必需)
对于新的模式、模板或工作流,必须进行研究:
- 使用 Exa 研究实现和生态系统模式:
mcp__Exa__web_search_exa({ query: '<topic> 2025 best practices' })mcp__Exa__get_code_context_exa({ query: '<topic> implementation examples' })
- 搜索 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' })
- 通过 Exa:
- 在制品引用/文档中记录决策、约束和非目标。
- 尽量减少更新,避免过度设计。
主题涉及以下内容时,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。