e1acf2de84
接口与入门: - 新增 docs/MCP.md:注册方法(DSH patch + 通用 client)、返回信封、会话目录布局、标准流程、 硬约束与未实现清单;工具参考段由**运行时 input_schema 自动生成**,与代码同源不会漂移 - 删除 docs/API.md(856 行 Flask 路由/SSE 文档,描述的端点已不存在) - 重写根 README.md:为什么放弃自带前端、职责分工表、快速开始、注册配置、流程链、结构与风险 - 重写 AGENTS.md:命令表换成 mcp/mcp-smoke/upload;mypy 目标改 src;新增「提交纪律」 (pre-commit 的 stash 窗口会回滚未暂存改动)、COM 与 Playwright 线程约束、多进程共存提醒 包文档:src/README.md 与各包 README 按现状重写;新增 src/mcp/README.md(写工具的规矩、 宿主侧四个坑)与 src/upload/README.md(路由表与安全边界);tests/scripts/config 三处索引更新。 提示词迁移:src/infra/llm/ 整个删除,三份系统提示词迁到 .agents/skills/reimbursement/references/ (invoice-fields / travel-info-fields / normal-info-fields),删掉 can_submit 与 suggestion (save_info 也会主动剥离),「严格只输出 JSON」改为「交给对应工具落盘」;新增 SKILL.md 作为 宿主侧操作纪律(已被 DSH 热加载为 reimbursement 技能)。 作废处理:删除 .agents/docs/guides/系统事件流全景图.md(SSE 与 file_events/agent_events 通道已整体 移除,现在没有任何事件流);给项目架构全景图与架构分析-2026-06-15 加「已过时」横幅保留历史; config.example.json 去 consumable_storage 加 upload_pin;.env.example 去 LLM 段并说明已不再自动加载 .env。 安全:docs/报销操作指南.md 的示例配置里原来写着**真实姓名、16 位公务卡号、内网 LLM 地址与工号** (自 9fe5d70/2026-05-25 起在版本历史里),本次全部换成占位符。历史清洗与令牌轮换另议。 门禁(改动含 src/infra/llm 删除,故重跑全部门禁): ruff check PASS | ruff format --check PASS(42) | mypy src PASS(34) | deptry PASS(36) | pytest 107 passed | scripts/mcp_smoke.py PASS(17 工具 / instructions 1449 字节 / case_list ok) 申购单在依赖清理后另已实机复测:2.4s 生成,产物单元格读回正确。
1.6 KiB
1.6 KiB
last_reviewed
| last_reviewed |
|---|
| 2026-10-19 |
src/infra/documents — 文档处理
| 文件 | 职责 |
|---|---|
invoice.py |
发票类型常量、CSV 列定义、CSV/JSON 读写、批量分类 |
requisition.py |
低值易耗品申购单:从 .invoice_cache 取明细 → 清洗与去重 → Excel COM 填模板 |
对外接口
| 函数 | 说明 |
|---|---|
load_csv / save_csv / save_invoice_csv |
支付记录与发票级 CSV 读写 |
classify_invoice_batch(cache_map) |
按类型分组:travel / general / application / attachments |
load_requisition_items(cache_dir, exclude_keywords) |
申购明细:清洗品名、猜规格、按发票号去重、关键词排除 |
load_project_desc(session_dir) |
「对应实验实训项目」取值顺序:normal_info → travel_info → 旧 agent_state.json → 默认 |
generate_requisition(session_dir, template, output, project_desc, exclude) |
一站式生成;mcp__arb__doc_requisition 经 run_com 调它 |
申购单
- 需要 Windows + Microsoft Excel + pywin32
- 模板取项目根目录
低值易耗品申购*.xls中名字最大者(仓库里保留的就是它) - 产物写
cases/<id>/artifacts/,不再污染项目根目录(旧实现把带时间戳的产物生成在模板旁边, 会让下次模板查找命中上次的产物) - 表头在第 2 行、数据从第 3 行起、末尾追加合计行;列位与行号常量在
requisition.py顶部
Word 版易耗品出库单(
consumable.py)已删除:模板自提交63b97c6(2026-08-31)起不在仓库, 那条路径此后一直静默失败。历史实现看 git。