create-tooluniverse-skill

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Create 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
devtu-optimize-skills
. Invoke that skill first or review its 10 pillars:
  1. TEST FIRST - Never write documentation without testing tools
  2. Verify tool contracts - Don't trust function names
  3. Handle SOAP tools - Add
    operation
    parameter where needed
  4. Implementation-agnostic docs - Separate SKILL.md from code
  5. Foundation first - Use comprehensive aggregators
  6. Disambiguate carefully - Resolve IDs properly
  7. Implement fallbacks - Primary → Fallback → Default
  8. Grade evidence - T1-T4 tiers on claims
  9. Require quantified completeness - Numeric minimums
  10. Synthesize - Models and hypotheses, not just lists
至关重要 - 阅读devtu-optimize-skills:本技能基于
devtu-optimize-skills
的原则构建。请先调用该技能或查看其10项核心支柱:
  1. 测试优先 - 未测试工具前绝不编写文档
  2. 验证工具契约 - 不要轻信函数名称
  3. 处理SOAP工具 - 必要时添加
    operation
    参数
  4. 与实现无关的文档 - 将SKILL.md与代码分离
  5. 基础优先 - 使用综合性聚合器
  6. 谨慎消除歧义 - 正确解析ID
  7. 实现回退策略 - 主工具→备用工具→默认方案
  8. 分级证据 - 对声明采用T1-T4分级
  9. 要求量化完整性 - 设置数值最小值
  10. 综合分析 - 提供模型和假设,而非仅罗列内容

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: Packaging
Time 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:
  1. Phase 1: Metabolite identification (name → IDs)
  2. Phase 2: Metabolite annotation (properties, pathways)
  3. Phase 3: Pathway enrichment (statistical analysis)
  4. Phase 4: Comparative analysis (samples/conditions)
Example - Cancer Genomics Skill:
  1. Phase 1: Mutation validation (check databases)
  2. Phase 2: Clinical significance (actionability)
  3. Phase 3: Therapy matching (FDA approvals)
  4. Phase 4: Trial matching (clinical trials)
将工作流拆分为逻辑阶段:
示例 - 代谢组学技能
  1. 阶段1:代谢物识别(名称→ID)
  2. 阶段2:代谢物注释(属性、通路)
  3. 阶段3:通路富集(统计分析)
  4. 阶段4:比较分析(样本/条件)
示例 - 癌症基因组学技能
  1. 阶段1:突变验证(查询数据库)
  2. 阶段2:临床意义(可操作性)
  3. 阶段3:治疗方案匹配(FDA批准)
  4. 阶段4:临床试验匹配

1.4 Review Related Skills

1.4 参考相关技能

Check existing ToolUniverse skills for relevant patterns:
  • Read similar skills in
    skills/
    directory
  • Note tool usage patterns
  • Identify reusable approaches
Useful related skills:
  • tooluniverse-systems-biology
    - Multi-database integration
  • tooluniverse-target-research
    - Comprehensive profiling
  • tooluniverse-drug-research
    - Pharmaceutical workflows

