1
0
Files
Skill/openspec/specs/skill-progressive-disclosure/spec.md
2026-02-25 17:36:42 +08:00

84 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# skill-progressive-disclosure
## Purpose
定义 skill 的渐进式披露Progressive Disclosure结构规范将 skill 内容按加载时机分为三层YAML 前置元数据、SKILL.md 正文、references/ 详细文档。通过分层加载减少 token 消耗,提高 Claude 的响应效率。
## Requirements
### Requirement: 三层渐进式披露结构
每个 skill 目录 SHALL 采用三层渐进式披露结构按加载时机分为第一层YAML 前置元数据、第二层SKILL.md 正文、第三层references/ 目录)。
#### Scenario: skill 目录包含完整三层结构
- **WHEN** 检查任意 skill 目录结构
- **THEN** 目录 SHALL 包含 SKILL.md 文件和 references/ 子目录
#### Scenario: 第一层始终加载
- **WHEN** Claude 启动会话时
- **THEN** 所有 skill 的 YAML 前置元数据 SHALL 被加载到系统提示中
### Requirement: YAML 前置元数据内容规范
YAML 前置元数据 SHALL 仅包含触发判断所需的最小信息,使 Claude 能够判断何时使用该 skill。
#### Scenario: 必需字段
- **WHEN** 编写 SKILL.md 的 YAML 前置元数据
- **THEN** SHALL 包含 name 和 description 字段
#### Scenario: description 格式
- **WHEN** 编写 description 字段
- **THEN** SHALL 同时包含「做什么」和「何时使用」两部分信息
#### Scenario: description 长度限制
- **WHEN** 检查 description 字段
- **THEN** 内容 SHALL 少于 1024 个字符
#### Scenario: runner skill 的 description 宽泛性
- **WHEN** skill 用途为通用脚本执行(如 Python/JavaScript runner
- **THEN** description SHALL 保持宽泛,以匹配所有相关处理任务
### Requirement: SKILL.md 正文内容规范
SKILL.md 正文 SHALL 包含核心工作流程和关键指令,保持精简以减少 token 消耗。
#### Scenario: SKILL.md 必需章节
- **WHEN** 编写 SKILL.md 正文
- **THEN** SHALL 包含以下章节Purpose、When to Use、Quick Reference、Workflow、References 链接
#### Scenario: SKILL.md 长度建议
- **WHEN** 检查 SKILL.md 总字数
- **THEN** 建议控制在 5000 字以内(含 YAML 前置元数据)
#### Scenario: 详细内容迁移
- **WHEN** SKILL.md 包含详细示例、完整错误处理、最佳实践等冗长内容
- **THEN** 这些内容 SHALL 迁移到 references/ 目录SKILL.md 中保留链接引用
### Requirement: references 目录结构规范
每个 skill SHALL 包含 references/ 子目录,用于存放按需加载的详细文档。
#### Scenario: references 目录存在性
- **WHEN** 检查 skill 目录结构
- **THEN** SHALL 存在 references/ 子目录
#### Scenario: references 文件分类
- **WHEN** 组织 references/ 目录内容
- **THEN** SHALL 按主题分类为独立的 markdown 文件,如 examples.md、error-handling.md、best-practices.md
#### Scenario: SKILL.md 引用 references
- **WHEN** SKILL.md 需要引用详细文档
- **THEN** SHALL 在 SKILL.md 中明确列出 references/ 中的文件并说明用途
### Requirement: 内容迁移完整性
从 SKILL.md 迁移内容到 references/ 时SHALL 确保所有原有信息被完整保留。
#### Scenario: 迁移前后对比
- **WHEN** 完成单个 skill 的内容迁移
- **THEN** references/ 中的文件 SHALL 包含原 SKILL.md 中被移除的所有详细内容
#### Scenario: 功能不变性
- **WHEN** 完成结构优化后
- **THEN** skill 的功能逻辑 SHALL 保持不变,仅文档结构发生变化