8.1 KiB
8.1 KiB
REQUIREMENTS —— 票据合规预审助手(verify-invoice-default)
需求来源:《核心建设内容:各部门"Skill"深度需求规格书》§4.1 财务处 Skill 001(票据合规性"秒级预审")。 详细设计见工作区《财务处Skill001-票据合规秒级预审-开发文档.md》;本文是该技能仓内的需求与验收主文档。 定位原则:辅助非决策、审慎非激进 —— AI 只做预审提示,真伪与最终结论由人确认。
0. 技能标识
- 拟定 slug:
verify-invoice-default - 中文 name:票据合规预审助手
- 中文 description:高校报销场景的发票合规性秒级预审:核对字段完整性、购买方税号白名单、开票日期与出差行程逻辑、住宿交通经费标准,对连号、同商家集中开票、节假日开票等风险点红黄灯预警,生成《初审意见单》。
- account-manager platform_key:不适用(无网页 RPA,无账号下发)
- 命名形态:scope 型(verify ∈ 动词白名单;default ∈ scope 白名单;21 字符)
- 网页 RPA 登录策略:
not_needed(无浏览器自动化;不使用 account-manager)
0.1 宿主入口定位
| 主能力(Action id / CLI) | 对话 | 数据管理 | 定时 | 教程章节 | 不挂理由 |
|---|---|---|---|---|---|
prereview-invoice(prereview) |
挂 | toolbar(bind invoice_records,表单) | 不挂 | 入口一/入口二 | 预审由单据驱动,无无人值守场景 |
prereview-batch-input(prereview-batch-input,async) |
挂 | 不挂 | 不挂 | 入口二 | 批量输入依赖 input 目录,属对话长任务 |
render-html(render-html) |
挂 | toolbar(bind prereview_reports)+ skill-detail | 不挂 | 入口一/入口二 | 同预审 |
mark-verified |
不挂 | row(prereview_reports,预填 id) | 不挂 | 入口一 | 查验回填是"对着记录"的操作 |
list-reports / stats |
挂 | 不挂 | 不挂 | 入口二 | 查询类,对话即达 |
view-standards |
挂 | 仅展示表 | 不挂 | 入口二 | 标准库日常只读 |
set-standard |
不挂 | row(expense_standards,预填键) | 不挂 | 入口一 | 管理员在表上改值更直接 |
add-whitelist |
不挂 | toolbar(taxid_whitelist,表单) | 不挂 | 入口一 | 结构化录入,表单更稳 |
remove-whitelist |
不挂 | row(taxid_whitelist,预填税号) | 不挂 | 入口一 | 同上 |
health / version / config-path |
不挂 | 不挂 | 不挂 | N/A | 运维诊断,仅 skill-detail |
整技能无 cron placement:TUTORIAL.md 入口三已声明"不需要定时"及理由。
0.2 AI + RPA 协作与授权边界
- 本技能无 RPA:不启动浏览器、不操作桌面/手机、不调用外部 HTTP。
- 发票照片 → 结构化字段由 Agent 多模态能力或用户粘贴完成;技能只接收结构化 JSON。
- 目标系统:无外部系统;全部计算在本地 SQLite。
- 禁止路线(全技能适用):破解 / 逆向 / 私有协议 / 验证码绕过等;本技能不涉及。
- 国税查验接口、OCR API、财务系统对接均为后续扩展,接口到位前预审结果"待人工查验"闭环。
0.3 业务行生命周期
不适用:预审为同步单据计算,无"处理队列"状态机;prereview_reports.verify_status(待查验/已查验通过/已查验不符)仅记录查验回填状态,不承担抢占/重试语义。
1. 文档目标
明确 verify-invoice-default 的研发范围、交付标准与验收要求,作为开发与测试统一依据。
2. 业务背景
全校教职工报销需财务处逐张人工核验票据(真伪、抬头税号、日期逻辑、经费标准),单张 5-8 分钟、退单率高。需要开发 verify-invoice-default:对发票结构化字段自动完成合规预审,输出《初审意见单》(✅/⚠️/❌ 三色清单),把人工审核压缩到秒级并降低退单率。
3. 开发目标
- 解析并校验发票字段 JSON(单张/同批多张,上限 50 张/批)
- 实现四步规则引擎(F1-F4 / V1-V3 / S1-S3 / R1-R3,共 13 条规则)
- 输出结构化 JSON + 写入本地业务表 + 生成《初审意见单》HTML(
html/+render-html) - 支持查验结果回填、标准库/白名单维护、预审统计
- 失败可诊断(稳定错误码
ERROR:<CODE>:+ 统一日志)
4. 功能范围
必须实现
health/version/init-db/config-path(模板基座;run为模板演示入口,不承载业务)prereview(主命令)、prereview-batch-input(async Action)render-html/list-reports/show-report/mark-verifiedview-standards/set-standard/list-whitelist/add-whitelist/remove-whitelist/list-holidays/stats- 业务表 5 张 +
_jiangchang_*中文展示元数据 + 种子数据(标准 8 条、税号 1 条、节假日 12 天) assets/actions.json按 §0.1 定位表声明
可后续扩展
- 国税查验 API 直连、OCR API 集成、财务系统对接(项目余额校验)、PDF 意见单、跨批次连号检测、销方黑名单、定时入口
5. 非功能要求
- 目录结构符合
skill-template规范;入口统一scripts/main.py - 单文件 < 900 行;UTF-8 without BOM;Windows UTF-8 输出兼容
- 机读输出 JSON;错误前缀
ERROR:;主命令task_start/task_failed日志齐全,无敏感明文 - 只存发票结构化字段,不存影像与身份证号等个人信息
- 测试离线可过(无网络、无浏览器)
6. 输入输出要求
输入
invoice_json:发票字段(camelCase,兼容 snake_case/中文键),支持文件路径 / 内联 JSON / stdin- 上下文:
--purpose--project-no--trip-start--trip-end--trip-city--staff-title - 批量:
input/目录 JSON 文件({"invoices": [...], "context": {...}}或纯数组)
输出
- 成功:stdout JSON(
ok/batch_no/count/verdict_counts/reports[]/disclaimer) - 失败:
ERROR:INVOICE_INVALID|INVOICE_INPUT_MISSING|REPORT_NOT_FOUND|VERIFY_INPUT_INVALID|STANDARD_INPUT_INVALID|WHITELIST_INPUT_INVALID|ENTITLEMENT_DENIED|QUERY_FAILED+ 中文 message - 落库:
invoice_records、prereview_reports;文件:html/report-{id}.html
7. 依赖的兄弟技能或外部系统
- 无兄弟技能依赖;无外部系统
requirements.txt:无特有依赖(公共能力由共享 runtime 提供)
8. 不在本次范围内的内容
- 不做自动报销提交、不改财务账务
- 不做发票真伪自动判定(只提示查验 + 回填)
- 不存发票影像;不接 OCR/国税 API/财务系统(扩展项)
- 不兼容旧模板历史结构
9. 验收标准
- 目录结构合规;目录名 =
SKILL.mdslug =constants.SKILL_SLUG;版本三处一致(SKILL.md/constants/CHANGELOG=1.0.0) health/version/init-db正常;python tests/run_tests.py -v全绿- 规则引擎金标准测试覆盖 13 条规则正反例;三种代表性场景(通过/驳回/待确认)真实跑通
mark-verified回填"不符"后结论升级驳回;stats与记录一致- HTML 意见单生成、可重建、宿主侧栏可预览
init_db()写入_jiangchang_tables/_jiangchang_columns,中文 display_name 完整,test_display_metadata通过assets/actions.json与 §0.1 定位表、TUTORIAL.md章节一致- 发布前
developer_ids替换为本人匠厂用户 ID;发布后按入口定位表完成宿主多入口验收(含用户体验)
10. 开发注意事项
cli只做参数解析;核心逻辑在service(prereview_service 唯一内核,多入口复用)- 业务表间禁止 SQLite 外键;时间字段 Unix 秒
- 保留模板演示
cmd_run(POLICY-RPA-003 录屏集成守护要求 service 层保留视频集成令牌);本技能业务命令不使用录屏 - 修改开发规范时同步
POLICY_MATRIX.md与对应守护测试
11. 变更记录
| 日期 | 版本 | 变更人 | 变更内容 |
|---|---|---|---|
| 2026-09-13 | v1.0 | 开发组 | 初版:四步规则引擎 + 标准库/白名单/查验回填 + 初审意见单 |