821822a408
先体检再动手:44 个 Markdown,相对链接 0 处失效,逐份分辨「现状文档」与「历史记录」。 历史记录(error-experience/*、架构分析、已过时的全景图)保留原貌只加指路,不重写。 - 新增 scripts/gen_mcp_docs.py:起 stdio 子进程 list_tools 后整段重生成 docs/MCP.md 的「工具参考」 (291 行 / 25 个工具,占这份文档四分之三,手工维护必漂)。--check 漂移退出码 1,--diff 打印差异; GROUPS 是刻意闸门——加了工具没登记就报错,防止「有工具没文档」。接进 make mcp-docs / docs-check 与 tasks.py 同名任务 - 生成时抓到两处真实漂移:invoice_type 线上是 string/null 且默认 null,文档手写成 null/string 无默认; case_list 无参数在旧文档里写成一句散文。现已与线上一字不差 - 过期说法清理:src/README 的「browser_* 与 submit_* 尚未实现」(browser 早已联机验通、submit 定案不做); tests/README 的「当前 107 例」(现 148)与缺 test_mcp_browser.py 一行、「Playwright 填报不进单测」 (现在选择器分支/状态判定/错误路径有单测,只有真实页面需要联机);.agents/README 的「Cursor Agent」; plans/README 里还写着「提交加确认 token」;scripts/data/README 表格有一行跑到正文后面 - 工程实践指南里把已删除的 CLI 入口当例子:mypy src/main.py、make run、python src/main.py 全部改为现状 (mypy src / 唯一入口 python -m src.mcp.server),并补上「任务必须透传退出码」这条本轮踩到的坑 - README:「还没做完」重写为「边界与未完事项」——把刻意不做(提交、submit_* 整类、删除、撤回)与 真的未完(科目/项目/人员固定取第 N 行,待业务口径)分开写;开发命令补 mcp-docs / docs-check / skill-install - 操作指南:7.3 经济科目与项目从「要改就改索引」改成「已知限制,等口径,填报后务必人工核对」; 相关命令补齐新目标;MCP.md 标准流程补上填报与「到此为止,提交由人」两步,并改掉与新纪律矛盾的 「把截图报给用户」表述 - AGENTS:命令表加两行;测试段给出改工具后的固定顺序(mcp-smoke → mcp-docs → 重连宿主);提交纪律 补「make check 之外还有 docs-check / skill-check 两道专项门禁」;截图产物改标注为排查证据 - install_skill.py:拿不到主目录时退出码改 4,别和「漂移」的 1 混成一类 - 已核对:submit_execute / src/main.py 在文档里的残留都是禁止性表述或「已删除」清单项,不是现状描述 验证:ruff / format --check / mypy src / deptry / pytest 148 passed / mcp-smoke 25 工具 / docs-check 与 skill-check 均退出码 0。--no-verify 提交并手跑等价检查。
last_reviewed
| last_reviewed |
|---|
| 2026-10-19 |
scripts — 自检脚本与数据目录
| 文件/目录 | 说明 |
|---|---|
gen_mcp_docs.py |
从运行时 schema 重新生成 docs/MCP.md 的工具参考一节(make mcp-docs;make docs-check |
| 只比对,漂移退出码 1)。加了工具却没在 GROUPS 登记会直接报错——刻意闸门 | |
install_skill.py |
把报销技能同步到用户级技能目录,让它脱离本仓库可用(make skill-install / |
make skill-check)。装之前会核实该目录作为技能来源是否启用:装进停用的来源里,宿主永远扫不到 |
|
mcp_smoke.py |
MCP stdio 自检:拉起自身、打印工具清单、验证 instructions 已下发、调一次 case_list。 |
make mcp-smoke 或 python tasks.py mcp-smoke |
|
data/ |
项目级配置目录(见 data/README.md) |
三个脚本都不改业务代码:mcp-smoke 验线上契约,mcp-docs 由线上 schema 出文档,install_skill 只管拷贝。
改完工具的顺序是 mcp-smoke → mcp-docs。
改完 MCP 工具一定要跑 mcp_smoke:它验的是线上传输的契约,进程内 import 成功不代表宿主能看到工具。