resources/ai-kb/_schema/frontmatter.md
每个 chunk 文件必须以 YAML frontmatter 开头,被 --- 包围,紧接正文。
---
id: app.approve # 必填,全局唯一,kebab.dot 格式
title: 审批中心 # 必填,单行
type: howto # 必填,枚举:concept | howto | faq | menu-map | glossary | shortcut
feature: approve # 必填,受控词表(见下)
scope: end-user # 必填,枚举:end-user | admin | super-admin
locale: zh # 必填,枚举:zh | en
aliases: # 必填,≥1 条;用户可能怎么问
- 审批
- 走流程
- 报销审批
related_tools: [] # 可空;关联的 MCP 工具名(来自 dootask-mcp)
related_pages: [application] # 可空;与页面弱提示词联动的 page id
prerequisites: # 可空;前置条件
- 应用市场已安装 approve 插件
negative: [] # 可空但鼓励 ≥1 条;显式列出不支持项
last_verified: v1.7.90 # 必填,当前主程序版本号
---
| 字段 | 类型 | 必填 | 约束 |
|---|---|---|---|
id | string | 是 | 全局唯一;小写 + . 分隔;与 _meta/feature-map.yaml 中条目对应;推荐格式 <feature>.<sub>.<type> 如 task.create.howto |
title | string | 是 | 单行,不超过 60 字符;用作 chunk 检索时的展示标题 |
type | enum | 是 | concept(是什么)/ howto(怎么做)/ faq(为什么/出错怎么办)/ menu-map(在哪里)/ glossary(术语)/ shortcut(快捷键) |
feature | enum | 是 | 受控词表见下;新增 feature 需先改 feature-map.yaml |
scope | enum | 是 | end-user(普通成员)/ admin(管理员)/ super-admin(超管) |
locale | enum | 是 | zh / en;与文件所在子目录一致 |
aliases | list[string] | 是(≥1) | 用户可能怎么提问;用于 dense 检索 + 同义词桥接;用自然口语,不要堆关键词 |
related_tools | list[string] | 否 | 关联的 MCP 工具名(来自 _meta/tool-binding.yaml),便于检索时联动工具调用 |
related_pages | list[string] | 否 | 当用户在哪个页面提问最相关;与前端 page-context 系统联动 |
prerequisites | list[string] | 否 | 前置条件,如"需要管理员权限"、"插件已安装" |
negative | list[string] | 否(鼓励) | 显式列出不支持的能力,如"暂不支持嵌套子审批" |
last_verified | string | 是 | 当前主程序版本号,如 v1.7.90;改了 chunk 必须同步刷新 |
type 全集| type | 用途 | 示例 id |
|---|---|---|
concept | 解释「是什么」 | task.subtask.concept |
howto | 教「怎么做」 | task.create.howto |
faq | 「为什么 / 出错怎么办」 | auth.permission-denied.faq |
menu-map | 「X 入口在哪」 | approve.entry.menu-map |
glossary | 术语 + 别名表(通常一个 feature 一篇) | task.glossary |
shortcut | 快捷键、移动端手势 | global.shortcut |
scope 全集end-user — 所有登录用户都能用admin — 系统管理员(userIsAdmin)super-admin — 超级管理员(只有第一个用户)feature 全集由 _meta/feature-map.yaml 的顶层 features: 列表定义。新增 feature 必须先改 feature-map.yaml 再写 chunk,否则 lint 失败。
related_tools 取值必须是 _meta/tool-binding.yaml 已定义的工具名,否则 lint 失败。
由 dootask-plugins/system-plugins/ai/src/helper/kb/lint.py 强制执行:
id 全局唯一id 与文件路径匹配规则:zh/<type>/<feature-path>/<id-tail>.mdfeature 在 _meta/feature-map.yaml 的受控词表内type / scope / locale 在各自枚举内aliases 至少 1 条且每条 ≥ 2 字符related_tools 中每条都在 _meta/tool-binding.yaml 已声明last_verified 匹配 v\d+\.\d+\.\d+ 模式如上图、如上所述、如前文、在前面的、参见上节[[id]] 语法;id 必须存在于本仓库---
id: task.create.howto.quick
title: 快速创建任务
type: howto
feature: task
scope: end-user
locale: zh
aliases:
- 怎么建任务
- 新建待办
- 加一条 todo
related_tools: [create_task]
related_pages: [project_detail, task_list]
prerequisites: []
negative:
- 快速创建不支持设置截止时间,需用完整创建
last_verified: v1.7.90
---
# 快速创建任务
## 入口
- 桌面端:项目详情页右上角「+」→「快速添加任务」
- 移动端:底部 Tabbar「+」按钮
## 操作步骤
1. 在输入框输入任务名(必填,≤ 200 字)
2. 回车提交
## 字段默认值
- 负责人:当前用户
- 状态:列表第一列(未开始)
- 优先级:普通
- 截止时间:无
## 想设置更多字段
切到完整创建模式:[[task.create.howto.full]]