116 lines
8.4 KiB
Markdown
116 lines
8.4 KiB
Markdown
---
|
||
name: 项目经费进度播报助手
|
||
description: "高校项目经费执行监测与播报:按项目台账自动计算实际支出率与序时进度,识别严重滞后/支出异常偏快,生成三段式播报摘要、暂付款冲销与结题报销提醒,支持月度定时播报并输出《经费执行简报》。"
|
||
version: 1.0.1
|
||
author: 深圳匠厂科技有限公司
|
||
metadata:
|
||
openclaw:
|
||
slug: track-fund-progress-default
|
||
platform_kit_min_version: "1.2.11"
|
||
emoji: "📊"
|
||
category: "财务"
|
||
brands:
|
||
- jiangchang
|
||
- huashang
|
||
developer_ids:
|
||
- 79017 # 开发者本人匠厂用户 ID(设置 → 用户信息 → 复制)
|
||
allowed-tools:
|
||
- bash
|
||
---
|
||
|
||
# 项目经费进度播报助手(track-fund-progress-default)
|
||
|
||
高校项目经费执行监测与播报:按项目台账(立项/到账/报销/暂付款/执行期)自动计算**实际支出率**与**序时进度**,识别"严重滞后 / 支出异常偏快 / 正常",生成三段式播报摘要与《经费执行简报》(含柱状图);支持暂付款冲销提醒、结题临近提醒与**每月定时播报**。全部数字来自本地确定性计算与规则模板,不编造数据;播报仅作提醒,请以财务系统账面为准。
|
||
|
||
## Agent / 宿主编排
|
||
|
||
- **Agent 是入口与编排者**:理解查询意图(如"查一下我的国自然经费")、定位负责人与项目、触发播报 Action,并用业务语言解读播报结论。
|
||
- 台账数据来自本地库(表单录入 / JSON 批量导入 / 数据管理直接编辑);Agent 不得凭空编造项目金额,台账缺失时引导补录。
|
||
- 播报文本由技能内核以规则模板生成(确定性、零幻觉);Agent 转述时可口语化,但**不得更改数字与状态判定**。
|
||
- 本技能无 RPA、无浏览器自动化;不修改任何外部系统数据。
|
||
|
||
## 能力类型与触发
|
||
|
||
| 你要做什么 | Agent 怎么做 | 进任务中心? |
|
||
|------------|--------------|--------------|
|
||
| 查台账 / 查播报历史 / 查阈值 / 统计 | 短 CLI:`list-projects` / `list-reports` / `view-rules` / `stats` | 否 |
|
||
| 播报全部在研项目或指定项目(同步秒级) | `run_skill_action` → `broadcast-progress`(`input.projectNo/pi/asOf`) | 否 |
|
||
| 月度定时播报(全部在研项目 + 汇总简报) | `run_skill_action` → `broadcast-monthly` | 是(该 Action 为 async) |
|
||
| 录入/更新项目台账 | 数据管理表上操作,或 `run_skill_action` → `add-project`;批量走 `import-projects` | 否 |
|
||
| 重建《经费执行简报》HTML | `run_skill_action` → `render-html` | 否 |
|
||
| 调整预警阈值 | 数据管理行级按钮 `set-rule`;或短 CLI:`set-rule` | 否 |
|
||
| 用户只问用法 / 能做什么 | 读根目录 `README.md`;逐步操作再读 `TUTORIAL.md` | — |
|
||
|
||
进不进任务中心**只**看该 Action 的 `executionProfile`(sync 当场返回 / async 进任务中心),与数据管理、对话、定时等触发入口**无关**;每个 Action 都已显式声明 `executionProfile`。
|
||
|
||
本技能为"即时计算"型能力:提交即算、当场出结论,不存在「先准备本地数据、再对外产生副作用」的两段式,因此无需按「准备 vs 执行」拆分;月度播报为无人值守只读计算+写本地记录,安全可定时。本技能无网页 RPA,不涉及账号管理;宿主账号/Profile/租约规范见 `development/ACCOUNT_MANAGER.md`。
|
||
|
||
## 用户意图路由表
|
||
|
||
| 用户意图 | Agent 怎么做 | 进任务中心? |
|
||
|------------------------|--------------|--------------|
|
||
| "查一下我的国自然经费执行得怎么样" / "播报我的项目进度" | 确定负责人姓名;`run_skill_action` → `broadcast-progress`,`input.pi=负责人`(单项目传 `projectNo`) | 否 |
|
||
| "月度播报一次全部项目" / 定时到点自动执行 | `run_skill_action` → `broadcast-monthly` | 是(因该 Action 为 async) |
|
||
| "录入一个新项目 / 把这批项目导进去" | 单条走数据管理表单 `add-project`;批量把 JSON 交给 `import-projects` | 否 |
|
||
| "我上次播报的结果是什么" | 短 CLI:`list-reports [--status-tag 严重滞后]`;详情 `show-report --id N` | 否 |
|
||
| "重新生成简报" | `run_skill_action` → `render-html`;结果在数据管理 HTML 报告侧栏 | 否 |
|
||
| "滞后阈值改成 15%" | `run_skill_action` → `set-rule`(`ruleKey=lag_threshold, value=0.15`)或数据管理行级按钮 | 否 |
|
||
| "全校经费执行统计" | 短 CLI:`stats` | 否 |
|
||
|
||
**硬规则:**
|
||
|
||
1. `broadcast-monthly` 是本技能唯一 async Action;禁止用 bash 跑它再轮询等待。
|
||
2. 台账金额必须由用户提供或导入,Agent 不得编造、估算金额与日期。
|
||
3. 播报结论必须说明"仅作提醒,以财务系统账面为准";不得替 PI 决定如何花钱。
|
||
4. 项目台账属敏感经营数据;对话查询应限定负责人本人的项目,滞后 Top 名单面向科研秘书/财务处场景。
|
||
5. 一个业务能力一个 Action,用多个 placements 挂入口;底层同一 `scripts/main.py` CLI。
|
||
|
||
Agent 执行契约细节:`references/CLI.md`、`references/ACTIONS.md`、`references/SCHEMA.md`。
|
||
|
||
## 共享 Python(必读)
|
||
|
||
宿主共享 runtime 在 `{JIANGCHANG_DATA_ROOT}/python-runtime/.venv`,并已前置到 PATH(同时设 `VIRTUAL_ENV`)。短 CLI 一条命令直接跑:
|
||
|
||
```bash
|
||
python {baseDir}/scripts/main.py health
|
||
python {baseDir}/scripts/main.py version
|
||
python {baseDir}/scripts/main.py init-db
|
||
python {baseDir}/scripts/main.py broadcast [--pi 负责人] [--project-no X] [--as-of YYYY-MM-DD]
|
||
```
|
||
|
||
- 公共库来自共享 venv 的 `jiangchang-platform-kit>=1.2.11`(包名路径 `jiangchang_skill_core`);不要 vendor。
|
||
- **禁止**用 `uv run python` 跑技能脚本(会建临时环境,缺 `jiangchang_skill_core`);**禁止** Agent 自行 `pip install`。
|
||
- 根目录 `requirements.txt` 只声明技能特有依赖(本技能当前无)。
|
||
- 配置:用户 `.env` 在 `{JIANGCHANG_DATA_ROOT}/{JIANGCHANG_USER_ID}/{slug}/.env`;优先级:进程环境变量 > 用户 `.env` > `.env.example`。
|
||
|
||
## 面向用户问答(LLM 规则)
|
||
|
||
- 本文(`SKILL.md`)是 LLM / OpenClaw 平台读取的技能入口,**不是**用户市场说明。
|
||
- 当用户询问"这个技能是做什么的 / 怎么用 / 适合什么场景 / 用前准备什么 / 得到什么",**必须优先读取**根目录 `README.md`(能力说明)与 `TUTORIAL.md`(逐步用法),并用业务语言回答。
|
||
- **回答「怎么用 / 能做什么」时的要求**:优先读 `TUTORIAL.md`;**禁止**在回答中粘贴 `python …/scripts/main.py …` 或其它命令行(除非用户明确索要命令,或自称技术人员/开发者);**禁止**为答用法去 `dir` / `ls` 列技能目录,或默认打开 `references/`、`development/`。
|
||
- **禁止**向普通用户暴露 JSON 字段名、表名、`error_code` 等实现细节(除非用户明确询问技术实现)。
|
||
- 市场说明 Tab(`README.md`)不含分步操作;排障步骤在 `TUTORIAL.md`「常见卡住怎么办」。
|
||
|
||
## 文档分工
|
||
|
||
| 文档 | 读者 | 用途 |
|
||
|------|------|------|
|
||
| 根目录 `README.md` | 普通用户 | 市场 **说明** Tab(`readme_md`) |
|
||
| 根目录 `TUTORIAL.md` | 普通用户 | 市场 **教程** Tab(`tutorial_md`) |
|
||
| 根目录 `DEMO.md` | 普通用户 | 市场 **演示** Tab(`demo_video_url` + `demo_md`) |
|
||
| 根目录 `CHANGELOG.md` | 普通用户 | 市场 **更新日志** Tab(`changelog`) |
|
||
| `SKILL.md`(本文) | LLM / OpenClaw 平台 | 技能入口、触发与运行契约摘要 |
|
||
| `references/` | Agent 编排 / 调用 | CLI、Action、schema 契约(Agent 主读) |
|
||
| `development/` | 开发者 / AI 编程代理 | 需求、开发教程、测试、深度技术规范 |
|
||
|
||
## 目录约定
|
||
|
||
- CLI 入口固定为 `scripts/main.py`;业务逻辑按 `cli / db / service / util` 分层。
|
||
- 业务表:`fund_projects`(项目台账)、`progress_reports`(播报记录)、`alert_rules`(预警规则)。
|
||
- HTML 简报写入技能数据目录 `html/`(单项目 `report-N.html`、月度汇总 `brief-*.html`),重建走固定 Action id `render-html`。
|
||
|
||
## 平台元数据
|
||
|
||
- `metadata.openclaw.developer_ids`:发布后默认可见的用户 ID 列表;**发布前必须替换为本人的匠厂用户 ID**(设置 → 用户信息 → 复制),否则开发期自己无法在市场安装自测。
|
||
- 当 `access_scope = 0`(不公开)时,平台会把 `developer_ids` 中的用户自动补写到 `skill_user_access`。
|