4.1 KiB
4.1 KiB
DWS Skill 内容框架合同
本分支权威合同:
skills/mono/skills/multi的内容组织与 zip 内容树形状。
不做安装/升级行为约定。质检见 skill-mono-multi-qa.md。
安装、升级与模式迁移见 DWS 预制 Skill 安装、升级与模式迁移 RFC。
1. 两棵内容树
| 树 | 路径 | 角色 |
|---|---|---|
| mono(单 skill) | skills/mono/ |
单一 SKILL.md 入口 + references/products/* 产品面 + 全局协议 |
| multi(多 skill) | skills/multi/ |
平铺 dingtalk-* 产品 skill + 必选 dingtalk-shared |
Agent / 安装面选哪棵树由行为分支决定;本文件只规定树内合同。
2. Multi 目录合同(如何新增一个产品 skill)
新建 skills/multi/<name>/ 时必须满足:
- 命名
- 产品 skill:
dingtalk-<product>(小写、连字符) - 共享 skill:仅允许
dingtalk-shared
- 产品 skill:
- 根文件
- 必有
SKILL.md(YAML frontmatter + 正文) references/推荐;无 reference 的 skill(如极简 profile)须在质检 omit 表登记scripts/可选;脚本须被本 skill 树内某.md引用,或进入 orphan allowlist
- 必有
- Frontmatter 最小集(产品 / shared)
name:与目录名一致description:非空,含触发意图与边界metadata.category:product或shared(允许历史写法把cli_version放在 frontmatter 顶层)metadata.requires.bins:含dws
- 契约块
- 产品 skill 推荐内嵌
<!-- DWS_RUNTIME_CONTRACT_START -->…END -->或 明确 PREREQUISITE 指向dingtalk-shared dingtalk-shared承载跨产品路由与全局协议落点
- 产品 skill 推荐内嵌
- 与 mono 映射
- 每个 mono
references/products/<stem>(文件或目录)必须在skills/content-qa/mono-multi-coverage.yaml有coverage或omit_coverage行
- 每个 mono
2.1 推荐骨架
skills/multi/dingtalk-example/
├── SKILL.md
├── references/
│ ├── example.md # 主产品面
│ └── … # 子章节 / 意图表
└── scripts/ # 可选;须被 md 引用
└── example_helper.py
3. Mono 目录合同(质检对照基准)
skills/mono/
├── SKILL.md
├── references/
│ ├── products/ # 覆盖质检主源
│ ├── error-codes.md # 全局协议示例
│ ├── error-codes.md
│ └── …
└── scripts/
references/products/下每个顶层 stem(.md去后缀或子目录名)计入覆盖索引。- 同 stem 的
.md+ 子目录视为同一产品面(如doc.md+doc/)。
4. 共享内容(dingtalk-shared)
| 职责 | 落点 |
|---|---|
| 跨产品路由 / 工作流 | references/routing.md、workflow-routing.md、intent-guide.md |
| 运行时最小契约长文 | references/runtime-contract.md(受 context-budget 约束) |
| 全局协议(确认门禁 / Schema 教学等) | references/;见质检基线 |
| 与 mono 全局文同名迁移 | error-codes、url-patterns、capability-limits、channel-login、global-reference、recipes/(conventions.md、meta.md、lite-catalog.md) |
产品专属规则(如 AI 表格 field-rules)允许下沉到对应 dingtalk-*,须在覆盖表注明。
5. Zip 内容布局合同(形状,非安装默认)
发布物 dws-skills.zip(及 embed 同源)内容树形状:
| Zip 路径 | 含义 |
|---|---|
<root>/ |
mono 内容副本(兼容旧面) |
<root>/mono/ |
与 skills/mono/ 同构 |
<root>/multi/ |
与 skills/multi/ 同构 |
质检可断言源树形状;不断言安装器默认解压哪棵。
6. 变更流程
- 改 / 增内容 → 更新
skills/content-qa/mono-multi-coverage.yaml(coverage 或 omit) - 跑
make skill-mono-multi-content(该独立门禁不包含在默认make policy中) - 失败则修内容或更新 reviewed omit(disposition + 原因),禁止用安装默认值绕过