@rishiqing/cli 0.1.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.
@@ -0,0 +1,3 @@
1
+ {
2
+ "baseUrl": "https://www.rishiqing.com"
3
+ }
@@ -0,0 +1,85 @@
1
+ ---
2
+ name: rishiqing
3
+ description: 当用户在 agent 对话中提到日事清、rsq、rishiqing,或提到项目、模块、卡片、任务、流程、多维表格、数据、流程应用、流程实例、步骤、表单、字段、审核项、审批、成员、负责人、执行人、参与人等日事清领域词汇时使用。此 skill 用于把这些自然语言快速识别为“要用 rsq-cli 操作日事清”,并优先通过 rsq-cli 的 describe、search、project、task、workflow、datasheet、contacts 等命令完成查询、创建、更新和编排。
4
+ metadata:
5
+ requires:
6
+ bins: ["rsq-cli"]
7
+ ---
8
+
9
+ # rishiqing
10
+
11
+ 用 `rsq-cli` 处理日事清领域的通用识别与命令路由。
12
+
13
+ ## 触发原则
14
+
15
+ 只要用户表达的对象或动作明显属于日事清域,就优先启用本 skill,而不是把请求当成泛化的项目管理或表格软件问题。
16
+
17
+ 高频触发词包括:
18
+
19
+ - 日事清 / rsq / rishiqing
20
+ - 项目 / 模块 / 卡片 / 任务
21
+ - 流程 / 流程应用 / 流程实例 / 步骤
22
+ - 表单 / 字段 / 审核项 / 审批
23
+ - 多维表格 / 数据 / 数据表
24
+ - 成员 / 负责人 / 执行人 / 参与人
25
+
26
+ 如果用户只说“建一个项目模块”“查某个流程实例”“给任务换负责人”“给表单加字段”,也默认这是日事清操作意图。
27
+
28
+ ## 工作方式
29
+
30
+ ### 1. 先把意图归到日事清模块
31
+
32
+ 优先按下面的语义分发:
33
+
34
+ - `project`: 项目、模块、项目成员、项目概览、项目下计划
35
+ - `task`: 任务、卡片、执行人、负责人、参与人、状态
36
+ - `workflow`: 流程应用、流程实例、步骤、表单、字段、审核项、审批流
37
+ - `datasheet`: 多维表格、表、记录、字段、数据
38
+ - `contacts`: 按姓名解析用户、查成员
39
+
40
+ ### 2. 先查描述,再选命令
41
+
42
+ 优先使用:
43
+
44
+ ```bash
45
+ rsq-cli describe --json
46
+ rsq-cli search "<用户意图>" --json
47
+ rsq-cli describe <module> <command> --json
48
+ ```
49
+
50
+ 规则:
51
+
52
+ - 不确定命令名时,先 `search`
53
+ - 确认到候选命令后,再 `describe` 看参数和 `requestBodySchema`
54
+ - 需要姓名转用户 id 时,先 `rsq-cli contacts resolveUser --user-name <姓名> --json`
55
+
56
+ ### 3. 写操作先预览
57
+
58
+ 创建、更新、绑定、分配这类写操作优先加:
59
+
60
+ ```bash
61
+ --dry-run --json
62
+ ```
63
+
64
+ 确认参数结构正确后再正式执行。
65
+
66
+ ## 固定约束
67
+
68
+ - 所有 `...Id` / `...Ids` 一律按字符串 id 传递
69
+ - 不要传数字 id,也不要传纯数字字符串
70
+ - 组装 `--body` 前先读 `requestBodySchema`
71
+ - 用户给的是中文业务词时,先做语义映射,不要要求用户先说出精确命令名
72
+ - 若用户同时提到“流程 + 项目”,优先确认是否是在某个项目下创建 workflow 模块
73
+
74
+ ## 常见路由示例
75
+
76
+ - “在某个项目下建流程应用” -> `project` + `workflow`
77
+ - “给任务换执行人” -> `task` + `contacts`
78
+ - “新增一个多维表字段” -> `datasheet`
79
+ - “查某个流程现在到哪个步骤” -> `workflow`
80
+ - “把张三加到项目里” -> `contacts` + `project`
81
+
82
+ ## 边界
83
+
84
+ 本 skill 负责“识别这是日事清请求,并把请求路由到 rsq-cli”。
85
+ 如果用户明确要求“按业务场景自动创建完整流程应用”,继续使用或转到 [../rsq-workflow-createFlowApplication/SKILL.md](../rsq-workflow-createFlowApplication/SKILL.md)。
@@ -0,0 +1,182 @@
1
+ ---
2
+ name: rsq-workflow-createFlowApplication
3
+ description: 当用户要求“创建流程应用”“新建审批流程”“按场景搭一个流程”这类需求时使用。先匹配流程模板创建 flow application;若匹配不到模板,则回退到“标准模式”,并继续补齐步骤、表单、审核项,生成完整可用的流程应用。
4
+ metadata:
5
+ requires:
6
+ bins: ["rsq-cli"]
7
+ ---
8
+
9
+ # rsq-workflow-createFlowApplication
10
+
11
+ 用 `rsq-cli` 处理“按提示词创建流程应用”的完整编排。
12
+
13
+ ## 触发场景
14
+
15
+ 当用户表达以下意图时使用:
16
+
17
+ - 创建流程应用
18
+ - 新建审批流程
19
+ - 按某个业务场景生成流程
20
+ - 创建请假、报销、采购、发版、入职等流程
21
+
22
+ ## 固定流程
23
+
24
+ ### 0. 先判断是否要求在某个项目下创建
25
+
26
+ 如果用户明确说明了“在某个项目下创建”“在某个项目模块里创建流程”“挂到某个项目下面”,优先走项目分支:
27
+
28
+ 1. 先确认或定位 `projectId`
29
+ 2. 调用创建模块接口,且 `type` 固定传 `"workflow"`
30
+ 3. 从返回值中读取 `data.plan.flowApplicationId`
31
+ 4. 后续所有步骤、表单、审核项都基于这个 `flowApplicationId` 继续创建
32
+
33
+ 示例:
34
+
35
+ ```bash
36
+ rsq-cli project createPlan --project-id <projectId> --body '{"name":"<流程名称>","type":"workflow"}' --json
37
+ ```
38
+
39
+ 记录返回的:
40
+
41
+ - `data.plan.planId`
42
+ - `data.plan.flowApplicationId`
43
+
44
+ 如果用户没有说明是在某个项目下创建,则沿用下面的独立流程应用创建方式。
45
+
46
+ ### 1. 先查模板
47
+
48
+ ```bash
49
+ rsq-cli workflow listFlowApplicationTemplates --json
50
+ ```
51
+
52
+ 读取返回的:
53
+
54
+ - `data[].flowApplicationTemplateId`
55
+ - `data[].flowApplicationTemplateName`
56
+
57
+ ### 2. 优先按名称匹配模板
58
+
59
+ 按以下优先级匹配:
60
+
61
+ 1. `flowApplicationTemplateName` 精确匹配
62
+ 2. `flowApplicationTemplateName` 包含用户给出的流程名称
63
+ 3. 用户流程名称包含模板名称
64
+ 4. 关键词高度接近时做单一近似匹配
65
+
66
+ 如果只命中一个明显匹配模板,直接使用它的 `flowApplicationTemplateId`。
67
+
68
+ ### 3. 匹配不到时回退到“标准模式”
69
+
70
+ 如果没有明显模板匹配结果,固定选择:
71
+
72
+ - `flowApplicationTemplateName == "标准模式"`
73
+
74
+ 拿它的 `flowApplicationTemplateId` 去创建流程应用。
75
+
76
+ 如果模板列表里找不到“标准模式”,停止并报告缺少兜底模板,不要自行猜测。
77
+
78
+ ### 4. 创建流程应用或项目下的 workflow 模块
79
+
80
+ 如果用户没有指定项目,调用独立流程应用创建接口:
81
+
82
+ ```bash
83
+ rsq-cli workflow createFlowApplication --body '{"flowApplicationTemplateId":"<templateId>","flowApplicationName":"<name>"}' --json
84
+ ```
85
+
86
+ 记录返回的:
87
+
88
+ - `data.flowApplicationId`
89
+
90
+ 如果用户指定了项目,则不要先调用 `createFlowApplication`,而是调用项目模块创建接口:
91
+
92
+ ```bash
93
+ rsq-cli project createPlan --project-id <projectId> --body '{"name":"<name>","type":"workflow"}' --json
94
+ ```
95
+
96
+ 然后记录:
97
+
98
+ - `data.plan.flowApplicationId`
99
+
100
+ ### 5. 非标准模式直接结束
101
+
102
+ 如果最终使用的是“匹配到的现成模板”,流程应用创建成功后通常直接结束。
103
+
104
+ 只有当用户明确要求继续自定义步骤、表单或审核项时,才继续往下改。
105
+
106
+ ### 6. 标准模式需要继续补全流程
107
+
108
+ 如果最终使用的是“标准模式”,继续执行:
109
+
110
+ 1. 根据用户给的流程名称理解业务场景
111
+ 2. 设计合理的步骤
112
+ 3. 为每个步骤创建表单
113
+ 4. 为每个步骤创建审核项
114
+ 5. 必要时把表单绑定回步骤
115
+
116
+ 不要只创建一个空流程应用就结束。
117
+
118
+ ## 标准模式下的编排顺序
119
+
120
+ 详细 API 顺序见 [references/api-sequence.md](references/api-sequence.md)。
121
+
122
+ 最低要求是:
123
+
124
+ 1. 确认当前已经拿到了正确的 `flowApplicationId`
125
+ 2. 查询当前流程步骤,找出可作为 `frontStepInfoId` 的锚点
126
+ 3. 逐个创建步骤
127
+ 4. 为每个步骤创建表单
128
+ 5. 用 `updateStepInfo` 绑定 `formId`
129
+ 6. 为每个步骤创建审核项
130
+
131
+ ## 业务理解规则
132
+
133
+ 标准模式下,不要机械地创建“步骤1/步骤2/步骤3”。
134
+
135
+ 要根据流程名称理解场景,例如:
136
+
137
+ - 请假:发起申请 -> 部门审批 -> 人事确认
138
+ - 报销:填写报销单 -> 部门审批 -> 财务审核
139
+ - 采购:提交采购需求 -> 主管审批 -> 采购执行 -> 验收确认
140
+ - 发版:发版申请 -> 研发审核 -> 测试确认 -> 运维发布
141
+ - 入职:信息登记 -> 部门负责人审批 -> HR 办理 -> 入职确认
142
+
143
+ 常见模式参考 [references/scenario-patterns.md](references/scenario-patterns.md)。
144
+
145
+ ## 表单设计规则
146
+
147
+ 每个步骤都应有与场景匹配的表单,而不是空表单。
148
+
149
+ 至少保证:
150
+
151
+ - 表单名称与步骤语义一致
152
+ - 字段数量足够支撑步骤动作
153
+ - 字段名称可读、业务上合理
154
+
155
+ ## 审核项设计规则
156
+
157
+ 每个审批步骤至少创建一个审核项。
158
+
159
+ 如果用户给了具体人员姓名,先解析成 `userId`:
160
+
161
+ ```bash
162
+ rsq-cli contacts resolveUser --user-name 张三 --json
163
+ ```
164
+
165
+ 再把 `userId` 填入 `auditInfoUsers`。
166
+
167
+ 如果用户没有给出审批人姓名:
168
+
169
+ - 可以按角色命名审核项,例如“部门负责人审批”“财务审核”“HR 审核”
170
+ - 但不要伪造具体人员 ID
171
+ - 在没有明确人员时,可以创建不含 `auditInfoUsers` 的审核项,或者按当前接口允许的最小有效结构创建
172
+
173
+ ## 约束
174
+
175
+ - 如果用户明确指定了项目,必须先走 `project createPlan` 且 `type` 固定传 `"workflow"`
176
+ - 项目分支后续一律使用 `data.plan.flowApplicationId`,不要再额外创建一个独立流程应用
177
+ - 优先使用现成模板,只有匹配不到时才走“标准模式”
178
+ - “标准模式”下必须继续补步骤、表单、审核项
179
+ - 写操作优先用 `--dry-run --json` 预览
180
+ - 不要伪造 `userId`
181
+ - 如果模板匹配存在多个候选且无法判断唯一最佳项,先向用户确认
182
+ - 如果用户只给了一个短名称,也要尽量结合常见业务场景做合理推断
@@ -0,0 +1,100 @@
1
+ # API Sequence
2
+
3
+ ## 0. 先判断是否在项目下创建
4
+
5
+ 如果用户指定了项目,先创建模块:
6
+
7
+ ```bash
8
+ rsq-cli project createPlan --project-id <projectId> --body '{"name":"<流程名称>","type":"workflow"}' --json
9
+ ```
10
+
11
+ 记录:
12
+
13
+ - `data.plan.planId`
14
+ - `data.plan.flowApplicationId`
15
+
16
+ 后续所有步骤、表单、审核项都使用这个 `flowApplicationId`。
17
+
18
+ 如果用户没有指定项目,再进入独立流程应用分支。
19
+
20
+ ## 1. 模板匹配
21
+
22
+ ```bash
23
+ rsq-cli workflow listFlowApplicationTemplates --json
24
+ ```
25
+
26
+ 目标:
27
+
28
+ - 找到最匹配模板
29
+ - 或兜底找到 `"标准模式"`
30
+
31
+ ## 2. 创建流程应用
32
+
33
+ ```bash
34
+ rsq-cli workflow createFlowApplication --body '{"flowApplicationTemplateId":"<templateId>","flowApplicationName":"<name>"}' --json
35
+ ```
36
+
37
+ 记录:
38
+
39
+ - `flowApplicationId`
40
+
41
+ 如果用户已指定项目,则跳过这一步,不要重复创建独立流程应用。
42
+
43
+ ## 3. 如果使用标准模式,先获取现有步骤锚点
44
+
45
+ ```bash
46
+ rsq-cli workflow listStepInfosByFlowApplicationId --flowapplication-id <flowApplicationId> --json
47
+ ```
48
+
49
+ 用途:
50
+
51
+ - 找一个已有步骤作为第一条自定义步骤的 `frontStepInfoId`
52
+ - 后续每新建一个步骤,就把新步骤的 `stepInfoId` 当作下一个步骤的 `frontStepInfoId`
53
+
54
+ ## 4. 创建步骤
55
+
56
+ ```bash
57
+ rsq-cli workflow createStepInfo --body '{"flowApplicationId":"<flowApplicationId>","stepInfoName":"部门负责人审批","frontStepInfoId":"<anchorStepInfoId>"}' --json
58
+ ```
59
+
60
+ 记录:
61
+
62
+ - `stepInfoId`
63
+
64
+ ## 5. 创建表单
65
+
66
+ `createForm` 只需要传真实业务字段:
67
+
68
+ - `flowApplicationId`
69
+ - `formName`
70
+ - `fields`
71
+
72
+ 不要凭空生成 `formId` 或 `fieldId`。如果 body 中存在这些字段,应该留空或不传。
73
+
74
+ ## 6. 把表单绑定到步骤
75
+
76
+ 创建表单后,调用:
77
+
78
+ ```bash
79
+ rsq-cli workflow updateStepInfo --step-info-id <stepInfoId> --body '{"flowApplicationId":"<flowApplicationId>","stepInfoName":"部门负责人审批","formId":"<formId>"}' --json
80
+ ```
81
+
82
+ ## 7. 创建审核项
83
+
84
+ ```bash
85
+ rsq-cli workflow createAuditInfo --body '{"flowApplicationId":"<flowApplicationId>","stepInfoId":"<stepInfoId>","auditInfoName":"部门负责人审批","frontAuditInfoId":"","auditInfoUsers":["<userId>"]}' --json
86
+ ```
87
+
88
+ 如果没有明确人员:
89
+
90
+ - 保留 `auditInfoName`
91
+ - 不要伪造用户 id
92
+
93
+ ## 建议顺序
94
+
95
+ 对每个步骤执行:
96
+
97
+ 1. `createStepInfo`
98
+ 2. `createForm`
99
+ 3. `updateStepInfo` 绑定 `formId`
100
+ 4. `createAuditInfo`
@@ -0,0 +1,92 @@
1
+ # Scenario Patterns
2
+
3
+ 以下是“标准模式”下的默认推断模板。不是硬编码规则,而是起步参考。
4
+
5
+ ## 请假
6
+
7
+ 步骤建议:
8
+
9
+ 1. 请假申请
10
+ 2. 部门负责人审批
11
+ 3. 人事确认
12
+
13
+ 字段建议:
14
+
15
+ - 请假类型
16
+ - 开始时间
17
+ - 结束时间
18
+ - 请假天数
19
+ - 请假原因
20
+
21
+ ## 报销
22
+
23
+ 步骤建议:
24
+
25
+ 1. 报销申请
26
+ 2. 部门审批
27
+ 3. 财务审核
28
+
29
+ 字段建议:
30
+
31
+ - 报销类型
32
+ - 金额
33
+ - 事由
34
+ - 发生日期
35
+ - 备注
36
+
37
+ ## 采购
38
+
39
+ 步骤建议:
40
+
41
+ 1. 采购申请
42
+ 2. 主管审批
43
+ 3. 采购执行
44
+ 4. 验收确认
45
+
46
+ 字段建议:
47
+
48
+ - 采购物品
49
+ - 数量
50
+ - 预算
51
+ - 用途
52
+ - 期望到货时间
53
+
54
+ ## 发版
55
+
56
+ 步骤建议:
57
+
58
+ 1. 发版申请
59
+ 2. 研发审核
60
+ 3. 测试确认
61
+ 4. 运维发布
62
+
63
+ 字段建议:
64
+
65
+ - 版本号
66
+ - 发布环境
67
+ - 变更说明
68
+ - 风险说明
69
+ - 回滚方案
70
+
71
+ ## 入职
72
+
73
+ 步骤建议:
74
+
75
+ 1. 信息登记
76
+ 2. 部门负责人审批
77
+ 3. HR 办理
78
+ 4. 入职确认
79
+
80
+ 字段建议:
81
+
82
+ - 姓名
83
+ - 部门
84
+ - 岗位
85
+ - 入职日期
86
+ - 联系方式
87
+
88
+ ## 通用规则
89
+
90
+ - 一般控制在 2 到 5 个步骤
91
+ - 每个步骤名称都要能被业务人员直接看懂
92
+ - 表单字段宁可少而准,不要堆很多无意义字段