查看现有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:
/src/tooluniverse/data/*.json
(186 tool files)
Search strategies:
  1. Keyword search:
    grep -r "keyword" src/tooluniverse/data/*.json
  2. Tool listing: List all tools from specific database
  3. Function search: Search by domain (metabolomics, genomics, etc.)
Example searches:
bash
undefined
工具位置
/src/tooluniverse/data/*.json
(186个工具文件)
搜索策略
  1. 关键词搜索
    grep -r "keyword" src/tooluniverse/data/*.json
  2. 工具列表:列出特定数据库中的所有工具
  3. 功能搜索:按领域(代谢组学、基因组学等)搜索
示例搜索
bash
undefined

Find 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
undefined
grep -l "single.cell|scRNA" src/tooluniverse/data/*.json
undefined

2.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
    operation
    parameter)
  • 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.py
Test 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.py
Document 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:
ToolCommon MistakeCorrect ParameterEvidence
TOOL_NAMEassumed_paramactual_paramTest result

执行
bash
python test_[domain]_tools.py
记录发现
  • 响应格式差异(标准格式、直接列表、直接字典)
  • 参数不匹配(函数名称≠参数名称)
  • 需要
    operation
    参数的SOAP工具
  • 无法工作/返回错误的工具
创建参数修正表
工具常见错误正确参数依据
TOOL_NAMEassumed_paramactual_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.py
Structure:
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.py
Test cases:
  1. Test each input type
  2. Test combined inputs
  3. Verify report sections exist
  4. 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
测试用例:
  1. 测试每种输入类型
  2. 测试组合输入
  3. 验证报告章节存在
  4. 检查错误处理
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.py
Fix 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.md
Structure:
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:
  1. [Use case 1 with description]
  2. [Use case 2 with description]
触发场景:
  • "分析[领域]的[输入]"
  • "查找与[查询]相关的[数据类型]"
  • "[领域特定操作]"
使用场景:
  1. [场景1及描述]
  2. [场景2及描述]

Core Databases Integrated

集成的核心数据库

DatabaseCoverageStrengths
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:
    • parameter1
      : Description
    • parameter2
      : Description
  • Output: Description
  • Use: What it's used for
TOOL_NAME:
  • 输入:
    • parameter1
      : 描述
    • parameter2
      : 描述
  • 输出: 描述
  • 用途: 使用场景

Workflow

工作流

  1. [Step 1]
  2. [Step 2]
  3. [Step 3]
  1. [步骤1]
  2. [步骤2]
  3. [步骤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:
  1. Header with parameters
  2. Phase 1 results
  3. Phase 2 results ...

必填章节:
  1. 带参数的标题
  2. 阶段1结果
  3. 阶段2结果 ...

Tool Parameter Reference

工具参数参考

Critical Parameter Notes (from testing):
ToolParameterCORRECT NameCommon Mistake
TOOL_NAME
param
actual_param
assumed_param
Response Format Notes:
  • TOOL_1: Returns [format]
  • TOOL_2: Returns [format]

关键参数说明(来自测试):
工具参数正确名称常见错误
TOOL_NAME
param
actual_param
assumed_param
响应格式说明:
  • 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:
  1. ✅ [Capability 1]
  2. ✅ [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. ✅ [能力1]
  2. ✅ [能力2]
输出: [描述] 最佳适用场景: [场景]

**核心原则**:
- SKILL.md中无Python/MCP代码
- 描述要做什么,而非特定语言的实现方式
- 从概念上描述工具参数
- 记录决策逻辑和回退策略
- 记录响应格式差异

5.2 Write QUICK_START.md

5.2 编写QUICK_START.md

Template: See
assets/skill_template/QUICK_START.md
Structure:
markdown
undefined
模板:参见
assets/skill_template/QUICK_START.md
结构
markdown
undefined

Quick 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_pipeline
python
from skills.tooluniverse_[domain].python_implementation import domain_pipeline

Example 1

示例1

domain_pipeline( input_param="value", output_file="analysis.md" )
undefined
domain_pipeline( input_param="value", output_file="analysis.md" )
undefined

Option 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)

工具参数(所有实现方式)

ParameterTypeRequiredDescription
param1
stringYes[Description]
param2
integerNo[Description]

参数类型必填描述
param1
string[描述]
param2
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:
  1. [Follow-up action 1]
  2. [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. [后续操作1]
  2. [后续操作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.py
CRITICAL: 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>&1
Requirements:
  • ✅ 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.md
Content:
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
✅ 可投入生产环境 / ❌ 需要修复
undefined

6.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
    operation
    parameter (if applicable)
  • 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:
  1. Load ToolUniverse
  2. Import python_implementation
  3. Run exact example from QUICK_START (copy-paste)
  4. Verify output matches expectations
  5. 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

在全新环境中测试:
  1. 加载ToolUniverse
  2. 导入python_implementation
  3. 运行QUICK_START中的示例(直接复制粘贴)
  4. 验证输出符合预期
  5. 验证所有文档中提到的字段均可访问
至关重要: 如果文档示例无法运行,需修复以下其中一项:
  • 文档(更新以匹配实现),或
  • 实现(更新以匹配文档)
绝不要发布文档与实现不一致的技能

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].md
Content:
markdown
undefined
文件:
NEW_SKILL_[DOMAIN].md
内容:
markdown
undefined

New 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:
  1. python_implementation.py
    ([lines]) - Working pipeline
  2. SKILL.md
    ([lines]) - Implementation-agnostic docs
  3. QUICK_START.md
    ([lines]) - Multi-implementation guide
  4. test_skill.py
    ([lines]) - Test suite
Total: [total lines]
位置:
skills/tooluniverse-[domain]/
已创建文件:
  1. python_implementation.py
    ([行数]) - 可运行流水线
  2. SKILL.md
    ([行数]) - 与实现无关的文档
  3. QUICK_START.md
    ([行数]) - 多实现方式指南
  4. 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
[建议增强方向]
undefined

7.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

需避免的常见参数错误

PatternDon't AssumeAlways Verify
Function name includes param name
drugbank_get_drug_by_name(name=...)
Test reveals uses
query
Descriptive function name
map_uniprot_to_pathways(uniprot_id=...)
Test reveals uses
id
Consistent namingAll similar functions use same paramEach tool may differ
模式不要假设始终验证
函数名称包含参数名称
drugbank_get_drug_by_name(name=...)
测试发现实际使用
query
描述性函数名称
map_uniprot_to_pathways(uniprot_id=...)
测试发现实际使用
id
命名一致所有类似函数使用相同参数每个工具可能不同

SOAP Tools Detection

SOAP工具检测

Indicators:
  • Error: "Parameter validation failed: 'operation' is a required property"
  • Tool name includes: IMGT, SAbDab, TheraSAbDab
  • Tool config shows
    operation
    in schema
Fix: Add
operation
parameter as first argument with method name
指标:
  • 错误: "Parameter validation failed: 'operation' is a required property"
  • 工具名称包含: IMGT, SAbDab, TheraSAbDab
  • 工具配置显示模式中包含
    operation
修复: 将
operation
参数作为第一个参数,值为方法名称

Response Format Variations

响应格式差异

Standard:
{status: "success", data: [...]}
Direct list: Returns
[...]
without wrapper Direct dict: Returns
{field1: ..., field2: ...}
without status
Solution: Handle all three in implementation with
isinstance()
checks

标准:
{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
operation
❌ No test script or failing tests ❌ Single implementation only

高质量技能具备: ✅ 编写文档前实现100%测试覆盖率 ✅ 与实现无关的SKILL.md ✅ 多实现方式的QUICK_START(Python SDK + MCP) ✅ 完整的错误处理与回退策略 ✅ 工具参数修正表 ✅ 响应格式文档 ✅ 所有工具均通过测试验证 ✅ 两种接口均有可运行示例
危险信号: ❌ 先编写文档再测试工具 ❌ SKILL.md中包含Python代码 ❌ 从函数名称推断参数 ❌ 无回退策略 ❌ SOAP工具缺少
operation
参数 ❌ 无测试脚本或测试失败 ❌ 仅支持单一实现方式

Time 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/
:
  • python_implementation.py
    - Pipeline template
  • SKILL.md
    - Documentation template
  • QUICK_START.md
    - Multi-implementation guide
  • test_skill.py
    - Test suite template

所有模板位于
assets/skill_template/
:
  • python_implementation.py
    - 流水线模板
  • SKILL.md
    - 文档模板
  • QUICK_START.md
    - 多实现方式指南
  • test_skill.py
    - 测试套件模板

Summary

总结

Create ToolUniverse Skill provides systematic 7-phase workflow:
  1. Domain Analysis - Understand requirements
  2. Tool Testing - Verify before documenting (TEST FIRST!)
  3. Tool Creation - Add missing tools if needed
  4. Implementation - Build working pipeline
  5. Documentation - Implementation-agnostic format
  6. Validation - 100% test coverage
  7. 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阶段工作流:
  1. 领域分析 - 明确需求
  2. 工具测试 - 先验证再编写文档(测试优先!)
  3. 工具创建 - 必要时添加缺失工具
  4. 实现 - 构建可运行流水线
  5. 文档编写 - 与实现无关的格式
  6. 验证 - 100%测试覆盖率
  7. 打包 - 完整汇总
结果: 可投入生产环境的技能,支持Python SDK + MCP,具备完整测试和高质量文档
时间: 每个技能约1.5-2小时(已测试并编写文档)