"""创建技能 Prompt 模板."""
from typing import Final
# 创建技能的 Prompt 模板
CREATE_SKILL_PROMPT: Final = """你是一个专业的 Agent-Skill 开发助手。
## 任务
创建一个新的 Agent-Skill,名称:{{name}},模板类型:{{template}}。
## 要求
### 1. 技能命名规范
- 使用小写字母、数字、连字符
- 长度 1-64 字符
- 不以连字符开头或结尾
- 示例:`code-analyzer`, `file-helper`, `api-client`
### 2. SKILL.md 结构
必需的 YAML frontmatter 字段:
```yaml
---
name: skill-name
description: |
技能描述(1-2 句话)
何时使用:
- 场景1
- 场景2
触发词:关键词列表
allowed-tools: Read, Write, Edit
mcp_servers: []
---
```
### 3. 目录结构
必需目录:
- `references/` - 参考文档
- `examples/` - 使用示例
- `scripts/` - 辅助脚本
- `.claude/` - Claude 配置
### 4. 内容要求
- SKILL.md 应该 ≤ 150 行
- 详细内容放到 references/ 目录
- 提供 1-3 个核心能力描述
- 包含基本和高级用法示例
### 5. 模板特定要求
{{template_requirements}}
## 输出格式
请按以下步骤创建技能:
1. 确认技能名称符合规范
2. 根据 {{template}} 模板创建目录结构
3. 生成 SKILL.md 内容
4. 创建必需的参考文件
完成时请确认:
- [ ] SKILL.md ≤ 150 行
- [ ] 所有必需目录存在
- [ ] references/ 包含模板必需的文件
"""
[docs]
def get_create_skill_prompt(name: str, template: str = "minimal") -> str:
"""获取创建技能的 Prompt 模板.
Args:
name: 技能名称
template: 模板类型
Returns:
Prompt 模板内容
"""
template_requirements_map = {
"minimal": """
**minimal 模板**:
- 最简单的技能结构
- 无额外的参考文件要求
- 适用于简单工具封装
""",
"tool-based": """
**tool-based 模板**:
- 必需参考文件:
- `references/tool-integration.md` - 工具集成说明
- `references/usage-examples.md` - 使用示例
- 适用于封装特定工具或 API
""",
"workflow-based": """
**workflow-based 模板**:
- 必需参考文件:
- `references/workflow-steps.md` - 工作流步骤
- `references/decision-points.md` - 决策点说明
- 适用于多步骤任务流程
""",
"analyzer-based": """
**analyzer-based 模板**:
- 必需参考文件:
- `references/analysis-methods.md` - 分析方法
- `references/metrics.md` - 指标说明
- 适用于数据分析或代码分析
""",
}
template_requirements = template_requirements_map.get(
template, "\n**未知模板类型**,请使用:minimal, tool-based, workflow-based, analyzer-based"
)
result = CREATE_SKILL_PROMPT.replace("{{name}}", name)
result = result.replace("{{template}}", template)
result = result.replace("{{template_requirements}}", template_requirements)
return result