Back to skills
SKILL.md
Skill Creator Pro 1.0.0
ASecurity创建新技能 (Skill)、修改和改进现有技能,并通过评估驱动的迭代来衡量技能性能。在用户希望从头创建技能、编辑或优化现有技能、运行评估测试技能、通过方差分析对技能性能进行基准测试,或优化技能描述以提高触发准确性时使用。也适用于用户说‘把它变成技能’、‘为 X 创建技能’、‘改进这个技能’、‘测试这个技能’、‘对这个技能运行评估’,或提及技能描述、技能触发、技能质量时。
- 8 stars
- 0 votes
- 0 copies
- 3 views
- Added September 12, 2026
Works with
Security analysis
100/100Pro scans all 19 files and shows the line behind each finding
npx -y skills add lza6/Claude-code-cli-config --skill skill-creator-pro-1.0.0 --agent claude-codeAre you the author of Skill Creator Pro 1.0.0?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/lza6-skill-creator-pro-1-0-0)---
name: skill-creator-pro
description: "创建新技能 (Skill)、修改和改进现有技能,并通过评估驱动的迭代来衡量技能性能。在用户希望从头创建技能、编辑或优化现有技能、运行评估测试技能、通过方差分析对技能性能进行基准测试,或优化技能描述以提高触发准确性时使用。也适用于用户说‘把它变成技能’、‘为 X 创建技能’、‘改进这个技能’、‘测试这个技能’、‘对这个技能运行评估’,或提及技能描述、技能触发、技能质量时。"
---
# 技能创建者专业版 (Skill Creator Pro)
> 受到 Anthropic 的 Claude Code 技能创建者的启发和改编
> (https://github.com/anthropics/skills/tree/main/skills/skill-creator)。
> 根据 Apache 2.0 获得许可。
用于创建新的 OpenClaw 技能并通过评估驱动的开发迭代改进它们的技能。
## 高级流程
- 决定该技能应该做什么以及它应该如何发挥作用
- 编写技能草案
- 创建测试提示词 (Prompt) 并在其上运行具有技能的代理 (通过子代理)
- 定性和定量评估结果
- 当运行在后台进行时,如果没有则起草定量评估
- 使用 "eval-viewer/generate_review.py" 向用户显示结果
- 根据反馈重写技能
- 重复直到满意为止
- 扩大测试集并在更大范围内重试
您的工作是找出用户在此过程中的位置并帮助他们进步。也许他们想从头开始创建一项新技能,或者他们可能已经有了草案并想要迭代。保持灵活性 —— 如果用户说“只是和我一起交流”,请跳过正式的评估循环。
技能完成后,还可以运行描述优化器来提高触发精度。
## 与用户沟通
根据用户的技术水平调整您的沟通方式。留意上下文线索:
- “评估 (Eval)”和“基准 (Benchmark)”对于大多数用户来说都很好
- 对于 “JSON” 和 “断言 (Assertions)”,请确保用户在自由使用它们之前对这些术语感到满意
- 如果有疑问,请简要解释术语
---
## 创建技能
### 捕获意图
首先了解用户的意图。当前对话可能已经包含要捕获的工作流程(例如,“将其转化为技能”)。如果是这样,请首先从对话历史记录中提取答案 —— 使用的工具、步骤顺序、所做的更正、输入/输出格式。用户可能需要填补空白,并应在继续之前确认。
1. 这项技能应该让代理能够做什么?
2. 这个技能什么时候触发? (什么用户短语/上下文)
3. 预期的输出格式是什么?
4. 我们应该设置测试用例吗?具有客观可验证输出的技能受益于测试。具有主观输出的技能(写作风格、艺术)通常不会。建议适当的默认值,但让用户决定。
### 采访与研究
主动询问边缘情况、输入/输出格式、示例文件、成功标准和依赖性。解决这些问题后再编写测试提示词 (Prompt)。
### 编写 SKILL.md
根据访谈内容,填写:
- **名称 (name)**:技能标识符(短横线命名法,kebab-case)
- **描述 (description)**:何时触发,它的作用。这是主要的触发机制。让它变得“主动” —— 包括该技能的作用和具体背景。不要写“仪表板构建器”,而是写“构建仪表板。每当用户提到仪表板、数据可视化、指标显示或想要以可视方式显示任何数据时使用,即使他们没有说‘仪表板’。”
- **其余技能说明**
### 技能写作指南
有关整个评估系统中使用的详细 JSON 模式,请参阅 "references/schemas.md"。
#### 技能剖析
```
skill-name/
├── SKILL.md (必填)
│ ├── YAML frontmatter (必填:name, description)
│ └── Markdown 指令
└── 捆绑资源 (可选)
├── scripts/ - 可执行代码
├── references/ - 根据需要加载到上下文的文档
└── assets/ - 输出中使用的文件 (模板、图标、字体)
```
#### 渐进式披露
技能采用三级加载系统:
1. **元数据** (名称 + 描述) —— 始终在上下文中 (约 100 个字)
2. **SKILL.md 正文** —— 技能触发时的上下文 (理想情况下 < 500 行)
3. **捆绑资源** —— 根据需要加载 (无限制)
将 SKILL.md 控制在 500 行以内;使用 `references/` 来存放溢出的内容。
#### 写作模式
在指令中使用命令式。解释**为什么**事情很重要 —— 今天的 LLM 很聪明,并且比严格的“必须”更能对推理做出反应。包含有帮助的示例。使技能具有普遍性,而不是局限于特定示例。
### 测试用例
写完技能草稿后,创建 2-3 个真实的测试提示词 (Prompt)。与用户分享以供审阅。保存到 "evals/evals.json":
```json
{
"skill_name": "example-skill",
"evals": [
{
"id": 1,
"prompt": "用户任务提示词 (Prompt)",
"expected_output": "预期结果描述",
"files": []
}
]
}
```
## 运行和评估测试用例
将结果放入 `<skill-name>-workspace/` 中,作为技能目录的同级目录。按迭代 (`iteration-1/`, `iteration-2/` 等) 组织 `eval-0/`, `eval-1/` 等中的每个测试用例。
### 第 1 步:生成所有运行
对于每个测试用例,生成两个子代理 —— 一个具有技能,一个没有 (基线)。立即启动所有内容,以便它们大约在同一时间完成。
**带技能运行** —— 生成一个子代理,其指令如下:
```
执行此任务:
- 技能路径: <path-to-skill>
- 任务: <eval prompt>
- 输入文件: <eval files if any>
- 保存输出至: <workspace>/iteration-N/eval-ID/with_skill/outputs/
```
**基线运行** —— 没有技能的相同提示词 (Prompt),保存到 `without_skill/outputs/`。
为每个测试用例编写一个 `eval_metadata.json`:
```json
{
"eval_id": 0,
"eval_name": "此处填写描述性名称",
"prompt": "用户任务提示词 (Prompt)",
"assertions": []
}
```
### 步骤 2:在运行过程中草拟断言 (Assertions)
为每个测试用例起草定量断言。好的断言是客观可验证的,并且有描述性的名称。使用断言更新 `eval_metadata.json` 和 `evals/evals.json`。
### 步骤 3:捕获耗时数据
当每个子代理完成时,将耗时数据保存到 `timing.json`:
```json
{
"total_tokens": 84852,
"duration_ms": 23332,
"total_duration_seconds": 23.3
}
```
### 步骤 4:评分、聚合和启动查看器
全部运行完成后:
1. **对每次运行进行评分** —— 阅读 `agents/grader.md` 并根据输出评估断言。保存到 `grading.json`。`grading.json` 的期望数组必须使用字段 `"text"`、`"passed"` 和 `"evidence"`。对于可通过编程检查的断言,编写并运行脚本。
2. **聚合到基准测试** —— 从该技能的目录运行:
```bash
python -m scripts.aggregate_benchmark <workspace>/iteration-N --skill-name <name>
```
3. **分析师阶段** —— 阅读 `agents/analyzer.md` 并了解聚合统计数据可能隐藏的表面模式。
4. **启动查看器** —— 在 OpenClaw 中始终使用 `--static` 模式:
```bash
python <skill-creator-pro-path>/eval-viewer/generate_review.py \
<workspace>/iteration-N \
--skill-name "my-skill" \
--benchmark <workspace>/iteration-N/benchmark.json \
--static <workspace>/iteration-N/review.html
```
对于迭代 2+,还传递 `--previous-workspace <workspace>/iteration-<N-1>`。
然后将 HTML 文件发送给用户:
```
message(action=send, filePath="<workspace>/iteration-N/review.html")
```
或者通过 Canvas 工具(如果可用)呈现它。
*在*自己评估结果之前*生成评估查看器。尽快将它们呈现在用户面前!
5. **告诉用户**:“我已经生成了结果查看器。‘输出’选项卡可让您查看每个测试用例并留下反馈。‘基准’选项卡显示定量比较。完成后,请回来告诉我。”
### 第 5 步:阅读反馈
查看器的“提交所有评论”按钮会下载 `feedback.json`。当用户提供它时阅读它:
```json
{
"reviews": [
{"run_id": "eval-0-with_skill", "feedback": "图表缺少轴标签", "timestamp": "..."}
],
"status": "complete"
}
```
空反馈意味着用户认为没问题。将改进重点放在具有具体建议的测试用例上。
---
## 改进技能
### 如何思考改进
1. **根据反馈进行概括。** 不要过度拟合具体示例。该技能将在不同的提示词 (Prompt) 中多次使用。尝试不同的隐喻或模式,而不是繁琐的改变或压抑的“必须”。
2. **保持精简。** 删除那些不起作用的东西。阅读执行记录 —— 如果该技能导致工作效率低下,请修剪这些部分。
3. **解释原因。** LLM 对推理的反应比对严格规则的反应更好。如果您发现自己用大写字母写“总是”或“从不”,请重新解释并说明原因。
4. **寻找重复的工作。** 如果所有测试用例独立编写类似的辅助脚本,则将该脚本捆绑在 `scripts/` 中,以节省将来的调用,避免重复造轮子。
### 迭代循环
1. 对技能进行改进
2. 将所有测试用例重新运行到 `iteration-<N+1>/` 中,包括基线
3. 使用指向上一个迭代的 `--previous-workspace` 启动查看器
4. 等待用户审核
5. 阅读反馈,再次改进,重复
继续下去,直到用户满意、反馈都是空的,或者您没有取得有意义的进展。
---
## 高级:盲测比较 (Blind Comparison)
要严格比较两个技能版本,请阅读 `agents/comparator.md` 和 `agents/analyzer.md`。将两个输出提供给独立的子代理,而不透露哪个是哪个。这是可选的 —— 人工审核通常就足够了。
---
## 描述优化 (Description Optimization)
描述 (Description) 字段是主要的触发机制。创建或改进一项技能后,主动提出对其进行优化。
### 第 1 步:生成触发评估查询 (Trigger Eval Queries)
创建 20 个评估查询 —— 应该触发和不应该触发的混合。保存为 JSON:
```json
[
{"query": "真实的用户提示词 (Prompt)", "should_trigger": true},
{"query": "擦肩而过的提示词 (Prompt)", "should_trigger": false}
]
```
查询必须是真实的 —— 包括文件路径、个人上下文、列名称、随意的言语、拼写错误。关注边缘情况,而不是明确的情况。不应该触发的查询应该是“未遂”事件,而不是明显不相关的查询。
### 第 2 步:与用户一起审核
使用 `assets/eval_review.html` 中的 HTML 模板呈现评估集。替换占位符:
- `__EVAL_DATA_PLACEHOLDER__` → JSON 数组
- `__SKILL_NAME_PLACEHOLDER__` → 技能名称
- `__SKILL_DESCRIPTION_PLACEHOLDER__` → 当前描述
写入临时文件并通过 `message(action=send, filePath=...)` 发送或通过 Canvas 呈现。
### 步骤 3:运行优化循环
描述优化循环需要 CLI 访问权限才能运行 eval 查询。在 OpenClaw 中,使用改编的脚本:
```bash
python -m scripts.run_loop \
--eval-set <path-to-trigger-eval.json> \
--skill-path <path-to-skill> \
--model <model-id> \
--max-iterations 5 \
--verbose
```
注意:`run_eval.py` 和 `run_loop.py` 脚本使用 `claude -p` 来触发测试。在没有 `claude` CLI 的 OpenClaw 环境中,您可以手动运行描述优化:通过生成子代理来评估每个查询,检查它是否会触发技能,然后使用 `improve_description.py` 的逻辑生成更好的描述。
### 第 4 步:应用结果
从输出中获取 `best_description` 并更新技能的 `SKILL.md` frontmatter。显示优化前后的对比并报告分数。
---
## 打包
打包分发技能:
```bash
python -m scripts.package_skill <path/to/skill-folder>
```
然后通过 `message(action=send, filePath=...)` 将 `.skill` 文件发送给用户。
---
## OpenClaw 特定工作流程
### 基于子代理的测试
OpenClaw 使用子代理来并行测试执行。当生成测试运行时:
- 子代理可以读取技能的 `SKILL.md` 并按照其说明进行操作
- 结果保存到工作区文件中
- 耗时数据来自子代理完成通知
### 展示结果
由于 OpenClaw 可能没有浏览器显示:
- 始终使用 `--static` 模式和 `generate_review.py` 来创建独立的 HTML
- 通过 `message(action=send, filePath=...)` 发送 HTML 文件
- 或通过 Canvas 工具呈现:`canvas(action=present, url="file://...")`
### 反馈收集
在静态模式下,查看器的“提交所有评论”会下载 `feedback.json`。然后,用户可以将此文件提供给您。
---
## 参考文件
- `agents/grader.md` —— 如何根据输出评估断言
- `agents/comparator.md` —— 如何进行盲测 A/B 比较
- `agents/analyzer.md` —— 如何分析基准测试结果
- `references/schemas.md` —— `evals.json`、`grading.json`、`benchmark.json` 等的 JSON 模式。
---
## 核心循环总结
1. 弄清楚技能是什么
2. 起草或编辑技能
3. 根据测试提示词 (Prompt) 运行具有技能的代理 (通过子代理)
4. 与用户一起评估输出:
- 创建 `benchmark.json` 并运行 `eval-viewer/generate_review.py`
- 进行定量评估
5. 重复直到满意为止
6. 打包最终技能
Files in this skill
- LICENSE.txt
- SKILL.md
- _meta.json
- agents/analyzer.md
- agents/comparator.md
- agents/grader.md
- assets/eval_review.html
- eval-viewer/generate_review.py
- eval-viewer/viewer.html
- references/schemas.md
- scripts/__init__.py
- scripts/aggregate_benchmark.py
- scripts/generate_report.py
- scripts/improve_description.py
- scripts/package_skill.py
- scripts/quick_validate.py
- scripts/run_eval.py
- scripts/run_loop.py
- scripts/utils.py
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.