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

66 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
解析 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>` 进行知识问答