skill-creator-yashu

📁 steelan9199/wechat-publisher 📅 1 day ago
4
总安装量
1
周安装量
#53683
全站排名
安装命令
npx skills add https://github.com/steelan9199/wechat-publisher --skill skill-creator-yashu

Agent 安装分布

amp 1
cline 1
opencode 1
cursor 1
continue 1
kimi-cli 1

Skill 文档

🎯 触发映射

用户输入触发词 AI 执行动作
“创建 skill” / “新建 skill” / “添加 skill” / “初始化 skill” 按【创建模式】执行

创建模式

执行步骤

步骤 执行动作 具体命令/操作
1 询问需求 运行 AskUserQuestion 询问用户 skill 功能、使用场景和触发条件
2 初始化目录 运行 RunCommand 执行 python scripts/init_skill.py <skill-name> --path <output-dir>
3 读取并编辑 SKILL 运行 Read 读取生成的 SKILL.md,运行 SearchReplace 填写功能描述和触发条件
4 验证结构 运行 RunCommand 执行 python scripts/quick_validate.py <skill-directory>

输出结果

成功时输出示例:

✅ Skill '{skill-name}' 创建成功

📁 目录结构:
.trae/skills/{skill-name}/
├── SKILL.md          # 技能文档(已填充模板)
├── scripts/          # 脚本目录
│   └── example.py    # 示例脚本
└── references/       # 参考文档目录
    └── README.md     # 参考说明

📝 下一步:
运行 `Read` 读取 SKILL.md,根据用户需求编辑功能描述和触发条件

失败时输出示例:

❌ Skill 创建失败

错误原因:{具体错误信息}
解决建议:{针对性解决方案}

错误处理

错误场景 错误表现 处理方式
目录已存在 mkdir 报错目录已存在 运行 LS 检查目录内容,如为空则继续,如有内容则询问用户是否覆盖
脚本执行失败 Python 返回非零退出码 检查 Python 版本、依赖安装情况,重试执行
权限不足 文件写入被拒绝 检查目录权限,建议用户更换输出目录
skill 名称无效 含大写或特殊字符 提示用户修改为 kebab-case 格式(如 my-skill)

核心原则

简洁至上 (Concise is Key)

上下文窗口是公共资源。Skill 与系统提示词、对话历史、其他 Skill 的元数据以及用户请求共享上下文窗口。

默认假设:AI 已经很聪明了。 只添加 AI 没有的信息。质疑每一条信息:”AI 真的需要这个解释吗?” “这段文字值得它的 token 成本吗?”

优先使用简洁的例子而非冗长的解释。

设置适当的自由度

根据任务的脆弱性和可变性匹配合适的详细程度:

自由度 适用场景 形式
高自由度 多种方法都有效、决策依赖上下文、启发式指导方法 基于文本的指令
中自由度 存在首选模式、允许一定变化、配置影响行为 伪代码或带参数的脚本
低自由度 操作脆弱且容易出错、一致性至关重要、必须遵循特定序列 特定脚本、少量参数

AI 友好性 (AI-Friendly)

Skill 是给 AI 使用的,必须确保 AI 能够准确理解和执行。创建的 skill 必须符合以下 AI 友好性标准:

检查项 要求 说明
清晰的 description 必须 frontmatter 中的 description 必须包含功能和触发条件
明确的指令 必须 使用祈使句(运行、执行、调用等)而非模糊建议
具体的示例 必须 提供代码示例或用户请求示例,AI 需要知道具体怎么做
决策逻辑 推荐 复杂任务提供条件判断或决策树,帮助 AI 做出正确选择
输出格式 必须 明确说明 skill 应该输出什么内容
错误处理 推荐 说明异常情况和边界处理
避免长段落 推荐 超过 500 字符的段落难以提取关键信息,使用列表或表格
文件引用说明 必须 引用的文件必须有 Markdown 链接说明

优化技巧:

  • 想象你是 AI,阅读 skill 后能否知道:什么时候用?怎么用?输出什么?
  • 使用具体而非抽象的词汇
  • 提供明确的操作步骤而非模糊的指导
  • 为复杂场景提供决策流程

Agent Skills 规范要点

目录结构

skill-name/
├── SKILL.md          # 必需:技能文档
├── scripts/          # 可选:可执行代码
├── references/       # 可选:参考文档
└── assets/           # 可选:模板、资源

不应包含的文件: README.md、INSTALLATION_GUIDE.md、CHANGELOG.md 等辅助文档。

SKILL.md 格式

必需的前置元数据:

---
name: skill-name
description: 功能描述。何时使用:当用户说/需要/遇到...时
---

name 字段规则

  • 1-64 字符,只能包含小写字母、数字和连字符
  • 不能以连字符开头或结尾,不能包含连续连字符 --
  • 必须与父目录名匹配

description 字段规则

  • 1-1024 字符
  • 必须包含两部分内容,用 何时使用: 分隔:
    1. 功能描述 – 这个 skill 是做什么的
    2. 何时使用 – 用户说什么话时触发这个 skill
  • 所有触发条件信息都应放在 description 中 – 不要放在正文

好的示例:

description: 分析并优化其他 Skill 的文档质量问题,包括 frontmatter 格式、渐进式披露结构等检查。何时使用:当用户说"优化这个 skill"、"检查 skill 质量"、"review skill"时。

不好的示例:

