fix: 修正 SkillItem 类型为标准的 Anthropic SKILL.md 格式

将 SkillItem 从虚构的 detail/triggers/instructions/format 字段简化
为标准 SKILL.md 定义:name + description + body。

- protocol.ts: SkillItem 精简为 {name, description, body}
- SkillsView.tsx: 从 3 层改为 2 层渐进式披露
- skills.ts / skills-loader.ts: 去掉多余的映射字段
- .gitignore: 排除外部 skills/ 仓库克隆目录
This commit is contained in:
carry
2026-06-07 22:57:46 +08:00
parent e47587f492
commit b8e4961d10
5 changed files with 41 additions and 142 deletions
+8 -12
View File
@@ -83,23 +83,19 @@ export interface SkillSegment {
* 第 3 层 — 完整指令(再次点击展开 —— 触发时作为一条新消息追加到对话中)
*/
/**
* Skill 遵循 Anthropic 渐进式披露机制:
* Skill 遵循 Anthropic SKILL.md 规范。
*
* 第 1 层 — 名称 + 一句话描述(始终可见,在 skills 面板中)
* 第 2 层 — 详细说明 + 触发条件(点击展开单个 skill)
* 第 3 层 — 完整指令(再次点击展开 —— 触发时注入上下文的 system prompt
* 标准 YAML frontmatter 只有两个必填字段:name + description。
* Markdown body 是指令正文,在 skill 被触发时加载到 LLM 上下文。
*
* format 字段区分来源
* 'custom' — 手工编写的 skill(使用 detail/triggers/instructions 自定义
* 'anthropic' — 从 SKILL.md 解析(instructions 为原始 body
* 渐进式披露 2 层
* L1 — name + description(始终在上下文中,约 100 词
* L2 — bodyskill 触发时加载,建议 <500 行
*/
export interface SkillItem {
name: string
description: string // 第 1 层:一句话描述
detail?: string // 第 2 层:详细说明(功能、输入输出、适用场景)
triggers?: string[] // 第 2 层:触发条件(用户说哪些话会触发此 skill)
instructions?: string // 第 3 层:注入 LLM 上下文的完整 system prompt
format?: 'custom' | 'anthropic' // 来源格式
description: string
body: string // Markdown 正文 —— 触发 skill 时加载到 LLM 上下文的指令
}
export interface ToolOverviewSegment {