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 提交并手跑等价检查。
21 lines
1.2 KiB
Markdown
21 lines
1.2 KiB
Markdown
---
|
||
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 成功不代表宿主能看到工具。
|