{ "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": [] } }, { "id": "extract-invoices", "label": "提取发票信息", "description": "从网站自动提取发票信息,需要提供登录凭证和浏览器配置目录。", "placements": ["agent"], "executionProfile": "sync", "interaction": "form", "entrypoint": { "type": "cli", "command": "extract-invoices", "args": [ "--username", "{{username}}", "--password", "{{password}}", "--profile-dir", "{{profileDir}}", "--headless", "{{headless}}", "--detail-mode", "{{detailMode}}" ] }, "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "title": "用户名", "description": "网站登录用户名" }, "password": { "type": "string", "title": "密码", "description": "网站登录密码" }, "profileDir": { "type": "string", "title": "浏览器配置目录", "description": "通过account-manager获取的浏览器配置目录路径" }, "headless": { "type": "boolean", "title": "无头模式", "description": "是否使用无头模式(生产不建议)", "default": false }, "detailMode": { "type": "boolean", "title": "详细模式", "description": "是否提取详细信息", "default": false } }, "required": ["username", "password", "profileDir"] } }, { "id": "test-rpa-connection", "label": "测试RPA连接", "description": "测试RPA连接和登录功能。", "placements": ["agent", "skill-detail"], "executionProfile": "sync", "interaction": "form", "entrypoint": { "type": "cli", "command": "test-rpa-connection", "args": [ "--username", "{{username}}", "--password", "{{password}}", "--profile-dir", "{{profileDir}}" ] }, "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "title": "用户名", "description": "网站登录用户名" }, "password": { "type": "string", "title": "密码", "description": "网站登录密码" }, "profileDir": { "type": "string", "title": "浏览器配置目录", "description": "通过account-manager获取的浏览器配置目录路径" } }, "required": ["username", "password", "profileDir"] } }, { "id": "list-rpa-invoices", "label": "查询RPA提取记录", "description": "查询RPA提取的发票数据记录。", "placements": ["agent", "skill-detail"], "executionProfile": "sync", "entrypoint": { "type": "cli", "command": "list-rpa-invoices", "args": [ "--limit", "{{limit}}", "--batch-id", "{{batchId}}", "--username", "{{username}}", "--status", "{{status}}" ] }, "inputSchema": { "type": "object", "properties": { "limit": { "type": "number", "title": "条数", "description": "返回条数,默认20", "default": 20 }, "batchId": { "type": "string", "title": "批次ID", "description": "按批次ID筛选" }, "username": { "type": "string", "title": "用户名", "description": "按用户名筛选" }, "status": { "type": "string", "title": "状态", "description": "按状态筛选", "enum": ["extracted", "processed", "error"] } } } }, { "id": "show-rpa-invoice", "label": "查看RPA提取详情", "description": "查看RPA提取的发票数据详情。", "placements": ["row"], "executionProfile": "sync", "bind": { "tables": ["rpa_invoices"], "inputMapping": { "recordId": "{{id}}" } }, "entrypoint": { "type": "cli", "command": "show-rpa-invoice", "args": [ "--record-id", "{{recordId}}" ] }, "inputSchema": { "type": "object", "properties": { "recordId": { "type": "number", "title": "记录ID", "description": "RPA提取记录ID" } }, "required": ["recordId"] } }, { "id": "rpa-invoice-stats", "label": "RPA提取统计", "description": "获取RPA提取的统计信息。", "placements": ["agent", "skill-detail"], "executionProfile": "sync", "entrypoint": { "type": "cli", "command": "rpa-invoice-stats", "args": [] } } ] }