# ❌ 缺少"何时使用"部分
description: 分析并优化 Skill 的文档质量问题

# ❌ 使用"触发条件"而非"何时使用"
description: 分析 Skill 质量问题。触发条件:用户说优化 skill 时

渐进式披露设计

Skills 使用三级加载系统高效管理上下文:

  1. 元数据(name + description)- 始终在上下文中(约 100 词)
  2. SKILL.md 正文 – skill 触发时加载(建议 < 5000 词,< 500 行)
  3. 捆绑资源 – AI 按需加载

关键原则: 当 skill 支持多种变体、框架或选项时,只在 SKILL.md 中保留核心工作流程和选择指导。将变体特定的细节移到单独的参考文件中。

渐进式披露模式

模式 1:高级指南 + 参考

## 快速开始

[核心代码示例]

## 高级功能

- **表单填写**:参见 [FORMS.md](references/FORMS.md) 完整指南
- **API 参考**:参见 [REFERENCE.md](references/REFERENCE.md)

模式 2:按领域组织

skill-name/
├── SKILL.md (概览和导航)
└── references/
    ├── finance.md
    ├── sales.md
    └── product.md

重要指南:

  • 避免深层嵌套引用,保持引用文件在 SKILL.md 的一级子目录内
  • 避免重复:信息应该只在 SKILL.md 或参考文件中存在,不要两者都有

SKILL.md 结构模式

选择最适合 skill 目的的结构:

模式 适用场景 结构
基于工作流程 顺序流程 ## 概览 → ## 工作流程决策树 → ## 步骤 1
基于任务 工具集合 ## 概览 → ## 快速开始 → ## 任务类别 1
参考/指南 标准或规范 ## 概览 → ## 指南 → ## 规范
基于能力 集成系统 ## 概览 → ## 核心能力 → ### 1. 功能

模式可以混合搭配。

Skill 创建流程

按顺序执行以下步骤:

Skill 创建流程

按顺序执行以下步骤:

步骤 执行动作 具体命令/操作
1 询问功能需求 运行 AskUserQuestion 询问 skill 功能、使用示例、触发条件
2 规划可复用资源 分析需求,确定需要的 scripts、references、assets
3 初始化 Skill 目录 运行 RunCommand 执行 python scripts/init_skill.py <skill-name> --path <output-directory>
4 读取 SKILL.md 运行 Read 读取生成的 .trae/skills/{skill-name}/SKILL.md
5 编辑功能描述 运行 SearchReplace 填写 description、触发条件、执行步骤
6 创建脚本 如需脚本,运行 Write 创建到 scripts/ 目录
7 创建参考文档 如需参考文档,运行 Write 创建到 references/ 目录
8 验证结构 运行 RunCommand 执行 python scripts/quick_validate.py <skill-directory>
9 测试迭代 根据验证结果,运行 SearchReplace 修复问题

工作流程模式

详细的工作流程模式(顺序、条件、决策树、循环、错误处理)参见 工作流程模式文档。

输出模式

详细的输出模式(模板、示例、检查清单)参见 输出模式文档。

捆绑资源

scripts/

可执行代码(Python/Bash/等)用于需要确定性可靠性或重复重写的任务。

  • 何时包含:相同的代码被重复重写或需要确定性可靠性时
  • 好处:Token 高效、确定性、可以在不加载到上下文的情况下执行
  • AI 友好原则:代码的输入和输出应当是对 AI 友好的
    • 输入:支持命令行参数、环境变量或结构化数据(JSON/YAML),避免交互式提示
    • 输出:使用结构化格式(JSON/YAML/表格),包含明确的字段名,避免需要解析的自然语言描述
    • 错误处理:返回标准退出码,错误信息输出到 stderr,成功结果输出到 stdout

references/

文档和参考材料,旨在根据需要加载到上下文中。

  • 何时包含:AI 工作时应该参考的详细文档
  • 好处:保持 SKILL.md 精简,只在需要时加载

assets/

不打算加载到上下文中,而是在 AI 产生的输出中使用的文件。

  • 何时包含:skill 需要在最终输出中使用的文件(模板、图片等)
  • 好处:将输出资源与文档分离

实用脚本

脚本 用途 命令
init_skill.py 初始化新 skill python scripts/init_skill.py <skill-name> --path <output-dir>
skill_templates.py 模板定义模块 被 init_skill.py 调用,包含 SKILL.md 和示例文件模板
quick_validate.py 快速验证 python scripts/quick_validate.py <skill-directory>
create-skill.py 创建完整 skill python scripts/create-skill.py <skill-name>

创建示例

用户输入: “创建一个处理 PDF 的 skill”

执行步骤:

步骤 执行动作 具体命令/操作
1 询问场景 运行 AskUserQuestion 询问具体使用场景(提取文本、填写表单、合并等)
2 规划内容 分析需求,确定需要 Python 脚本处理 PDF
3 初始化目录 运行 RunCommand 执行 python scripts/init_skill.py pdf-processor --path ./skills
4 读取 SKILL.md 运行 Read 读取 ./skills/pdf-processor/SKILL.md
5 编辑描述 运行 SearchReplace 填写 description 为”处理 PDF 文件。何时使用:当用户说处理 PDF 时”
6 创建处理脚本 运行 Write 创建 scripts/pdf_extractor.py
7 验证结构 运行 RunCommand 执行 python scripts/quick_validate.py ./skills/pdf-processor