create-tooluniverse-skill
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseCreate ToolUniverse Skill
创建ToolUniverse技能
Systematic workflow for creating production-ready ToolUniverse skills that integrate multiple scientific tools, follow implementation-agnostic standards, and achieve 100% test coverage.
本工作流用于创建可投入生产环境的ToolUniverse技能,这些技能集成多种科学工具、遵循与实现无关的标准,并达到100%的测试覆盖率。
Core Principles (Critical)
核心原则(至关重要)
CRITICAL - Read devtu-optimize-skills: This skill builds on principles from . Invoke that skill first or review its 10 pillars:
devtu-optimize-skills- TEST FIRST - Never write documentation without testing tools
- Verify tool contracts - Don't trust function names
- Handle SOAP tools - Add parameter where needed
operation - Implementation-agnostic docs - Separate SKILL.md from code
- Foundation first - Use comprehensive aggregators
- Disambiguate carefully - Resolve IDs properly
- Implement fallbacks - Primary → Fallback → Default
- Grade evidence - T1-T4 tiers on claims
- Require quantified completeness - Numeric minimums
- Synthesize - Models and hypotheses, not just lists
至关重要 - 阅读devtu-optimize-skills:本技能基于的原则构建。请先调用该技能或查看其10项核心支柱:
devtu-optimize-skills- 测试优先 - 未测试工具前绝不编写文档
- 验证工具契约 - 不要轻信函数名称
- 处理SOAP工具 - 必要时添加参数
operation - 与实现无关的文档 - 将SKILL.md与代码分离
- 基础优先 - 使用综合性聚合器
- 谨慎消除歧义 - 正确解析ID
- 实现回退策略 - 主工具→备用工具→默认方案
- 分级证据 - 对声明采用T1-T4分级
- 要求量化完整性 - 设置数值最小值
- 综合分析 - 提供模型和假设,而非仅罗列内容
When to Use This Skill
何时使用本技能
Use this skill when:
- Creating new ToolUniverse skills for specific domains
- Building research workflows using scientific tools
- Developing analysis capabilities (e.g., metabolomics, single-cell, cancer genomics)
- Integrating multiple databases into coherent pipelines
- Following up on "create [domain] skill" requests
在以下场景使用本技能:
- 为特定领域创建新的ToolUniverse技能
- 使用科学工具构建研究工作流
- 开发分析能力(如代谢组学、单细胞分析、癌症基因组学)
- 将多个数据库集成到连贯的流水线中
- 响应“创建[领域]技能”的请求
Overview: 7-Phase Workflow
概述:7阶段工作流
Phase 1: Domain Analysis →
Phase 2: Tool Discovery & Testing →
Phase 3: Tool Creation (if needed) →
Phase 4: Implementation →
Phase 5: Documentation →
Phase 6: Testing & Validation →
Phase 7: PackagingTime per skill: ~1.5-2 hours (tested and documented)
阶段1:领域分析 →
阶段2:工具发现与测试 →
阶段3:工具创建(如需要) →
阶段4:实现 →
阶段5:文档编写 →
阶段6:测试与验证 →
阶段7:打包每技能耗时:约1.5-2小时(含测试和文档)
Phase 1: Domain Analysis
阶段1:领域分析
Objective: Understand the scientific domain and identify required capabilities
Duration: 15 minutes
目标:理解科学领域并确定所需能力
时长:15分钟
1.1 Understand Use Cases
1.1 明确使用场景
Gather concrete examples of how the skill will be used:
- "What analyses should this skill perform?"
- "Can you give examples of typical queries?"
- "What outputs do users expect?"
Example queries to clarify:
- For metabolomics: "Identify metabolites in a sample" vs "Find pathways for metabolites" vs "Compare metabolite profiles"
- For cancer genomics: "Interpret mutations" vs "Find therapies" vs "Match clinical trials"
收集技能的具体使用示例:
- “该技能应执行哪些分析?”
- “能否给出典型查询的例子?”
- “用户期望得到什么输出?”
用于澄清的示例问题:
- 对于代谢组学:“识别样本中的代谢物” vs “查找代谢物的通路” vs “比较代谢物图谱”
- 对于癌症基因组学:“解读突变” vs “查找治疗方案” vs “匹配临床试验”
1.2 Identify Required Data Types
1.2 确定所需数据类型
List what the skill needs to work with:
- Input types: Gene lists, protein IDs, compound names, disease names, etc.
- Output types: Reports, tables, visualizations, data files
- Intermediate data: ID mappings, enrichment results, annotations
列出技能需要处理的数据类型:
- 输入类型:基因列表、蛋白质ID、化合物名称、疾病名称等
- 输出类型:报告、表格、可视化图表、数据文件
- 中间数据:ID映射、富集结果、注释信息
1.3 Define Analysis Phases
1.3 定义分析阶段
Break the workflow into logical phases:
Example - Metabolomics Skill:
- Phase 1: Metabolite identification (name → IDs)
- Phase 2: Metabolite annotation (properties, pathways)
- Phase 3: Pathway enrichment (statistical analysis)
- Phase 4: Comparative analysis (samples/conditions)
Example - Cancer Genomics Skill:
- Phase 1: Mutation validation (check databases)
- Phase 2: Clinical significance (actionability)
- Phase 3: Therapy matching (FDA approvals)
- Phase 4: Trial matching (clinical trials)
将工作流拆分为逻辑阶段:
示例 - 代谢组学技能:
- 阶段1:代谢物识别(名称→ID)
- 阶段2:代谢物注释(属性、通路)
- 阶段3:通路富集(统计分析)
- 阶段4:比较分析(样本/条件)
示例 - 癌症基因组学技能:
- 阶段1:突变验证(查询数据库)
- 阶段2:临床意义(可操作性)
- 阶段3:治疗方案匹配(FDA批准)
- 阶段4:临床试验匹配
1.4 Review Related Skills
1.4 参考相关技能
Check existing ToolUniverse skills for relevant patterns:
- Read similar skills in directory
skills/ - Note tool usage patterns
- Identify reusable approaches
Useful related skills:
- - Multi-database integration
tooluniverse-systems-biology - - Comprehensive profiling
tooluniverse-target-research - - Pharmaceutical workflows
tooluniverse-drug-research
查看现有ToolUniverse技能中的相关模式:
- 阅读目录中的类似技能
skills/ - 记录工具使用模式
- 确定可复用的方法
有用的相关技能:
- - 多数据库集成
tooluniverse-systems-biology - - 全面分析
tooluniverse-target-research - - 制药领域工作流
tooluniverse-drug-research
Phase 2: Tool Discovery & Testing
阶段2:工具发现与测试
Objective: Find and verify tools needed for each analysis phase
Duration: 30-45 minutes
CRITICAL: Following test-driven development from devtu-optimize-skills
目标:为每个分析阶段找到并验证所需工具
时长:30-45分钟
至关重要:遵循devtu-optimize-skills中的测试驱动开发原则
2.1 Search Available Tools
2.1 搜索可用工具
Tool locations: (186 tool files)
/src/tooluniverse/data/*.jsonSearch strategies:
- Keyword search:
grep -r "keyword" src/tooluniverse/data/*.json - Tool listing: List all tools from specific database
- Function search: Search by domain (metabolomics, genomics, etc.)
Example searches:
bash
undefined工具位置:(186个工具文件)
/src/tooluniverse/data/*.json搜索策略:
- 关键词搜索:
grep -r "keyword" src/tooluniverse/data/*.json - 工具列表:列出特定数据库中的所有工具
- 功能搜索:按领域(代谢组学、基因组学等)搜索
示例搜索:
bash
undefinedFind metabolomics tools
查找代谢组学工具
grep -l "metabol" src/tooluniverse/data/*.json
grep -l "metabol" src/tooluniverse/data/*.json
Find cancer-related tools
查找癌症相关工具
grep -l "cancer|tumor|oncology" src/tooluniverse/data/*.json
grep -l "cancer|tumor|oncology" src/tooluniverse/data/*.json
Find single-cell tools
查找单细胞工具
grep -l "single.cell|scRNA" src/tooluniverse/data/*.json
undefinedgrep -l "single.cell|scRNA" src/tooluniverse/data/*.json
undefined2.2 Read Tool Configurations
2.2 阅读工具配置
For each relevant tool file, read to understand:
- Tool names and descriptions
- Parameters (CRITICAL - don't assume from function names!)
- Return schemas
- Test examples
Check for:
- SOAP tools (require parameter)
operation - Parameter name patterns
- Response format variations
对于每个相关工具文件,需了解:
- 工具名称和描述
- 参数(至关重要 - 不要从函数名称推断!)
- 返回模式
- 测试示例
需要检查:
- SOAP工具(需要参数)
operation - 参数名称模式
- 响应格式差异
2.3 Create Test Script (REQUIRED)
2.3 创建测试脚本(必填)
NEVER skip this step - Testing before documentation is the #1 lesson
Template: See
scripts/test_tools_template.pyTest script structure:
python
#!/usr/bin/env python3
"""
Test script for [Domain] tools
Following TDD: test ALL tools BEFORE creating skill documentation
"""
from tooluniverse import ToolUniverse
import json
def test_database_1():
"""Test Database 1 tools"""
tu = ToolUniverse()
tu.load_tools()
# Test tool 1
result = tu.tools.TOOL_NAME(param="value")
print(f"Status: {result.get('status')}")
# Verify response format
# Check data structure
def test_database_2():
"""Test Database 2 tools"""
# Similar structure
def main():
"""Run all tests"""
tests = [
("Database 1", test_database_1),
("Database 2", test_database_2),
]
results = {}
for name, test_func in tests:
try:
test_func()
results[name] = "✅ PASS"
except Exception as e:
results[name] = f"❌ FAIL: {e}"
# Print summary
for name, result in results.items():
print(f"{name}: {result}")
if __name__ == "__main__":
main()绝不要跳过此步骤 - 先测试再编写文档是最重要的经验
模板:参见
scripts/test_tools_template.py测试脚本结构:
python
#!/usr/bin/env python3
"""
[领域]工具测试脚本
遵循TDD:创建技能文档前测试所有工具
"""
from tooluniverse import ToolUniverse
import json
def test_database_1():
"""测试数据库1的工具"""
tu = ToolUniverse()
tu.load_tools()
# 测试工具1
result = tu.tools.TOOL_NAME(param="value")
print(f"状态: {result.get('status')}")
# 验证响应格式
# 检查数据结构
def test_database_2():
"""测试数据库2的工具"""
# 类似结构
def main():
"""运行所有测试"""
tests = [
("数据库1", test_database_1),
("数据库2", test_database_2),
]
results = {}
for name, test_func in tests:
try:
test_func()
results[name] = "✅ 通过"
except Exception as e:
results[name] = f"❌ 失败: {e}"
# 打印摘要
for name, result in results.items():
print(f"{name}: {result}")
if __name__ == "__main__":
main()2.4 Run Tests and Document Findings
2.4 运行测试并记录发现
Execute:
bash
python test_[domain]_tools.pyDocument discoveries:
- Response format variations (standard, direct list, direct dict)
- Parameter mismatches (function name ≠ parameter name)
- SOAP tools requiring
operation - Tools that don't work / return errors
Create parameter corrections table:
| Tool | Common Mistake | Correct Parameter | Evidence |
|---|---|---|---|
| TOOL_NAME | assumed_param | actual_param | Test result |
执行:
bash
python test_[domain]_tools.py记录发现:
- 响应格式差异(标准格式、直接列表、直接字典)
- 参数不匹配(函数名称≠参数名称)
- 需要参数的SOAP工具
operation - 无法工作/返回错误的工具
创建参数修正表:
| 工具 | 常见错误 | 正确参数 | 依据 |
|---|---|---|---|
| TOOL_NAME | assumed_param | actual_param | 测试结果 |
Phase 3: Tool Creation (If Needed)
阶段3:工具创建(如需要)
Objective: Create missing tools using devtu-create-tool
Duration: 30-60 minutes per tool (if needed)
When to create tools:
- Required functionality not available in existing tools
- Critical analysis step has no tool support
- Alternative tools exist but are inferior
When NOT to create tools:
- Adequate tools already exist
- Analysis can use alternative approach
- Tool would duplicate existing functionality
目标:使用devtu-create-tool创建缺失的工具
时长:每个工具30-60分钟(如需要)
何时创建工具:
- 现有工具不具备所需功能
- 关键分析步骤无工具支持
- 存在替代工具但性能不佳
何时不创建工具:
- 已有足够的工具可用
- 可通过调整分析方法使用现有工具
- 工具会重复现有功能
3.1 Use devtu-create-tool Skill
3.1 使用devtu-create-tool技能
If tools are missing, invoke the devtu-create-tool skill:
Example invocation:
"I need to create a tool for [database/API]. The API endpoint is [URL],
it takes parameters [list], and returns [format]. Can you help create this tool?"若缺少工具,调用devtu-create-tool技能:
示例调用:
"我需要为[数据库/API]创建一个工具。API端点是[URL],接受参数[列表],返回[格式]。能否帮我创建这个工具?"3.2 Test New Tools
3.2 测试新工具
After creating tools, add them to test script:
python
def test_new_tool():
"""Test newly created tool"""
tu = ToolUniverse()
tu.load_tools()
result = tu.tools.NEW_TOOL_NAME(param="test_value")
assert result.get('status') == 'success', "New tool failed"
# Verify data structure matches expectations创建工具后,将其添加到测试脚本:
python
def test_new_tool():
"""测试新创建的工具"""
tu = ToolUniverse()
tu.load_tools()
result = tu.tools.NEW_TOOL_NAME(param="test_value")
assert result.get('status') == 'success', "新工具测试失败"
# 验证数据结构符合预期3.3 Use devtu-fix-tool If Needed
3.3 必要时使用devtu-fix-tool
If new tools fail tests, invoke devtu-fix-tool:
"The tool [TOOL_NAME] is returning errors: [error message].
Can you help fix it?"若新工具测试失败,调用devtu-fix-tool:
"工具[TOOL_NAME]返回错误:[错误信息]。能否帮我修复它?"Phase 4: Implementation
阶段4:实现
Objective: Create working Python pipeline with tested tools
Duration: 30-45 minutes
CRITICAL: Build from tested tools, not assumptions
目标:使用经过测试的工具创建可运行的Python流水线
时长:30-45分钟
至关重要:基于经过测试的工具构建,而非假设
4.1 Create Skill Directory
4.1 创建技能目录
bash
mkdir -p skills/tooluniverse-[domain-name]
cd skills/tooluniverse-[domain-name]bash
mkdir -p skills/tooluniverse-[domain-name]
cd skills/tooluniverse-[domain-name]4.2 Write python_implementation.py
4.2 编写python_implementation.py
Template: See
assets/skill_template/python_implementation.pyStructure:
python
#!/usr/bin/env python3
"""
[Domain Name] - Python SDK Implementation
Tested implementation following TDD principles
"""
from tooluniverse import ToolUniverse
from datetime import datetime
def domain_analysis_pipeline(
input_param_1=None,
input_param_2=None,
output_file=None
):
"""
[Domain] analysis pipeline.
Args:
input_param_1: Description
input_param_2: Description
output_file: Output markdown file path
Returns:
Path to generated report file
"""
tu = ToolUniverse()
tu.load_tools()
# Generate output filename
if output_file is None:
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
output_file = f"domain_analysis_{timestamp}.md"
# Initialize report
report = []
report.append("# [Domain] Analysis Report\n")
report.append(f"**Generated**: {datetime.now()}\n\n")
# Phase 1: [Description]
report.append("## 1. [Phase Name]\n")
try:
result = tu.tools.TOOL_NAME(param=value)
if result.get('status') == 'success':
data = result.get('data', [])
# Process and add to report
else:
report.append("*[Phase] data unavailable.*\n")
except Exception as e:
report.append(f"*Error in [Phase]: {str(e)}*\n")
# Phase 2, 3, 4... (similar structure)
# Write report
with open(output_file, 'w') as f:
f.write(''.join(report))
print(f"\n✅ Report generated: {output_file}")
return output_file
if __name__ == "__main__":
# Example usage
domain_analysis_pipeline(
input_param_1="example",
output_file="example_analysis.md"
)Key principles:
- Use tested tools only
- Handle errors gracefully (try/except)
- Continue if one phase fails
- Progressive report writing
- Clear status messages
模板:参见
assets/skill_template/python_implementation.py结构:
python
#!/usr/bin/env python3
"""
[领域名称] - Python SDK实现
遵循TDD原则的经过测试的实现
"""
from tooluniverse import ToolUniverse
from datetime import datetime
def domain_analysis_pipeline(
input_param_1=None,
input_param_2=None,
output_file=None
):
"""
[领域]分析流水线。
参数:
input_param_1: 描述
input_param_2: 描述
output_file: 输出markdown文件路径
返回:
生成的报告文件路径
"""
tu = ToolUniverse()
tu.load_tools()
# 生成输出文件名
if output_file is None:
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
output_file = f"domain_analysis_{timestamp}.md"
# 初始化报告
report = []
report.append("# [领域]分析报告\n")
report.append(f"**生成时间**: {datetime.now()}\n\n")
# 阶段1: [描述]
report.append("## 1. [阶段名称]\n")
try:
result = tu.tools.TOOL_NAME(param=value)
if result.get('status') == 'success':
data = result.get('data', [])
# 处理并添加到报告
else:
report.append("*[阶段]数据不可用。*\n")
except Exception as e:
report.append(f"*[阶段]出错: {str(e)}*\n")
# 阶段2、3、4...(类似结构)
# 写入报告
with open(output_file, 'w') as f:
f.write(''.join(report))
print(f"\n✅ 报告已生成: {output_file}")
return output_file
if __name__ == "__main__":
# 示例用法
domain_analysis_pipeline(
input_param_1="example",
output_file="example_analysis.md"
)核心原则:
- 仅使用经过测试的工具
- 优雅处理错误(try/except)
- 某一阶段失败后仍继续执行
- 逐步编写报告
- 清晰的状态提示
4.3 Create test_skill.py
4.3 创建test_skill.py
Template: See
assets/skill_template/test_skill.pyTest cases:
- Test each input type
- Test combined inputs
- Verify report sections exist
- Check error handling
python
#!/usr/bin/env python3
"""Test script for [Domain] skill"""
import sys
import os
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
from python_implementation import domain_analysis_pipeline
def test_basic_analysis():
"""Test basic analysis workflow"""
output = domain_analysis_pipeline(
input_param_1="test_value",
output_file="test_basic.md"
)
assert os.path.exists(output), "Output file not created"
def test_combined_analysis():
"""Test with multiple inputs"""
output = domain_analysis_pipeline(
input_param_1="value1",
input_param_2="value2",
output_file="test_combined.md"
)
# Verify report has all sections
with open(output, 'r') as f:
content = f.read()
assert "Phase 1" in content
assert "Phase 2" in content
def main():
tests = [
("Basic Analysis", test_basic_analysis),
("Combined Analysis", test_combined_analysis),
]
results = {}
for name, test_func in tests:
try:
test_func()
results[name] = "✅ PASS"
except Exception as e:
results[name] = f"❌ FAIL: {e}"
for name, result in results.items():
print(f"{name}: {result}")
all_passed = all("PASS" in r for r in results.values())
return 0 if all_passed else 1
if __name__ == "__main__":
sys.exit(main())模板:参见
assets/skill_template/test_skill.py测试用例:
- 测试每种输入类型
- 测试组合输入
- 验证报告章节存在
- 检查错误处理
python
#!/usr/bin/env python3
"""[领域]技能测试脚本"""
import sys
import os
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
from python_implementation import domain_analysis_pipeline
def test_basic_analysis():
"""测试基础分析工作流"""
output = domain_analysis_pipeline(
input_param_1="test_value",
output_file="test_basic.md"
)
assert os.path.exists(output), "未创建输出文件"
def test_combined_analysis():
"""测试多输入场景"""
output = domain_analysis_pipeline(
input_param_1="value1",
input_param_2="value2",
output_file="test_combined.md"
)
# 验证报告包含所有章节
with open(output, 'r') as f:
content = f.read()
assert "阶段1" in content
assert "阶段2" in content
def main():
tests = [
("基础分析", test_basic_analysis),
("组合分析", test_combined_analysis),
]
results = {}
for name, test_func in tests:
try:
test_func()
results[name] = "✅ 通过"
except Exception as e:
results[name] = f"❌ 失败: {e}"
for name, result in results.items():
print(f"{name}: {result}")
all_passed = all("通过" in r for r in results.values())
return 0 if all_passed else 1
if __name__ == "__main__":
sys.exit(main())4.4 Run Tests
4.4 运行测试
bash
python test_skill.pyFix bugs until 100% pass rate
bash
python test_skill.py修复错误直至100%通过
Phase 5: Documentation
阶段5:文档编写
Objective: Create implementation-agnostic documentation
Duration: 30-45 minutes
CRITICAL: SKILL.md must have ZERO Python/MCP specific code
目标:创建与实现无关的文档
时长:30-45分钟
至关重要:SKILL.md中绝不能包含任何Python/MCP特定代码
5.1 Write SKILL.md
5.1 编写SKILL.md
Template: See
assets/skill_template/SKILL.mdStructure:
markdown
---
name: tooluniverse-[domain-name]
description: [What it does]. [Capabilities]. [Databases used]. Use when [triggers].
---模板:参见
assets/skill_template/SKILL.md结构:
markdown
---
name: tooluniverse-[domain-name]
description: [功能描述]。[能力]。[使用的数据库]。适用于[触发场景]。
---[Domain Name] Analysis
[领域名称]分析
[One paragraph overview]
[一段概述]
When to Use This Skill
何时使用本技能
Triggers:
- "Analyze [domain] for [input]"
- "Find [data type] related to [query]"
- "[Domain-specific action]"
Use Cases:
- [Use case 1 with description]
- [Use case 2 with description]
触发场景:
- "分析[领域]的[输入]"
- "查找与[查询]相关的[数据类型]"
- "[领域特定操作]"
使用场景:
- [场景1及描述]
- [场景2及描述]
Core Databases Integrated
集成的核心数据库
| Database | Coverage | Strengths |
|---|---|---|
| Database 1 | [Scope] | [What it's good for] |
| Database 2 | [Scope] | [What it's good for] |
| 数据库 | 覆盖范围 | 优势 |
|---|---|---|
| 数据库1 | [范围] | [适用场景] |
| 数据库2 | [范围] | [适用场景] |
Workflow Overview
工作流概述
Input → Phase 1 → Phase 2 → Phase 3 → Report输入 → 阶段1 → 阶段2 → 阶段3 → 报告Phase 1: [Phase Name]
阶段1: [阶段名称]
When: [Conditions]
Objective: [What this phase achieves]
适用时机: [条件]
目标: [本阶段要实现的内容]
Tools Used
使用的工具
TOOL_NAME:
- Input:
- : Description
parameter1 - : Description
parameter2
- Output: Description
- Use: What it's used for
TOOL_NAME:
- 输入:
- : 描述
parameter1 - : 描述
parameter2
- 输出: 描述
- 用途: 使用场景
Workflow
工作流
- [Step 1]
- [Step 2]
- [Step 3]
- [步骤1]
- [步骤2]
- [步骤3]
Decision Logic
决策逻辑
- Condition 1: Action to take
- Empty results: How to handle
- Errors: Fallback strategy
- 条件1: 执行的操作
- 无结果: 处理方式
- 错误: 回退策略
Phase 2, 3, 4... (similar structure)
阶段2、3、4...(类似结构)
Output Structure
输出结构
[Description of report format]
[报告格式描述]
Report Format
报告格式
Required Sections:
- Header with parameters
- Phase 1 results
- Phase 2 results ...
必填章节:
- 带参数的标题
- 阶段1结果
- 阶段2结果 ...
Tool Parameter Reference
工具参数参考
Critical Parameter Notes (from testing):
| Tool | Parameter | CORRECT Name | Common Mistake |
|---|---|---|---|
| TOOL_NAME | | ✅ | ❌ |
Response Format Notes:
- TOOL_1: Returns [format]
- TOOL_2: Returns [format]
关键参数说明(来自测试):
| 工具 | 参数 | 正确名称 | 常见错误 |
|---|---|---|---|
| TOOL_NAME | | ✅ | ❌ |
响应格式说明:
- TOOL_1: 返回[格式]
- TOOL_2: 返回[格式]
Fallback Strategies
回退策略
[Document Primary → Fallback → Default for critical tools]
[记录关键工具的主工具→备用工具→默认方案]
Limitations & Known Issues
限制与已知问题
Database-Specific
数据库相关
- Database 1: [Limitations]
- Database 2: [Limitations]
- 数据库1: [限制]
- 数据库2: [限制]
Technical
技术相关
- Response formats: [Notes]
- Rate limits: [If any]
- 响应格式: [说明]
- 速率限制: [如有]
Summary
总结
[Domain] skill provides:
- ✅ [Capability 1]
- ✅ [Capability 2]
Outputs: [Description]
Best for: [Use cases]
**Key principles**:
- NO Python/MCP code in SKILL.md
- Describe WHAT to do, not HOW in specific language
- Tool parameters conceptually described
- Decision logic and fallback strategies
- Response format variations documented[领域]技能提供:
- ✅ [能力1]
- ✅ [能力2]
输出: [描述]
最佳适用场景: [场景]
**核心原则**:
- SKILL.md中无Python/MCP代码
- 描述要做什么,而非特定语言的实现方式
- 从概念上描述工具参数
- 记录决策逻辑和回退策略
- 记录响应格式差异5.2 Write QUICK_START.md
5.2 编写QUICK_START.md
Template: See
assets/skill_template/QUICK_START.mdStructure:
markdown
undefined模板:参见
assets/skill_template/QUICK_START.md结构:
markdown
undefinedQuick Start: [Domain] Analysis
快速开始:[领域]分析
[One paragraph overview]
[一段概述]
Choose Your Implementation
选择你的实现方式
Python SDK
Python SDK
Option 1: Complete Pipeline (Recommended)
选项1:完整流水线(推荐)
python
from skills.tooluniverse_[domain].python_implementation import domain_pipelinepython
from skills.tooluniverse_[domain].python_implementation import domain_pipelineExample 1
示例1
domain_pipeline(
input_param="value",
output_file="analysis.md"
)
undefineddomain_pipeline(
input_param="value",
output_file="analysis.md"
)
undefinedOption 2: Individual Tools
选项2:单个工具
python
from tooluniverse import ToolUniverse
tu = ToolUniverse()
tu.load_tools()python
from tooluniverse import ToolUniverse
tu = ToolUniverse()
tu.load_tools()Tool 1
工具1
result = tu.tools.TOOL_NAME(param="value")
result = tu.tools.TOOL_NAME(param="value")
Tool 2
工具2
result = tu.tools.TOOL_NAME2(param="value")
---result = tu.tools.TOOL_NAME2(param="value")
---MCP (Model Context Protocol)
MCP(Model Context Protocol)
Option 1: Conversational (Natural Language)
选项1:对话式(自然语言)
"Analyze [domain] for [input]"
"Find [data] related to [query]""分析[领域]的[输入]"
"查找与[查询]相关的[数据]"Option 2: Direct Tool Calls
选项2:直接调用工具
json
{
"tool": "TOOL_NAME",
"parameters": {
"param": "value"
}
}json
{
"tool": "TOOL_NAME",
"parameters": {
"param": "value"
}
}Tool Parameters (All Implementations)
工具参数(所有实现方式)
| Parameter | Type | Required | Description |
|---|---|---|---|
| string | Yes | [Description] |
| integer | No | [Description] |
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| string | 是 | [描述] |
| integer | 否 | [描述] |
Common Recipes
常用示例
Recipe 1: [Use Case Name]
示例1: [使用场景名称]
Python SDK:
python
[Code example]MCP:
[Conversational example]Python SDK:
python
[代码示例]MCP:
[对话示例]Recipe 2, 3... (similar)
示例2、3...(类似结构)
Expected Output
预期输出
[Show example report structure]
[展示示例报告结构]
Troubleshooting
故障排除
Issue: [Problem]
问题: [问题描述]
Solution: [Fix]
解决方案: [修复方法]
Next Steps
后续步骤
After running this skill:
- [Follow-up action 1]
- [Follow-up action 2]
**Key principles**:
- Equal treatment of Python SDK and MCP
- Concrete examples for both
- Parameter table applies to both
- Clear recipes
---运行本技能后:
- [后续操作1]
- [后续操作2]
**核心原则**:
- 平等对待Python SDK和MCP
- 为两者提供具体示例
- 参数表适用于所有实现方式
- 提供清晰的示例
---Phase 6: Testing & Validation
阶段6:测试与验证
Objective: Verify skill meets all quality standards through comprehensive testing
Duration: 30-45 minutes
CRITICAL: This phase is MANDATORY - no skill is complete without passing comprehensive tests
目标:通过全面测试验证技能符合所有质量标准
时长:30-45分钟
至关重要:本阶段为必填项 - 未通过全面测试的技能不算完成
6.1 Create Comprehensive Test Suite
6.1 创建综合测试套件
File:
test_skill_comprehensive.pyCRITICAL: Test ALL use cases from documentation + edge cases
Test structure:
python
#!/usr/bin/env python3
"""
Comprehensive Test Suite for [Domain] Skill
Tests all use cases from SKILL.md + edge cases
"""
import sys
import os
sys.path.insert(0, os.path.join(os.path.dirname(__file__)))
from python_implementation import skill_function
from tooluniverse import ToolUniverse
def test_1_use_case_from_skill_md():
"""Test Case 1: [Use case name from SKILL.md]"""
print("\n" + "="*80)
print("TEST 1: [Use Case Name]")
print("="*80)
print("Expected: [What should happen]")
tu = ToolUniverse()
result = skill_function(tu=tu, input_param="value")
# Validation
assert isinstance(result, ExpectedType), "Should return expected type"
assert result.field_name is not None, "Should have required field"
print(f"\n✅ PASS: [What passed]")
return result
def test_2_documentation_accuracy():
"""Test Case 2: QUICK_START.md example works exactly as documented"""
print("\n" + "="*80)
print("TEST 2: Documentation Accuracy")
print("="*80)
# Exact copy-paste from QUICK_START.md
tu = ToolUniverse()
result = skill_function(tu=tu, param="value") # From docs
# Verify documented attributes exist
assert hasattr(result, 'documented_field'), "Doc says this field exists"
print(f"\n✅ PASS: Documentation examples work")
return result
def test_3_edge_case_invalid_input():
"""Test Case 3: Error handling with invalid inputs"""
print("\n" + "="*80)
print("TEST 3: Error Handling")
print("="*80)
tu = ToolUniverse()
result = skill_function(tu=tu, input_param="INVALID")
# Should handle gracefully, not crash
assert isinstance(result, ExpectedType), "Should still return result"
assert len(result.warnings) > 0, "Should have warnings"
print(f"\n✅ PASS: Handled invalid input gracefully")
return result
def test_4_result_structure():
"""Test Case 4: Result structure matches documentation"""
print("\n" + "="*80)
print("TEST 4: Result Structure")
print("="*80)
tu = ToolUniverse()
result = skill_function(tu=tu, input_param="value")
# Check all documented fields
required_fields = ['field1', 'field2', 'field3']
for field in required_fields:
assert hasattr(result, field), f"Missing field: {field}"
print(f"\n✅ PASS: All documented fields present")
return result
def test_5_parameter_validation():
"""Test Case 5: All documented parameters work"""
print("\n" + "="*80)
print("TEST 5: Parameter Validation")
print("="*80)
tu = ToolUniverse()
result = skill_function(
tu=tu,
param1="value1", # All documented params
param2="value2",
param3=True
)
assert isinstance(result, ExpectedType), "Should work with all params"
print(f"\n✅ PASS: All parameters accepted")
return result
def run_all_tests():
"""Run all tests and generate report"""
print("\n" + "="*80)
print("[DOMAIN] SKILL - COMPREHENSIVE TEST SUITE")
print("="*80)
tests = [
("Use Case 1", test_1_use_case_from_skill_md),
("Documentation Accuracy", test_2_documentation_accuracy),
("Error Handling", test_3_edge_case_invalid_input),
("Result Structure", test_4_result_structure),
("Parameter Validation", test_5_parameter_validation),
]
results = {}
passed = 0
failed = 0
for test_name, test_func in tests:
try:
result = test_func()
results[test_name] = {"status": "PASS", "result": result}
passed += 1
except Exception as e:
results[test_name] = {"status": "FAIL", "error": str(e)}
failed += 1
print(f"\n❌ FAIL: {test_name}")
print(f" Error: {e}")
# Summary
print("\n" + "="*80)
print("TEST SUMMARY")
print("="*80)
print(f"✅ Passed: {passed}/{len(tests)}")
print(f"❌ Failed: {failed}/{len(tests)}")
print(f"📊 Success Rate: {passed/len(tests)*100:.1f}%")
if failed == 0:
print("\n🎉 ALL TESTS PASSED! Skill is production-ready.")
else:
print("\n⚠️ Some tests failed. Review errors above.")
return passed, failed
if __name__ == "__main__":
passed, failed = run_all_tests()
sys.exit(0 if failed == 0 else 1)Requirements:
- ✅ Test ALL use cases from SKILL.md (typically 4-6 use cases)
- ✅ Test QUICK_START.md example (exact copy-paste must work)
- ✅ Test error handling (invalid inputs don't crash)
- ✅ Test result structure (all fields present, correct types)
- ✅ Test all parameters (documented params accepted)
- ✅ Test edge cases (empty results, partial failures)
文件:
test_skill_comprehensive.py至关重要:测试SKILL.md中的所有使用场景及边缘情况
测试结构:
python
#!/usr/bin/env python3
"""
[领域]技能综合测试套件
测试SKILL.md中的所有使用场景及边缘情况
"""
import sys
import os
sys.path.insert(0, os.path.join(os.path.dirname(__file__)))
from python_implementation import skill_function
from tooluniverse import ToolUniverse
def test_1_use_case_from_skill_md():
"""测试用例1: [SKILL.md中的使用场景名称]"""
print("\n" + "="*80)
print("测试1: [使用场景名称]")
print("="*80)
print("预期: [应发生的情况]")
tu = ToolUniverse()
result = skill_function(tu=tu, input_param="value")
# 验证
assert isinstance(result, ExpectedType), "应返回预期类型"
assert result.field_name is not None, "应包含必填字段"
print(f"\n✅ 通过: [通过的内容]")
return result
def test_2_documentation_accuracy():
"""测试用例2: QUICK_START.md中的示例完全按文档运行"""
print("\n" + "="*80)
print("测试2: 文档准确性")
print("="*80)
# 直接复制QUICK_START.md中的代码
tu = ToolUniverse()
result = skill_function(tu=tu, param="value") # 来自文档
# 验证文档中提到的属性存在
assert hasattr(result, 'documented_field'), "文档说明该字段存在"
print(f"\n✅ 通过: 文档示例可正常运行")
return result
def test_3_edge_case_invalid_input():
"""测试用例3: 无效输入的错误处理"""
print("\n" + "="*80)
print("测试3: 错误处理")
print("="*80)
tu = ToolUniverse()
result = skill_function(tu=tu, input_param="INVALID")
# 应优雅处理,而非崩溃
assert isinstance(result, ExpectedType), "仍应返回结果"
assert len(result.warnings) > 0, "应包含警告信息"
print(f"\n✅ 通过: 优雅处理无效输入")
return result
def test_4_result_structure():
"""测试用例4: 结果结构与文档一致"""
print("\n" + "="*80)
print("测试4: 结果结构")
print("="*80)
tu = ToolUniverse()
result = skill_function(tu=tu, input_param="value")
# 检查所有文档中提到的字段
required_fields = ['field1', 'field2', 'field3']
for field in required_fields:
assert hasattr(result, field), f"缺失字段: {field}"
print(f"\n✅ 通过: 所有文档字段均存在")
return result
def test_5_parameter_validation():
"""测试用例5: 所有文档中提到的参数均可正常使用"""
print("\n" + "="*80)
print("测试5: 参数验证")
print("="*80)
tu = ToolUniverse()
result = skill_function(
tu=tu,
param1="value1", # 所有文档参数
param2="value2",
param3=True
)
assert isinstance(result, ExpectedType), "使用所有参数时应正常工作"
print(f"\n✅ 通过: 所有参数均可正常接受")
return result
def run_all_tests():
"""运行所有测试并生成报告"""
print("\n" + "="*80)
print("[领域]技能 - 综合测试套件")
print("="*80)
tests = [
("使用场景1", test_1_use_case_from_skill_md),
("文档准确性", test_2_documentation_accuracy),
("错误处理", test_3_edge_case_invalid_input),
("结果结构", test_4_result_structure),
("参数验证", test_5_parameter_validation),
]
results = {}
passed = 0
failed = 0
for test_name, test_func in tests:
try:
result = test_func()
results[test_name] = {"status": "通过", "result": result}
passed += 1
except Exception as e:
results[test_name] = {"status": "失败", "error": str(e)}
failed += 1
print(f"\n❌ 失败: {test_name}")
print(f" 错误: {e}")
# 摘要
print("\n" + "="*80)
print("测试摘要")
print("="*80)
print(f"✅ 通过: {passed}/{len(tests)}")
print(f"❌ 失败: {failed}/{len(tests)}")
print(f"📊 成功率: {passed/len(tests)*100:.1f}%")
if failed == 0:
print("\n🎉 所有测试通过!技能可投入生产环境。")
else:
print("\n⚠️ 部分测试失败。请查看上述错误信息。")
return passed, failed
if __name__ == "__main__":
passed, failed = run_all_tests()
sys.exit(0 if failed == 0 else 1)要求:
- ✅ 测试SKILL.md中的所有使用场景(通常4-6个)
- ✅ 测试QUICK_START.md中的示例(直接复制粘贴即可运行)
- ✅ 测试错误处理(无效输入不会导致崩溃)
- ✅ 验证结果结构(所有字段存在,类型正确)
- ✅ 测试所有参数(文档中提到的参数均可正常使用)
- ✅ 测试边缘情况(无结果、部分失败)
6.2 Run Test Suite & Generate Report
6.2 运行测试套件并生成报告
bash
cd skills/tooluniverse-[domain]
python test_skill_comprehensive.py > test_output.txt 2>&1Requirements:
- ✅ 100% test pass rate
- ✅ All use cases pass
- ✅ Documentation examples work exactly as written
- ✅ No exceptions or crashes
- ✅ Edge cases handled gracefully
bash
cd skills/tooluniverse-[domain]
python test_skill_comprehensive.py > test_output.txt 2>&1要求:
- ✅ 100%测试通过率
- ✅ 所有使用场景通过
- ✅ 文档示例完全按描述运行
- ✅ 无异常或崩溃
- ✅ 边缘情况得到优雅处理
6.3 Create Test Report
6.3 创建测试报告
File:
SKILL_TESTING_REPORT.mdContent:
markdown
undefined文件:
SKILL_TESTING_REPORT.md内容:
markdown
undefined[Domain] Skill - Testing Report
[领域]技能 - 测试报告
Date: [Date]
Status: ✅ PASS / ❌ FAIL
Success Rate: X/Y tests passed (100%)
日期: [日期]
状态: ✅ 通过 / ❌ 失败
成功率: X/Y测试通过 (100%)
Executive Summary
执行摘要
[Brief summary of testing results]
[测试结果简要总结]
Test Results
测试结果
Test 1: [Use Case Name] ✅
测试1: [使用场景名称] ✅
Use Case: [Description from SKILL.md]
Result: [What happened]
Validation: [What was verified]
使用场景: [SKILL.md中的描述]
结果: [实际情况]
验证: [验证内容]
Test 2-5: [Similar format]
测试2-5: [类似格式]
Quality Metrics
质量指标
- Code quality: [Assessment]
- Documentation accuracy: [All examples work / Issues found]
- Robustness: [Error handling assessment]
- User experience: [Assessment]
- 代码质量: [评估]
- 文档准确性: [所有示例可运行 / 发现问题]
- 健壮性: [错误处理评估]
- 用户体验: [评估]
Recommendation
建议
✅ PRODUCTION-READY / ❌ NEEDS FIXES
undefined✅ 可投入生产环境 / ❌ 需要修复
undefined6.4 Validate Against Checklist
6.4 对照检查清单验证
Implementation & Testing:
- All tool calls tested with real ToolUniverse instance
- Test script passes with 100% success
- Working pipeline runs without errors
- ALL use cases from SKILL.md tested
- QUICK_START examples tested (exact copy-paste works)
- Edge cases tested (invalid inputs, empty results)
- Result structure validated (all fields present)
- All parameters tested
- Error cases handled gracefully
- SOAP tools have parameter (if applicable)
operation - Fallback strategies implemented and tested
- Test report created (SKILL_TESTING_REPORT.md)
Documentation:
- SKILL.md is implementation-agnostic (NO Python/MCP code)
- python_implementation.py contains working code
- QUICK_START.md includes both Python SDK and MCP
- Tool parameter table notes "applies to all implementations"
- SOAP tool warnings displayed (if applicable)
- Fallback strategies documented
- Known limitations documented
- Example reports referenced
- Documentation examples verified to work
Quality:
- Reports are readable (not debug logs)
- All sections present even if "no data"
- Source databases clearly attributed
- Completes in reasonable time (<5 min)
- Test suite comprehensive (5+ test cases)
- Test report documents quality metrics
实现与测试:
- 所有工具调用均使用真实ToolUniverse实例测试
- 测试脚本100%通过
- 工作流水线可正常运行无错误
- SKILL.md中的所有使用场景均已测试
- QUICK_START中的示例已测试(直接复制粘贴即可运行)
- 边缘情况已测试(无效输入、无结果)
- 结果结构已验证(所有字段存在)
- 所有参数已测试
- 错误情况已优雅处理
- SOAP工具已添加参数(如适用)
operation - 回退策略已实现并测试
- 已创建测试报告(SKILL_TESTING_REPORT.md)
文档:
- SKILL.md与实现无关(无Python/MCP代码)
- python_implementation.py包含可运行代码
- QUICK_START.md包含Python SDK和MCP两种方式
- 工具参数表注明“适用于所有实现方式”
- 已显示SOAP工具警告(如适用)
- 已记录回退策略
- 已记录已知限制
- 已引用示例报告
- 文档示例已验证可正常运行
质量:
- 报告可读性强(非调试日志)
- 即使“无数据”也保留所有章节
- 明确注明数据源数据库
- 完成时间合理(<5分钟)
- 测试套件全面(5+测试用例)
- 测试报告记录了质量指标
6.5 Manual Verification
6.5 手动验证
Test with fresh environment:
- Load ToolUniverse
- Import python_implementation
- Run exact example from QUICK_START (copy-paste)
- Verify output matches expectations
- Verify all documented fields accessible
CRITICAL: If documentation example doesn't work, fix EITHER:
- The documentation (update to match implementation), OR
- The implementation (update to match documentation)
NEVER release with documentation that doesn't work
在全新环境中测试:
- 加载ToolUniverse
- 导入python_implementation
- 运行QUICK_START中的示例(直接复制粘贴)
- 验证输出符合预期
- 验证所有文档中提到的字段均可访问
至关重要:
如果文档示例无法运行,需修复以下其中一项:
- 文档(更新以匹配实现),或
- 实现(更新以匹配文档)
绝不要发布文档与实现不一致的技能
Phase 7: Packaging & Documentation
阶段7:打包与文档汇总
Objective: Create distributable skill and summary
Duration: 15 minutes
目标:创建可分发的技能及汇总文档
时长:15分钟
7.1 Create Summary Document
7.1 创建汇总文档
File:
NEW_SKILL_[DOMAIN].mdContent:
markdown
undefined文件:
NEW_SKILL_[DOMAIN].md内容:
markdown
undefinedNew Skill Created: [Domain] Analysis
已创建新技能: [领域]分析
Date: [Date]
Status: ✅ COMPLETE AND TESTED
日期: [日期]
状态: ✅ 完成并通过测试
Overview
概述
[Brief description]
[简要描述]
Key Features
核心特性
- [Feature 1]
- [Feature 2]
- [特性1]
- [特性2]
Skill Details
技能详情
Location:
skills/tooluniverse-[domain]/Files Created:
- ✅ ([lines]) - Working pipeline
python_implementation.py - ✅ ([lines]) - Implementation-agnostic docs
SKILL.md - ✅ ([lines]) - Multi-implementation guide
QUICK_START.md - ✅ ([lines]) - Test suite
test_skill.py
Total: [total lines]
位置:
skills/tooluniverse-[domain]/已创建文件:
- ✅ ([行数]) - 可运行流水线
python_implementation.py - ✅ ([行数]) - 与实现无关的文档
SKILL.md - ✅ ([行数]) - 多实现方式指南
QUICK_START.md - ✅ ([行数]) - 测试套件
test_skill.py
总行数: [总行数]
Tools Integrated
集成的工具
- Database 1: [X tools]
- Database 2: [Y tools] Total: [N tools]
- 数据库1: [X个工具]
- 数据库2: [Y个工具] 总计: [N个工具]
Test Results
测试结果
✅ Test 1 - PASS
✅ Test 2 - PASS
✅ Test 3 - PASS
100% test pass rate✅ 测试1 - 通过
✅ 测试2 - 通过
✅ 测试3 - 通过
100%测试通过率Capabilities
能力
[List key capabilities]
[列出核心能力]
Impact & Value
影响与价值
[Describe impact]
[描述影响]
Next Steps
后续步骤
[Suggest enhancements]
undefined[建议增强方向]
undefined7.2 Update Session Tracking
7.2 更新会话跟踪
If creating multiple skills in session, update tracking document with:
- Skills created count
- Total tools utilized
- Test coverage metrics
- Time per skill
如果在会话中创建了多个技能,更新跟踪文档:
- 已创建技能数量
- 已使用工具总数
- 测试覆盖率指标
- 每个技能耗时
Tool Parameter Verification Workflow
工具参数验证工作流
From devtu-optimize-skills - CRITICAL
来自devtu-optimize-skills - 至关重要
Common Parameter Mistakes to Avoid
需避免的常见参数错误
| Pattern | Don't Assume | Always Verify |
|---|---|---|
| Function name includes param name | | Test reveals uses |
| Descriptive function name | | Test reveals uses |
| Consistent naming | All similar functions use same param | Each tool may differ |
| 模式 | 不要假设 | 始终验证 |
|---|---|---|
| 函数名称包含参数名称 | | 测试发现实际使用 |
| 描述性函数名称 | | 测试发现实际使用 |
| 命名一致 | 所有类似函数使用相同参数 | 每个工具可能不同 |
SOAP Tools Detection
SOAP工具检测
Indicators:
- Error: "Parameter validation failed: 'operation' is a required property"
- Tool name includes: IMGT, SAbDab, TheraSAbDab
- Tool config shows in schema
operation
Fix: Add parameter as first argument with method name
operation指标:
- 错误: "Parameter validation failed: 'operation' is a required property"
- 工具名称包含: IMGT, SAbDab, TheraSAbDab
- 工具配置显示模式中包含
operation
修复: 将参数作为第一个参数,值为方法名称
operationResponse Format Variations
响应格式差异
Standard:
Direct list: Returns without wrapper
Direct dict: Returns without status
{status: "success", data: [...]}[...]{field1: ..., field2: ...}Solution: Handle all three in implementation with checks
isinstance()标准:
直接列表: 返回无包装
直接字典: 返回无状态
{status: "success", data: [...]}[...]{field1: ..., field2: ...}解决方案: 在实现中使用检查处理所有三种格式
isinstance()Integration with Other Skills
与其他技能的集成
When to Use devtu-create-tool
何时使用devtu-create-tool
Invoke when:
- Critical functionality has no existing tool
- Analysis phase completely blocked
- Alternative approaches inadequate
Don't invoke when:
- Similar tool exists with minor differences
- Can restructure analysis to use existing tools
- Tool would duplicate functionality
调用时机:
- 关键功能无现有工具
- 分析阶段完全受阻
- 替代方法不足
不要调用的时机:
- 存在类似工具仅略有差异
- 可调整分析使用现有工具
- 工具会重复现有功能
When to Use devtu-fix-tool
何时使用devtu-fix-tool
Invoke when:
- Test reveals tool returns errors
- Tool fails validation
- Response format unexpected
- Parameter validation fails
调用时机:
- 测试发现工具返回错误
- 工具验证失败
- 响应格式不符合预期
- 参数验证失败
When to Use devtu-optimize-skills
何时使用devtu-optimize-skills
Reference when:
- Need evidence grading patterns
- Want report optimization strategies
- Implementing completeness checking
- Designing synthesis sections
参考时机:
- 需要证据分级模式
- 想要报告优化策略
- 实现完整性检查
- 设计综合分析章节
Quality Indicators
质量指标
High-Quality Skill Has:
✅ 100% test coverage before documentation
✅ Implementation-agnostic SKILL.md
✅ Multi-implementation QUICK_START (Python SDK + MCP)
✅ Complete error handling with fallbacks
✅ Tool parameter corrections table
✅ Response format documentation
✅ All tools verified through testing
✅ Working examples in both interfaces
Red Flags:
❌ Documentation written before testing tools
❌ Python code in SKILL.md
❌ Assumed parameters from function names
❌ No fallback strategies
❌ SOAP tools missing
❌ No test script or failing tests
❌ Single implementation only
operation高质量技能具备:
✅ 编写文档前实现100%测试覆盖率
✅ 与实现无关的SKILL.md
✅ 多实现方式的QUICK_START(Python SDK + MCP)
✅ 完整的错误处理与回退策略
✅ 工具参数修正表
✅ 响应格式文档
✅ 所有工具均通过测试验证
✅ 两种接口均有可运行示例
危险信号:
❌ 先编写文档再测试工具
❌ SKILL.md中包含Python代码
❌ 从函数名称推断参数
❌ 无回退策略
❌ SOAP工具缺少参数
❌ 无测试脚本或测试失败
❌ 仅支持单一实现方式
operationTime Investment Guidelines
时间投入指南
Per Skill Breakdown:
- Phase 1 (Domain Analysis): 15 min
- Phase 2 (Tool Testing): 30-45 min
- Phase 3 (Tool Creation): 0-60 min (if needed)
- Phase 4 (Implementation): 30-45 min
- Phase 5 (Documentation): 30-45 min
- Phase 6 (Validation): 15-30 min
- Phase 7 (Packaging): 15 min
Total: ~1.5-2 hours per skill (without tool creation)
With tool creation: +30-60 minutes per tool
每个技能的时间分配:
- 阶段1(领域分析): 15分钟
- 阶段2(工具测试): 30-45分钟
- 阶段3(工具创建): 0-60分钟(如需要)
- 阶段4(实现): 30-45分钟
- 阶段5(文档编写): 30-45分钟
- 阶段6(验证): 15-30分钟
- 阶段7(打包): 15分钟
总计: 每个技能约1.5-2小时(无工具创建)
含工具创建: 每个工具额外增加30-60分钟
References
参考资料
- Tool testing workflow: See
references/tool_testing_workflow.md - Implementation-agnostic format: See
references/implementation_agnostic_format.md - Standards checklist: See
references/skill_standards_checklist.md - devtu-optimize integration: See
references/devtu_optimize_integration.md
- 工具测试工作流: 参见
references/tool_testing_workflow.md - 与实现无关的格式: 参见
references/implementation_agnostic_format.md - 标准检查清单: 参见
references/skill_standards_checklist.md - 与devtu-optimize集成: 参见
references/devtu_optimize_integration.md
Templates
模板
All templates available in :
assets/skill_template/- - Pipeline template
python_implementation.py - - Documentation template
SKILL.md - - Multi-implementation guide
QUICK_START.md - - Test suite template
test_skill.py
所有模板位于:
assets/skill_template/- - 流水线模板
python_implementation.py - - 文档模板
SKILL.md - - 多实现方式指南
QUICK_START.md - - 测试套件模板
test_skill.py
Summary
总结
Create ToolUniverse Skill provides systematic 7-phase workflow:
- ✅ Domain Analysis - Understand requirements
- ✅ Tool Testing - Verify before documenting (TEST FIRST!)
- ✅ Tool Creation - Add missing tools if needed
- ✅ Implementation - Build working pipeline
- ✅ Documentation - Implementation-agnostic format
- ✅ Validation - 100% test coverage
- ✅ Packaging - Complete summary
Result: Production-ready skills with Python SDK + MCP support, complete testing, and quality documentation
Time: ~1.5-2 hours per skill (tested and documented)
创建ToolUniverse技能提供系统的7阶段工作流:
- ✅ 领域分析 - 明确需求
- ✅ 工具测试 - 先验证再编写文档(测试优先!)
- ✅ 工具创建 - 必要时添加缺失工具
- ✅ 实现 - 构建可运行流水线
- ✅ 文档编写 - 与实现无关的格式
- ✅ 验证 - 100%测试覆盖率
- ✅ 打包 - 完整汇总
结果: 可投入生产环境的技能,支持Python SDK + MCP,具备完整测试和高质量文档
时间: 每个技能约1.5-2小时(已测试并编写文档)