1
0
Files
Skill/skills/lyxy-kb/references/workflow.md
2026-02-25 17:36:42 +08:00

3.6 KiB
Raw Blame History

文档生命周期和处理策略

文档生命周期

用户放入 sources/(支持子目录)
       │
       ▼
   检查文件(跳过空文件、检测冲突)
       │
       ▼
   解析文件内容(失败则保留在 sources/
       │
       ├──▶ 写入 parsed/<文件名>.md含头部元信息
       │
       ├──▶ 移动原始文件到 archive/<文件名_YYYYMMDDHHmm>.<ext>
       │
       ├──▶ 更新 manifest.json
       │
       └──▶ 增量更新 project.md追加文件索引和更新记录

归档命名规则

所有进入 archive 的文件都必须带时间戳后缀,格式为 <文件名_YYYYMMDDHHmm>.<扩展名>,即使只有一个版本。

示例:

  • 需求文档.docxarchive/需求文档_202602181600.docx
  • 技术方案.pdf(第二次入库)→ archive/技术方案_202602181725.pdf

同名文件更新

同名同扩展名的文件再次入库时:

  • parsed/ 中的 markdown 文件被覆盖为最新版本
  • archive/ 中保留所有历史版本(每个版本独立的时间戳文件)
  • manifest.json 中该文件条目的 versions 数组追加新版本记录

同名不同扩展名冲突检测

因为 parsed 产物以文件名(不含扩展名)+ .md 命名,同名不同扩展名的文件会产生冲突。

检测规则

  1. sources/ 内部检测:扫描 sources/ 中所有文件(含子目录),如果存在同名但不同扩展名的文件(如 技术方案.pdf技术方案.docx),拒绝处理并提示用户重命名
  2. 与已入库文件检测:将 sources/ 中文件的名称(不含扩展名)与 manifest.json 中已有记录对比,如果名称相同但扩展名不同,拒绝处理并提示用户重命名

处理方式

冲突文件不予处理,保留在 sources/ 中,提示用户重命名后重新执行 ingest。非冲突文件正常处理。

文件类型解析策略

文件类型 解析方式
.docx, .pdf, .pptx, .xlsx 使用名为 lyxy-reader-office 的 skill 解析
其他所有文件(.md, .txt, .csv, .json, .xml, .yaml, .yml, .log, .html 等) 直接读取文件内容

Office 文档解析

解析 office 文档时,必须查找当前环境中名为 lyxy-reader-office 的 skill阅读其 SKILL.md 获取具体的执行方式和命令。

如果环境中不存在 lyxy-reader-office skill且没有其他可替代的文档解析 skill则提示用户无法处理 office 文档,中止整个 ingest 流程。

sources/ 扫描规则

扫描 sources/ 时递归检查所有子目录中的文件。parsed 产物的路径仍为 parsed/<文件名>.md(扁平化存放),不保留 sources 中的子目录结构。

空文件处理

sources/ 中 0 字节的空文件应跳过处理,不解析、不归档、不更新 manifest。处理完成后向用户列出被跳过的空文件列表提示用户检查。

解析失败处理

如果某个文件解析失败(如文档损坏、解析器报错),该文件保留在 sources/ 中不移动,报告错误信息,继续处理其他文件。

更新策略

增量追加(默认,由 ingest 触发):

  • 新文件:在文件索引表追加新行,在更新记录追加条目
  • 已有文件更新:覆盖文件索引表中对应行的最新归档路径和摘要
  • 概述和关键信息部分自动更新

全量重写(由 rebuild 触发):

  • 读取所有 parsed/*.md 文件
  • 重新生成概述、关键信息、文件索引
  • 保留历史更新记录,追加本次 rebuild 条目