Kunora Docs 文档收集与发布输入设计
1. 结论
kunora-docs 是 Kunora 文档发布输入仓库。当前确定边界是:main/publish/** 是下游 Docusaurus 服务器、搜索索引和问答索引的唯一正式输入。
系统拆成两个明确流程:
- 自动收集流程:定时从各组件仓库的稳定文档来源收集
docs/**,按配置同步到publish/technology/components/<component>/,并发起 Sync PR。 - 自身文档发布流程:
kunora-docs/docs/**是作者工作区,变更后同步到publish/technology/components/kunora-docs/,并发起 Self Docs PR。
PR 合并到 main 后,main/publish/** 就是最终发布版内容。Docusaurus 构建和线上部署由下游 Docusaurus 服务器消费 main/publish/** 完成,不在 kunora-docs 内直接构建页面。
2. 核心约束
- 组件仓库必须提供稳定文档来源:
docs-publishref 下的docs/**。 config/sources.yaml决定每个组件的来源仓库、来源 ref、来源目录和写入目录。- 自动收集不理解组件文档内部结构,只把
sourcePath整体同步到配置的publishPath。 - 同步必须覆盖新增、更新、删除,同时不能覆盖
publish/**中已发生的人工或智能体整理结果。 publishPath必须唯一,不能重复,不能互为父子目录,避免两个来源互相污染。kunora-docs/main的publish/**是唯一正式发布输入。- 工作流不能直接 push
main,所有自动写入都必须通过 PR。
3. 仓库结构
kunora-docs/
config/
sources.yaml
self-docs.yaml
site.yaml
publish.yaml
index.yaml
docs/
kunora-docs-implementation-design.md
publish/
system/
components/
kunora-docs/
kunora-kgent/
kunora-agent-memory/
kunora-wiki/
state/
source-lock.json
source-lock.previous.json
source-changes.json
publish-plan.json
publish-impact-report.json
page-manifest.json
publish-manifest.json
site-manifest.json
index-manifest.json
scripts/
sync_sources.py
render_sync_pr_body.py
sync_self_docs.py
validate_docs.py
publish_wikijs.py
build_index_manifest.py
.github/workflows/
docs-sync.yml
docs-self-sync.yml
docs-publish.yml
docs-index.yml
4. 组件来源配置
config/sources.yaml 示例:
version: 1
sources:
- id: kunora-kgent
type: github
repo: https://github.com/innuama-coder/kunora-kgent.git
localPath: ../kunora-kgent
ref: docs-publish
sourcePath: docs
publishPath: publish/technology/components/kunora-kgent
deletePolicy: sync-if-unmodified
conflictPolicy: report-only
include:
- "**/*.md"
- "**/*.png"
- "**/*.jpg"
- "**/*.jpeg"
- "**/*.svg"
- "**/*.gif"
exclude:
- "**/.DS_Store"
字段含义:
| 字段 | 含义 |
|---|---|
id | 来源项目唯一标识。 |
type | 来源类型,当前为 github。 |
repo | 上游 GitHub 仓库。 |
localPath | 本地调试路径,CI 使用 --remote 时不依赖。 |
ref | 稳定文档来源 ref,当前约束为 docs-publish 分支。 |
sourcePath | 上游文档根目录,当前约束为 docs。 |
publishPath | 写入 kunora-docs 的发布目录,必须位于 publish/**。 |
deletePolicy | 来源删除如何应用,当前默认 sync-if-unmodified。 |
conflictPolicy | 来源和发布目录并发变化如何处理,当前为 report-only。 |
include / exclude | 文件过滤规则。 |