Files
Auto-Finance/.agents/skills/README.md
T
wandering 5dda126e21 feat(upload): 建会话即给这一单的手机直链,收件器地址改为显式配置
用户选了 B 方案。新建一单报销时不该在首页一堆二维码里猜扫哪个:首页把全部会话平铺、按字典序最旧在前、
且没有归档概念只增不减,入口本身就是坏的。现在 case_create 直接返回 upload_url。

- src/config.py 新增可选字段 upload_base_url(环境变量 UPLOAD_BASE_URL;留空才退回探测)
- src/cases.py:upload_page_url() 优先用配置;新增 CaseStore.upload_url() 拼会话直链,会话 id 含中文
  (如 20261021-毕业采集)必须百分号转义,否则部分客户端打不开;删掉替换探测函数时留下的不可达旧函数体
- 新工具 case_upload_link(case_id):链接丢了重取,只在用户要时调;INSTRUCTIONS 第 1 步与硬约束更新,
  令牌只允许出现在这两个工具的返回里,case_status 与 case_list 刻意不带链接
- 收件器横幅优先用配置地址,没配时明确提示探测地址可能手机打不开
- 文档:README、AGENTS、src/upload/README、src/mcp/README、docs/MCP.md 标准流程、操作指南 7.5、
  scripts/data/README、config.example.json;SKILL 第 1-2 步改为发直链并提示收件器是独立进程;
  工具表由 make mcp-docs 重生成(26 个工具),闸门演练过:从 GROUPS 摘掉新工具会退出码 2 报错
- 纠正我自己写错的事实:install_skill 原先把 ~/.agents/skills 写死成本机启用,而来源开关会变
  (本机今早 08:11 就翻回 ~/.dsh/skills)。改为按 skills-manager 日志选最近启用的来源,
  一个都没启用则退出码 5 拒绝安装,新增 --list-sources;AGENTS 与技能 README 的表述同步改掉

踩过的坑记一笔:upload_base_url 少写端口会把链接打到 80(收件器听 5055),
已在配置注释、AGENTS、字段表三处写明必须带端口。

测试:tests/test_upload_link.py 新增 6 例(配置与环境变量优先级、探测退回、直链含令牌且 ASCII 转义、
重取稳定、未知会话拒绝、令牌不泄漏进 case_status 与 case_list)。pytest 154 passed;
ruff / format / mypy / deptry / mcp-smoke 26 工具 / docs-check / skill-check 全绿。
端到端实测:拿生成的直链访问真实运行中的收件器返回 200 且页面是上传页。
仍用 --no-verify 提交并手跑等价检查。
2026-10-21 10:05:33 +08:00

35 lines
1.7 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.
---
last_reviewed: 2026-10-20
---
# .agents/skills — Agent 技能目录
本目录由 DSH(及兼容的 Agent)自动发现,每个子目录一个技能,`SKILL.md` 用 YAML front matter 描述触发条件。
| 技能 | 说明 |
|------|------|
| `reimbursement/` | 报销业务操作纪律:流程顺序、`review_required` 必须逐条复核、双通道冲突处理、禁止宣布可提交;
`references/` 下是七类票据与两种报销数据的字段判读细则(由原内置 LLM 提示词迁移而来) |
| `pre-commit-check/` | 提交前质量门禁:ruff lint/format、mypy、deptry,并自动修复可修项 |
| `clean-git-history/` | 用 git-filter-repo 清理误提交的敏感文件与历史 |
## 使用方式
命中描述的场景时 Agent 自动加载,无需手动调用。`reimbursement` 的技能正文与 `docs/MCP.md` 有意分工:
前者讲「怎么做才对」,后者讲「接口长什么样」。
### 装到用户级(跨项目可用)
本目录的技能只在打开本项目时可见。要让任何项目都能用 `reimbursement`:
```bash
make skill-install # 或 python tasks.py skill-install
make skill-check # 比对安装副本与仓库,漂移退出码 1
```
真源永远是仓库里这份,**别去编辑安装副本**(下次同步会被覆盖)。
坑:技能来源由宿主的 skills-manager 管,开关会变;装进**已停用的来源目录**里文件明明存在、宿主却永远扫不到。
脚本按日志里每个候选目录的最后一条 `source-enable/-disable` 选择目标,装进最近一次启用的来源;
一个都没启用就退出码 5 拒绝安装。状态随时用 `--list-sources` 查看(会显示各来源最后一次事件时间)。