From example-skills
Creates, refactors, and optimizes Claude Code skills via eval loops with benchmarks, assertions, baselines, grading, and iterative workspaces. Use for skill building, testing, or improvement requests.
npx claudepluginhub joshuarweaver/cascade-code-general-misc-3 --plugin marcelleon-skills-zhThis skill uses the workspace's default tool permissions.
用于“创建 -> 评测 -> 迭代 -> 优化触发”的完整工作流技能。
LICENSE.txtagents/analyzer.mdagents/comparator.mdagents/grader.mdassets/eval_review.htmleval-viewer/generate_review.pyeval-viewer/viewer.htmlreferences/schemas.mdscripts/__init__.pyscripts/aggregate_benchmark.pyscripts/generate_report.pyscripts/improve_description.pyscripts/package_skill.pyscripts/quick_validate.pyscripts/run_eval.pyscripts/run_loop.pyscripts/utils.pyApplies Acme Corporation brand guidelines including colors, fonts, layouts, and messaging to generated PowerPoint, Excel, and PDF documents.
Builds DCF models with sensitivity analysis, Monte Carlo simulations, and scenario planning for investment valuation and risk assessment.
Calculates profitability (ROE, margins), liquidity (current ratio), leverage, efficiency, and valuation (P/E, EV/EBITDA) ratios from financial statements in CSV, JSON, text, or Excel for investment analysis.
用于“创建 -> 评测 -> 迭代 -> 优化触发”的完整工作流技能。
先判断用户当前在哪个阶段,再补齐下一步:
如果用户明确说“不需要完整评测流程”,可降级为轻量协作;否则默认走标准闭环。
根据用户熟悉度调节术语密度:
evaluation、benchmarkJSON、assertion 等术语,若用户没有明显技术背景,先用一句话解释再使用目标是“专业但不堆术语”。
若当前对话里已包含可复用流程,先从历史中提取:
然后确认以下 4 点:
默认建议:
主动补齐:
测试提示词(eval prompts)在这一步完成前不要急着写。
至少落实:
namedescription(这是触发核心,必须写清“做什么 + 何时用”)description 要稍偏“主动触发”,避免 under-trigger。
示例(表达方式):
用于生成仪表盘用于生成仪表盘。凡是用户提到 dashboard、指标可视化、看板、业务监控、数据展示,即便没说“仪表盘”,也应触发此技能。skill-name/
├── SKILL.md (required)
└── optional resources
├── scripts/
├── references/
└── assets/
渐进披露:
SKILL.md 触发后加载(建议 <500 行,必要时可超)scripts/references/assets 按需读取设计要点:
references/SKILL.md 中要明确指向这些参考文件,告诉模型何时读MUST,多解释“为什么要这样做”写完草稿后,先准备 2-3 条真实用户风格测试提示词,并与用户确认。
把测试集存到 evals/evals.json(先写 prompts,断言可后补):
{
"skill_name": "example-skill",
"evals": [
{
"id": 1,
"prompt": "User's task prompt",
"expected_output": "Description of expected result",
"files": []
}
]
}
完整 schema 见 references/schemas.md。
不要使用 /skill-test 或其他测试 skill;按下面连续完成。
工作目录规范:
<skill-name>-workspace/iteration-1/, iteration-2/eval-0/, eval-1/每个测试用例同轮启动两路:
with_skill基线策略:
without_skillcp -r <skill-path> <workspace>/skill-snapshot/)每个 eval 写 eval_metadata.json(此时 assertions 可先空):
{
"eval_id": 0,
"eval_name": "descriptive-name-here",
"prompt": "The user's task prompt",
"assertions": []
}
不要干等任务结束。并行完成:
eval_metadata.json 与 evals/evals.json主观任务不强行量化;以人工评审为主。
子任务完成通知里会出现 total_tokens 与 duration_ms,这是唯一可靠来源。必须立即写入各运行目录 timing.json:
{
"total_tokens": 84852,
"duration_ms": 23332,
"total_duration_seconds": 23.3
}
评分(grading)
逐 run 生成 grading.json。数组字段必须是 text、passed、evidence(viewer 依赖这些字段名)。
聚合 benchmark
在 skills/skill-creator/ 目录运行:
python -m scripts.aggregate_benchmark <workspace>/iteration-N --skill-name <name>
生成 benchmark.json 与 benchmark.md。
agents/analyzer.md 检查:nohup python <skill-creator-path>/eval-viewer/generate_review.py \
<workspace>/iteration-N \
--skill-name "my-skill" \
--benchmark <workspace>/iteration-N/benchmark.json \
> /dev/null 2>&1 &
VIEWER_PID=$!
如果是第 2 轮及以后,加 --previous-workspace <workspace>/iteration-<N-1>。
无图形/远程环境:使用 --static <output_path> 生成静态 HTML。用户点击提交后会下载 feedback.json,再拷回 workspace。
Outputs 看样例输出并填写反馈Benchmark 看量化对比用户评审完成后读取 feedback.json,优先处理有明确投诉的用例;空反馈视为通过。
结束后关闭 viewer:
kill $VIEWER_PID 2>/dev/null
改进时遵守 4 条:
scripts/迭代循环:
iteration-(N+1) 重新跑全部测试与 baseline--previous-workspace 再开 viewer停止条件:
需要更严格比较两个版本时:
agents/comparator.mdagents/analyzer.md 分析胜因多数场景下,人审 + benchmark 已够用。
SKILL.md frontmatter 的 description 决定触发概率。建议在 skill 稳定后再做。
准备 20 条 query(建议 8-10 条应触发 + 8-10 条不应触发):
[
{"query": "the user prompt", "should_trigger": true},
{"query": "another prompt", "should_trigger": false}
]
质量标准:
用模板 assets/eval_review.html:
__EVAL_DATA_PLACEHOLDER____SKILL_NAME_PLACEHOLDER____SKILL_DESCRIPTION_PLACEHOLDER__/tmp/eval_review_<skill>.html)并打开eval_set.json~/Downloads 读取最新导出文件后台执行:
python -m scripts.run_loop \
--eval-set <path-to-trigger-eval.json> \
--skill-path <path-to-skill> \
--model <model-id-powering-this-session> \
--max-iterations 5 \
--verbose
要点:
best_description,避免过拟合 trainclaude -p 执行,不需要单独配置 ANTHROPIC_API_KEY执行期间需定期向用户同步迭代进度与得分变化。
best_description 回写 SKILL.md技能只会在 Claude 认为“有必要调用 skill”时触发。简单一步请求即使语义匹配,也可能不触发。
因此触发评测 query 要足够“复杂且值得调用 skill”。
如环境支持,执行:
python -m scripts.package_skill <path/to/skill-folder>
然后返回 .skill 产物路径给用户。
在 Claude.ai(无子任务并发)场景:
run_loop.py/run_eval.py 依赖 CLI 能力,受环境限制时可跳过/tmp/<skill-name>/ 再编辑与打包在 Cowork 场景:
generate_review.py --staticrun_loop.py / run_eval.py 通常可用,建议放在技能收敛后执行agents/:
agents/grader.md:断言评分规范agents/comparator.md:盲测比较流程agents/analyzer.md:benchmark 诊断方法references/:
references/schemas.md:evals.json、grading.json、benchmark.json 等结构定义