vps-work 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/.well-known/skills/index.json +203 -0
  2. package/README.md +315 -0
  3. package/USAGE.md +289 -0
  4. package/dist/vps-work.cjs +64206 -0
  5. package/examples/README.md +94 -0
  6. package/package.json +76 -0
  7. package/scripts/install-onboard-skill.ps1 +77 -0
  8. package/scripts/install-onboard-skill.sh +66 -0
  9. package/scripts/test-local-tenant-services.mjs +21 -0
  10. package/skills/README.md +53 -0
  11. package/skills/sale-performance-query/SKILL.md +210 -0
  12. package/skills/sale-performance-query/references/vps-sales-account-orders.md +48 -0
  13. package/skills/sale-performance-query/references/vps-sales-agent-five-suite.md +55 -0
  14. package/skills/sale-performance-query/references/vps-sales-customer-mix.md +47 -0
  15. package/skills/sale-performance-query/references/vps-sales-customer-region.md +70 -0
  16. package/skills/sale-performance-query/references/vps-sales-daily-trend.md +44 -0
  17. package/skills/sale-performance-query/references/vps-sales-dealer-orders.md +47 -0
  18. package/skills/sale-performance-query/references/vps-sales-dealer-performance.md +49 -0
  19. package/skills/sale-performance-query/references/vps-sales-deposit-breakdown.md +16 -0
  20. package/skills/sale-performance-query/references/vps-sales-dept-breakdown.md +32 -0
  21. package/skills/sale-performance-query/references/vps-sales-dept-comparison.md +24 -0
  22. package/skills/sale-performance-query/references/vps-sales-entities.md +25 -0
  23. package/skills/sale-performance-query/references/vps-sales-headline-kpi.md +26 -0
  24. package/skills/sale-performance-query/references/vps-sales-invoice-attachments.md +37 -0
  25. package/skills/sale-performance-query/references/vps-sales-invoice-status.md +37 -0
  26. package/skills/sale-performance-query/references/vps-sales-order-finance.md +29 -0
  27. package/skills/sale-performance-query/references/vps-sales-order-logistics.md +50 -0
  28. package/skills/sale-performance-query/references/vps-sales-per-person-kpi.md +24 -0
  29. package/skills/sale-performance-query/references/vps-sales-personal-okr.md +40 -0
  30. package/skills/sale-performance-query/references/vps-sales-ranking.md +25 -0
  31. package/skills/sale-performance-query/references/vps-sales-reconciled-receipts.md +46 -0
  32. package/skills/sale-performance-query/references/vps-sales-refund-summary.md +20 -0
  33. package/skills/sale-performance-query/references/vps-sales-service-sales.md +23 -0
  34. package/skills/sale-performance-query/references/vps-sales-shared-params.md +68 -0
  35. package/skills/sale-performance-query/references/vps-sales-target-achievement.md +47 -0
  36. package/skills/sale-performance-query/references/vps-sales-team-pk.md +23 -0
  37. package/skills/vps-approval/SKILL.md +20 -0
  38. package/skills/vps-calendar/SKILL.md +64 -0
  39. package/skills/vps-calendar/agents/openai.yaml +4 -0
  40. package/skills/vps-corporate/SKILL.md +84 -0
  41. package/skills/vps-creative/SKILL.md +66 -0
  42. package/skills/vps-current-user-identity/SKILL.md +138 -0
  43. package/skills/vps-current-user-identity/reference.md +79 -0
  44. package/skills/vps-daily-report-assistant/SKILL.md +180 -0
  45. package/skills/vps-daily-sales-report/SKILL.md +124 -0
  46. package/skills/vps-daily-sales-report/reference.md +188 -0
  47. package/skills/vps-device-abnormal-statistics/SKILL.md +52 -0
  48. package/skills/vps-device-abnormal-statistics/agents/openai.yaml +4 -0
  49. package/skills/vps-device-abnormal-statistics/references/api.md +134 -0
  50. package/skills/vps-documents/SKILL.md +77 -0
  51. package/skills/vps-documents/agents/openai.yaml +4 -0
  52. package/skills/vps-documents/references/api.md +106 -0
  53. package/skills/vps-hr/SKILL.md +50 -0
  54. package/skills/vps-hr-compensation-documents/SKILL.md +61 -0
  55. package/skills/vps-hr-compensation-documents/reference.md +68 -0
  56. package/skills/vps-hr-compensation-documents/references/+payslip.md +29 -0
  57. package/skills/vps-hr-compensation-documents/references/runtime-and-helpers.md +24 -0
  58. package/skills/vps-im/SKILL.md +154 -0
  59. package/skills/vps-im/references/vps-im-bots.md +25 -0
  60. package/skills/vps-im/references/vps-im-calls.md +28 -0
  61. package/skills/vps-im/references/vps-im-channels.md +32 -0
  62. package/skills/vps-im/references/vps-im-read.md +105 -0
  63. package/skills/vps-im/references/vps-im-send.md +57 -0
  64. package/skills/vps-im/references/vps-im-shared-params.md +42 -0
  65. package/skills/vps-mail/SKILL.md +17 -0
  66. package/skills/vps-meeting/SKILL.md +42 -0
  67. package/skills/vps-okr/SKILL.md +22 -0
  68. package/skills/vps-okr-management-assistant/SKILL.md +45 -0
  69. package/skills/vps-okr-management-assistant/reference.md +84 -0
  70. package/skills/vps-pending-approval-assistant/SKILL.md +66 -0
  71. package/skills/vps-pending-approval-assistant/reference.md +55 -0
  72. package/skills/vps-product/SKILL.md +221 -0
  73. package/skills/vps-sale-personnel-efficiency/SKILL.md +124 -0
  74. package/skills/vps-sale-personnel-efficiency/reference.md +139 -0
  75. package/skills/vps-shared/SKILL.md +72 -0
  76. package/skills/vps-store-management/SKILL.md +35 -0
  77. package/skills/vps-store-management/references/store-reception.md +40 -0
  78. package/skills/vps-task-management-assistant/SKILL.md +140 -0
  79. package/skills/vps-tools/SKILL.md +73 -0
  80. package/skills/vps-tools/agents/openai.yaml +4 -0
  81. package/skills/vps-v-drive/SKILL.md +82 -0
  82. package/skills/vps-vemory/SKILL.md +33 -0
  83. package/skills/vps-work/SKILL.md +366 -0
  84. package/skills/vps-work-onboard/SKILL.md +53 -0
