1
0
Files
Skill/openspec/changes/archive/2026-02-17-create-lyxy-reader-office/design.md

77 lines
4.2 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.
## Context
当前项目中存在 `lyxy-reader-docx` skill仅支持 DOCX 格式的文档解析。`skills/lyxy-reader-office/scripts/` 目录下已完成全部解析脚本的开发parser.py、common.py、docx_parser.py、pptx_parser.py、xlsx_parser.py、pdf_parser.py、README.md支持 DOCX、PPTX、XLSX、PDF 四种格式。现在需要创建 `SKILL.md` 作为 skill 的入口文件,并清理被替代的旧 skill。
已有资源:
- `skills/lyxy-reader-docx/SKILL.md`:参考模板,已验证的 skill 结构
- `skills/lyxy-runner-python/SKILL.md`Python 执行 skill与本 skill 协作
- `skills/lyxy-reader-office/scripts/README.md`:完整的脚本使用文档
- `document/specification.md`skill 格式规范
## Goals / Non-Goals
**Goals:**
- 创建 `skills/lyxy-reader-office/SKILL.md`,遵循 skill 格式规范
- SKILL.md 的 description 能覆盖 .docx、.xlsx、.pptx、.pdf 四种文件扩展名关键词,确保大模型在发现阶段能正确匹配
- 引导大模型优先使用该 skill 读取这四种格式的文件
- 引导大模型阅读 `scripts/README.md` 获取详细的脚本使用说明
- 引导大模型在 `lyxy-runner-python` skill 可用时必须使用该 skill 来运行 Python 脚本
- 删除 `skills/lyxy-reader-docx` 目录
**Non-Goals:**
- 不修改已有的解析脚本代码
- 不修改 `lyxy-runner-python` skill
- 不新增任何解析功能
- 不创建单独的文档说明文件(如旧 skill 的 `docx_parser.md`),详细用法通过引导阅读 README.md 解决
## Decisions
### 决策 1SKILL.md 结构参考 lyxy-reader-docx 但大幅精简
**选择**SKILL.md 专注于发现description、激活引导何时使用、触发条件和执行入口指向 README.md不在 SKILL.md 中重复 README.md 的内容。
**理由**
- 规范建议 SKILL.md 保持在 500 行以下
- README.md 已包含完整的命令行用法、参数说明、安装指南、错误处理等
- 重复内容会导致维护负担,且增加不必要的 token 消耗
- 渐进式披露SKILL.md 负责激活判断README.md 负责执行细节
**替代方案**:将 README.md 全部内容嵌入 SKILL.md — 拒绝,因为会超过 500 行限制且违反渐进式披露原则。
### 决策 2强制引导使用 lyxy-runner-python
**选择**:在 SKILL.md 中明确要求大模型在 `lyxy-runner-python` skill 可用时**必须**使用该 skill 来运行 parser.py不提供直接 Python 执行的选项。仅在 `lyxy-runner-python` 不可用时降级到直接 Python 执行。
**理由**
- lyxy-runner-python 使用 uv 管理依赖,能自动安装解析器所需的第三方库
- 环境隔离,不污染系统 Python
- 与 lyxy-reader-docx 保持一致的执行策略
**替代方案**:将 lyxy-runner-python 作为可选推荐 — 拒绝,因为用户明确要求"必须使用"。
### 决策 3通过引导阅读 README.md 提供详细用法
**选择**SKILL.md 中仅给出基本的执行命令格式和常见示例,详细的参数说明、依赖安装、解析器对比等内容通过引导大模型阅读 `scripts/README.md` 获取。
**理由**
- 符合渐进式披露原则SKILL.md 是指令层README.md 是资源层
- README.md 已有完整且结构化的文档,无需重复
- 减少 SKILL.md 的体积,提高激活阶段的效率
### 决策 4删除 lyxy-reader-docx 而非保留兼容
**选择**:直接删除整个 `skills/lyxy-reader-docx/` 目录。
**理由**
- lyxy-reader-office 完全覆盖了 lyxy-reader-docx 的功能
- 保留旧 skill 会导致两个 skill 争抢 .docx 文件的处理权,造成歧义
- 用户明确要求删除
## Risks / Trade-offs
- **[旧 skill 引用残留]** → 检查项目中是否有其他地方引用了 `lyxy-reader-docx`(如 .claude/settings 中的 skill 配置),删除时需同步清理
- **[description 覆盖度]** → description 需要包含 docx、xlsx、pptx、pdf 等关键词,确保大模型在发现阶段能匹配到四种文件类型。但 description 有 1024 字符限制,需要精简表达
- **[SKILL.md 体积控制]** → 需在"提供足够的执行引导"和"保持 500 行以内"之间平衡。通过引导阅读 README.md 解决详细信息的需求