{ "schemaVersion": 1, "skill": "track-fund-progress-default", "actions": [ { "id": "broadcast-progress", "label": "经费进度播报", "description": "按项目台账计算实际支出率与序时进度,识别严重滞后/支出异常偏快,生成三段式播报与《经费执行简报》。缺省播报全部在研项目。", "placements": ["agent", "toolbar"], "executionProfile": "sync", "interaction": "form", "bind": { "tables": ["fund_projects"] }, "entrypoint": { "type": "cli", "command": "broadcast", "args": [ "--project-no", "{{projectNo}}", "--pi", "{{pi}}", "--as-of", "{{asOf}}" ] }, "inputSchema": { "type": "object", "properties": { "projectNo": { "type": "string", "title": "项目编号", "description": "只播报该项目。留空播报全部在研项目。" }, "pi": { "type": "string", "title": "负责人", "description": "按负责人姓名模糊筛选。留空不筛选。" }, "asOf": { "type": "string", "title": "评估基准日", "description": "数据截止日期 YYYY-MM-DD,缺省今天。", "display_type": "date" } } }, "hostEffects": { "onSuccess": ["reloadTable"] } }, { "id": "broadcast-monthly", "label": "月度经费播报", "description": "遍历全部在研项目逐项播报并生成月度汇总简报;适合每月定时执行(任务中心可见进度)。", "placements": ["agent", "cron"], "executionProfile": "async", "entrypoint": { "type": "cli", "command": "broadcast-monthly", "args": [] } }, { "id": "add-project", "label": "录入项目台账", "description": "按项目编号录入或更新项目台账(幂等,未提供字段不覆盖)。", "placements": ["toolbar"], "executionProfile": "sync", "interaction": "form", "bind": { "tables": ["fund_projects"] }, "entrypoint": { "type": "cli", "command": "add-project", "args": [ "--project-no", "{{projectNo}}", "--name", "{{name}}", "--type", "{{type}}", "--pi", "{{pi}}", "--department", "{{department}}", "--total-approved", "{{totalApproved}}", "--total-received", "{{totalReceived}}", "--total-spent", "{{totalSpent}}", "--frozen", "{{frozen}}", "--frozen-since", "{{frozenSince}}", "--start", "{{start}}", "--end", "{{end}}", "--status", "{{status}}", "--remark", "{{remark}}" ] }, "inputSchema": { "type": "object", "properties": { "projectNo": { "type": "string", "title": "项目编号", "description": "项目唯一编号(必填)。" }, "name": { "type": "string", "title": "项目名称", "description": "项目全称。" }, "type": { "type": "string", "title": "项目类别", "description": "纵向 / 横向 / 其他。", "enum": ["纵向", "横向", "其他"] }, "pi": { "type": "string", "title": "负责人", "description": "项目负责人姓名。" }, "department": { "type": "string", "title": "所属学院", "description": "二级学院/单位。" }, "totalApproved": { "type": "number", "title": "总立项经费(元)", "description": "立项批复总经费。" }, "totalReceived": { "type": "number", "title": "已到账(元)", "description": "已到账经费,执行率分母。" }, "totalSpent": { "type": "number", "title": "已报销(元)", "description": "已报销支出,执行率分子。" }, "frozen": { "type": "number", "title": "冻结/暂付款(元)", "description": "冻结或暂付款金额。可选。" }, "frozenSince": { "type": "string", "title": "暂付款最早发生日", "description": "YYYY-MM-DD,用于账龄提醒。可选。", "display_type": "date" }, "start": { "type": "string", "title": "执行期开始", "description": "YYYY-MM-DD。", "display_type": "date" }, "end": { "type": "string", "title": "执行期结束", "description": "YYYY-MM-DD。", "display_type": "date" }, "status": { "type": "string", "title": "项目状态", "description": "在研 / 已结题 / 暂缓,缺省在研。", "enum": ["在研", "已结题", "暂缓"] }, "remark": { "type": "string", "title": "备注", "description": "维护说明。可选。" } }, "required": ["projectNo"] }, "hostEffects": { "onSuccess": ["reloadTable"] } }, { "id": "import-projects", "label": "批量导入台账", "description": "粘贴或指定项目台账 JSON 数组,按项目编号批量导入/更新。", "placements": ["agent"], "executionProfile": "sync", "interaction": "form", "entrypoint": { "type": "cli", "command": "import-projects", "args": [ "--projects-json", "{{projectsJson}}" ] }, "inputSchema": { "type": "object", "properties": { "projectsJson": { "type": "string", "title": "台账 JSON", "description": "项目对象数组,字段如 projectNo、projectName、piName、totalApproved、totalReceived、totalSpent、frozenAmount、startDate、endDate、status。", "display_type": "textarea" } }, "required": ["projectsJson"] } }, { "id": "list-projects", "label": "查询项目台账", "description": "按负责人或状态查询项目台账。", "placements": ["agent"], "executionProfile": "sync", "entrypoint": { "type": "cli", "command": "list-projects", "args": [ "--pi", "{{pi}}", "--status", "{{status}}" ] }, "inputSchema": { "type": "object", "properties": { "pi": { "type": "string", "title": "负责人", "description": "姓名模糊筛选。可选。" }, "status": { "type": "string", "title": "状态", "description": "在研 / 已结题 / 暂缓。可选。", "enum": ["在研", "已结题", "暂缓"] } } } }, { "id": "list-reports", "label": "查询播报历史", "description": "查看最近的经费播报记录,可按执行状态筛选。", "placements": ["agent"], "executionProfile": "sync", "entrypoint": { "type": "cli", "command": "list-reports", "args": [ "--limit", "{{limit}}", "--status-tag", "{{statusTag}}" ] }, "inputSchema": { "type": "object", "properties": { "limit": { "type": "number", "title": "条数", "description": "返回条数,默认 20。可选。" }, "statusTag": { "type": "string", "title": "执行状态", "description": "严重滞后 / 支出异常偏快 / 正常。可选。", "enum": ["严重滞后", "支出异常偏快", "正常"] } } } }, { "id": "render-html", "label": "生成经费简报", "description": "重建《经费执行简报》HTML 并写入技能数据目录 html/(缺省重建最近 10 份)。", "placements": ["toolbar", "skill-detail", "agent"], "executionProfile": "sync", "interaction": "direct", "bind": { "tables": ["progress_reports"] }, "entrypoint": { "type": "cli", "command": "render-html", "args": [] }, "steps": [ { "when": "afterSuccess", "do": "refreshCatalog" } ] }, { "id": "view-rules", "label": "查看预警阈值", "description": "查看严重滞后/异常偏快/暂付款账龄/结题预警阈值。", "placements": ["agent", "skill-detail"], "executionProfile": "sync", "entrypoint": { "type": "cli", "command": "view-rules", "args": [] } }, { "id": "set-rule", "label": "更新预警阈值", "description": "按规则键更新阈值;修改后下一次播报生效。", "placements": ["row"], "executionProfile": "sync", "interaction": "form", "bind": { "tables": ["alert_rules"], "inputMapping": { "ruleKey": "{{rule_key}}" } }, "entrypoint": { "type": "cli", "command": "set-rule", "args": [ "--rule-key", "{{ruleKey}}", "--value", "{{value}}" ] }, "inputSchema": { "type": "object", "properties": { "ruleKey": { "type": "string", "title": "规则键", "description": "由所在行预填。" }, "value": { "type": "number", "title": "新阈值", "description": "比例为小数(0.10=10个百分点),天数为天数。" } }, "required": ["ruleKey", "value"] }, "hostEffects": { "onSuccess": ["reloadTable"] } }, { "id": "stats", "label": "播报统计", "description": "查看项目总量、播报状态分布、严重滞后 Top 与暂付款总额。", "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": [] } } ] }