@@ -0,0 +1,24 @@
1
+ # +per-person-kpi
2
+
3
+ 销售人效:部门销额、活跃/在职人数、人均产出。
4
+
5
+ | 项 | 值 |
6
+ |----|-----|
7
+ | CLI | `vps-work sales +per-person-kpi [flags]` |
8
+ | skill_key | `vps-sale-personnel-efficiency` |
9
+ | script_key | `per_person_kpi` |
10
+ | 默认 period | `last_month` |
11
+
12
+ ## 独有参数
13
+
14
+ | CLI | execute | 默认 |
15
+ |-----|---------|------|
16
+ | `--dept-level <n>` | `dept_level` | 2 |
17
+ | `--on-duty-status <label>` | `on_duty_status` | `在职`(可 `全部`) |
18
+
19
+ ## 示例
20
+
21
+ ```bash
22
+ vps-work sales +per-person-kpi --period last_month
23
+ vps-work sales +per-person-kpi --dept-l1 线下事业部 --dept-level 2
24
+ ```
@@ -0,0 +1,40 @@
1
+ # +personal-okr
2
+
3
+ 销售员个人 OKR / 目标达成。
4
+
5
+ | 项 | 值 |
6
+ |----|-----|
7
+ | CLI | `vps-work sales +personal-okr [flags]` |
8
+ | skill_key | `vps-sale-personnel-efficiency` |
9
+ | script_key | `personal_okr_achievement` |
10
+ | 默认 period | `this_quarter` |
11
+ | 默认目标源 | Postgres `vps_okr_*` |
12
+
13
+ ## 口径
14
+
15
+ - 实际业绩来自销售行口径,默认不含定金。
16
+ - 个人目标默认来自 Postgres `vps_okr_personal_performance_targets`;只有排查旧 PMS/BI 口径时才传 `--okr-source legacy` 或 execute 参数 `okr_source=legacy`。
17
+ - 返回 `pagination`;当 `has_more=true` 时必须用 `--page <next_page>` 继续查询。
18
+
19
+ ## 独有参数
20
+
21
+ | CLI | execute | 默认 |
22
+ |-----|---------|------|
23
+ | `--salesperson-like <name>` | `salesperson_like` | — |
24
+ | `--work-id <code>` | `work_id` | — |
25
+ | `--only-below-target` | `only_below_target=true` | false |
26
+ | `--order-by <field>` | `order_by` | `rate_asc` |
27
+ | `--page <n>` | `page` | 1 |
28
+ | `--limit <n>` | `limit` | 30 |
29
+ | `--okr-source <source>` | `okr_source` | `postgres` |
30
+
31
+ ## 示例
32
+
33
+ ```bash
34
+ vps-work sales +personal-okr --period this_quarter --dept-l1 线下事业部 --only-below-target --limit 50
35
+
36
+ vps-work sales +personal-okr --period this_month --salesperson-like 何龙承 --limit 20 --page 2
37
+
38
+ # 仅排查旧 PMS/BI 目标口径时使用
39
+ vps-work sales +personal-okr --period this_month --okr-source legacy --limit 50
40
+ ```
@@ -0,0 +1,25 @@
1
+ # +ranking
2
+
3
+ 销售员 TOP / BOTTOM 红黑榜。
4
+
5
+ | 项 | 值 |
6
+ |----|-----|
7
+ | CLI | `vps-work sales +ranking [flags]` |
8
+ | skill_key | `vps-daily-sales-report` |
9
+ | script_key | `employee_ranking_top_bottom` |
10
+ | 默认 period | `this_month` |
11
+
12
+ ## 独有参数
13
+
14
+ | CLI | execute | 默认 |
15
+ |-----|---------|------|
16
+ | `--metric <name>` | `metric` | `amount`(`qty` / `orders`) |
17
+ | `--top-n <n>` | `top_n` | 10 |
18
+ | `--bottom-n <n>` | `bottom_n` | 10 |
19
+ | `--no-exclude-zero` | `exclude_zero=false` | 末位默认排除 0 |
20
+
21
+ ## 示例
22
+
23
+ ```bash
24
+ vps-work sales +ranking --period this_month --metric amount --top-n 10 --bottom-n 10
25
+ ```
@@ -0,0 +1,46 @@
1
+ # 已对账销售收款明细
2
+
3
+ ## 接口
4
+
5
+ | 项目 | 值 |
6
+ |------|----|
7
+ | CLI | `vps-work sales +reconciled-receipts`(别名 `+sales-receipts`) |
8
+ | skill_key | `vps-daily-sales-report` |
9
+ | script_key | `reconciled_sales_receipts` |
10
+ | 权限 | `sales.account_orders:read` |
11
+
12
+ ## 固定口径
13
+
14
+ - 时间固定为最近 30 个自然日(含当天);指定单号也不放宽。
15
+ - 仅返回 `reconciliation_tag_type=yes`、非取消、非代理、非通联预收款且至少有一条 `done` 收款明细的销售原单。
16
+ - 支持 `sale`、`service`、`repair`、`jky` 四类单据,默认全部。
17
+ - 存在非取消、非退差价的普通退货或维修退货时排除原单;退差价单本身不排除原单,只按绝对金额扣减单据总金额。
18
+ - 结果按“销售单 + 收款方式 ID + 收款主体 ID”聚合;收款金额不因退差价自动扣减。
19
+ - 默认排除收款方式名称包含“京东自营”或“商场代收”的记录;显式传空数组可取消排除。
20
+ - `已开票` 表示直接或联合开票申请数量之和大于零。
21
+
22
+ ## 参数
23
+
24
+ | CLI | execute 参数 | 说明 |
25
+ |-----|--------------|------|
26
+ | `--order-types sale,service` | `order_types` | `sale/service/repair/jky` 字符串或数组 |
27
+ | `--order-names SO1,SO2` | `order_names` | 单号精确匹配,字符串或数组 |
28
+ | `--salesperson <名称>` | `salesperson` | 销售员名称包含匹配 |
29
+ | `--department <名称>` | `department` | 部门名称包含匹配 |
30
+ | `--company <名称>` | `company` | 单据公司名称包含匹配 |
31
+ | `--invoiced true\|false` | `invoiced` | 只看已开票或未开票 |
32
+ | `--exclude-payment-methods <关键词>` | `exclude_payment_methods` | 逗号分隔;空字符串/空数组表示不排除 |
33
+ | `--limit <n>` | `limit` | 1–1000,默认 500;优先于 `row_limit` |
34
+ | `--row-limit <n>` | `row_limit` | `limit` 兼容别名 |
35
+ | `--offset <n>` | `offset` | 0–4999,默认 0 |
36
+
37
+ ## 示例
38
+
39
+ ```bash
40
+ vps-work sales +reconciled-receipts \
41
+ --order-types sale,service \
42
+ --invoiced true \
43
+ --limit 100
44
+ ```
45
+
46
+ 必须检查返回的 `source.base_url/db/login`、`filter` 和 `pagination.has_more`;继续翻页时传 `--offset <pagination.next_offset>`。回答中说明固定 30 天范围、退货排除和收款方式排除口径。
@@ -0,0 +1,20 @@
1
+ # +refund-summary
2
+
3
+ 退款、退换货汇总与部门 Top。
4
+
5
+ | 项 | 值 |
6
+ |----|-----|
7
+ | CLI | `vps-work sales +refund-summary [flags]` |
8
+ | skill_key | `vps-daily-sales-report` |
9
+ | script_key | `refund_summary` |
10
+ | 默认 period | `this_month` |
11
+
12
+ ## 脚本可选(execute)
13
+
14
+ `refund_types` 默认为 `["退货退款","仅退款","退款","退货"]`,`exchange_types` 默认为 `["换货"]`。需要覆盖时通过 `--params` 传数组。
15
+
16
+ ## 示例
17
+
18
+ ```bash
19
+ vps-work sales +refund-summary --period this_month --dept-l1 海外事业部
20
+ ```
@@ -0,0 +1,23 @@
1
+ # +service-sales
2
+
3
+ 权益部、服务部销售业绩。
4
+
5
+ | 项 | 值 |
6
+ |----|-----|
7
+ | CLI | `vps-work sales +service-sales [flags]` |
8
+ | skill_key | `vps-daily-sales-report` |
9
+ | script_key | `service_dept_sales_summary` |
10
+ | 默认 period | `last_n_days`(`days=30`) |
11
+
12
+ ## 独有参数
13
+
14
+ | CLI | execute |
15
+ |-----|---------|
16
+ | `--person <name>` | `person`(经办人 ILIKE) |
17
+
18
+ ## 示例
19
+
20
+ ```bash
21
+ vps-work sales +service-sales --days 30
22
+ vps-work sales +service-sales --person 张三
23
+ ```
@@ -0,0 +1,68 @@
1
+ # 销售域共享参数
2
+
3
+ `vps-work sales +…` 多数 Shortcut 共用下列 CLI / execute 参数(execute 侧为 snake_case)。
4
+
5
+ ## 时间窗口(优先级)
6
+
7
+ 1. `--start-date` + `--end-date`(YYYY-MM-DD,闭区间;单独传任意一个也表示单日)
8
+ 2. `--period`:`today` / `yesterday` / `this_month` / `last_month` / `this_quarter` / `last_quarter` / `this_year` / `last_year` / `last_n_days` / `custom`,也支持 `YYYY-MM-DD` 单日
9
+ 3. `--days`(仅 `period=last_n_days`)
10
+
11
+ `custom` 必须同时提供 `--start-date` 和 `--end-date`。各 Shortcut **默认 period** 见对应 `vps-sales-<shortcut>.md`。
12
+
13
+ ## 部门过滤
14
+
15
+ | CLI | execute |
16
+ |-----|---------|
17
+ | `--dept-l1` … `--dept-l5` | `dept_l1` … `dept_l5` |
18
+
19
+ 多级 AND;空=不过滤。
20
+
21
+ 销售查询没有泛化的“部门”字段。不要传 `dept`、`department`、`dept_name`、`department_name`;服务端会拒绝这些模糊字段。用户只说“某部门”但未说明层级时,必须先确认它属于一级、二级、三级还是四级,或先查组织结构定位。
22
+
23
+ ## 其他常用
24
+
25
+ | CLI | execute | 说明 |
26
+ |-----|---------|------|
27
+ | `--limit <n>` | `limit` | 行数上限 |
28
+ | `--page <n>` | `page` | 页码,从 1 开始;列表型结果返回 `pagination` 时必须按 `next_page` 翻页 |
29
+ | `--include-deposit` | `include_deposit` | 含定金口径(默认不含) |
30
+ | `--product-subcategory <name>` | `product_subcategory` | 单个商品细类精确匹配,如 `VERTU ALPHAFOLD` |
31
+ | `--product-subcategories <names>` | `product_subcategories` | 多个商品细类,逗号分隔、精确匹配 |
32
+ | `--product-category <name>` | `product_category` | 商品分类精确匹配,如 手机 / IOT配件 |
33
+ | `--product-major-categories <names>` | `product_major_categories` | 商品大类,逗号分隔,如 戒指,手链 |
34
+ | `--product-style <name>` | `product_style` | `款式` 精确匹配;高定销售传 `高定` |
35
+ | `--product-style-details <names>` | `product_style_details` | `款式1` 精确列表;`金钻` 自动规范化为 `4金/3钻` |
36
+ | `--smart-wearable` | `smart_wearable=true` | 戒指/手链 + 与 vps-ep 一致的 5 个系列白名单 |
37
+
38
+ 商品条件彼此为 AND。大折叠黄金3/黄金4/金钻必须同时传商品细类、款式和款式1,不得只传“大折叠”。
39
+
40
+ ## OKR 目标源
41
+
42
+ 部门 OKR 达成和月度明细默认使用管理端“部门业绩目标”同源的 `部门OKR_1`;个人 OKR 默认使用 Postgres 新表。需要核对迁移后的部门目标表时显式传:
43
+
44
+ | CLI | execute | 说明 |
45
+ |-----|---------|------|
46
+ | `--okr-source postgres` | `okr_source=postgres` | 部门目标改查迁移后的 Postgres 新表 |
47
+
48
+ 部门目标不传 `--okr-source` 等同于 `legacy`;个人目标不传时仍等同于 `postgres`。
49
+
50
+ ## 分页响应
51
+
52
+ 列表型脚本返回 `pagination` 时,必须检查并按需继续查询:
53
+
54
+ ```json
55
+ {
56
+ "page": 1,
57
+ "page_size": 100,
58
+ "returned_rows": 100,
59
+ "total_rows": 256,
60
+ "total_pages": 3,
61
+ "has_more": true,
62
+ "next_page": 2
63
+ }
64
+ ```
65
+
66
+ 当 `has_more=true` 时,用 `--page <next_page>` 继续请求;不要把当前页 `rows` 当成全量。
67
+
68
+ 部门汇总参数按本目录各 Shortcut 参考执行;人员业绩、个人 OKR 与团队 PK 的补充参数见 `../../vps-sale-personnel-efficiency/reference.md`。
@@ -0,0 +1,47 @@
1
+ # +target-achievement
2
+
3
+ 部门或公司 OKR / 销售目标达成率。
4
+
5
+ | 项 | 值 |
6
+ |----|-----|
7
+ | CLI | `vps-work sales +target-achievement [flags]` |
8
+ | skill_key | `vps-daily-sales-report` |
9
+ | script_key | `dept_target_achievement` |
10
+ | 默认 period | `this_month` |
11
+ | 默认目标源 | 管理端“部门业绩目标”同源的 `部门OKR_1` |
12
+
13
+ ## 口径
14
+
15
+ - 部门目标默认读取管理端 `/admin/data-view/dept-monthly-okr` 使用的 `部门OKR_1`,按月份和展示层级汇总。需要核对迁移后的 `vps_okr_department_performance_targets` 时显式传 `okr_source=postgres` / `--okr-source postgres`。
16
+ - 达成率 = 实际销额 / 期间目标 × 100。
17
+ - 月/季/年目标一般不按日折算;更短窗口可能按覆盖天数折算(见子 skill `target_proration`)。
18
+ - `department_mode=matched` 按销售行的 `匹配部门` 字段聚合销售额和目标,并返回目标部门的 `dept_l1`~`dept_l5`;同时传 `dept_l1`~`dept_l5` 时,先按匹配部门汇总,再按合并后的目标层级过滤。当前在线 Odoo 脚本没有额外匹配规则,忽略历史特例后该字段等同业绩所属门店。
19
+ - `department_mode=raw` 按原始组织层级聚合,适合排查组织架构字段。
20
+ - 公司整体目标对全部 `target_amount` 求和,包括 `sales_amount=0` 的目标行。任何主动排除都必须披露排除部门、数量、金额和排除前后合计。
21
+ - 响应中的 `filter.exclusions` 是必须向用户披露的默认/显式排除项;`company_target_rule` 是公司目标汇总口径,回答时必须遵守。
22
+ - 返回 `pagination`;当 `has_more=true` 时必须用 `--page <next_page>` 继续查询,不要把当前页当作全量。
23
+
24
+ ## 参数补充
25
+
26
+ | CLI | execute | 默认 | 说明 |
27
+ |-----|---------|------|------|
28
+ | `--page <n>` | `page` | 1 | 页码,从 1 开始 |
29
+ | `--limit <n>` | `limit` | 500 | 每页行数(接口上限 500) |
30
+ | `--okr-source <source>` | `okr_source` | `legacy` | `legacy`=`部门OKR_1`(与管理端一致);`postgres`=迁移后的新 OKR 表 |
31
+
32
+ ## 示例
33
+
34
+ ```bash
35
+ vps-work sales +target-achievement --period last_month --limit 15
36
+
37
+ vps-work sales +target-achievement --period this_month --limit 50 --page 2
38
+
39
+ vps-work sales +target-achievement \
40
+ --params '{"start_date":"2026-01-01","end_date":"2026-05-31","department_mode":"matched","dept_l2":"AI销售","limit":100}'
41
+
42
+ vps-work sales +target-achievement \
43
+ --params '{"start_date":"2026-01-01","end_date":"2026-05-31","department_mode":"raw","group_by":"dept_l3","limit":100}'
44
+
45
+ # 显式核对迁移后的 Postgres 目标表
46
+ vps-work sales +target-achievement --period this_month --okr-source postgres --limit 50
47
+ ```
@@ -0,0 +1,23 @@
1
+ # +team-pk
2
+
3
+ 团队或个人销售 PK 榜。
4
+
5
+ | 项 | 值 |
6
+ |----|-----|
7
+ | CLI | `vps-work sales +team-pk [flags]` |
8
+ | skill_key | `vps-sale-personnel-efficiency` |
9
+ | script_key | `team_pk_ranking` |
10
+ | 默认 period | `this_month` |
11
+
12
+ ## 独有参数
13
+
14
+ | CLI | execute | 默认 |
15
+ |-----|---------|------|
16
+ | `--mode <name>` | `mode` | `person`(`team`) |
17
+ | `--limit <n>` | `limit` | 20 |
18
+
19
+ ## 示例
20
+
21
+ ```bash
22
+ vps-work sales +team-pk --period this_month --mode person --limit 20
23
+ ```
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: vps-approval
3
+ version: 1.0.0
4
+ description: 审批队列与通过/拒绝。`vps-work approval +…`。
5
+ metadata:
6
+ requires:
7
+ bins: ['vps-work']
8
+ cliHelp: 'vps-work approval --help'
9
+ ---
10
+
11
+ # approval
12
+
13
+ **MUST Read [`../vps-shared/SKILL.md`](../vps-shared/SKILL.md)**
14
+
15
+ | Shortcut | 契约 |
16
+ |----------|------|
17
+ | [`+wait`](../vps-pending-approval-assistant/reference.md) | `vps-pending-approval-assistant` |
18
+ | [`+my-submitted`](../vps-pending-approval-assistant/reference.md) | 同上 |
19
+ | [`+my-approved`](../vps-pending-approval-assistant/reference.md) | 同上 |
20
+ | [`+pass` / `+refuse` / `+logs`](../vps-pending-approval-assistant/SKILL.md) | 内建 AI tool |
@@ -0,0 +1,64 @@
1
+ ---
2
+ name: vps-calendar
3
+ description: 查询、创建和修改 Vertu 日程,并管理日历与多人忙闲。用户要查看某段日期内我的日程、点名查看某个人的忙碌日程、查看指定日历、创建或调整日程、列出可访问日历,或为会议查多人空闲时间时使用。入口为 `vps-work calendar +…`。触发词:日程、日历、行程、安排、创建日程、修改日程、忙闲、空闲时间、agenda、calendar、schedule。
4
+ ---
5
+
6
+ # Vertu 日程与日历
7
+
8
+ 开始前先读取 `../vps-shared/SKILL.md`,遵循其中的认证与 `+` 快捷约定。
9
+
10
+ ## 命令选择
11
+
12
+ | 用户意图 | 命令 |
13
+ |---|---|
14
+ | 查我的日程 | `vps-work calendar +mine` |
15
+ | 查某个人的日程 | `vps-work calendar +person --name <姓名>`;姓名不唯一时改传 `--user-id` |
16
+ | 查指定日历 | 先用 `+calendars` 取 ID,再用 `+calendar --calendar-id <uuid>` |
17
+ | 查我能访问的日历 | `vps-work calendar +calendars` |
18
+ | 查多人忙闲 | `vps-work calendar +availability --user-ids <ids>` |
19
+ | 创建日程 | `vps-work calendar +create --title <主题> --starts-at <时间> --ends-at <时间>` |
20
+ | 修改日程 | `vps-work calendar +update --event-id <uuid> <要修改的字段>` |
21
+ | 查看邀请响应 | `vps-work calendar +response --event-id <uuid>` |
22
+ | 响应邀请 | `vps-work calendar +respond --event-id <uuid> --status accepted|declined|tentative` |
23
+
24
+ ## 日期口径
25
+
26
+ - `--start-date`、`--end-date` 使用 `YYYY-MM-DD`,起止日期均包含,按 `Asia/Shanghai` 解释。
27
+ - 省略日期时默认查询今天。
28
+ - 我的日程、人员日程和指定日历最多查询 370 天。
29
+ - 多人忙闲单次最多查询 8 天、50 人;人员日程命令会自动把长日期范围拆成 8 天分片。
30
+
31
+ ## 创建与修改
32
+
33
+ - 创建时主题、开始时间和结束时间必填;省略 `--calendar-id` 时使用当前用户的默认日历。
34
+ - 时间可传完整 ISO 8601,也可传 `YYYY-MM-DD HH:mm`,无时区格式按 `Asia/Shanghai` 解释。
35
+ - `--reminder-minutes` 支持多选 `start,5m,15m,1h,1d`;传 `none` 表示无提醒并清空其他选项。新建默认 `15m`。
36
+ - `+update` 是局部修改:未提供的字段和参与人保持不变。
37
+ - 传 `--participant-user-ids` 或 `--optional-user-ids` 时会替换现有非组织人参与人。
38
+ - 创建时的复杂参与人、附件或 metadata 可用 `--params`;修改接口当前不改附件和 metadata。
39
+ - 只有明确传 `--push-to-participants true` 才发送创建或变更通知。
40
+ - 实际写入前可加 `--validate-only` 检查请求,不会创建或修改数据。
41
+ - 未响应的邀请保持 `needs_action`,不会自动同意;拒绝后不再计入个人忙闲和提醒。
42
+
43
+ ## 权限与隐私
44
+
45
+ - `+mine` 只返回当前用户作为组织人、参与人或日历成员可见的日程。
46
+ - `+calendar` 只允许查询当前用户有权查看的日历。
47
+ - `+person` 与 `+availability` 复用服务端忙闲接口,返回事件标题和忙碌时间,不绕过后端权限。
48
+ - 创建或修改必须源自用户明确意图;不推断收件人、不擅自开启参与人通知。
49
+ - 本 Skill 不删除或发布日程,除非未来有对应命令且用户明确要求。
50
+
51
+ ## 示例
52
+
53
+ ```bash
54
+ vps-work calendar +mine --start-date 2026-07-20 --end-date 2026-07-26
55
+ vps-work calendar +person --name 张三 --start-date 2026-07-23
56
+ vps-work calendar +create --title "项目评审" --starts-at "2026-07-24 09:00" --ends-at "2026-07-24 10:00" --reminder-minutes 15m,1h --participant-user-ids 12708 --push-to-participants true
57
+ vps-work calendar +update --event-id <uuid> --location "深圳办公室"
58
+ vps-work calendar +respond --event-id <uuid> --status accepted
59
+ vps-work calendar +calendars
60
+ vps-work calendar +calendar --calendar-id <uuid> --start-date 2026-07-01 --end-date 2026-07-31
61
+ vps-work calendar +availability --user-ids 12708,12556 --start-date 2026-07-23
62
+ ```
63
+
64
+ 返回空结果时先核对日期、人员 `user_id`、日历 ID 和当前用户权限,不要直接断言对方没有日程。
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Vertu 日程与日历"
3
+ short_description: "查询、创建或修改日程,并检查指定日历和多人忙闲时间"
4
+ default_prompt: "Use $vps-calendar to help me query or manage my calendar safely."
@@ -0,0 +1,84 @@
1
+ ---
2
+ name: vps-corporate
3
+ description: "VPS 企业综合管理只读查询:合作企业档案、合同及非合同文件用印、印章证照外借、人资用印、业务管理审批、规章制度和对应附件。用户询问合作方资料、营业执照、合同盖章件、制度文件、业务政策等内容时使用 `vps-work corporate +…`。"
4
+ ---
5
+
6
+ # corporate(企业综合管理)
7
+
8
+ **CRITICAL — 开始前 MUST 先读取 [`../vps-shared/SKILL.md`](../vps-shared/SKILL.md),其中包含认证、当前用户和 `+` 快捷约定。**
9
+
10
+ 本域只提供查询和附件下载,不提供新建、修改、删除或审批操作。所有结果都受当前用户角色、数据范围和附件权限限制;返回空列表不能解释为系统中没有数据,也可能是无可见记录。
11
+
12
+ ## 命令
13
+
14
+ | 命令 | 用途 |
15
+ |---|---|
16
+ | `+partner-list` | 查询合作企业档案 |
17
+ | `+partner-detail --id <id>` | 查看合作企业详情;财务字段按独立权限返回 |
18
+ | `+seal-list --kind <kind>` | 查询用印、证照外借或人资用印 |
19
+ | `+seal-detail --kind <kind> --id <id>` | 查看用印详情 |
20
+ | `+business-list --kind <kind>` | 查询业务管理审批 |
21
+ | `+business-detail --kind <kind> --id <id>` | 查看业务审批详情 |
22
+ | `+regulation-list` | 查询适用于当前用户的规章制度 |
23
+ | `+regulation-detail --id <id>` | 查看制度详情 |
24
+ | `+attachments --record-type <type> --record-id <id>` | 列出附件元数据与安全下载选择器 |
25
+ | `+attachment-download ... --output <path>` | 下载已授权附件,不覆盖已有文件 |
26
+
27
+ 通用列表参数:`--search`、`--status`、`--limit`(最大 200)、`--offset`。合同类用印列表还支持 `--end-date-from` / `--end-date-to` 按合同结束日期闭区间筛选,`--all` 自动翻页返回全部匹配记录。所有命令支持 `--dry-run` / `--validate-only` 和 `--base-url`。
28
+
29
+ ## 合同到期查询
30
+
31
+ “近一年已到期合同”按合同结束日期解释:结束日期大于等于一年前次日,且不晚于今天。例如当前日期为 2026-08-12:
32
+
33
+ ```bash
34
+ vps-work corporate +seal-list --kind contract \
35
+ --end-date-from 2025-08-13 --end-date-to 2026-08-12 --all
36
+ ```
37
+
38
+ - `--end-date-from` / `--end-date-to` 只适用于 `contract`、`creator`、`procurement`,起止日期均包含。
39
+ - CLI 会校验服务端响应中的 `filter`,服务端未确认应用日期条件时拒绝输出,禁止把未过滤数据当成到期合同。
40
+ - 不传 `--all` 时最多返回 `--limit` 条;需要完整清单必须加 `--all`。
41
+ - `total` 可能包含不同 `currency_id`,未按币种分组时不得直接汇总金额。
42
+
43
+ ## 类型
44
+
45
+ 用印 `--kind`:
46
+
47
+ - `contract`:合同评审用印
48
+ - `creator`:合同评审用印-达人
49
+ - `procurement`:合同评审用印-物资采购
50
+ - `non-contract`:非合同类文件用印
51
+ - `certificate-loan`:印章证照外借
52
+ - `hr`:人资文件用印
53
+
54
+ 业务管理 `--kind`:
55
+
56
+ - `mall-activity`
57
+ - `mall-entry`
58
+ - `agent-contract`
59
+ - `online-store`
60
+ - `subject-change`
61
+ - `air-transport`
62
+ - `business-policy`
63
+
64
+ ## 附件安全流程
65
+
66
+ 必须先调用 `+attachments`,再原样使用响应中的 `record_type`、`record_id`、`field`、`index` 下载。不要猜测或直接向用户暴露存储 URL,也不要把附件二进制内容打印到对话中。
67
+
68
+ 附件列表只包含数据库中已保存完整 HTTPS 地址的文件。只有内部文件索引、没有完整链接的历史附件不会返回,也不能尝试拼接地址或回退旧系统接口。
69
+
70
+ ```bash
71
+ vps-work corporate +attachments --record-type regulation --record-id 53
72
+ vps-work corporate +attachment-download \
73
+ --record-type regulation --record-id 53 \
74
+ --field final_attachment --index 0 --output ./制度.pdf
75
+ ```
76
+
77
+ 下载命令默认拒绝覆盖已存在文件。若目标文件已存在,换一个输出路径;不要擅自删除或覆盖用户文件。
78
+
79
+ ## 权限口径
80
+
81
+ - 合作企业基本信息、详细信息、财务信息、附件分别授权。
82
+ - 用印和业务管理默认只看本人创建、本人申请及本人负责部门;`*.all:read` 才能看全公司。
83
+ - 普通制度查看者只看已完成且适用于全公司或本人部门的制度。
84
+ - 附件权限不会绕过父记录权限:看不到记录时,即使知道附件选择器也不能下载。
@@ -0,0 +1,66 @@
1
+ ---
2
+ name: vps-creative
3
+ description: "内容创作画布(创意工坊)AI 生成:生图/改图、生视频、文字转语音、AI 音乐、模型列表。返回可下载附件链接(image_url / video_url / url)。用户要求生成图片、画图、配图、生成视频、视频生成、文字转语音、TTS、配音、生成音乐、背景音乐、查可用模型时使用 `vps-work creative +…`。触发词:生图、生成图片、画图、改图、AI绘画、生成视频、生视频、视频生成、文字转语音、TTS、语音合成、配音、生成音乐、AI音乐、背景音乐、BGM、模型列表。"
4
+ ---
5
+
6
+ # creative(内容创作 / 创意工坊)
7
+
8
+ **CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../vps-shared/SKILL.md`](../vps-shared/SKILL.md),其中包含认证、当前用户与 `+` 快捷约定。**
9
+
10
+ 内容创作画布(vps-creative-studio)的 AI 生成能力经 vps-service 代理为 CLI 短命令,统一返回可下载附件链接(OSS 直链)。生图 / 语音 / 音乐为同步返回;生视频为异步任务,先返回 `task_id`,再轮询状态拿到 `video_url`。
11
+
12
+ ## Shortcuts
13
+
14
+ | Shortcut | 说明 | 返回 |
15
+ |----------|------|------|
16
+ | `creative +models` | 可用模型/音色列表,`--type image\|video\|audio\|tts` 筛选 | 模型数组(`model_id`、`display_name`、`billing`) |
17
+ | `creative +image` | AI 生图/改图 | `{ image_url, billing }` |
18
+ | `creative +video` | AI 生视频(异步提交) | `{ task_id }`;`--wait` 时返回 `{ status, video_url }` |
19
+ | `creative +video-status` | 查询视频任务 | `{ status, video_url, original_video_url, error }` |
20
+ | `creative +tts` | 文字转语音 | `{ url, format, duration_ms, sample_rate }` |
21
+ | `creative +music` | AI 音乐生成 | `{ url, format, duration_ms, sample_rate }` |
22
+
23
+ 通用调试参数:`--base-url`、`--params`、`--params-file`、`--validate-only`、`--dry-run`、`--no-json`。所有生成类命令可用 `--params '<json>'` 或 `--params @file.json` 透传接口里未显式列出的字段。
24
+
25
+ ## 参数
26
+
27
+ | Shortcut | flags |
28
+ |----------|-------|
29
+ | `+models` | `--type`(image / video / audio / tts / text) |
30
+ | `+image` | `--model`(必填)`--prompt`(必填)`--source-image-url` `--reference-images`(逗号分隔)`--size` `--quality` `--resolution` `--aspect-ratio` `--background` `--output-compression` `--n` |
31
+ | `+video` | `--model`(必填)`--prompt` `--reference-images` `--reference-videos` `--reference-audios` `--reference-audio-durations-sec` `--first-frame-image` `--last-frame-image` `--ratio` `--resolution` `--duration` `--generate-audio` `--watermark` `--wait` `--wait-timeout` `--poll-interval` |
32
+ | `+video-status` | `--model`(必填)`--task-id`(必填) |
33
+ | `+tts` | `--model`(必填)`--text`(必填)`--voice-id` `--speed` `--vol` `--pitch` `--emotion` `--format` `--sample-rate` `--bitrate` |
34
+ | `+music` | `--model`(必填)`--prompt`(必填)`--lyrics` `--instrumental` `--lyrics-optimizer` `--format` `--sample-rate` `--bitrate` |
35
+
36
+ `model` 可填 `model_id`(如 `gpt-image-1`、`doubao-seedance-2-0-*`、`speech-2.8-hd`、`music-2.6`)或模型行 UUID;不确定时先 `creative +models --type <image|video|tts|audio>` 查。
37
+
38
+ ## 生视频(异步)流程
39
+
40
+ ```bash
41
+ # 1) 提交任务,拿到 task_id
42
+ vps-work creative +video --model <id> --prompt "..." --ratio 16:9 --duration 5
43
+ # 2) 轮询到完成(或直接 --wait 一步到位)
44
+ vps-work creative +video-status --model <id> --task-id <task_id>
45
+ vps-work creative +video --model <id> --prompt "..." --wait --wait-timeout 600
46
+ ```
47
+
48
+ 状态 `succeeded` 时 `video_url` 为已转存 OSS 的永久可下载直链;`failed` / `error` 时看 `error` 字段。视频任务较长,`--wait` 默认最多等 600s,间隔 5s。
49
+
50
+ ## 返回说明
51
+
52
+ - 生图 `image_url`、生视频 `video_url`、语音/音乐 `url` 都是站内受控 OSS 直链,可直接作为可下载附件链接回给用户。
53
+ - 生图/语音会返回 `billing`(预扣/实扣积分),生成类操作会消耗当前登录用户的画布积分;积分不足返回 402 类错误,需引导用户到画布前台充值。
54
+ - `+models` 返回的 `billing` 字段(unit/credits/ratio/min)用于预估消耗,`display_name` 用于回显模型名。
55
+
56
+ ## 自然语言映射
57
+
58
+ | 用户说法 | 推荐调用 |
59
+ |----------|----------|
60
+ | 画一张 / 生成一张图 / 配图 | `creative +image --prompt "…"` |
61
+ | 改这张图 / 参考图 | `creative +image --source-image-url <url> --prompt "…"` |
62
+ | 生成一段视频 / 短视频 | `creative +video --prompt "…"` |
63
+ | 首尾帧视频 | `creative +video --first-frame-image <url> --last-frame-image <url>` |
64
+ | 把这段话读出来 / 配音 / TTS | `creative +tts --text "…"` |
65
+ | 来一段背景音乐 / 配乐 | `creative +music --prompt "…"`(纯音乐);带词加 `--lyrics "…"` |
66
+ | 有哪些能用的模型 | `creative +models --type <image\|video\|tts\|audio>` |