@alphalawyer/alpha-classic-cli 0.1.1

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,267 @@
1
+ # Matter
2
+
3
+ 用户询问项目、案件、matter、项目列表、项目状态、项目客户、项目动态、项目计时、项目任务等信息时使用本规则。
4
+
5
+ ## 查询项目列表
6
+
7
+ 按关键词查询:
8
+
9
+ ```bash
10
+ alpha-classic-cli matter search --keyword <关键词> --limit 10
11
+ ```
12
+
13
+ 不带关键词查询默认项目列表:
14
+
15
+ ```bash
16
+ alpha-classic-cli matter search --limit 10
17
+ ```
18
+
19
+ 翻页查询:
20
+
21
+ ```bash
22
+ alpha-classic-cli matter search --keyword <关键词> --page 2 --limit 10
23
+ ```
24
+
25
+ 按项目状态或项目范围查询:
26
+
27
+ ```bash
28
+ alpha-classic-cli matter search --status 进行中+预立项 --scope 所有项目 --limit 10
29
+ alpha-classic-cli matter search --status 进行中 --scope 我关注的 --limit 10
30
+ alpha-classic-cli matter search --status 全部 --scope 已加入的 --limit 10
31
+ ```
32
+
33
+ ## 查询项目详情
34
+
35
+ 先通过项目列表拿到 `项目ID`,再查询详情:
36
+
37
+ ```bash
38
+ alpha-classic-cli matter detail --id <项目ID> --logs 5
39
+ ```
40
+
41
+ 不需要最近动态时:
42
+
43
+ ```bash
44
+ alpha-classic-cli matter detail --id <项目ID> --logs 0
45
+ ```
46
+
47
+ ## 查询项目下任务列表
48
+
49
+ 项目详情页里的「任务」table 对应这个命令:
50
+
51
+ ```bash
52
+ alpha-classic-cli matter task --id <项目ID>
53
+ ```
54
+
55
+ 默认查询未完成任务;如需全部任务或已完成任务可显式传状态:
56
+
57
+ ```bash
58
+ alpha-classic-cli matter task --id <项目ID> --state all
59
+ alpha-classic-cli matter task --id <项目ID> --state 已完成
60
+ ```
61
+
62
+ ## 查询任务详情
63
+
64
+ 先通过项目任务列表拿到 `任务ID`,再查询任务详情:
65
+
66
+ ```bash
67
+ alpha-classic-cli matter task-detail --id <任务ID> --comments 10
68
+ ```
69
+
70
+ 任务详情会读取任务概览、检查项、附件、计时和任务动态。附件会根据 `repoId`、`filePath` 联动 `/document-engine/api/v1/dir/list` 获取文件详情,但对外只展示 `文件名` 和 `大小`。`--comments` 默认 10,传 0 可跳过任务动态。
71
+
72
+ ## 参数规则
73
+
74
+ - `--keyword` 可选;用户没有提供项目名或关键词时可以省略。
75
+ - `matter search --status` 可选,默认 `进行中+预立项`;支持 `预立项`、`进行中`、`进行中+预立项`、`已完结`、`已搁置`、`已归档`、`全部`。
76
+ - `matter search --scope` 可选,默认 `所有项目`;支持 `所有项目`、`我关注的`、`已加入的`。
77
+ - `--limit` 可选,默认 10,最大 50。
78
+ - `--page` 可选,从 1 开始。
79
+ - `matter detail --id` 必填,通常来自 `matter search` 返回的 `项目ID`。
80
+ - `matter detail --logs` 可选,默认 5,最大 20;传 0 跳过最近动态。
81
+ - `matter task --id` 必填,通常来自 `matter detail` 或 `matter search` 返回的 `项目ID`。
82
+ - `matter task --state` 可选,默认 `未完成`;支持 `all`、`未完成`、`已完成`。
83
+ - `matter task --limit` 可选,默认 20,最大 50。
84
+ - `matter task --type` 可选,默认 `task`;支持 `task`、`group`。
85
+ - `matter task --attention` 可选,默认 `all`;支持 `all`、`我关注的`。
86
+ - `matter task-detail --id` 必填,通常来自 `matter task` 返回的 `任务ID`。
87
+ - `matter task-detail --comments` 可选,默认 10,最大 50;传 0 跳过任务动态。
88
+ - `project` 是 `matter` 的别名,但回答和示例优先使用 `matter`。
89
+
90
+ ## 输出字段
91
+
92
+ ## 项目列表筛选映射
93
+
94
+ 项目状态通过请求体里的 `matterStatusSet` 传给后端:
95
+
96
+ | 用户说法 | CLI 参数 | 请求体字段 |
97
+ | --- | --- | --- |
98
+ | 预立项 | `--status 预立项` | `matterStatusSet: [0]` |
99
+ | 进行中 | `--status 进行中` | `matterStatusSet: [2]` |
100
+ | 进行中+预立项 | `--status 进行中+预立项` | `matterStatusSet: [2, 0]` |
101
+ | 已完结 | `--status 已完结` | `matterStatusSet: [4]` |
102
+ | 已搁置 | `--status 已搁置` | `matterStatusSet: [7]` |
103
+ | 已归档 | `--status 已归档` | `matterStatusSet: [6]` |
104
+ | 全部 | `--status 全部` | `matterStatusSet: [0, 2, 4, 6, 7]` |
105
+
106
+ 项目范围筛选:
107
+
108
+ | 用户说法 | CLI 参数 | 请求体字段 |
109
+ | --- | --- | --- |
110
+ | 所有项目 | `--scope 所有项目` | 不额外传范围筛选 |
111
+ | 我关注的 | `--scope 我关注的` | 与前端一致,只传 `isView: true`、`matchedName`、`queryOrderPage`;不传 `matterStatusSet` 和高级筛选 |
112
+ | 已加入的 | `--scope 已加入的` | `memberOfRoles: [{ userId: 当前用户ID, roleIds: 全部项目角色ID }]` |
113
+
114
+ 默认查询等价于:
115
+
116
+ ```bash
117
+ alpha-classic-cli matter search --status 进行中+预立项 --scope 所有项目 --limit 10
118
+ ```
119
+
120
+ 注意:`--scope 我关注的` 对应前端“我关注的”tab。前端会过滤掉状态和高级筛选,所以 CLI 也不传 `matterStatusSet`;即使用户同时传了 `--status`,请求时也会按前端行为忽略状态筛选。
121
+
122
+ 成功响应读取 `data`:
123
+
124
+ ```json
125
+ {
126
+ "ok": true,
127
+ "data": {
128
+ "项目状态": "进行中+预立项",
129
+ "项目范围": "所有项目",
130
+ "总数": 7,
131
+ "页码": 1,
132
+ "每页数量": 10,
133
+ "展示字段": ["项目名称", "项目状态", "项目客户", "项目类型", "立项时间", "项目编号"],
134
+ "项目状态统计": [
135
+ {
136
+ "状态": "进行中",
137
+ "状态码": 2,
138
+ "数量": 6
139
+ }
140
+ ],
141
+ "项目列表": [
142
+ {
143
+ "项目ID": "...",
144
+ "项目名称": "...",
145
+ "项目状态": "进行中",
146
+ "项目客户": ["..."],
147
+ "项目类型": "...",
148
+ "立项时间": "...",
149
+ "项目编号": "..."
150
+ }
151
+ ]
152
+ }
153
+ }
154
+ ```
155
+
156
+ `项目列表` 的固定字段是 `项目名称`、`项目状态`、`项目客户`、`项目类型`,其余展示字段来自 `/matterserver/api/v1/customFields/dashboard/MATTER_LIST` 的 `selectedFields` 顺序。`项目ID` 即使不属于展示字段,也会保留在响应里供后续 `matter detail`、`matter task` 使用。
157
+
158
+ 项目任务列表成功响应读取 `data.任务列表`:
159
+
160
+ ```json
161
+ {
162
+ "ok": true,
163
+ "data": {
164
+ "项目ID": "...",
165
+ "项目名称": "...",
166
+ "项目类型": "...",
167
+ "状态": "未完成",
168
+ "关注": "全部",
169
+ "类型": "任务",
170
+ "总数": 12,
171
+ "页码": 1,
172
+ "每页数量": 20,
173
+ "任务列表": [
174
+ {
175
+ "任务ID": "...",
176
+ "任务名称": "...",
177
+ "任务组": "...",
178
+ "状态": "未完成",
179
+ "负责人": ["..."],
180
+ "参与人": ["..."],
181
+ "到期时间": "...",
182
+ "检查项": {
183
+ "总数": 0,
184
+ "已完成": 0
185
+ },
186
+ "评论数": 0,
187
+ "附件数": 0,
188
+ "是否关注": false,
189
+ "时间类型": "到期时间",
190
+ "全天类型": "全天任务",
191
+ "工作类型": {
192
+ "工作类型ID": "...",
193
+ "工作类型名称": "..."
194
+ },
195
+ "重复规则": {
196
+ "规则ID": "...",
197
+ "重复规则": "...",
198
+ "自定义规则": "...",
199
+ "日期索引": [],
200
+ "结束类型": "...",
201
+ "结束日期": "...",
202
+ "结束次数": 0
203
+ }
204
+ }
205
+ ]
206
+ }
207
+ }
208
+ ```
209
+
210
+ 项目详情成功响应读取 `data.项目概览` 和 `data.最近动态`:
211
+
212
+ ```json
213
+ {
214
+ "ok": true,
215
+ "data": {
216
+ "项目概览": {
217
+ "项目ID": "...",
218
+ "项目名称": "...",
219
+ "项目编号": "...",
220
+ "项目状态": "进行中",
221
+ "项目类型": "...",
222
+ "项目等级": "中",
223
+ "客户": ["..."],
224
+ "其他当事人": ["..."],
225
+ "所属": "...",
226
+ "案源律师": ["..."],
227
+ "承办律师": ["..."],
228
+ "主办律师": ["..."],
229
+ "协办律师": ["..."],
230
+ "项目成员": ["..."],
231
+ "案由": "...",
232
+ "代理审级": "...",
233
+ "服务内容": "...",
234
+ "开始日期": "...",
235
+ "结束日期": "...",
236
+ "立项时间": "...",
237
+ "结项时间": "...",
238
+ "归档日期": "...",
239
+ "归档编号": "...",
240
+ "项目详情": "..."
241
+ },
242
+ "最近动态": [
243
+ {
244
+ "动态ID": "...",
245
+ "类型": "...",
246
+ "时间": "...",
247
+ "内容": "..."
248
+ }
249
+ ]
250
+ }
251
+ }
252
+ ```
253
+
254
+ ## 处理规则
255
+
256
+ - 用户问“有哪些项目”“查项目列表”时,如果没有关键词,可以直接查询默认列表。
257
+ - 用户给出项目名、客户名、编号片段等自然语言线索时,作为 `--keyword`。
258
+ - 用户问“项目详情”“项目概览”“这个项目的基本信息”时,优先使用 `matter detail`;如果没有项目ID,先用 `matter search` 找候选项目。
259
+ - 用户问“项目下任务”“这个项目的任务表”“任务 table”时,使用 `alpha-classic-cli matter task --id <项目ID>`。
260
+ - 用户没有特别说明状态时,默认看 `未完成` 任务。
261
+ - 给最终用户展示项目列表、项目详情或项目任务时,默认隐藏 `项目ID`、`任务ID`、`工作类型ID`、`规则ID` 等内部 ID;这些字段只留给 agent 后续调用 `matter detail`、`matter task` 等命令使用。只有用户明确要求查看 ID、编号或需要定位详情时才展示。
262
+ - `项目编号` 是业务编号,可以正常展示;不要把它和内部 `项目ID` 混为一谈。
263
+ - 回答项目列表时优先摘要 `项目名称`、`项目编号`、`项目客户`、`项目状态统计`、`最新动态`。
264
+ - 回答项目详情时优先摘要 `项目名称`、`项目编号`、`项目状态`、`客户`、`承办律师`、`项目成员`、`立项时间`、`最近动态`。
265
+ - 回答项目任务时优先摘要 `任务名称`、`任务组`、`状态`、`负责人`、`参与人`、`到期时间`、`检查项`、`评论数`、`附件数`。
266
+ - 如果结果为空,说明没有查到,不要编造项目。
267
+ - 不要调用项目写操作。当前只支持查询。
@@ -0,0 +1,43 @@
1
+ # Shared Rules
2
+
3
+ ## Skill 优先级
4
+
5
+ - 如果用户同时安装了 `e-alpha-cli` 项目的 `agent-assistant` skill 和本项目的 `alpha-classic-cli` skill,优先使用 `agent-assistant` 及其通过 `alpha-cli skills update` 拉取的服务端动态 skills。
6
+ - 只有在 `agent-assistant` 及服务端动态 skills 不适用、不可用或明确缺少所需能力时,才使用本项目 skill。
7
+
8
+ ## 登录与环境
9
+
10
+ - 使用前先运行 `alpha-classic-cli doctor`。
11
+ - 未登录时提示用户运行 `alpha-classic-cli login`。
12
+ - Agent 异步登录使用 `alpha-classic-cli login --no-wait --json`,把 `data.verification_url` 原样交给用户;用户确认后运行 `alpha-classic-cli login --device-code <device_code>`。
13
+ - 环境由 CLI 构建时固化,运行时不能切换;如环境不对,提示用户重新构建对应环境版本。
14
+
15
+ ## 输出处理
16
+
17
+ 成功响应:
18
+
19
+ ```json
20
+ {
21
+ "ok": true,
22
+ "data": {}
23
+ }
24
+ ```
25
+
26
+ 失败响应:
27
+
28
+ ```json
29
+ {
30
+ "ok": false,
31
+ "error": {
32
+ "type": "runtime",
33
+ "message": "...",
34
+ "hint": "..."
35
+ }
36
+ }
37
+ ```
38
+
39
+ ## 安全边界
40
+
41
+ - 不要输出 token 或 refreshToken。
42
+ - 不要调用未定义的写操作。
43
+ - 不要自行拼接后端接口,除非用户明确要求调试 `api` 命令。
@@ -0,0 +1,115 @@
1
+ # alpha-classic-cli 使用说明
2
+
3
+ 使用 `alpha-classic-cli` 查询 Alpha 律所管理系统的数据。这是一个打包好的 AI-friendly CLI,不是 MCP server。
4
+
5
+ ## 首次使用
6
+
7
+ 先运行:
8
+
9
+ ```bash
10
+ alpha-classic-cli doctor
11
+ ```
12
+
13
+ 如果用户还没登录,让他在终端里执行登录命令:
14
+
15
+ ```bash
16
+ alpha-classic-cli login
17
+ ```
18
+
19
+ Agent 异步登录时,可以先运行:
20
+
21
+ ```bash
22
+ alpha-classic-cli login --no-wait --json
23
+ ```
24
+
25
+ 把返回的 `data.verification_url` 原样交给用户打开确认。用户确认后运行:
26
+
27
+ ```bash
28
+ alpha-classic-cli login --device-code <device_code>
29
+ ```
30
+
31
+ `alpha-classic-cli login --token <token>` 仅作为调试 fallback。不要让用户把 token 粘到聊天里。
32
+
33
+ ## 发现能力
34
+
35
+ 在猜命令之前,先运行:
36
+
37
+ ```bash
38
+ alpha-classic-cli capabilities
39
+ alpha-classic-cli version
40
+ ```
41
+
42
+ 输出是 JSON。外层的 `ok/data/error` 是机器协议,`data` 里的业务字段可以使用中文。
43
+
44
+ ## 常用命令
45
+
46
+ 项目 / matter 查询:
47
+
48
+ ```bash
49
+ alpha-classic-cli matter search --keyword <keyword> --limit 10
50
+ ```
51
+
52
+ 默认项目列表等价于 `--status 进行中+预立项 --scope 所有项目`。项目状态支持 `预立项`、`进行中`、`进行中+预立项`、`已完结`、`已搁置`、`已归档`、`全部`;项目范围支持 `所有项目`、`我关注的`、`已加入的`。`--scope 我关注的` 与前端一致,只传 `isView=true`、`matchedName`、`queryOrderPage`,不传 `matterStatusSet`。
53
+
54
+ 不带关键词的项目查询:
55
+
56
+ ```bash
57
+ alpha-classic-cli matter search --limit 10
58
+ ```
59
+
60
+ 项目分页:
61
+
62
+ ```bash
63
+ alpha-classic-cli matter search --keyword <keyword> --page 2 --limit 10
64
+ ```
65
+
66
+ 项目详情:
67
+
68
+ ```bash
69
+ alpha-classic-cli matter detail --id <matterId> --logs 5
70
+ ```
71
+
72
+ 项目内任务表:
73
+
74
+ ```bash
75
+ alpha-classic-cli matter task --id <matterId> --state 未完成 --limit 20
76
+ ```
77
+
78
+ `matter task` 支持的状态只有 `all`、`未完成`、`已完成`;支持的类型只有 `task`、`group`。默认状态是 `未完成`,默认类型是 `task`,默认 limit 是 20,最大 50。
79
+
80
+ 审批列表:
81
+
82
+ ```bash
83
+ alpha-classic-cli appro list --scope my --limit 10
84
+ alpha-classic-cli appro list --scope my --status 待我审批 --count-only
85
+ alpha-classic-cli appro list --scope my --status 我已通过 --limit 10
86
+ alpha-classic-cli appro list --scope my --status 我已驳回 --limit 10
87
+ alpha-classic-cli appro list --scope my --status 他人已处理 --limit 10
88
+ alpha-classic-cli appro list --scope my --status 我转签的 --limit 10
89
+ alpha-classic-cli appro initiators --keyword <starterName>
90
+ alpha-classic-cli appro list --scope my --starter-id <starterUserId> --limit 10
91
+ alpha-classic-cli appro list --scope started --limit 10
92
+ alpha-classic-cli appro list --scope cc --limit 10
93
+ alpha-classic-cli appro list --scope all --limit 10
94
+ alpha-classic-cli appro list --scope started --status 审批中 --limit 10
95
+ alpha-classic-cli appro list --scope cc --status 驳回后重新发起 --limit 10
96
+ alpha-classic-cli appro list --scope all --status 已撤回 --limit 10
97
+ alpha-classic-cli appro detail --id <approId> --comments 10
98
+ ```
99
+
100
+ `--scope started`、`--scope cc`、`--scope all` 支持的状态值是 `all`、`审批中`、`已通过`、`已驳回`、`驳回后重新发起`、`已撤回`、`撤回后重新发起`、`已删除`。
101
+ 如果用户的问题能直接对应某个审批状态,就要直接把 `--status` 传给 CLI,不要先查全量再由 agent 自己筛选或计数。例如,“我驳回的审批有多少”必须用 `alpha-classic-cli appro list --scope my --status 我已驳回 --count-only`。
102
+ 展示审批列表时,默认隐藏 `审批ID`、`项目ID`、`流程任务ID`;显示字段名时使用 `审批类型`、`重要信息`、`项目名称`、`客户`、`发起人`、`状态`、`当前节点`、`发起时间` 这些人能直接看懂的字段,并省略空字段。
103
+ 审批详情会把 `/appro/api/v1/feeds` 结果拆成 `用户评论`(`feedType=1`)和 `审批动态`(`feedType=2`),不要混在一起。
104
+ `审批表单.业务分组` 会按审批类型拆成多个业务分组,不要只把整张表单平铺成一列。
105
+
106
+ ## 规则
107
+
108
+ - 除非用户明确要求做 CLI 开发工作,否则只使用查询 / 读取命令。
109
+ - 不要输出 token 或 refreshToken。
110
+ - 不要使用 `env use`;这个命令已经移除,只保留 `env list` 和 `env current`,环境在构建时已经锁定。
111
+ - 优先使用 `matter`,`project` 只是别名。
112
+ - 在项目详情页里,任务表用 `matter task`。
113
+ - 最终回答默认隐藏内部 ID,包括 `项目ID`、`审批ID`、`任务ID`、`流程任务ID`、`节点ID`、`字段ID`、`文件ID`、`评论ID`、`动态ID`;这些只留给后续 CLI 调用。`项目编号`、`审批编号` 这类业务编号可以展示。
114
+ - 不要猜原始后端接口。只有用户明确要求调试 API 时,才使用原始 `api` 命令。
115
+ - 回答业务问题时,优先概括清洗后的 CLI 输出,不要直接把完整原始 JSON 全贴出来,除非用户明确要看原始 JSON。
@@ -0,0 +1 @@
1
+ #!/usr/bin/env node