@lark-people/cli 0.0.0-beta.3 → 0.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 (30) hide show
  1. package/README.md +8 -17
  2. package/README.zh.md +8 -17
  3. package/bin/people-cli_darwin_amd64 +0 -0
  4. package/bin/people-cli_darwin_arm64 +0 -0
  5. package/bin/people-cli_linux_amd64 +0 -0
  6. package/bin/people-cli_linux_arm64 +0 -0
  7. package/bin/people-cli_windows_amd64.exe +0 -0
  8. package/bin/people-cli_windows_arm64.exe +0 -0
  9. package/package.json +4 -1
  10. package/skills/people-attendance/SKILL.md +0 -667
  11. package/skills/people-attendance/references/people-attendance-submission.md +0 -426
  12. package/skills/people-attendance/scripts/resolve_date.py +0 -894
  13. package/skills/people-hire/SKILL.md +0 -255
  14. package/skills/people-hire/references/people-hire-application.md +0 -334
  15. package/skills/people-hire/references/people-hire-evaluation-task-list.md +0 -233
  16. package/skills/people-hire/references/people-hire-evaluation.md +0 -127
  17. package/skills/people-hire/references/people-hire-interview-record.md +0 -109
  18. package/skills/people-hire/references/people-hire-interview-task-list.md +0 -250
  19. package/skills/people-hire/references/people-hire-interview.md +0 -146
  20. package/skills/people-hire/references/people-hire-job-process.md +0 -93
  21. package/skills/people-hire/references/people-hire-job-requirement.md +0 -227
  22. package/skills/people-hire/references/people-hire-job.md +0 -277
  23. package/skills/people-hire/references/people-hire-minutes.md +0 -91
  24. package/skills/people-hire/references/people-hire-talent.md +0 -105
  25. package/skills/people-hire/references/people-hire-test.md +0 -197
  26. package/skills/people-overtime/SKILL.md +0 -992
  27. package/skills/people-overtime/references/people-attendance-overtime-apply.md +0 -491
  28. package/skills/people-overtime/references/people-attendance-overtime.md +0 -51
  29. package/skills/people-overtime/references/people-attendance-submission.md +0 -203
  30. package/skills/people-overtime/scripts/resolve_date.py +0 -894
