name: 研究合成 description: 在创建任何工件之前,研究最佳实践并将其合成为设计决策。在任何创建者技能之前调用,以确保基于研究的决策。 version: 1.0.0 model: sonnet invoked_by: both user_invocable: true tools:
- mcp__Exa__web_search_exa
- mcp__Exa__get_code_context_exa
- WebSearch
- WebFetch
- Read
- Write
- Glob
- Grep skills:
- task-management-protocol triggers:
- ‘研究用于’
- ‘最佳实践用于’
- ‘在创建之前’ best_practices:
- 在合成之前执行至少3个研究查询
- 咨询至少3个外部来源
- 记录现有代码库模式
- 为每个设计决策提供理由
- 包括风险缓解措施的风险评估 error_handling: graceful streaming: supported output_location: .claude/context/artifacts/research-reports/ verified: false lastVerifiedAt: 2026-02-19T05:29:09.098Z
研究合成技能
目的
在创建任何新工件(代理、技能、工作流、钩子、模式、模板)之前收集和合成研究。此技能确保所有设计决策基于:
- 当前最佳实践来自权威来源
- 实现模式来自真实世界示例
- 现有代码库约定以保持一致性
- 风险评估以预期问题
何时调用此技能
在以下情况之前强制调用:
agent-creator- 研究代理模式和领域专业知识skill-creator- 研究技能实现最佳实践workflow-creator- 研究编排模式hook-creator- 研究验证和安全模式schema-creator- 研究JSON Schema模式template-creator- 研究代码脚手架模式
推荐用于:
- 新功能设计
- 架构决策
- 技术选择
- 集成规划
铁律
没有研究先于工件创建
如果您未执行研究协议,则无法进行工件创建。
查询限制(铁律)
每个研究任务最多3-5个查询
超出此限制导致:
- 内存耗尽(报告 >10 KB → 上下文窗口溢出)
- 信息过载(无法有效处理10+个来源)
- 收益递减(质量 > 数量)
按复杂性分配的查询预算:
- 简单研究(事实检查、版本检查):3个查询
- 中等研究(功能比较、实现模式):4个查询
- 复杂研究(全面最佳实践、生态系统概述):5个查询
绝不:
- 在单个研究会话中执行 >5 个查询
- 执行无限制的“研究一切”查询
- 在一个会话中组合多个不相关的研究主题
多阶段模式: 如果研究需要 >5 个查询,拆分为多个研究会话(参见下面的“多阶段研究模式”)。
报告大小限制(铁律)
每个研究报告最大10 KB
为什么10 KB?
- 上下文效率(10 KB = ~2500个词 = 可在一个上下文窗口中阅读)
- 强制优先级排序(仅包括关键发现)
- 防止“百科全书综合症”(复制整个文章)
格式要求:
- 使用项目符号(紧凑)
- 引用URL而不是复制内容
- 每个来源用 <3 个句子总结发现
- 移除噪音,保留本质
当接近10 KB时:
- 停止添加新来源
- 合并重复项
- 移除冗余细节
- 专注于独特见解
对于复杂主题:
- 拆分为2-3个迷你报告(每个 <10 KB)
- 每个专注于一个方面
- 在摘要中链接报告
强制研究协议
步骤1:定义研究范围和计划查询
在执行查询之前,定义范围并计划查询预算:
## 研究范围定义
**工件类型**:[代理 | 技能 | 工作流 | 钩子 | 模式 | 模板]
**领域/能力**:[此工件将做什么]
**复杂性评估**:
- [ ] 简单(事实检查、版本检查)→ 3个查询
- [ ] 中等(功能比较、实现模式)→ 4个查询
- [ ] 复杂(全面最佳实践、生态系统概述)→ 5个查询
**计划查询**(在执行之前列出3-5个):
1. [查询1:最佳实践 - 具体问题]
2. [查询2:实现模式 - 具体问题]
3. [查询3:框架/AI特定 - 具体问题]
4. [可选查询4:安全/性能 - 具体问题]
5. [可选查询5:权衡/替代方案 - 具体问题]
**关键问题**:
1. 此领域的最佳实践是什么?
2. 存在哪些实现模式?
3. 应使用哪些工具/框架?
4. 常见陷阱是什么?
**要检查的现有模式**:
- .claude/[类别]/ - 类似工件
- .claude/templates/ - 相关模板
- .claude/schemas/ - 验证模式
研究前清单:
[ ] 复杂性评估(计划3、4或5个查询)
[ ] 在执行之前计划查询(防止范围蔓延)
[ ] 每个查询具体(不是“研究关于X的一切”)
[ ] 设定报告大小目标(<10 KB)
[ ] 考虑多阶段拆分(如果需要 >5 个查询)
步骤2:执行研究查询(最多3-5个)
执行恰好3-5个研究查询(不多于)。更多查询 = 内存耗尽和上下文丢失。
查询1:最佳实践
// 使用Exa(首选技术内容)
mcp__Exa__web_search_exa({
query: '{工件类型} {领域} 最佳实践 2024 2025',
numResults: 5,
});
// 或使用WebSearch(后备)
WebSearch({
query: '{领域} 最佳实践 实现指南',
});
查询2:实现模式
// 代码聚焦搜索
mcp__Exa__get_code_context_exa({
query: '{领域} 实现模式 示例 github',
tokensNum: 5000,
});
// 或从权威来源获取
WebFetch({
url: 'https://[权威来源]/docs/{主题}',
});
查询3:Claude/AI代理特定
// 框架特定模式
mcp__Exa__web_search_exa({
query: 'Claude AI代理 {领域} {工件类型} 模式',
numResults: 5,
});
// 或搜索MCP模式
WebSearch({
query: '模型上下文协议 {领域} 集成',
});
查询效率提示:
- 偏好2-3个高质量查询而不是10个通用查询
- 在一个查询中组合相关问题(“X最佳实践 + 实现模式”)
- 使用WebFetch获取已知权威来源(更快、更聚焦)
- 当有足够独特见解时停止(质量 > 数量)
步骤3:分析现有代码库
在合成之前,检查代码库中的现有模式:
// 查找类似工件
Glob({ pattern: '.claude/{工件类别}/**/*.md' });
// 搜索相关实现
Grep({ pattern: '{相关关键词}', path: '.claude/' });
// 读取现有示例
Read({ file_path: '.claude/{类别}/{类似工件}' });
要提取什么:
- 命名约定 - 类似工件如何命名?
- 结构模式 - 它们包括哪些部分?
- 工具使用 - 类似工件使用什么工具?
- 技能依赖 - 通常分配哪些技能?
- 输出位置 - 工件在哪里保存输出?
步骤4:合成发现
输出结构化研究报告,遵循.claude/templates/reports/research-report-template.md:
文件位置:.claude/context/artifacts/research-reports/{主题}-研究-{YYYY-MM-DD}.md
必需部分:
- 来源头:
<!-- 代理: {类型} | 任务: #{id} | 会话: {日期} --> - 执行摘要:2-3句关键发现概述
- 研究方法:查询表 + 来源咨询表
- 详细发现:按主题分类,包含关键见解、证据、相关性
- 学术参考:arXiv论文、学术来源(即使为空也包括)
- 实践建议:P0/P1/P2优先级排序
- 风险评估:风险表,包含影响/概率/缓解
- 实现路线图:下一步和时间线
对于工件创建研究,还包括:
现有代码库模式
找到的类似工件:
{路径_1}- {它做什么,使用什么模式}{路径_2}- {它做什么,使用什么模式}
识别的约定:
- 命名:{约定}
- 结构:{约定}
- 工具:{约定}
- 输出:{约定}
识别的最佳实践
| # | 实践 | 来源 | 置信度 | 理由 |
|---|---|---|---|---|
| 1 | {实践} | {来源URL或名称} | 高 | {为什么适用} |
| 2 | {实践} | {来源URL或名称} | 中 | {为什么适用} |
| 3 | {实践} | {来源URL或名称} | 高 | {为什么适用} |
置信度级别:
- 高:多个权威来源同意
- 中:单个权威来源或多个次要来源
- 低:有限证据,需要验证
设计决策
| 决策 | 理由 | 来源 | 考虑的替代方案 |
|---|---|---|---|
| {决策_1} | {为什么} | {来源} | {还考虑了其他什么} |
| {决策_2} | {为什么} | {来源} | {还考虑了其他什么} |
| {决策_3} | {为什么} | {来源} | {还考虑了其他什么} |
推荐实现
文件位置:.claude/{类别}/{名称}/
使用的模板:.claude/templates/{模板}.md
调用的技能:
{技能_1}- {为什么}{技能_2}- {为什么}
需要的钩子:
{钩子类型}- {目的}
依赖:
- 现有工件:{列表}
- 外部工具:{列表}
质量门清单
在继续到工件创建之前,验证:
- [ ] 执行了至少3个研究查询
- [ ] 咨询了至少3个外部来源
- [ ] 记录了现有代码库模式
- [ ] 所有设计决策都有理由和来源
- [ ] 完成了风险评估和缓解措施
- [ ] 记录了推荐实现路径
- [ ] 报告保存为正确命名:
{主题}-研究-{YYYY-MM-DD}.md - [ ] 包括了来源头
下一步
- 调用创建者技能:
Skill({ skill: "{创建者技能}" }) - 使用此报告作为输入:参考上述决策
- 对照清单验证:在标记完成之前
与创建者技能的集成
创建前工作流
[代理] 用户请求:“创建Slack通知技能”
[代理] 步骤1:先研究
Skill({ skill: "研究合成" })
[研究合成] 执行研究协议...
- 查询1:“Slack API最佳实践 2025”
- 查询2:“Slack MCP服务器集成模式”
- 查询3:“Claude AI Slack通知技能”
- 分析:.claude/skills/*/SKILL.md中的模式
- 输出:保存研究报告
[代理] 步骤2:基于研究创建
Skill({ skill: "技能创建者" })
[技能创建者] 使用研究报告...
- 遵循报告中的设计决策
- 应用识别的最佳实践
- 缓解记录的风险
交接格式
完成研究后,提供此交接给创建者技能:
## 研究交接给:{创建者技能}
**报告位置**:`.claude/context/artifacts/research-reports/{工件名称}-研究.md`
**摘要**:
{2-3句关键发现总结}
**关键决策**:
1. {决策_1}
2. {决策_2}
3. {决策_3}
**继续创建**:是/否
**置信度级别**:高/中/低
多阶段研究模式(用于复杂主题)
当研究复杂性超过5个查询时,拆分为阶段:
阶段1:范围和定义(2个查询)
- 主题/技术是什么?
- 关键概念是什么?
阶段2:实现(2个查询)
- 专家如何实现这个?
- 常见模式和最佳实践?
阶段3:比较和权衡(1个查询)
- 这与替代方案相比如何?
- 权衡和陷阱?
好处:
- 每个阶段独立(较少上下文泄漏)
- 可以在单独技能调用中完成
- 更清晰的组织
- 更容易重用发现
示例:
会话1:研究“Rust async/await”(阶段1:2个查询)
会话2:研究“Tokio模式”(阶段2:2个查询)
会话3:研究“async-trait vs 手动实现”(阶段3:1个查询)
内存感知分块示例
好 - 聚焦查询 + 分块报告:
查询:“Rust async/await最佳实践 2026”
报告结构:
- 定义(100词)
- 模式1:Tokio(200词)
- 模式2:async-trait(150词)
- 陷阱(100词)
- 链接(10个来源)
---总计:~550词,~3 KB
坏 - 无限制研究:
查询:“关于Rust生态系统的一切 2026”
报告:50个来源,15 KB(被上下文限制截断)
---没有上下文丢失无法使用发现
好 - 阶段化方法:
阶段1报告:Rust async基础(3 KB)
阶段2报告:Tokio实现模式(4 KB)
阶段3报告:性能比较(2 KB)
---总计:9 KB跨3个会话(全部可用)
坏 - 单个大型报告:
单个报告:全面Rust async指南(25 KB)
---截断为10 KB,缺失关键部分
质量门
研究在以下所有项目通过时完成:
[ ] 执行了3-5个研究查询(不超过5个)
[ ] 咨询了至少3个外部来源(URL或权威名称)
[ ] 记录了现有代码库模式(至少2个类似工件)
[ ] 所有设计决策都有理由和来源
[ ] 完成了风险评估(至少3个风险及缓解措施)
[ ] 记录了推荐实现路径
[ ] 报告保存到输出位置
[ ] 报告大小 <10 KB(保存前检查文件大小)
阻止:如果任何项目失败,研究未完成。不要继续到工件创建。
输出位置
- 研究报告:
.claude/context/artifacts/research-reports/ - 临时笔记:
.claude/context/tmp/research/ - 内存更新:
.claude/context/memory/learnings.md
报告命名约定(强制)
格式:{主题}-研究-{YYYY-MM-DD}.md
- 主题:烤肉串大小写描述性名称
- 总是在日期前包括
-研究-后缀 - 日期:ISO 8601带连字符(YYYY-MM-DD)
示例:
- ✓
oauth2-安全-研究-2026-02-09.md - ✓
json-schema-模式-研究-2026-02-09.md - ✓
slack-集成-最佳实践-研究-2026-02-09.md - ✗
agent-keywords-core.md(缺少日期) - ✗
oauth2-auth-2026-02-09.md(缺少-研究-后缀) - ✗
bmad-method-analysis-20260128-104050.md(错误日期格式)
模板:对所有研究报告使用.claude/templates/reports/research-report-template.md
示例
示例1:创建Slack技能前的研究
// 步骤1:定义范围
// 工件:技能,领域:Slack通知
// 步骤2:执行查询
mcp__Exa__web_search_exa({
query: 'Slack API webhook最佳实践 2025',
numResults: 5,
});
mcp__Exa__get_code_context_exa({
query: 'Slack通知系统实现 Node.js',
tokensNum: 5000,
});
WebSearch({
query: 'Claude AI MCP Slack服务器集成',
});
// 步骤3:分析代码库
Glob({ pattern: '.claude/skills/*notification*/SKILL.md' });
Glob({ pattern: '.claude/skills/*slack*/SKILL.md' });
Read({ file_path: '.claude/skills/skill-creator/SKILL.md' });
// 步骤4:合成并输出报告
Write({
file_path: '.claude/context/artifacts/research-reports/slack-notifications-research.md',
content: '## 研究报告:Slack通知技能...',
});
示例2:创建数据库代理前的研究
// 数据库-架构师代理的研究查询
mcp__Exa__web_search_exa({
query: '数据库设计架构最佳实践 2025',
numResults: 5,
});
WebFetch({
url: 'https://docs.postgresql.org/current/ddl.html',
});
mcp__Exa__web_search_exa({
query: 'AI代理数据库模式设计自动化',
numResults: 5,
});
// 分析现有代理
Glob({ pattern: '.claude/agents/domain/*data*.md' });
Read({ file_path: '.claude/agents/core/developer.md' });
常见研究领域
| 领域 | 关键查询 | 权威来源 |
|---|---|---|
| API集成 | “REST API设计”,“GraphQL模式” | OpenAPI规范,GraphQL规范 |
| 安全 | “OWASP前10”,“安全最佳实践” | OWASP,NIST |
| 数据库 | “数据库设计模式”,“SQL优化” | PostgreSQL文档,MySQL文档 |
| 前端 | “React模式”,“可访问性WCAG” | React文档,W3C |
| DevOps | “CI/CD最佳实践”,“IaC模式” | GitLab文档,Terraform文档 |
| 测试 | “TDD模式”,“测试自动化” | 测试库,Jest文档 |
| AI/ML | “LLM集成模式”,“提示工程” | Anthropic文档,OpenAI文档 |
文件放置和标准
输出位置规则
此技能输出到:.claude/context/artifacts/research-reports/
强制引用
- 文件放置:见
.claude/docs/FILE_PLACEMENT_RULES.md - 开发者工作流:见
.claude/docs/DEVELOPER_WORKFLOW.md - 工件命名:见
.claude/docs/ARTIFACT_NAMING.md
执行
文件放置由file-placement-guard.cjs钩子强制执行。
无效放置将在生产模式下被阻止。
内存协议(强制)
开始前:
cat .claude/context/memory/learnings.md
检查:
- 类似领域的先前研究
- 已知模式和约定
- 记录的决策
完成后:
- 新研究发现 → 追加到
.claude/context/memory/learnings.md - 重要决策 → 追加到
.claude/context/memory/decisions.md - 发现的问题 → 追加到
.claude/context/memory/issues.md
假设中断:您的上下文可能重置。如果不在内存中,则未发生。
工作流集成
此技能与创建者生态系统集成:
| 创建者 | 研究焦点 |
|---|---|
agent-creator |
领域专业知识,代理模式,技能依赖 |
skill-creator |
工具集成,MCP模式,验证钩子 |
workflow-creator |
编排模式,多代理协调 |
hook-creator |
验证模式,安全检查,安全门 |
schema-creator |
JSON Schema模式,验证策略 |
template-creator |
代码脚手架,项目结构模式 |
完整生命周期:.claude/workflows/core/skill-lifecycle.md
研究合成的铁律
1. 没有研究先于创建
- 跳过研究 = 无依据决策 = 错误和返工
- 研究始终先于创建
2. 每个研究会话不超过5个查询
- 执行恰好3-5个查询(不多于)
- >5个查询 = 内存耗尽,上下文丢失
- 如果需要更多 → 拆分为多阶段研究
3. 研究报告不超过10 KB
- 每个报告最大10 KB(~2500词)
- 超出限制 → 上下文窗口溢出
- 使用项目符号,引用URL,总结发现
4. 没有代码库分析的合成
- 外部研究必要但不足
- 必须检查现有模式以保持一致性
5. 没有理由的决策
- 每个决策都需要来源
- “我认为”不是来源。链接到证据。
6. 没有质量门的继续
- 所有清单项目必须通过(包括查询/大小限制)
- 阻止:研究未完成 = 无创建