用途:这是 elastic/elastic-docs-skills 目录的技能生成器,交互式引导用户创建新的 Claude Code 技能,并可建议向上游贡献。
主要流程:
- 先理解目的:必须弄清技能要做什么,询问用户要自动化的任务或工作流;若通过 $ARGUMENTS 提供了名称,仍需询问用途;名称若不以 docs- 开头会自动补上并告知已按目录命名规范归一化。需明确技能解决的问题、所需输入(文件、URL、参数)、输出或副作用。
- 收集细节:使用 AskUserQuestion 收集技能名称(kebab-case 且必须以 docs- 开头)、分类(如 authoring、review、workflow、testing)、触发方式(仅用户可调用 disable-model-invocation: true,或由 Claude 自动触发)、所需工具(如 Read、Grep、Bash(gh *))、是否接受参数及提示、执行上下文(主上下文或 context: fork 的子代理)。
- 生成技能:生成结构良好的 SKILL.md,含 YAML frontmatter(name、version: 1.0.0、description 等),正文为清晰可执行的指令,必要时使用 $ARGUMENTS 或位置参数($0、$1)。frontmatter 的 --- 之后必须紧跟 Apache 2.0 许可证头。文件写入 skills/<category>/<skill-name>/SKILL.md。写入前校验名称:kebab-case、以 docs- 开头、不与 skills/**/SKILL.md 中已有名称重复。
- 与用户复核:读回并展示完整内容,询问是否需要修改,用户确认前不继续。
- 交互式生成 evals:在技能目录内生成 evals/evals.json,遵循 references/eval-schemas.md 的 schema。生成 3-4 个评测,覆盖核心用例、边界情况、负向评测(技能不应触发或输出的输入,用于防止误报和过度触发)。评测应使用真实具体的提示,期望具有区分度,负向评测使用“Does NOT flag/generate/suggest”类期望,测试技能的独特价值。随后与用户复核并迭代。
- 可选优化 description:description 是决定 Claude 是否调用技能的主要机制,应说明做什么及何时使用,可略带“pushy”以对抗触发不足,并包含用户自然会说的触发词。
- 建议测试与贡献:建议运行 ./install.sh 本地安装,在 Claude Code 中输入 /<skill-name> 测试;随后可建议贡献到 elastic/elastic-docs-skills,创建分支 add-skill-<skill-name>、提交、推送并开 PR,标题为 Add <skill-name> skill,正文包含技能用途、用法和调用示例。
指南:保持指令简洁聚焦,避免过度设计;对有副作用的技能(PR、提交、部署)优先使用 disable-model-invocation: true;对产出大量内容的研究型技能使用 context: fork;接受参数时始终包含 argument-hint;新技能版本为 1.0.0,更新遵循 SemVer。
限制:资料未提供具体收费、价格、平台支持范围等信息。