@@ -1,127 +0,0 @@
1
- # evaluation
2
-
3
- ## 这是"查评估信息"场景的核心模块,覆盖按投递 ID 或时间范围查询简历评估记录。
4
-
5
- > **前置条件:** 先阅读 [`../../people-shared/SKILL.md`](../../people-shared/SKILL.md)
6
- > **字段来源:** 本文中的输入输出字段以 `people-cli hire +evaluation-list --help` 与底层 `people-cli schema hire.evaluation.list` 暴露的结构为准。
7
- > **强制约束:** 评估记录列表必须使用 `people-cli hire +evaluation-list`,禁止直接调用原生 `people-cli hire evaluation list`。
8
-
9
- ## 适用意图
10
-
11
- 当用户出现以下表达时,优先使用本场景:
12
-
13
- - "查某次投递的评估记录"
14
- - "看评估结论 / 提交状态 / 评估内容"
15
- - "按 application\_id 查评估详情"
16
-
17
- ### 意图和命令索引
18
-
19
- | 用途 / 何时使用 | 命令 | 说明 |
20
- | --------- | --------------------------------- | ---------------------------- |
21
- | 查询评估记录列表 | `people-cli hire +evaluation-list` | 可按 `application_id`、更新时间范围筛选 |
22
-
23
- ### 常见问法示例
24
-
25
- - "查这次投递的评估记录"
26
- - "看评估结论和评估内容"
27
- - "按 `application_id` 查评估信息"
28
-
29
- ### 评估查询调用流程
30
-
31
- 1. **确认查询主键**
32
- - 有 `application_id` 时优先按投递查询评估记录。
33
- 2. **执行查询**
34
- - 使用 `people-cli hire +evaluation-list`,不要手写原生 `--params` / `--jq`。
35
- - 默认 `--page-size 5`、`--view summary`;需要特定字段时用 `--fields`。
36
- - 列表类查询默认只查当前页;如需查询后过滤、存在性判断、计数或聚合,使用 Shortcut 的 `--where` / `--mode` / `--limit` / `--scan-page-limit`。
37
- 4. **结构化输出**
38
- - 默认使用 Shortcut 裁剪视图,只取评估主信息,以及用于后续查询的 `evaluation_id`、`application_id` 等内部关联字段。
39
- - 先输出评估主信息(结论、提交状态、评估人、更新时间),默认不展示 ID。
40
- - 如果当前页之外还有更多数据,CLI/Shortcut 输出的 `page_token` 供 skill/agent 内部继续翻页;最终回复用户时只提示"还有更多数据",不要展示 `page_token`。
41
- - 如果用户明确指定查询后过滤条件(如 `XX天内`、`全部`、`XX状态`、`我的XXX`),使用 Shortcut 受控扫描参数;不要手动循环 `page_token`。
42
- - 再按需展开 `content` 等文本字段。
43
-
44
- ### 不要误走
45
-
46
- - 用户问"我的待评估任务"时,不要误走 `evaluation.list`,必须用 `+evaluation-task-list`。
47
- - 用户只有职位 ID 或人才 ID 时,不要直接推断评估记录;优先先拿到 `application_id`。
48
- - 用户只需要任务待办摘要时,不要返回完整评估记录,应改走任务 Shortcut。
49
-
50
- ## 标准输入
51
-
52
- 以下字段来自 `+evaluation-list`:
53
-
54
- | 参数 | 对应接口字段 | 类型 | 说明 |
55
- | ---------------- | ----- | ------ | ------------- |
56
- | `--page-token` | `page_token` | string | 页码标识 |
57
- | `--page-size` | `page_size` | int | 默认 `5`,最大 `100` |
58
- | `--application-id` | `application_id` | string | 投递 ID |
59
- | `--update-start-time` | `update_start_time` | string | 最早更新时间,支持毫秒时间戳或日期/相对时间字符串 |
60
- | `--update-end-time` | `update_end_time` | string | 最晚更新时间,支持毫秒时间戳或日期/相对时间字符串 |
61
- | `--time-from` / `--start-time` | `update_start_time` | string | 最早更新时间别名 |
62
- | `--time-to` / `--end-time` | `update_end_time` | string | 最晚更新时间别名 |
63
- | `--user-id-type` | `user_id_type` | enum | `user_id` / `union_id` / `open_id` / `people_admin_id`,默认 `open_id` |
64
- | `--view` | - | enum | `summary` 默认裁剪视图;`full` 原始字段视图 |
65
- | `--fields` | - | string | 逗号分隔字段名,如 `evaluation_id,conclusion,update_time` |
66
- | `--where` | - | string | 查询后过滤表达式 |
67
- | `--limit` | - | int | 最多返回的匹配行数,默认等于 `--page-size` |
68
- | `--scan-page-limit` | - | int | 查询后过滤最多扫描源页数 |
69
- | `--mode` | - | enum | `list` / `exists` / `count` / `aggregate` |
70
- | `--group-by` | - | string | `--mode aggregate` 时按哪个字段聚合 |
71
-
72
- ## 标准输出
73
-
74
- `+evaluation-list --view summary` 默认返回以下稳定字段:
75
-
76
- | 字段 | 类型 | 用途 | 说明 |
77
- | ---------------- | ------ | ---- | --------------- |
78
- | `id` | string | 内部关联 | 评估 ID,默认不展示 |
79
- | `application_id` | string | 内部关联 | 投递 ID,默认不展示 |
80
- | `stage_id` | string | 内部关联 | 投递阶段,默认不展示 |
81
- | `creator_id` | string | 按需展示 | 创建人 |
82
- | `evaluator_id` | string | 默认展示 | 评估人 |
83
- | `commit_status` | int | 默认展示 | 提交状态(已提交 / 未提交) |
84
- | `conclusion` | int | 默认展示 | 评估结论(通过 / 未通过) |
85
- | `content` | string | 按需展示 | 评估详情文本 |
86
- | `create_time` | string | 按需展示 | 创建时间 |
87
- | `update_time` | string | 默认展示 | 最近更新时间 |
88
-
89
- 分页状态字段(CLI/Shortcut 需要输出给 skill/agent 内部判断和续查,默认不对用户展示 `page_token`):
90
-
91
- | 字段 | 类型 | 说明 |
92
- | ------------ | ------ | --------- |
93
- | `has_more` | bool | 是否有下一页 |
94
- | `page_token` | string | 内部翻页 token,CLI 可见,最终回复用户时默认隐藏 |
95
-
96
- ## 所需权限
97
-
98
- | 方法 | Scope |
99
- | ----------------- | -------------------------- |
100
- | `evaluation.list` | `hire:people_cli` |
101
-
102
- ## 示例
103
-
104
- ```bash
105
- # 按投递 ID 查询评估记录
106
- people-cli hire +evaluation-list --application-id 7046315599510833452 --page-size 5
107
-
108
- # 按更新时间范围查询评估记录
109
- people-cli hire +evaluation-list \
110
- --update-start-time 1704067200000 \
111
- --update-end-time 1706659200000 \
112
- --page-size 5
113
-
114
- # 更新时间范围也可以用统一别名
115
- people-cli hire +evaluation-list --time-from 1704067200000 --time-to 1706659200000 --page-size 5
116
-
117
- # 只取 AI 需要消费的字段,避免手写 jq
118
- people-cli hire +evaluation-list --application-id 7046315599510833452 --fields evaluation_id,application_id,commit_status,conclusion,update_time
119
-
120
- # 用户明确要求完整结构时
121
- people-cli hire +evaluation-list --application-id 7046315599510833452 --view full --format json
122
- ```
123
-
124
- ## 选路提醒
125
-
126
- - 查询"我的待评估任务"时必须用 `+evaluation-task-list`,不要误用 `evaluation.list`。
127
- - `evaluation.list` 是记录视角,不等价于任务待办视角。
@@ -1,109 +0,0 @@
1
- # interview-record
2
-
3
- 新版面试评价详情查询场景,覆盖按 `interview_record_id` 获取面评内容、结论与评分。
4
-
5
- > **前置条件:** 先阅读 [`../../people-shared/SKILL.md`](../../people-shared/SKILL.md)
6
- > **字段来源:** 本文中的输入输出字段以 `people-cli hire +interview-record-detail --help` 与底层 `people-cli schema hire.interview-record.detail` 暴露的结构为准。
7
- > **底层接口:** `+interview-record-detail` 调用 `GET /open-apis/hire/v2/interview_records/:interview_record_id`。
8
- > **强制约束:** 新版面试评价详情必须使用 `people-cli hire +interview-record-detail`,禁止直接调用原生 `people-cli hire interview-record detail`。
9
- > **身份要求:** 本 Shortcut 仅支持 `--as user`,需要当前用户 ID 来筛选和校验本人面评记录。
10
- > **隐私边界:** 面试评价详情仅可查看当前登录用户本人填写的面评内容;不支持查看他人的面试评价。`interview_id` 是面试 ID,不是面评 ID;有 `interview_id` 时传 `--interview-id`,由 Shortcut 按当前用户筛选正确的 `interview_record_id` 后再查询详情。
11
-
12
- ## 适用意图
13
-
14
- 当用户出现以下表达时,优先使用本场景:
15
-
16
- - "查新版面试评价详情"
17
- - "看面评内容 / 面试结论"
18
- - "查这个 interview_record_id"
19
- - "看面试官、评分、维度评价"
20
-
21
- ## 意图和命令索引
22
-
23
- | 用途 / 何时使用 | 命令 | 说明 |
24
- | --- | --- | --- |
25
- | 按 `interview_id` 获取本人新版面评详情 | `people-cli hire +interview-record-detail --interview-id <interview_id>` | 推荐入口;Shortcut 会从面试记录中过滤当前用户本人填写的面评记录 |
26
- | 按本人 `interview_record_id` 获取新版面评详情 | `people-cli hire +interview-record-detail --interview-record-id <interview_record_id>` | 仅在已确认是本人面评记录 ID 时使用;不要传 `interview_id` |
27
-
28
- ## 固定查询流程
29
-
30
- 1. **确认查询入口**
31
- - 有 `interview_id` 时,优先执行 `people-cli hire +interview-record-detail --interview-id <interview_id>`。Shortcut 会先查面试记录,按当前登录用户的 `open_id` / `user_id_type` 过滤 `interview_record_list[].interviewer.id`,得到真实 `interview_record_id` 后再查详情。
32
- - 已确认是本人面评记录 ID 时,才执行 `people-cli hire +interview-record-detail --interview-record-id <interview_record_id>`。
33
- - `--interview-id` 和 `--interview-record-id` 必须且只能传一个。不要把 `interview_id`、`application_id` 或 `evaluation_id` 填到 `--interview-record-id`。
34
- - 若面试记录中没有当前登录用户本人填写的面评记录,Shortcut 会停止并提示不支持查看他人面试评价。
35
- 2. **执行详情查询**
36
- - 使用 `people-cli hire +interview-record-detail --interview-id <interview_id>` 或 `people-cli hire +interview-record-detail --interview-record-id <interview_record_id>`,不要手写原生 `--params` / `--jq`。
37
- - 默认 `--view summary`;需要特定字段时用 `--fields`。
38
- 3. **结构化输出**
39
- - 默认展示提交状态、面试结论、提交时间、面试官、评分摘要、面评内容摘要、附件数量和题目作答摘要。
40
- - `id`、`user_id`、职级 ID 默认仅作内部关联,不直接展示。
41
- - 用户要求题目、在线编程题、图片、维度评价时再展开对应字段。
42
-
43
- ## 标准输入
44
-
45
- | 参数 | 对应接口字段 | 类型 | 说明 |
46
- | --- | --- | --- | --- |
47
- | `--interview-id` | `interview_id` | string | 面试 ID;Shortcut 先查面试记录并筛当前用户本人面评,再查询详情 |
48
- | `--interview-record-id` | `interview_record_id` | string | 面评记录 ID;仅在已确认是本人面评记录时使用,不要传面试 ID |
49
- | `--user-id-type` | `user_id_type` | enum | `user_id` / `union_id` / `open_id`,默认 `open_id` |
50
- | `--view` | - | enum | `summary` 默认裁剪视图;`full` 原始字段视图 |
51
- | `--fields` | - | string | 逗号分隔字段名,如 `conclusion,record_score,interviewer` |
52
-
53
- ## 标准输出
54
-
55
- `+interview-record-detail --view summary` 默认关注以下字段:
56
-
57
- | 字段 | 类型 | 用途 | 说明 |
58
- | --- | --- | --- | --- |
59
- | `id` | string | 内部关联 | 面评 ID,默认不展示 |
60
- | `user_id` | string | 内部关联 | 面试官用户 ID,默认不展示 |
61
- | `feedback_form_id` | string | 内部关联 | 面试评价表 ID,默认不展示 |
62
- | `content` | string | 默认展示 | v1 面试记录内容;v2 默认从 `module_assessments` 中提取维度评价内容 |
63
- | `commit_status` | int | 默认展示 | 提交状态 |
64
- | `submit_time` / `feedback_submit_time` | string / int | 默认展示 | 面试评价提交时间;v2 使用 `submit_time` |
65
- | `conclusion` / `module_assessments` | int / array | 默认展示 | 面试结论;v2 从 `module_type=1` 的结论模块中提取 |
66
- | `record_score` / `interview_score` | object | 默认展示 | 面试得分;v2 使用 `record_score` |
67
- | `assessment_score` | object | 按需展示 | 面评打分题分数 |
68
- | `interviewer` | object | 默认展示 | 面试官信息 |
69
- | `module_assessments` | array | 默认展示 | v2 模块评价列表,Shortcut 会提取为内容和维度摘要 |
70
- | `question_list` | array | 按需展示 | 面试题目 |
71
- | `code_question_list` | array | 按需展示 | 在线编程题目 |
72
- | `dimension_assessment_list` | array | 按需展示 | 面试维度评价信息 |
73
- | `attachments` / `image_list` | array | 按需展示 | 面试评价附件或图片 |
74
- | `Attachment Count` | string | 默认展示 | Shortcut 统计 `attachments` / `image_list` 等附件数量 |
75
- | `Question Answers` | string | 默认展示 | Shortcut 从题目列表中提取题目与作答摘要;接口未返回时为空 |
76
- | `min_job_level_id` | string | 内部关联 | 建议定级下限,默认不展示 |
77
- | `max_job_level_id` | string | 内部关联 | 建议定级上限,默认不展示 |
78
-
79
- ## 所需权限
80
-
81
- | 方法 | Scope |
82
- | --- | --- |
83
- | `interview-record.detail` | `hire:people_cli` |
84
-
85
- ## 示例
86
-
87
- ```bash
88
- # 推荐:用面试 ID 查询本人新版面试评价详情,Shortcut 自动筛当前用户的面评记录
89
- people-cli hire +interview-record-detail --interview-id 7171693733661327361 --user-id-type open_id
90
-
91
- # 已确认是本人面评记录 ID 时,直接查询新版面试评价详情
92
- people-cli hire +interview-record-detail --interview-record-id 1618209327096 --user-id-type open_id
93
-
94
- # 只取面评结论和评分
95
- people-cli hire +interview-record-detail --interview-id 7171693733661327361 --fields conclusion,record_score,interviewer
96
-
97
- # 查看本人面评中的附件数量和题目作答摘要
98
- people-cli hire +interview-record-detail --interview-id 7171693733661327361 --fields attachment_count,question_answers
99
-
100
- # 用户明确要求完整结构时
101
- people-cli hire +interview-record-detail --interview-id 7171693733661327361 --view full --format json
102
- ```
103
-
104
- ## 选路提醒
105
-
106
- - 没有 `interview_id` 或本人 `interview_record_id` 时不要直接执行。
107
- - 用户问面试安排、轮次、时间时优先 `+interview-list`。
108
- - 用户问速记文本时走 `+minutes-detail`,不要把面评内容当速记。
109
- - `interview_id` 不是 `interview_record_id`。有面试 ID 时必须传 `--interview-id`,让 Shortcut 按当前用户筛选本人面评记录;不支持查看他人的面试评价或面评内容。
@@ -1,250 +0,0 @@
1
- # +interview-task-list
2
-
3
- 查询当前登录用户的面试任务,自动关联面试详情、投递(含职位)、人才信息。
4
-
5
- > **前置条件:** 先阅读 [`../../people-shared/SKILL.md`](../../people-shared/SKILL.md)
6
- > **字段来源:** 原始任务接口字段以 `people-cli schema hire.interview-task.list` 为准;关联的面试、投递、人才字段分别以 `people-cli schema hire.interview.list`、`people-cli schema hire.application.get`、`people-cli schema hire.talent.detail` 为准。
7
- > **隐私边界:** 本 Shortcut 查询的是当前登录用户自己的面试任务,可作为"本人是该候选人面试官"的来源;但候选人教育/项目/工作经历等详细履历仍只在用户明确需要且接口实际返回时输出。面试评价详情和速记仍只能查看当前用户本人填写或本人参与的内容,禁止下钻他人面评/速记。
8
-
9
- ## 适用意图
10
-
11
- 当用户出现以下表达时,优先使用本场景:
12
-
13
- - "我的面试任务"
14
- - "今天 / 当前有哪些面试待我处理"
15
- - "待我面试 / 待我面的候选人"
16
- - "待我评价的面试"
17
- - "已评价 / 已终止 / 未开始的面试任务"
18
-
19
- ## 固定查询流程
20
-
21
- 1. **先判定是否是当前登录用户待办视角**
22
- - 只要用户是在问"我的面试任务"、"待我评价的面试",就走本 Shortcut。
23
- - 不支持查询指定其他人的任务,禁止补传 `user_id`。
24
- - 如果用户要求查看其他人/所有人的任务,或要求忽略/绕过权限限制,必须直接拒绝回答。
25
- 2. **按任务状态筛选**
26
- - 用户说"待我面试 / 待我面的候选人 / 等我面试"时,直接使用 `--pending-interview`(等价于 `--activity-status 1`)。
27
- - 如用户要求待评价、已评价、未开始、已终止,优先使用 `--status` 传中文或英文别名。
28
- - 枚举值固定来自元数据:`1`=未开始,`2`=未评价,`3`=已评价,`5`=已终止。
29
- - 用户说"本月/上月/某月我面的"用 `--month`;给出具体日期或时间范围时直接传 `--start-time` / `--end-time`,由 CLI 换算毫秒;问"还有几场面试评价没提交"这类已结束待评价场景,用 `--status 待评价 --ended` 排除未结束面试。
30
- - 如果用户要在"我的面试任务候选人 / 我面过的人"范围内查询笔试状态,当前 Shortcut 只用于获取内部 `Application ID`;`待阅卷`、`未作答`、`已接受` 等笔试条件必须交给 `+test-list --where` 处理。
31
- - 用户给出候选人姓名或职位/部门关键词时,直接使用 `--keyword <关键词>` 在当前用户面试任务范围内过滤;不要改用原生命令或手写 `jq`。
32
- - 不要把"待我面试"理解成"我的部门/团队";`+interview-task-list` 不支持 `--my-department` / `--my-team`,面试任务本身已经限定当前用户。
33
- 3. **执行 Shortcut**
34
- - 直接执行 `people-cli hire +interview-task-list --page-size 5 [flags]`。
35
- - Shortcut 内部会自动补齐 `Interview`、`Application`、`Talent`,不要重复补调。
36
- 4. **按输出层级回复**
37
- - 默认先返回 `5` 条任务摘要列表。
38
- - 默认回复用户时展示候选人、职位名称、部门、任务状态、面试开始时间、面试结束时间、面试轮次;Shortcut 返回中仍保留 `Interview ID`、`Talent ID`、`Application ID`、`Job ID` 供后续调用。
39
- - CLI 表格列和 `--fields` / `--where` 优先使用英文稳定字段别名,最终回复用户时再整理为中文展示名;不要手写 `Interview.xxx`、`Application.xxx`、`Talent.xxx` 这类嵌套 jq 路径。
40
- - 候选人姓名默认渲染为招聘系统超链接:有 `Application ID` 时使用 `https://people-cn.bytedance.com/hire/talent/<Talent ID>?application_id=<Application ID>`;没有 `Application ID` 时使用 `https://people-cn.bytedance.com/hire/talent/<Talent ID>`。
41
- - 除非用户明确指定,否则不要展示任何 ID 类型字段。
42
- - 如果当前页之外还有更多数据,CLI/Shortcut 输出的 `page_token` 供 skill/agent 内部继续翻页;最终回复用户时只提示"还有更多数据",不要展示 `page_token`。
43
- - 如果用户明确指定查询后过滤条件(如 `XX天内`、`全部`、`XX状态`、`我的XXX`),使用 Shortcut 的 `--where` / `--mode` / `--limit` / `--scan-page-limit` 受控扫描;不要手动循环 `page_token`。
44
- - 不要在本 Shortcut 上过滤 `test_status` / `reply_status`;这些不是面试任务字段。需要笔试状态时,先保留 `application_id` 供 `+test-list --application-id` 使用。
45
- - `Interview` 裁剪对象可能包含 `interview_record_list` 的轻量摘要;默认回复用户时不要展开面评详情,用户需要新版面评详情时,优先使用该面试的 `interview_id` 调 `+interview-record-detail --interview-id`,由 Shortcut 筛当前用户本人填写的面评记录。
46
- - 用户明确要求完整结构时,优先使用 `--view full`(兼容旧参数 `--no-trim`)。
47
- - 用户只要少数字段时,使用 `--fields` 精确提取,禁止为了字段裁剪手写 `--jq`。
48
-
49
- ## 用法
50
-
51
- ```bash
52
- people-cli hire +interview-task-list [flags]
53
- ```
54
-
55
- ## 参数
56
-
57
- | Flag | 类型 | 必填 | 默认值 | 说明 |
58
- |------|------|------|--------|------|
59
- | `--activity-status` | int | 否 | - | 任务状态筛选:`1`=未开始,`2`=未评价,`3`=已评价,`5`=已终止 |
60
- | `--status` | string | 否 | - | 任务状态别名:`未开始`、`待评价`/`未评价`、`已评价`、`已终止`、`已结束`;与 `--activity-status` 冲突时会报错。`已结束` 等价于 `--ended` |
61
- | `--pending-interview` | bool | 否 | `false` | 待我面试/未开始面试任务,等价于 `--activity-status 1` |
62
- | `--to-interview` | bool | 否 | `false` | `--pending-interview` 别名 |
63
- | `--start-time` | string | 否 | - | 最早面试开始时间,支持毫秒时间戳或日期字符串;Shortcut 内部受控扫描 |
64
- | `--end-time` | string | 否 | - | 最晚面试开始时间,支持毫秒时间戳或日期字符串;Shortcut 内部受控扫描 |
65
- | `--time-from` / `--start-date` | string | 否 | - | `--start-time` 别名 |
66
- | `--time-to` / `--end-date` | string | 否 | - | `--end-time` 别名 |
67
- | `--month` | string | 否 | - | 面试月份,支持 `YYYY-MM`、`本月`/`current`、`上月`/`last` |
68
- | `--keyword` | string | 否 | - | 在当前用户面试任务范围内按候选人、职位、部门、阶段等关键词过滤 |
69
- | `--ended` | bool | 否 | `false` | 仅保留已结束面试,常用于"待评价但已结束" |
70
- | `--page-size` | int | 否 | `5` | skill 默认分页大小(最大 20) |
71
- | `--page-token` | string | 否 | - | 分页 token,首次查询不传 |
72
- | `--view` | enum | 否 | `summary` | 输出视图:`summary` 裁剪视图,`full` 原始字段视图 |
73
- | `--fields` | string | 否 | - | 逗号分隔字段名,如 `interview_id,application,talent` |
74
- | `--where` | string | 否 | - | 查询后过滤表达式,如 `department contains Brand` |
75
- | `--limit` | int | 否 | - | 最多返回的匹配行数,默认等于 `--page-size` |
76
- | `--scan-page-limit` | int | 否 | - | 查询后过滤最多扫描源页数 |
77
- | `--mode` | enum | 否 | `list` | `list` / `exists` / `count` / `aggregate` |
78
- | `--group-by` | string | 否 | - | `--mode aggregate` 时按哪个字段聚合 |
79
- | `--no-trim` | bool | 否 | `false` | 禁用输出裁剪,返回 API 原始完整数据 |
80
-
81
- ### 说明
82
-
83
- - 该命令**无需传入 user_id**,默认查询当前登录用户的面试任务。
84
- - 自动关联查询以下信息,**无需再单独调用对应 API**:
85
- - **Interview**:面试详情(通过 `interview.list` + interview_id 查询)
86
- - **Application**:投递详情(通过 `application.get` + `with_job` option 查询,同时返回职位信息)
87
- - **Talent**:人才详情(通过 `talent.detail` 查询)
88
-
89
- ## 标准输入
90
-
91
- 以下输入字段由 `people-cli schema hire.interview-task.list` 与当前 Shortcut flag 固定:
92
-
93
- | 输入项 | 来源 | 类型 | 说明 |
94
- |------|------|------|------|
95
- | `activity_status` | `interview-task.list` query / `--activity-status` | int | 任务状态,`1/2/3/5` |
96
- | `status` | Shortcut 扩展 / `--status` | string | 任务状态中文或英文别名,会映射为 `activity_status` |
97
- | `pending-interview` / `to-interview` | Shortcut 扩展 | bool | 待我面试语义别名,会映射为 `activity_status=1` |
98
- | `start-time` / `end-time` / `time-from` / `time-to` / `start-date` / `end-date` / `month` / `ended` | Shortcut 扩展 | string/bool | 面试开始/结束时间相关受控过滤;时间由 CLI 换算 |
99
- | `keyword` | Shortcut 扩展 | string | 当前用户任务范围内的候选人、职位、部门、阶段关键词过滤 |
100
- | `page_size` | `interview-task.list` query / `--page-size` | int | skill 默认 `5`,最大 `20` |
101
- | `page_token` | `interview-task.list` query / `--page-token` | string | 翻页 token |
102
- | `view` | Shortcut 扩展 / `--view` | enum | `summary` / `full` |
103
- | `fields` | Shortcut 扩展 / `--fields` | string | 逗号分隔输出字段 |
104
- | `where` / `mode` / `limit` / `scan-page-limit` / `group-by` | Shortcut 扩展 | string/int | 查询后过滤、计数和聚合控制 |
105
- | `no-trim` | Shortcut 扩展 | bool | 是否返回完整未裁剪结构 |
106
-
107
- > `interview-task.list` 原始接口包含 `user_id`、`user_id_type`,但本 Shortcut 已固定为"当前登录用户任务查询",调用时禁止传入。
108
- > 时间范围优先用 `--month` 或 `--start-time` / `--end-time`,也兼容 `--time-from` / `--time-to`、`--start-date` / `--end-date`。时间 flag 支持毫秒时间戳、`YYYY-MM`、`YYYY-MM-DD`、`YYYY-MM-DD HH:mm[:ss]`、`近/最近 N 天/周/月/季度/年`、`今天/today`、`昨天/yesterday`、`本月/current`、`上月/last`;不要让模型自行计算毫秒。`--where` 中时间字段使用稳定别名 `begin_time` / `end_time`;CLI 兼容 `interview_time`、`interview_start_time`。多条件优先用分号分隔,CLI 兼容英文 `AND`,但不支持 `OR`。
109
-
110
- ## 标准输出
111
-
112
- 本场景输出分两层:
113
-
114
- 1. **内部关联字段层**:来自 `interview-task.list`
115
- 2. **自动补齐层**:来自 `interview.list`、`application.get`、`talent.detail`
116
-
117
- 内部关联字段默认只供链接构造、后续查询和状态映射使用,不直接展示给用户:
118
-
119
- | 字段 | 来源 | 类型 | 说明 |
120
- |------|------|------|------|
121
- | `Interview ID` | `interview-task.list.items[].id` | string | 面试 ID |
122
- | `Job ID` | `interview-task.list.items[].job_id` | string | 职位 ID |
123
- | `Talent ID` | `interview-task.list.items[].talent_id` | string | 人才 ID |
124
- | `Application ID` | `interview-task.list.items[].application_id` | string | 投递 ID |
125
- | `Activity Status` | `interview-task.list.items[].activity_status` | int | 任务状态。枚举:1=未开始, 2=未评价, 3=已评价, 5=已终止 |
126
-
127
- ## 所需权限
128
-
129
- | Scope |
130
- |-------|
131
- | `hire:people_cli` |
132
-
133
- ## 默认回复与字段别名
134
-
135
- ### 默认展示字段
136
-
137
- 默认回复应优先整理为列表,字段固定如下:
138
-
139
- | 用户回复字段 | CLI 字段 / 稳定别名 | 说明 |
140
- |------|------|------|
141
- | 候选人 | `Candidate Name` / `Talent.basic_info.name` / `candidate` | 候选人姓名;优先使用 Shortcut summary 的 `Candidate Name`,有 `Talent ID` 时已渲染为招聘系统链接 |
142
- | 职位名称 | `Application.job.name` / `job` / `job_name` | 投递职位名称 |
143
- | 部门 | `Application.job.department.name` / `department` | 部门名称,通常取 `zh_cn` |
144
- | 任务状态 | `Activity Status` / `activity_status` | 面试任务状态 |
145
- | 面试开始时间 | `Interview.begin_time` / `begin_time` | 面试开始时间 |
146
- | 面试结束时间 | `Interview.end_time` / `end_time` | 面试结束时间 |
147
- | 面试轮次 | `Interview.round` / `round` | 面试轮次 |
148
-
149
- > Shortcut 默认保留 `Interview ID`、`Job ID`、`Talent ID`、`Application ID` 作为内部关联字段,但除非用户明确指定,不要在回复中直接展示这些 ID。若用户要求完整嵌套结构,使用 `--view full`。
150
- > 自行分组或重排面试任务表格时,必须让候选人名保留 `Candidate Name` 的 Markdown 链接;不要在最终回复里展示 ID 列。
151
-
152
- ### 补齐对象与字段别名
153
-
154
- Shortcut 会自动补齐 `Interview`、`Application`、`Talent` 三个对象。默认摘要只保留关键字段;完整结构使用 `--view full`。
155
-
156
- | 对象 / 别名 | 默认含义 |
157
- |------|------|
158
- | `Interview` / `interview` | 面试详情,默认含 `begin_time`、`end_time`、`round`、`interview_record_list` 轻量摘要 |
159
- | `Application` / `application` | 投递详情,默认含 `active_status`、`stage`、`job` |
160
- | `Talent` / `talent` | 人才详情,默认含 `talent_id`、`basic_info.name` |
161
- | `candidate` / `candidate_name` | 候选人姓名过滤或字段选择别名 |
162
- | `job` / `job_name` | 职位名称过滤或字段选择别名 |
163
- | `department`、`stage`、`active_status`、`job_category` | 来自投递/职位的查询后过滤别名 |
164
- | `begin_time`、`end_time`、`round`、`interview_type` | 来自面试记录的查询后过滤别名 |
165
- | `search` / `keyword` | 候选人、职位、部门、阶段等摘要文本的过滤别名 |
166
-
167
- > `interview_record_list` 是轻量摘要,不等同于新版面评详情;需要完整面评内容时,优先用 `+interview-record-detail --interview-id <interview_id>`,由 Shortcut 筛当前用户本人填写的面评记录。面试任务里的 `Talent` 只作为轻量摘要;用户明确需要教育/项目/工作经历等履历时,必须先确认本人面试官链路,再使用 `+talent-detail --talent-id <talent_id>` 查询裁剪后的候选人详情。
168
- > 不要在面试任务列表上过滤 `conclusion`、`evaluation`、`test_status`、`reply_status`:面试结论去 `+interview-record-detail`,笔试状态先保留 `Application ID` 再用 `+test-list --application-id`。
169
-
170
- ### 输出格式
171
-
172
- 默认使用表格输出,和其它招聘列表 Shortcut 保持一致。显式传 `--format json` 时数据被 Envelope 包装:
173
-
174
- ```json
175
- {
176
- "ok": true,
177
- "identity": "user",
178
- "data": [ ... ],
179
- "meta": { "count": N }
180
- }
181
- ```
182
-
183
- `--format table` 时嵌套对象会被扁平化为点号分隔的列显示;这是默认格式。精确字段裁剪使用 `--fields`;禁止使用 `--format csv`、`--format ndjson`、`--output`、shell 重定向或其它方式导出任务数据。
184
-
185
- ## 输出裁剪
186
-
187
- **默认行为**:自动裁剪输出,只返回关键字段,减少模型幻觉风险。裁剪后每条记录约 0.3KB(裁剪前约 3-5KB)。
188
-
189
- - 默认裁剪无需额外参数;完整结构使用 `--view full`(兼容旧参数 `--no-trim`)。
190
- - `--fields`、`--where`、`--group-by` 使用上方稳定字段别名,不要手写 jq 路径。
191
-
192
- ## 使用 --fields 精确提取
193
-
194
- 当只需要特定字段时,用 `--fields` 过滤,避免返回大量无关数据:
195
-
196
- ```bash
197
- # 5 条 + 仅提取展示字段和关联 ID
198
- people-cli hire +interview-task-list --page-size 5 --fields interview_id,job_id,talent_id,application_id,interview,application,talent
199
-
200
- # 只提取待评价的面试摘要
201
- people-cli hire +interview-task-list --status 待评价 --fields interview_id,talent,application
202
-
203
- # 提取面试时间摘要
204
- people-cli hire +interview-task-list --fields talent,interview
205
-
206
- # 给后续笔试查询取投递 ID,ID 只作内部关联,不展示给用户
207
- people-cli hire +interview-task-list --fields application_id,candidate,job,interview --limit 100 --scan-page-limit 10
208
- ```
209
-
210
- > **提示**:`--fields` 使用稳定字段别名,如 `interview_id`、`application_id`、`talent`、`interview`、`application`,不要手写 jq 路径。
211
-
212
- ## 示例
213
-
214
- ```bash
215
- # 查询当前用户面试任务摘要(默认 5 条 + 默认表格输出)
216
- people-cli hire +interview-task-list --page-size 5
217
-
218
- # 只查询待我面试/未开始的面试任务
219
- people-cli hire +interview-task-list --pending-interview
220
-
221
- # 只查询待评价的面试任务
222
- people-cli hire +interview-task-list --status 待评价
223
-
224
- # 按候选人或职位关键词在我的面试任务中查询
225
- people-cli hire +interview-task-list --keyword 蒋零零 --fields application_id,talent_id,candidate,job,interview
226
-
227
- # 查询已结束但待提交评价的面试
228
- people-cli hire +interview-task-list --status 待评价 --ended --limit 5
229
-
230
- # 查看本月我的面试数量
231
- people-cli hire +interview-task-list --month 本月 --mode count
232
-
233
- # 查看近两个月我的面试任务,时间由 CLI 换算
234
- people-cli hire +interview-task-list --start-time 近两个月 --end-time 今天 --fields application_id,candidate,job,interview
235
-
236
- # 只查询已评价的面试任务
237
- people-cli hire +interview-task-list --status 已评价
238
-
239
- # 用户明确要求更多条数时再调整分页大小
240
- people-cli hire +interview-task-list --page-size 20
241
-
242
- # 用户明确要求继续时再翻页
243
- people-cli hire +interview-task-list --page-token <token>
244
-
245
- # 获取完整未裁剪数据
246
- people-cli hire +interview-task-list --view full
247
-
248
- # 以表格格式输出
249
- people-cli hire +interview-task-list --format table
250
- ```
@@ -1,146 +0,0 @@
1
- # interview
2
-
3
- ## 这是"查面试信息"场景的核心模块,覆盖按投递或面试 ID 获取面试记录与面评信息。
4
-
5
- > **前置条件:** 先阅读 [`../../people-shared/SKILL.md`](../../people-shared/SKILL.md)
6
- > **字段来源:** 本文中的输入输出字段以 `people-cli hire +interview-list --help` 与底层 `people-cli schema hire.interview.list` 暴露的结构为准。
7
- > **强制约束:** 面试记录列表必须使用 `people-cli hire +interview-list`,禁止直接调用原生 `people-cli hire interview list`。
8
- > **下钻边界:** `+interview-list` 可用于定位面试记录,但继续查看候选人详细履历、面试速记或面试评价前,必须确认当前登录用户本人是该候选人的面试官或该面评的填写人;否则只能输出候选人名称和普通面试记录摘要,不得下钻敏感内容。
9
-
10
- ## 适用意图
11
-
12
- 当用户出现以下表达时,优先使用本场景:
13
-
14
- - "查某次投递的面试记录"
15
- - "查某个 interview_id 的面试详情"
16
- - "基于面试记录继续查速记或新版面评详情"
17
-
18
- ### 意图和命令索引
19
-
20
- | 用途 / 何时使用 | 命令 | 说明 |
21
- | ---------------- | ---------------------------------- | ------------------------------------------------------- |
22
- | 查询面试记录列表 | `people-cli hire +interview-list` | 可按 `application_id`、`interview_id`、时间范围筛选 |
23
- | 查询面试速记文本 | `people-cli hire +minutes-detail` | 需要先有 `interview_id`,详见 [`people-hire-minutes.md`](people-hire-minutes.md) |
24
- | 查询新版面评详情 | `people-cli hire +interview-record-detail` | 需要先有 `interview_record_id`,详见 [`people-hire-interview-record.md`](people-hire-interview-record.md) |
25
-
26
- ### 常见问法示例
27
-
28
- - "查这次投递的面试记录"
29
- - "看这个 `interview_id` 的面试详情"
30
- - "看这场面试的速记"
31
- - "看这条面评记录详情"
32
-
33
- ### 面试查询调用流程
34
-
35
- 1. **确认查询主键**
36
- - 有 `interview_id` 时优先按 `interview_id` 查。
37
- - 否则有 `application_id` 时按投递查对应面试列表。
38
- 2. **执行查询**
39
- - 使用 `people-cli hire +interview-list`,不要手写原生 `--params` / `--jq`。
40
- - 默认 `--page-size 5`、`--view summary`;需要特定字段时用 `--fields`。
41
- - 列表类查询默认只查当前页;如需查询后过滤、存在性判断、计数或聚合,使用 Shortcut 的 `--where` / `--mode` / `--limit` / `--scan-page-limit`。
42
- 4. **按层级输出**
43
- - 默认使用 Shortcut 裁剪视图,只取面试主信息,以及用于后续查询的 `interview_id`、`application_id` 等内部关联字段。
44
- - 先输出面试主信息(时间、轮次、阶段、状态),默认不展示 ID。
45
- - 如果当前页之外还有更多数据,CLI/Shortcut 输出的 `page_token` 供 skill/agent 内部继续翻页;最终回复用户时只提示"还有更多数据",不要展示 `page_token`。
46
- - 如果用户明确指定查询后过滤条件(如 `XX天内`、`全部`、`XX状态`、`我的XXX`),使用 Shortcut 受控扫描参数;不要手动循环 `page_token`。
47
- - `+interview-list` 的 summary 会保留 `Interview ID`、`Interview Record IDs`、`Interviewers`、`Record Status Summary` 以及提交/未提交数量,供判断每轮是否有面评;默认回复用户时不要展示这些 ID。查询本人面评详情时优先把 `Interview ID` 传给 `+interview-record-detail --interview-id`,不要手动从 `Interview Record IDs` 中挑 ID,也不要下钻他人面评内容。
48
- 5. **按需衔接新接口**
49
- - 用户要"面试速记 / 逐字稿 / 根据速记生成面评初稿"时,只有确认该 `interview_id` 属于当前登录用户本人作为面试官参与的面试,才切到 [`people-hire-minutes.md`](people-hire-minutes.md)。
50
- - 用户要"新版面试评价详情 / 面评内容 / 面试结论 / 面评打分"时,切到 [`people-hire-interview-record.md`](people-hire-interview-record.md),优先使用 `+interview-record-detail --interview-id <interview_id>`,由 Shortcut 筛当前用户本人面评。
51
-
52
- ### 不要误走
53
-
54
- - 用户问"我的待评价面试"时,不要误走 `interview.list`,必须用 `+interview-task-list`。
55
- - 用户只有职位 ID 或人才 ID 时,不要直接猜测能查到唯一面试记录;优先通过投递链路拿到 `application_id`。
56
- - 用户只要单条面试的流程上下文时,不要只给面试记录,可根据需要继续衔接 `application.get`。
57
- - 用户要速记文本时,不要用 `+interview-list` 的字段编造,应使用 `+minutes-detail`。
58
- - 用户要新版面评详情时,不要把 `interview_id` 当成 `interview_record_id`;有 `interview_id` 时传 `+interview-record-detail --interview-id <interview_id>`。
59
- - 用户要求查看他人的速记或面评,或无法确认当前用户是该面试的面试官/面评填写人时,不要继续下钻 `+minutes-detail` 或 `+interview-record-detail`。
60
-
61
- ## 标准输入
62
-
63
- 以下字段来自 `+interview-list`:
64
-
65
- | 参数 | 对应接口字段 | 类型 | 说明 |
66
- | --------------------- | ----- | ------ | ---------------------- |
67
- | `--page-size` | `page_size` | int | 默认 `5`,最大 `100` |
68
- | `--page-token` | `page_token` | string | 翻页 token |
69
- | `--application-id` | `application_id` | string | 投递 ID |
70
- | `--interview-id` | `interview_id` | string | 面试 ID |
71
- | `--start-time` | `start_time` | string | 最早开始时间,支持毫秒时间戳或日期/相对时间字符串 |
72
- | `--end-time` | `end_time` | string | 最晚开始时间,支持毫秒时间戳或日期/相对时间字符串 |
73
- | `--time-from` / `--start-date` | `start_time` | string | 最早开始时间别名,由 CLI 换算时间 |
74
- | `--time-to` / `--end-date` | `end_time` | string | 最晚开始时间别名,由 CLI 换算时间 |
75
- | `--job-level-id-type` | `job_level_id_type` | enum | `people_admin_job_level_id` / `job_level_id` |
76
- | `--user-id-type` | `user_id_type` | enum | `user_id` / `union_id` / `open_id`,默认 `open_id` |
77
- | `--view` | - | enum | `summary` 默认裁剪视图;`full` 原始字段视图 |
78
- | `--fields` | - | string | 逗号分隔字段名,如 `interview_id,begin_time,round` |
79
- | `--where` | - | string | 查询后过滤表达式 |
80
- | `--limit` | - | int | 最多返回的匹配行数,默认等于 `--page-size` |
81
- | `--scan-page-limit` | - | int | 查询后过滤最多扫描源页数 |
82
- | `--mode` | - | enum | `list` / `exists` / `count` / `aggregate` |
83
- | `--group-by` | - | string | `--mode aggregate` 时按哪个字段聚合 |
84
-
85
- ## 标准输出
86
-
87
- `+interview-list --view summary` 默认返回以下稳定字段:
88
-
89
- | 字段 | 类型 | 用途 | 说明 |
90
- | --------------------------- | ------ | ---- | --------------------------------------------------------------------- |
91
- | `id` | string | 内部关联 | 面试 ID,默认不展示 |
92
- | `application_id` | string | 内部关联 | 投递 ID,默认不展示 |
93
- | `stage_id` | string | 内部关联 | 面试关联阶段 ID,默认不展示 |
94
- | `stage` | object | 默认展示 | 阶段信息 |
95
- | `begin_time` | int | 默认展示 | 面试开始时间(ms) |
96
- | `end_time` | int | 默认展示 | 面试结束时间(ms) |
97
- | `round` | int | 默认展示 | 面试轮次 |
98
- | `interview_round_summary` | int | 默认展示 | 面试状态汇总 |
99
- | `feedback_submit_time` | int | 按需展示 | 面评提交时间 |
100
- | `interview_type` | int | 按需展示 | 面试类型 |
101
- | `interview_record_list[].id` | string | 内部关联 | 面评记录 ID,Shortcut summary 映射为 `Interview Record IDs`,默认不展示 |
102
- | `interview_record_list[].interviewer` | object | 默认摘要 | Shortcut summary 映射为 `Interviewers` |
103
- | `interview_record_list[].commit_status` | int/string | 默认摘要 / 过滤 | Shortcut summary 映射为 `Record Status Summary`、`Submitted Record Count`、`Unsubmitted Record Count` |
104
-
105
- > `+interview-list` summary 只保留面试主信息、面试官和面评提交状态摘要,不展开他人面评内容或结论;需要新版面评详情时,优先使用 `+interview-record-detail --interview-id <interview_id>`,由 Shortcut 自动筛当前用户本人的面评记录。
106
-
107
- 分页状态字段(CLI/Shortcut 需要输出给 skill/agent 内部判断和续查,默认不对用户展示 `page_token`):
108
-
109
- | 字段 | 类型 | 说明 |
110
- | -------------- | ------ | ------------ |
111
- | `has_more` | bool | 是否有下一页 |
112
- | `page_token` | string | 内部翻页 token,CLI 可见,最终回复用户时默认隐藏 |
113
-
114
- ## 所需权限
115
-
116
- | 方法 | Scope |
117
- | ------------------ | --------------------------- |
118
- | `interview.list` | `hire:people_cli` |
119
-
120
- ## 示例
121
-
122
- ```bash
123
- # 按投递 ID 查询面试记录
124
- people-cli hire +interview-list --application-id 7046315599510833452 --page-size 5
125
-
126
- # 按 interview_id 精确查询
127
- people-cli hire +interview-list --interview-id 6989202908470446380 --page-size 5
128
-
129
- # 按面试开始时间范围查询
130
- people-cli hire +interview-list --time-from 1704067200000 --time-to 1706659200000 --page-size 5
131
-
132
- # 只取 AI 需要消费的字段,避免手写 jq
133
- people-cli hire +interview-list --application-id 7046315599510833452 --fields interview_id,application_id,stage,begin_time,end_time,round
134
-
135
- # 查看每轮面试是否已有面评,不下钻他人面评内容
136
- people-cli hire +interview-list --application-id 7046315599510833452 --fields stage,round,interviewers,record_status_summary,submitted_record_count,unsubmitted_record_count
137
-
138
- # 用户明确要求完整结构时
139
- people-cli hire +interview-list --interview-id 6989202908470446380 --view full --format json
140
- ```
141
-
142
- ## 选路提醒
143
-
144
- - 查询"我的待办面试"时必须用 `+interview-task-list`,不要误用 `+interview-list`。
145
- - `+interview-list` 是记录视角,不等价于任务待办视角。
146
- - `+minutes-detail` 和 `+interview-record-detail` 是更细的下钻接口;只有拿到对应 ID 且确认属于当前登录用户本人面试链路后再调用。