feat: 票据合规预审助手首版 v1.0.0(verify-invoice-default)

This commit is contained in:
chenfuqiang
2026-09-13 13:48:32 +08:00
commit ddf8044dc0
207 changed files with 31090 additions and 0 deletions

416
assets/actions.json Normal file
View File

@@ -0,0 +1,416 @@
{
"schemaVersion": 1,
"skill": "verify-invoice-default",
"actions": [
{
"id": "prereview-invoice",
"label": "票据合规预审",
"description": "录入发票结构化字段(可由发票照片识别后粘贴)与报销上下文,执行四步合规审核,生成红黄绿灯清单与《初审意见单》。",
"placements": ["agent", "toolbar"],
"executionProfile": "sync",
"interaction": "form",
"bind": {
"tables": ["invoice_records"]
},
"entrypoint": {
"type": "cli",
"command": "prereview",
"args": [
"--invoice-json", "{{invoiceJson}}",
"--purpose", "{{purpose}}",
"--project-no", "{{projectNo}}",
"--trip-start", "{{tripStart}}",
"--trip-end", "{{tripEnd}}",
"--trip-city", "{{tripCity}}",
"--staff-title", "{{staffTitle}}"
]
},
"inputSchema": {
"type": "object",
"properties": {
"invoiceJson": {
"type": "string",
"title": "发票字段 JSON",
"description": "单张发票对象或同批数组,字段如 invoiceNumber、issueDate、amount、buyerTaxNo、sellerName、expenseCategory、city、days。",
"display_type": "textarea"
},
"purpose": {
"type": "string",
"title": "报销事由",
"description": "本次报销的事由文字。可选。"
},
"projectNo": {
"type": "string",
"title": "预算项目编号",
"description": "系统带入的预算项目编号。可选。"
},
"tripStart": {
"type": "string",
"title": "出差开始日",
"description": "差旅审批的出发日期,格式 YYYY-MM-DD。差旅报销建议填写。",
"display_type": "date"
},
"tripEnd": {
"type": "string",
"title": "出差结束日",
"description": "差旅审批的返回日期,格式 YYYY-MM-DD。可选。",
"display_type": "date"
},
"tripCity": {
"type": "string",
"title": "目的地城市",
"description": "出差目的地,用于匹配住宿费城市等级。可选。"
},
"staffTitle": {
"type": "string",
"title": "职级",
"description": "报销人职级档位。",
"enum": ["副高及以上", "中级及以下"]
}
},
"required": ["invoiceJson"]
},
"hostEffects": {
"onSuccess": ["reloadTable"]
}
},
{
"id": "prereview-batch-input",
"label": "批量预审(input 目录)",
"description": "将多份发票字段 JSON 文件放入技能 input 目录后一键批量预审;任务中心可见进度。",
"placements": ["agent"],
"executionProfile": "async",
"entrypoint": {
"type": "cli",
"command": "prereview-batch-input",
"args": []
}
},
{
"id": "render-html",
"label": "生成初审意见单",
"description": "重建《初审意见单》HTML 报告并写入技能数据目录 html/(缺省重建最近 10 份)。",
"placements": ["toolbar", "skill-detail", "agent"],
"executionProfile": "sync",
"interaction": "direct",
"bind": {
"tables": ["prereview_reports"]
},
"entrypoint": {
"type": "cli",
"command": "render-html",
"args": []
},
"steps": [
{
"when": "afterSuccess",
"do": "refreshCatalog"
}
]
},
{
"id": "mark-verified",
"label": "回填查验结果",
"description": "在全国增值税发票查验平台核验后,回填该发票的人工查验结果;回填“不符”则结论升级为驳回。",
"placements": ["row"],
"executionProfile": "sync",
"interaction": "form",
"bind": {
"tables": ["prereview_reports"],
"inputMapping": {
"reportId": "{{id}}"
}
},
"entrypoint": {
"type": "cli",
"command": "mark-verified",
"args": [
"--report-id", "{{reportId}}",
"--result", "{{result}}",
"--note", "{{note}}"
]
},
"inputSchema": {
"type": "object",
"properties": {
"reportId": {
"type": "number",
"title": "报告编号",
"description": "初审意见单编号(由所在行预填)。"
},
"result": {
"type": "string",
"title": "查验结果",
"description": "在全国增值税发票查验平台的核验结论。",
"enum": ["pass", "fail"]
},
"note": {
"type": "string",
"title": "查验备注",
"description": "备注说明。可选。"
}
},
"required": ["reportId", "result"]
},
"hostEffects": {
"onSuccess": ["reloadTable"]
}
},
{
"id": "list-reports",
"label": "查询初审历史",
"description": "查看最近的票据预审结论列表。",
"placements": ["agent"],
"executionProfile": "sync",
"entrypoint": {
"type": "cli",
"command": "list-reports",
"args": [
"--limit", "{{limit}}",
"--verdict", "{{verdict}}"
]
},
"inputSchema": {
"type": "object",
"properties": {
"limit": {
"type": "number",
"title": "条数",
"description": "返回条数,默认 20。可选。"
},
"verdict": {
"type": "string",
"title": "结论筛选",
"description": "通过 / 待确认 / 驳回。可选。",
"enum": ["通过", "待确认", "驳回"]
}
}
}
},
{
"id": "view-standards",
"label": "查看经费标准",
"description": "查看住宿费上限与交通席位等级标准(城市等级 × 职级)。",
"placements": ["agent", "skill-detail"],
"executionProfile": "sync",
"entrypoint": {
"type": "cli",
"command": "view-standards",
"args": [
"--category", "{{category}}"
]
},
"inputSchema": {
"type": "object",
"properties": {
"category": {
"type": "string",
"title": "费用类别",
"description": "住宿费 / 交通费。可选。",
"enum": ["住宿费", "交通费"]
}
}
}
},
{
"id": "set-standard",
"label": "更新经费标准",
"description": "按(费用类别、城市等级、职级)更新标准值;不存在时新增。",
"placements": ["row"],
"executionProfile": "sync",
"interaction": "form",
"bind": {
"tables": ["expense_standards"],
"inputMapping": {
"category": "{{category}}",
"cityTier": "{{city_tier}}",
"staffTitle": "{{staff_title}}"
}
},
"entrypoint": {
"type": "cli",
"command": "set-standard",
"args": [
"--category", "{{category}}",
"--city-tier", "{{cityTier}}",
"--staff-title", "{{staffTitle}}",
"--max-amount", "{{maxAmount}}",
"--unit", "{{unit}}",
"--basis-doc", "{{basisDoc}}",
"--clause", "{{clause}}"
]
},
"inputSchema": {
"type": "object",
"properties": {
"category": {
"type": "string",
"title": "费用类别",
"description": "住宿费 / 交通费(由所在行预填)。"
},
"cityTier": {
"type": "string",
"title": "城市等级",
"description": "一线城市 / 省会及计划单列市 / 其他地区 / 通用(由所在行预填)。"
},
"staffTitle": {
"type": "string",
"title": "职级",
"description": "副高及以上 / 中级及以下(由所在行预填)。"
},
"maxAmount": {
"type": "number",
"title": "标准值",
"description": "新的标准值(住宿费为元/人/天)。"
},
"unit": {
"type": "string",
"title": "单位",
"description": "如 元/人/天。可选。"
},
"basisDoc": {
"type": "string",
"title": "依据文件",
"description": "标准出处文件名。可选。"
},
"clause": {
"type": "string",
"title": "条款",
"description": "标准出处条款号。可选。"
}
},
"required": ["category", "cityTier", "staffTitle", "maxAmount"]
},
"hostEffects": {
"onSuccess": ["reloadTable"]
}
},
{
"id": "add-whitelist",
"label": "新增税号白名单",
"description": "向准予报销的购买方税号白名单新增一条记录。",
"placements": ["toolbar"],
"executionProfile": "sync",
"interaction": "form",
"bind": {
"tables": ["taxid_whitelist"]
},
"entrypoint": {
"type": "cli",
"command": "add-whitelist",
"args": [
"--tax-no", "{{taxNo}}",
"--name", "{{orgName}}",
"--note", "{{note}}"
]
},
"inputSchema": {
"type": "object",
"properties": {
"taxNo": {
"type": "string",
"title": "税号",
"description": "购买方统一社会信用代码。"
},
"orgName": {
"type": "string",
"title": "单位名称",
"description": "税号对应单位全称。"
},
"note": {
"type": "string",
"title": "备注",
"description": "维护说明。可选。"
}
},
"required": ["taxNo", "orgName"]
},
"hostEffects": {
"onSuccess": ["reloadTable"]
}
},
{
"id": "remove-whitelist",
"label": "删除税号",
"description": "从税号白名单中删除该条记录。",
"placements": ["row"],
"executionProfile": "sync",
"interaction": "form",
"bind": {
"tables": ["taxid_whitelist"],
"inputMapping": {
"taxNo": "{{tax_no}}"
}
},
"entrypoint": {
"type": "cli",
"command": "remove-whitelist",
"args": [
"--tax-no", "{{taxNo}}"
]
},
"inputSchema": {
"type": "object",
"properties": {
"taxNo": {
"type": "string",
"title": "税号",
"description": "要删除的税号(由所在行预填)。"
}
},
"required": ["taxNo"]
},
"hostEffects": {
"onSuccess": ["reloadTable"]
}
},
{
"id": "stats",
"label": "预审统计",
"description": "查看预审总量、通过/待确认/驳回分布与集中开票商家。",
"placements": ["agent", "skill-detail"],
"executionProfile": "sync",
"entrypoint": {
"type": "cli",
"command": "stats",
"args": []
}
},
{
"id": "health",
"label": "运行检查",
"description": "检查技能运行环境并返回结构化结果。",
"placements": ["skill-detail"],
"executionProfile": "sync",
"entrypoint": {
"type": "cli",
"command": "health",
"args": []
}
},
{
"id": "version",
"label": "查看版本",
"description": "返回技能版本和机器标识。",
"placements": ["skill-detail"],
"executionProfile": "sync",
"entrypoint": {
"type": "cli",
"command": "version",
"args": []
}
},
{
"id": "config-path",
"label": "查看配置位置",
"description": "返回用户 .env 与模板路径。",
"placements": ["skill-detail"],
"executionProfile": "sync",
"entrypoint": {
"type": "cli",
"command": "config-path",
"args": []
}
}
]
}