1
0
Files
Skill/commands/lyxy-kb/ingest.md

3.1 KiB
Raw Blame History

解析 sources/ 中的新文件并增量更新知识库。

输入: /lyxy-kb-ingest 后的参数为项目名称。

前置条件: 查找并阅读名为 lyxy-kb 的 skill了解知识库的完整规范。

步骤

  1. 获取项目名称并验证结构

    从参数中获取项目名称。如果未提供参数,提示用户输入。

    按照 lyxy-kb skill「结构完整性验证」规则检查项目目录不完整则提示用户先 init。

  2. 检查 office 文档解析能力

    按照 lyxy-kb skill「Office 文档解析」规则,查找当前环境中名为 lyxy-reader-office 的 skill。如果不存在且无其他可替代的文档解析 skill则提示用户无法处理 office 文档并中止流程。

  3. 读取 manifest.json

    读取 <project-name>/manifest.json,获取已入库文件的信息。

  4. 递归扫描 sources/ 目录

    按照 lyxy-kb skill「sources/ 扫描规则」,递归检查 sources/ 及其所有子目录中的文件。如果无任何文件,提示用户无待处理文件并终止。

  5. 预检查

    空文件检测:按照 lyxy-kb skill「空文件处理」规则识别 0 字节文件,标记为跳过。

    同名不同扩展名冲突检测:按照 lyxy-kb skill「同名不同扩展名冲突检测」中的两条检测规则执行。冲突文件标记为跳过。

    如果有跳过的文件,列出详情(空文件 / 冲突文件分别列出)。如果所有文件都被跳过,终止流程。

  6. 逐个处理文件

    对每个通过预检查的文件:

    a) 解析:按照 lyxy-kb skill「文件类型解析策略」判断解析方式。office 文档使用 lyxy-reader-office skill查找并阅读该 skill 获取具体命令),其他文件直接读取。

    b) 写入 parsed:按照 lyxy-kb skill「parsed 文件元信息标记」格式,在内容头部添加元信息注释,写入 <project-name>/parsed/<文件名>.md(同名覆盖)。

    c) 归档:按照 lyxy-kb skill「归档命名规则」移动原始文件到 archive/(带时间戳后缀 YYYYMMDDHHmm)。

    d) 更新 manifest.json:新文件追加条目,已有文件在 versions 数组追加新版本。使用 sha256sum 计算文件哈希。更新 last_ingest

    e) 解析失败处理:按照 lyxy-kb skill「解析失败处理」规则失败文件保留在 sources/ 中不移动,报告错误,继续处理下一个文件。

  7. 增量更新 project.md

    按照 lyxy-kb skill「增量追加」策略

    • 对每个新处理的文件,读取其 parsed 内容生成简要摘要1-2 句话)
    • 新文件:在文件索引表追加新行
    • 已有文件更新:更新文件索引表中对应行
    • 在更新记录追加本次 ingest 条目
    • 不修改概述和关键信息部分
  8. 输出结果

    汇总显示:

    • 成功处理的文件列表
    • 跳过的文件(空文件 / 冲突文件 / 解析失败文件,分别列出)
    • 当前项目已入库文件总数
    • 提示可使用 /lyxy-kb-rebuild <project-name> 更新概述和关键信息
    • 提示可使用 /lyxy-kb-ask <project-name> 进行知识问答