643 lines
15 KiB
JSON
643 lines
15 KiB
JSON
{
|
|
"schemaVersion": 1,
|
|
"skill": "draft-closing-report-default",
|
|
"actions": [
|
|
{
|
|
"id": "draft-report",
|
|
"label": "生成结题初稿",
|
|
"description": "按台账对比预期指标与实际成果、转换决算描述,生成 Word 版《结题报告(初稿)》与 HTML 预览。",
|
|
"placements": [
|
|
"agent",
|
|
"toolbar"
|
|
],
|
|
"executionProfile": "sync",
|
|
"interaction": "form",
|
|
"bind": {
|
|
"tables": [
|
|
"closing_projects"
|
|
]
|
|
},
|
|
"entrypoint": {
|
|
"type": "cli",
|
|
"command": "draft-report",
|
|
"args": [
|
|
"--project-no",
|
|
"{{projectNo}}"
|
|
]
|
|
},
|
|
"inputSchema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"projectNo": {
|
|
"type": "string",
|
|
"title": "项目编号",
|
|
"description": "必填,待结题项目编号。"
|
|
}
|
|
},
|
|
"required": [
|
|
"projectNo"
|
|
]
|
|
},
|
|
"hostEffects": {
|
|
"onSuccess": [
|
|
"reloadTable"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "draft-batch-pending",
|
|
"label": "批量生成初稿",
|
|
"description": "为全部待结题项目批量生成初稿(任务中心可见进度)。",
|
|
"placements": [
|
|
"agent"
|
|
],
|
|
"executionProfile": "async",
|
|
"entrypoint": {
|
|
"type": "cli",
|
|
"command": "draft-batch-pending",
|
|
"args": []
|
|
}
|
|
},
|
|
{
|
|
"id": "add-project",
|
|
"label": "录入结题项目",
|
|
"description": "按项目编号录入/更新结题项目与预期指标(幂等)。",
|
|
"placements": [
|
|
"toolbar"
|
|
],
|
|
"executionProfile": "sync",
|
|
"interaction": "form",
|
|
"bind": {
|
|
"tables": [
|
|
"closing_projects"
|
|
]
|
|
},
|
|
"entrypoint": {
|
|
"type": "cli",
|
|
"command": "add-project",
|
|
"args": [
|
|
"--project-no",
|
|
"{{projectNo}}",
|
|
"--name",
|
|
"{{name}}",
|
|
"--pi",
|
|
"{{pi}}",
|
|
"--department",
|
|
"{{department}}",
|
|
"--program",
|
|
"{{program}}",
|
|
"--start",
|
|
"{{start}}",
|
|
"--end",
|
|
"{{end}}",
|
|
"--approved-budget",
|
|
"{{approvedBudget}}",
|
|
"--expected-json",
|
|
"{{expectedJson}}",
|
|
"--excerpt",
|
|
"{{excerpt}}",
|
|
"--status",
|
|
"{{status}}"
|
|
]
|
|
},
|
|
"inputSchema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"projectNo": {
|
|
"type": "string",
|
|
"title": "项目编号",
|
|
"description": "必填。"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"title": "项目名称"
|
|
},
|
|
"pi": {
|
|
"type": "string",
|
|
"title": "负责人"
|
|
},
|
|
"department": {
|
|
"type": "string",
|
|
"title": "所属学院"
|
|
},
|
|
"program": {
|
|
"type": "string",
|
|
"title": "项目类型"
|
|
},
|
|
"start": {
|
|
"type": "string",
|
|
"title": "执行期开始",
|
|
"display_type": "date"
|
|
},
|
|
"end": {
|
|
"type": "string",
|
|
"title": "执行期结束",
|
|
"display_type": "date"
|
|
},
|
|
"approvedBudget": {
|
|
"type": "number",
|
|
"title": "立项经费(元)",
|
|
"description": "用于决算结余与预算符合性结论。可选。"
|
|
},
|
|
"expectedJson": {
|
|
"type": "string",
|
|
"title": "预期指标 JSON",
|
|
"description": "如 [{\"type\":\"论文\",\"target\":3,\"unit\":\"篇\"}]",
|
|
"display_type": "textarea"
|
|
},
|
|
"excerpt": {
|
|
"type": "string",
|
|
"title": "年度报告摘句",
|
|
"description": "分号分隔关键句。",
|
|
"display_type": "textarea"
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"title": "状态",
|
|
"enum": [
|
|
"待结题",
|
|
"初稿已生成",
|
|
"已提交"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"projectNo"
|
|
]
|
|
},
|
|
"hostEffects": {
|
|
"onSuccess": [
|
|
"reloadTable"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "add-achievement",
|
|
"label": "录入成果",
|
|
"description": "向成果清单添加一条成果。",
|
|
"placements": [
|
|
"toolbar"
|
|
],
|
|
"executionProfile": "sync",
|
|
"interaction": "form",
|
|
"bind": {
|
|
"tables": [
|
|
"achievements"
|
|
]
|
|
},
|
|
"entrypoint": {
|
|
"type": "cli",
|
|
"command": "add-achievement",
|
|
"args": [
|
|
"--project-no",
|
|
"{{projectNo}}",
|
|
"--type",
|
|
"{{type}}",
|
|
"--title",
|
|
"{{title}}",
|
|
"--venue",
|
|
"{{venue}}",
|
|
"--date",
|
|
"{{date}}",
|
|
"--representative",
|
|
"{{representative}}"
|
|
]
|
|
},
|
|
"inputSchema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"projectNo": {
|
|
"type": "string",
|
|
"title": "项目编号",
|
|
"description": "必填。"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"title": "成果类型",
|
|
"enum": [
|
|
"论文",
|
|
"专利",
|
|
"人才培养",
|
|
"其他"
|
|
]
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"title": "成果名称"
|
|
},
|
|
"venue": {
|
|
"type": "string",
|
|
"title": "期刊/专利号"
|
|
},
|
|
"date": {
|
|
"type": "string",
|
|
"title": "日期",
|
|
"display_type": "date"
|
|
},
|
|
"representative": {
|
|
"type": "string",
|
|
"title": "代表性(1/0)",
|
|
"enum": [
|
|
"1",
|
|
"0"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"projectNo",
|
|
"type",
|
|
"title"
|
|
]
|
|
},
|
|
"hostEffects": {
|
|
"onSuccess": [
|
|
"reloadTable"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "add-expense",
|
|
"label": "录入决算明细",
|
|
"description": "向决算明细添加一条支出。",
|
|
"placements": [
|
|
"toolbar"
|
|
],
|
|
"executionProfile": "sync",
|
|
"interaction": "form",
|
|
"bind": {
|
|
"tables": [
|
|
"expense_items"
|
|
]
|
|
},
|
|
"entrypoint": {
|
|
"type": "cli",
|
|
"command": "add-expense",
|
|
"args": [
|
|
"--project-no",
|
|
"{{projectNo}}",
|
|
"--category",
|
|
"{{category}}",
|
|
"--amount",
|
|
"{{amount}}",
|
|
"--date",
|
|
"{{date}}",
|
|
"--description",
|
|
"{{description}}"
|
|
]
|
|
},
|
|
"inputSchema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"projectNo": {
|
|
"type": "string",
|
|
"title": "项目编号",
|
|
"description": "必填。"
|
|
},
|
|
"category": {
|
|
"type": "string",
|
|
"title": "科目",
|
|
"description": "如 差旅费、设备费。"
|
|
},
|
|
"amount": {
|
|
"type": "number",
|
|
"title": "金额(元)"
|
|
},
|
|
"date": {
|
|
"type": "string",
|
|
"title": "发生日期",
|
|
"display_type": "date"
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"title": "原始摘要"
|
|
}
|
|
},
|
|
"required": [
|
|
"projectNo",
|
|
"category",
|
|
"amount"
|
|
]
|
|
},
|
|
"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": "结题项目对象数组。",
|
|
"display_type": "textarea"
|
|
}
|
|
},
|
|
"required": [
|
|
"projectsJson"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "import-achievements",
|
|
"label": "批量导入成果",
|
|
"description": "粘贴成果清单 JSON 数组批量导入(按项目编号关联)。",
|
|
"placements": [
|
|
"agent"
|
|
],
|
|
"executionProfile": "sync",
|
|
"interaction": "form",
|
|
"entrypoint": {
|
|
"type": "cli",
|
|
"command": "import-achievements",
|
|
"args": [
|
|
"--achievements-json",
|
|
"{{achievementsJson}}"
|
|
]
|
|
},
|
|
"inputSchema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"achievementsJson": {
|
|
"type": "string",
|
|
"title": "成果 JSON",
|
|
"description": "成果对象数组。",
|
|
"display_type": "textarea"
|
|
}
|
|
},
|
|
"required": [
|
|
"achievementsJson"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "import-expenses",
|
|
"label": "批量导入决算",
|
|
"description": "粘贴决算明细 JSON 数组批量导入(科目/金额/日期)。",
|
|
"placements": [
|
|
"agent"
|
|
],
|
|
"executionProfile": "sync",
|
|
"interaction": "form",
|
|
"entrypoint": {
|
|
"type": "cli",
|
|
"command": "import-expenses",
|
|
"args": [
|
|
"--expenses-json",
|
|
"{{expensesJson}}"
|
|
]
|
|
},
|
|
"inputSchema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"expensesJson": {
|
|
"type": "string",
|
|
"title": "决算 JSON",
|
|
"description": "决算明细对象数组。",
|
|
"display_type": "textarea"
|
|
}
|
|
},
|
|
"required": [
|
|
"expensesJson"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "list-projects",
|
|
"label": "查询结题项目",
|
|
"description": "按状态查询结题项目台账。",
|
|
"placements": [
|
|
"agent"
|
|
],
|
|
"executionProfile": "sync",
|
|
"entrypoint": {
|
|
"type": "cli",
|
|
"command": "list-projects",
|
|
"args": [
|
|
"--status",
|
|
"{{status}}"
|
|
]
|
|
},
|
|
"inputSchema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"status": {
|
|
"type": "string",
|
|
"title": "状态",
|
|
"enum": [
|
|
"待结题",
|
|
"初稿已生成",
|
|
"已提交"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "list-achievements",
|
|
"label": "查询成果清单",
|
|
"description": "按项目编号查询成果清单。",
|
|
"placements": [
|
|
"agent"
|
|
],
|
|
"executionProfile": "sync",
|
|
"entrypoint": {
|
|
"type": "cli",
|
|
"command": "list-achievements",
|
|
"args": [
|
|
"--project-no",
|
|
"{{projectNo}}"
|
|
]
|
|
},
|
|
"inputSchema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"projectNo": {
|
|
"type": "string",
|
|
"title": "项目编号",
|
|
"description": "必填。"
|
|
}
|
|
},
|
|
"required": [
|
|
"projectNo"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "list-expenses",
|
|
"label": "查询决算明细",
|
|
"description": "按项目编号查询决算明细。",
|
|
"placements": [
|
|
"agent"
|
|
],
|
|
"executionProfile": "sync",
|
|
"entrypoint": {
|
|
"type": "cli",
|
|
"command": "list-expenses",
|
|
"args": [
|
|
"--project-no",
|
|
"{{projectNo}}"
|
|
]
|
|
},
|
|
"inputSchema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"projectNo": {
|
|
"type": "string",
|
|
"title": "项目编号",
|
|
"description": "必填。"
|
|
}
|
|
},
|
|
"required": [
|
|
"projectNo"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "list-drafts",
|
|
"label": "查询初稿记录",
|
|
"description": "查看已生成的初稿记录。",
|
|
"placements": [
|
|
"agent"
|
|
],
|
|
"executionProfile": "sync",
|
|
"entrypoint": {
|
|
"type": "cli",
|
|
"command": "list-drafts",
|
|
"args": [
|
|
"--limit",
|
|
"{{limit}}"
|
|
]
|
|
},
|
|
"inputSchema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"limit": {
|
|
"type": "number",
|
|
"title": "条数"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "render-html",
|
|
"label": "重建初稿预览",
|
|
"description": "重建初稿 HTML 预览(选中初稿记录行时重建该份,未选行重建最近 10 份)。",
|
|
"placements": [
|
|
"toolbar",
|
|
"skill-detail",
|
|
"agent"
|
|
],
|
|
"executionProfile": "sync",
|
|
"interaction": "direct",
|
|
"bind": {
|
|
"tables": [
|
|
"report_drafts"
|
|
],
|
|
"inputMapping": {
|
|
"id": "$row.$pk"
|
|
}
|
|
},
|
|
"inputSchema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "number",
|
|
"title": "记录编号",
|
|
"description": "重建该份初稿预览。未选择行时留空,重建最近 10 份。",
|
|
"readOnly": true
|
|
}
|
|
}
|
|
},
|
|
"entrypoint": {
|
|
"type": "cli",
|
|
"command": "render-html",
|
|
"args": [
|
|
"--report-id",
|
|
"{{id}}"
|
|
]
|
|
},
|
|
"steps": [
|
|
{
|
|
"when": "afterSuccess",
|
|
"do": "refreshCatalog"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"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": []
|
|
}
|
|
}
|
|
]
|
|
} |