@amaster.ai/pi-lark 0.1.5 → 0.1.7
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.
- package/README.md +5 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -2
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
- package/skills/lark-approval/references/lark-approval-initiate.md +2 -5
- package/skills/lark-approval/references/lark-approval-instances-initiated.md +6 -0
- package/skills/lark-approval/references/lark-approval-tasks-query.md +9 -0
- package/skills/lark-approval/references/lark-approval-tasks-rollback.md +8 -2
- package/skills/lark-apps/SKILL.md +46 -16
- package/skills/lark-apps/creative-design/agents/assets/vision-probe.png +0 -0
- package/skills/lark-apps/creative-design/agents/fork-verifier-agent.md +71 -0
- package/skills/lark-apps/creative-design/agents/vision-probe-agent.md +41 -0
- package/skills/lark-apps/creative-design/assets/index.html +27 -0
- package/skills/lark-apps/creative-design/creative-design.md +239 -0
- package/skills/lark-apps/creative-design/references/aily.md +39 -0
- package/skills/lark-apps/creative-design/references/animated-video.md +34 -0
- package/skills/lark-apps/creative-design/references/charts.md +165 -0
- package/skills/lark-apps/creative-design/references/claude.md +36 -0
- package/skills/lark-apps/creative-design/references/codex.md +32 -0
- package/skills/lark-apps/creative-design/references/data-report.md +108 -0
- package/skills/lark-apps/creative-design/references/frontend-design.md +71 -0
- package/skills/lark-apps/creative-design/references/hi-fi-design.md +32 -0
- package/skills/lark-apps/creative-design/references/interactive-prototype.md +24 -0
- package/skills/lark-apps/creative-design/references/make-a-deck.md +133 -0
- package/skills/lark-apps/creative-design/references/visual-exposure.md +82 -0
- package/skills/lark-apps/creative-design/references/wireframe.md +14 -0
- package/skills/lark-apps/creative-design/starter-components/android-frame.jsx +188 -0
- package/skills/lark-apps/creative-design/starter-components/animations.jsx +773 -0
- package/skills/lark-apps/creative-design/starter-components/browser-window.jsx +122 -0
- package/skills/lark-apps/creative-design/starter-components/deck-stage.js +2483 -0
- package/skills/lark-apps/creative-design/starter-components/design-canvas.jsx +1432 -0
- package/skills/lark-apps/creative-design/starter-components/ios-frame.jsx +270 -0
- package/skills/lark-apps/creative-design/starter-components/macos-window.jsx +197 -0
- package/skills/lark-apps/creative-design/starter-components/tweaks-panel.jsx +752 -0
- package/skills/lark-apps/references/lark-apps-access-scope-set.md +1 -1
- package/skills/lark-apps/references/lark-apps-automation.md +242 -0
- package/skills/lark-apps/references/lark-apps-cache.md +61 -0
- package/skills/lark-apps/references/lark-apps-cloud-dev.md +0 -1
- package/skills/lark-apps/references/lark-apps-create.md +1 -2
- package/skills/lark-apps/references/lark-apps-db-execute.md +186 -2
- package/skills/lark-apps/references/lark-apps-db.md +4 -4
- package/skills/lark-apps/references/lark-apps-env-pull.md +1 -1
- package/skills/lark-apps/references/lark-apps-file.md +2 -2
- package/skills/lark-apps/references/lark-apps-get.md +43 -0
- package/skills/lark-apps/references/lark-apps-git-credential.md +1 -1
- package/skills/lark-apps/references/lark-apps-html-publish.md +5 -4
- package/skills/lark-apps/references/lark-apps-init.md +2 -3
- package/skills/lark-apps/references/lark-apps-list.md +1 -1
- package/skills/lark-apps/references/lark-apps-local-dev.md +54 -11
- package/skills/lark-apps/references/lark-apps-openapi-key.md +1 -1
- package/skills/lark-apps/references/lark-apps-release-create.md +5 -3
- package/skills/lark-apps/references/lark-apps-release-get.md +3 -3
- package/skills/lark-apps/references/lark-apps-role.md +133 -0
- package/skills/lark-base/SKILL.md +26 -15
- package/skills/lark-base/references/dashboard-block-data-config.md +28 -2
- package/skills/lark-base/references/lark-base-cell-value.md +12 -7
- package/skills/lark-base/references/lark-base-dashboard-block-get-data.md +7 -7
- package/skills/lark-base/references/lark-base-dashboard.md +11 -2
- package/skills/lark-base/references/lark-base-data-query.md +20 -11
- package/skills/lark-base/references/lark-base-field-create.md +8 -2
- package/skills/lark-base/references/lark-base-field-json.md +56 -19
- package/skills/lark-base/references/lark-base-field-update.md +21 -3
- package/skills/lark-base/references/lark-base-filter-condition.md +179 -0
- package/skills/lark-base/references/lark-base-form-questions-create.md +40 -7
- package/skills/lark-base/references/lark-base-form-questions-update.md +73 -20
- package/skills/lark-base/references/lark-base-form-submit.md +16 -7
- package/skills/lark-base/references/lark-base-record-batch-create.md +12 -10
- package/skills/lark-base/references/lark-base-record-batch-update.md +11 -9
- package/skills/lark-base/references/lark-base-record-upsert.md +1 -1
- package/skills/lark-base/references/lark-base-role-guide.md +11 -0
- package/skills/lark-base/references/lark-base-view-set-filter.md +14 -138
- package/skills/lark-base/references/role-config.md +31 -5
- package/skills/lark-calendar/SKILL.md +101 -37
- package/skills/lark-calendar/references/lark-calendar-create.md +13 -43
- package/skills/lark-calendar/references/lark-calendar-recurring.md +1 -0
- package/skills/lark-calendar/references/lark-calendar-room-find.md +7 -10
- package/skills/lark-calendar/references/lark-calendar-rsvp.md +1 -5
- package/skills/lark-calendar/references/lark-calendar-schedule-clear-time.md +60 -0
- package/skills/lark-calendar/references/lark-calendar-schedule-fuzzy-time.md +88 -0
- package/skills/lark-calendar/references/lark-calendar-schedule-meeting.md +67 -210
- package/skills/lark-calendar/references/lark-calendar-suggestion.md +2 -6
- package/skills/lark-calendar/references/lark-calendar-update.md +12 -11
- package/skills/lark-contact/SKILL.md +19 -3
- package/skills/lark-contact/references/lark-contact-search-bot.md +60 -0
- package/skills/lark-doc/SKILL.md +1 -1
- package/skills/lark-doc/references/lark-doc-fetch.md +14 -4
- package/skills/lark-doc/references/lark-doc-mindnote.md +17 -2
- package/skills/lark-doc/references/lark-doc-whiteboard.md +13 -8
- package/skills/lark-doc/references/lark-doc-xml-extended-blocks.md +76 -0
- package/skills/lark-doc/references/lark-doc-xml.md +6 -4
- package/skills/lark-drive/SKILL.md +35 -43
- package/skills/lark-drive/references/lark-drive-add-comment.md +2 -4
- package/skills/lark-drive/references/lark-drive-add-reply.md +47 -0
- package/skills/lark-drive/references/lark-drive-apply-permission.md +2 -2
- package/skills/lark-drive/references/lark-drive-batch-query-comments.md +46 -0
- package/skills/lark-drive/references/lark-drive-comment-content.md +50 -0
- package/skills/lark-drive/references/lark-drive-comment-location.md +18 -12
- package/skills/lark-drive/references/lark-drive-delete-reply.md +48 -0
- package/skills/lark-drive/references/lark-drive-delete.md +35 -11
- package/skills/lark-drive/references/lark-drive-download.md +5 -1
- package/skills/lark-drive/references/lark-drive-export.md +39 -10
- package/skills/lark-drive/references/lark-drive-files-list.md +27 -2
- package/skills/lark-drive/references/lark-drive-inspect.md +2 -0
- package/skills/lark-drive/references/lark-drive-list-comments.md +82 -0
- package/skills/lark-drive/references/lark-drive-list-replies.md +54 -0
- package/skills/lark-drive/references/lark-drive-member-add.md +3 -3
- package/skills/lark-drive/references/lark-drive-member-list.md +65 -0
- package/skills/lark-drive/references/lark-drive-move.md +5 -3
- package/skills/lark-drive/references/lark-drive-permission-get-setting.md +48 -0
- package/skills/lark-drive/references/lark-drive-permission-guide.md +12 -0
- package/skills/lark-drive/references/lark-drive-preview.md +11 -1
- package/skills/lark-drive/references/lark-drive-pull.md +3 -3
- package/skills/lark-drive/references/lark-drive-push.md +33 -6
- package/skills/lark-drive/references/lark-drive-react-reply.md +51 -0
- package/skills/lark-drive/references/lark-drive-reactions.md +27 -25
- package/skills/lark-drive/references/lark-drive-resolve-comment.md +45 -0
- package/skills/lark-drive/references/lark-drive-restore-comment.md +46 -0
- package/skills/lark-drive/references/lark-drive-search.md +7 -1
- package/skills/lark-drive/references/lark-drive-secure-label.md +1 -1
- package/skills/lark-drive/references/lark-drive-status.md +12 -14
- package/skills/lark-drive/references/lark-drive-task-result.md +58 -5
- package/skills/lark-drive/references/lark-drive-update-reply.md +46 -0
- package/skills/lark-drive/references/lark-drive-upload.md +1 -0
- package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize.md +26 -20
- package/skills/lark-drive/references/lark-drive-workflow-permission-governance-commands.md +38 -8
- package/skills/lark-drive/references/lark-drive-workflow-permission-governance-outputs.md +10 -10
- package/skills/lark-drive/references/lark-drive-workflow-permission-governance.md +22 -20
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-execute.md +273 -0
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-recall.md +202 -0
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-resolve-verify.md +231 -0
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-review-plan.md +248 -0
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-setup.md +174 -0
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector.md +202 -0
- package/skills/lark-drive/references/lark-drive-workflow.md +5 -3
- package/skills/lark-event/SKILL.md +3 -1
- package/skills/lark-event/references/lark-event-application.md +38 -0
- package/skills/lark-event/references/lark-event-approval.md +170 -0
- package/skills/lark-im/SKILL.md +6 -5
- package/skills/lark-im/references/card/card-2.0-schema.md +1 -1
- package/skills/lark-im/references/card/lark-im-card-style.md +4 -4
- package/skills/lark-im/references/card/resource/icons.md +14 -0
- package/skills/lark-im/references/lark-im-flag-list.md +8 -7
- package/skills/lark-im/references/lark-im-messages-reply.md +1 -1
- package/skills/lark-im/references/lark-im-messages-send.md +1 -1
- package/skills/lark-mail/SKILL.md +12 -9
- package/skills/lark-mail/references/lark-mail-forward.md +1 -1
- package/skills/lark-mail/references/lark-mail-message-modify.md +48 -0
- package/skills/lark-mail/references/lark-mail-message-trash.md +41 -0
- package/skills/lark-mail/references/lark-mail-reply-all.md +1 -1
- package/skills/lark-mail/references/lark-mail-reply.md +1 -1
- package/skills/lark-mail/references/lark-mail-watch.md +1 -1
- package/skills/lark-markdown/SKILL.md +3 -2
- package/skills/lark-markdown/references/lark-markdown-create.md +22 -2
- package/skills/lark-minutes/SKILL.md +19 -4
- package/skills/lark-minutes/references/lark-minutes-download.md +0 -2
- package/skills/lark-minutes/references/lark-minutes-search.md +0 -2
- package/skills/lark-minutes/references/lark-minutes-speaker-replace.md +0 -2
- package/skills/lark-minutes/references/lark-minutes-summary.md +0 -2
- package/skills/lark-minutes/references/lark-minutes-todo.md +2 -4
- package/skills/lark-minutes/references/lark-minutes-update.md +0 -2
- package/skills/lark-minutes/references/lark-minutes-upload.md +10 -10
- package/skills/lark-okr/SKILL.md +71 -26
- package/skills/lark-okr/references/lark-okr-batch-create.md +19 -18
- package/skills/lark-okr/references/lark-okr-create.md +173 -0
- package/skills/lark-okr/references/lark-okr-cycle-list.md +17 -7
- package/skills/lark-okr/references/lark-okr-entities.md +1 -0
- package/skills/lark-okr/references/lark-okr-indicator-update.md +3 -1
- package/skills/lark-okr/references/lark-okr-indicators.md +61 -12
- package/skills/lark-okr/references/lark-okr-progress-list.md +21 -9
- package/skills/lark-shared/SKILL.md +26 -8
- package/skills/lark-sheets/SKILL.md +98 -29
- package/skills/lark-sheets/references/lark-sheets-batch-update.md +18 -9
- package/skills/lark-sheets/references/lark-sheets-changeset.md +105 -0
- package/skills/lark-sheets/references/lark-sheets-chart.md +4 -2
- package/skills/lark-sheets/references/lark-sheets-conditional-format.md +2 -0
- package/skills/lark-sheets/references/lark-sheets-filter-view.md +1 -1
- package/skills/lark-sheets/references/lark-sheets-float-image.md +6 -6
- package/skills/lark-sheets/references/lark-sheets-formula-translation.md +12 -3
- package/skills/lark-sheets/references/lark-sheets-formula-verify.md +77 -0
- package/skills/lark-sheets/references/lark-sheets-history.md +93 -0
- package/skills/lark-sheets/references/lark-sheets-pivot-table.md +7 -2
- package/skills/lark-sheets/references/lark-sheets-range-operations.md +44 -14
- package/skills/lark-sheets/references/lark-sheets-read-data.md +3 -3
- package/skills/lark-sheets/references/lark-sheets-sheet-structure.md +4 -4
- package/skills/lark-sheets/references/lark-sheets-visual-standards.md +4 -4
- package/skills/lark-sheets/references/lark-sheets-workbook.md +29 -4
- package/skills/lark-sheets/references/lark-sheets-write-cells.md +21 -11
- package/skills/lark-slides/SKILL.md +121 -63
- package/skills/lark-slides/references/asset-planning.md +18 -5
- package/skills/lark-slides/references/iconpark.md +3 -3
- package/skills/lark-slides/references/lark-slides-create.md +30 -3
- package/skills/lark-slides/references/lark-slides-history.md +132 -0
- package/skills/lark-slides/references/lark-slides-media-upload.md +1 -3
- package/skills/lark-slides/references/lark-slides-pptx-template-workflows.md +85 -0
- package/skills/lark-slides/references/lark-slides-replace-pages.md +1 -1
- package/skills/lark-slides/references/lark-slides-replace-slide.md +1 -4
- package/skills/lark-slides/references/lark-slides-screenshot.md +11 -8
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-create.md +5 -6
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-delete.md +5 -2
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-get.md +5 -5
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-replace.md +14 -13
- package/skills/lark-slides/references/lark-slides-xml-presentations-get.md +67 -31
- package/skills/lark-slides/references/planning-layer.md +41 -10
- package/skills/lark-slides/references/slides_chart_demo.xml +1416 -0
- package/skills/lark-slides/references/slides_xml_schema_definition.xml +499 -78
- package/skills/lark-slides/references/troubleshooting.md +5 -5
- package/skills/lark-slides/references/validation-checklist.md +65 -19
- package/skills/lark-slides/references/visual-planning.md +26 -22
- package/skills/lark-slides/references/xml-schema-quick-ref.md +285 -45
- package/skills/lark-slides/scripts/sxsd_validator.py +908 -0
- package/skills/lark-slides/scripts/xml_text_overlap_lint.py +2429 -91
- package/skills/lark-slides/scripts/xml_text_overlap_lint_test.py +3567 -70
- package/skills/lark-task/SKILL.md +8 -0
- package/skills/lark-task/references/lark-task-complete.md +6 -2
- package/skills/lark-task/references/lark-task-create.md +23 -1
- package/skills/lark-task/references/lark-task-update.md +6 -2
- package/skills/lark-vc/SKILL.md +6 -3
- package/skills/lark-vc/references/lark-vc-recording.md +0 -2
- package/skills/lark-vc/references/vc-domain-boundaries.md +9 -1
- package/skills/lark-vc-agent/SKILL.md +25 -15
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-events.md +65 -37
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-leave.md +1 -1
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-list-active.md +8 -8
- package/skills/lark-whiteboard/SKILL.md +13 -12
- package/skills/lark-whiteboard/elements/layout.md +1 -1
- package/skills/lark-whiteboard/elements/schema.md +2 -2
- package/skills/lark-whiteboard/references/{lark-whiteboard-query.md → lark-whiteboard-export.md} +15 -15
- package/skills/lark-whiteboard/references/lark-whiteboard-update.md +3 -3
- package/skills/lark-whiteboard/references/lark-whiteboard-workflow.md +12 -19
- package/skills/lark-whiteboard/routes/dsl.md +3 -3
- package/skills/lark-whiteboard/routes/mermaid.md +2 -2
- package/skills/lark-whiteboard/routes/svg-edit.md +4 -4
- package/skills/lark-whiteboard/routes/svg.md +11 -6
- package/skills/lark-whiteboard/scenes/bar-chart.md +1 -1
- package/skills/lark-whiteboard/scenes/fishbone.md +1 -1
- package/skills/lark-whiteboard/scenes/flywheel.md +1 -1
- package/skills/lark-whiteboard/scenes/line-chart.md +1 -1
- package/skills/lark-whiteboard/scenes/treemap.md +1 -1
- package/skills/lark-wiki/SKILL.md +8 -3
- package/skills/lark-wiki/references/lark-wiki-move-to-drive.md +122 -0
- package/skills/lark-wiki/references/lark-wiki-move.md +5 -3
- package/skills/lark-wiki/references/lark-wiki-node-get.md +1 -1
- package/skills/lark-wiki/references/lark-wiki-node-list.md +9 -2
- package/skills/lark-calendar/references/lark-calendar-agenda.md +0 -78
- package/skills/lark-calendar/references/lark-calendar-freebusy.md +0 -124
- package/skills/lark-calendar/references/lark-calendar-search-event.md +0 -29
- package/skills/lark-drive/references/lark-drive-comments-guide.md +0 -72
- package/skills/lark-sheets/references/lark-sheets-core-operations.md +0 -103
- package/skills/lark-slides/references/examples.md +0 -261
- package/skills/lark-slides/references/lark-slides-whiteboard.md +0 -330
- package/skills/lark-slides/references/slide-templates.md +0 -201
- package/skills/lark-slides/references/slides_demo.xml +0 -226
- package/skills/lark-slides/references/xml-format-guide.md +0 -369
|
@@ -10,23 +10,7 @@
|
|
|
10
10
|
# 批量创建 2 个 Objective,各带 2 个 KR。
|
|
11
11
|
lark-cli okr +batch-create \
|
|
12
12
|
--cycle-id 7000000000000000001 \
|
|
13
|
-
--input '[
|
|
14
|
-
{
|
|
15
|
-
"text": "提升产品用户体验",
|
|
16
|
-
"mention": ["ou_xxxxxxxx"],
|
|
17
|
-
"krs": [
|
|
18
|
-
{"text": "页面加载速度提升 50%", "mention": ["ou_yyyyyyyy"]},
|
|
19
|
-
{"text": "用户满意度达到 4.8 分"}
|
|
20
|
-
]
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
"text": "拓展新市场份额",
|
|
24
|
-
"krs": [
|
|
25
|
-
{"text": "新增 10 个城市覆盖"},
|
|
26
|
-
{"text": "市场份额提升至 25%"}
|
|
27
|
-
]
|
|
28
|
-
}
|
|
29
|
-
]' \
|
|
13
|
+
--input '[{"text":"提升产品用户体验","mention":["ou_xxxxxxxx"],"notes":"重点关注核心路径体验","krs":[{"text":"页面加载速度提升 50%","mention":["ou_yyyyyyyy"]},{"text":"用户满意度达到 4.8 分"}]},{"text":"拓展新市场份额","krs":[{"text":"新增 10 个城市覆盖"},{"text":"市场份额提升至 25%"}]}]' \
|
|
30
14
|
--as user
|
|
31
15
|
|
|
32
16
|
# 从文件读取输入
|
|
@@ -44,17 +28,22 @@ lark-cli okr +batch-create \
|
|
|
44
28
|
```
|
|
45
29
|
- mention 是可选参数,不需要使用“@”提及其他用户时不传入。
|
|
46
30
|
- 传入的 mention 参数会以 @对应用户的形式,添加在文本后。
|
|
31
|
+
- Objective 的 notes / notes_mention 是可选参数,用于创建目标备注;KR 不支持备注。
|
|
32
|
+
- Objective 的 category_id 是可选参数;也可以通过 `--category-id` 给所有未显式设置分类的 Objective 指定默认分类。
|
|
47
33
|
|
|
48
34
|
## 参数
|
|
49
35
|
|
|
50
36
|
| 参数 | 必填 | 默认值 | 说明 |
|
|
51
37
|
|------------------|----|-----------|------------------------------------------------------------|
|
|
52
38
|
| `--cycle-id` | 是 | — | OKR 周期 ID(int64 类型) |
|
|
53
|
-
| `--input` | 是 | — | JSON 数组格式的 Objective 列表。支持 `@文件路径` 从文件读取或
|
|
39
|
+
| `--input` | 是 | — | JSON 数组格式的 Objective 列表。支持 `@文件路径` 从文件读取或 `-` 从 stdin 读取。 |
|
|
40
|
+
| `--category-id` | 否 | — | 默认 Objective 分类 ID。仅用于 input 中未设置 `category_id` 的 Objective。通常不需要传入,见下方“分类提示”。 |
|
|
54
41
|
| `--user-id-type` | 否 | `open_id` | mention 中使用的用户 ID 类型:`open_id` \| `union_id` \| `user_id` |
|
|
55
42
|
| `--dry-run` | 否 | — | 预览 API 调用而不实际执行 |
|
|
56
43
|
| `--format` | 否 | `json` | 输出格式 |
|
|
57
44
|
|
|
45
|
+
> **分类提示**:当用户明确要求设置 Objective 分类,或创建 Objective 返回 `invalid parameters` 且怀疑租户强制开启分类时,可以配置 category-id 字段进行创建。先运行 `lark-cli okr categories list --as user` 查看可用分类,然后选择一个语义合适且 `enabled=true` 的分类 ID 作为 `category-id`。分类创建后可以再调整;不必因为分类选择停下等待用户确认。
|
|
46
|
+
|
|
58
47
|
## 输入格式
|
|
59
48
|
|
|
60
49
|
```json
|
|
@@ -62,6 +51,9 @@ lark-cli okr +batch-create \
|
|
|
62
51
|
{
|
|
63
52
|
"text": "Objective 内容",
|
|
64
53
|
"mention": ["ou_xxxxxxxx", "ou_yyyyyyyy"],
|
|
54
|
+
"notes": "Objective 备注",
|
|
55
|
+
"notes_mention": ["ou_xxxxxxxx"],
|
|
56
|
+
"category_id": "7249339036661170180",
|
|
65
57
|
"krs": [
|
|
66
58
|
{
|
|
67
59
|
"text": "KR 内容",
|
|
@@ -72,6 +64,15 @@ lark-cli okr +batch-create \
|
|
|
72
64
|
]
|
|
73
65
|
```
|
|
74
66
|
|
|
67
|
+
字段说明:
|
|
68
|
+
|
|
69
|
+
- `text`:Objective 或 KR 内容,必填。
|
|
70
|
+
- `mention`:追加到内容后的用户 mention,可选。
|
|
71
|
+
- `notes`:Objective 备注文本,可选,仅 Objective 支持。
|
|
72
|
+
- `notes_mention`:追加到 Objective 备注后的用户 mention,可选,仅在 `notes` 存在时有意义。
|
|
73
|
+
- `category_id`:Objective 分类 ID,可选;会覆盖命令级 `--category-id`。
|
|
74
|
+
- `krs`:当前 Objective 下要创建的 KR 列表,可选。
|
|
75
|
+
|
|
75
76
|
## 工作流程
|
|
76
77
|
|
|
77
78
|
1. 使用 `+cycle-list` 获取可用的 OKR 周期 ID
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
# okr +create
|
|
2
|
+
|
|
3
|
+
> **前置条件:** 先阅读 [`lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
|
4
|
+
|
|
5
|
+
创建单个 OKR 目标(Objective)或关键结果(Key Result)。这是单条写入场景的首选 shortcut;如果需要一次创建多个 Objective 及其 KR,可使用 [`+batch-create`](lark-okr-batch-create.md)。
|
|
6
|
+
|
|
7
|
+
## 推荐命令
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# 在指定周期下创建一个 Objective(默认 simple 风格)
|
|
11
|
+
lark-cli okr +create \
|
|
12
|
+
--level objective \
|
|
13
|
+
--cycle-id 7000000000000000001 \
|
|
14
|
+
--content '{"text":"提升北极星指标","mention":["ou_xxxxxxxx"]}' \
|
|
15
|
+
--notes '{"text":"重点关注活跃用户和转化漏斗"}' \
|
|
16
|
+
--as user
|
|
17
|
+
|
|
18
|
+
# 在已有 Objective 下创建一个 KR
|
|
19
|
+
lark-cli okr +create \
|
|
20
|
+
--level key-result \
|
|
21
|
+
--objective-id 7000000000000000002 \
|
|
22
|
+
--content '{"text":"季度留存率提升到 45%"}' \
|
|
23
|
+
--as user
|
|
24
|
+
|
|
25
|
+
# 使用 richtext 风格创建 Objective(完整 ContentBlock JSON)
|
|
26
|
+
lark-cli okr +create \
|
|
27
|
+
--level objective \
|
|
28
|
+
--cycle-id 7000000000000000001 \
|
|
29
|
+
--style richtext \
|
|
30
|
+
--content '{"blocks":[{"block_element_type":"paragraph","paragraph":{"elements":[{"paragraph_element_type":"textRun","text_run":{"text":"建立跨部门协作机制"}}]}}]}' \
|
|
31
|
+
--as user
|
|
32
|
+
|
|
33
|
+
# 预览 API 调用而不实际执行
|
|
34
|
+
lark-cli okr +create \
|
|
35
|
+
--level key-result \
|
|
36
|
+
--objective-id 7000000000000000002 \
|
|
37
|
+
--content '{"text":"完成 3 次核心流程优化"}' \
|
|
38
|
+
--dry-run \
|
|
39
|
+
--as user
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## 参数
|
|
43
|
+
|
|
44
|
+
| 参数 | 必填 | 默认值 | 说明 |
|
|
45
|
+
|------------------|----|-----------|--------------------------------------------------------------------------------------------------------------------|
|
|
46
|
+
| `--level` | 是 | — | 创建层级:`objective`(创建目标)\| `key-result`(在已有目标下创建 KR) |
|
|
47
|
+
| `--cycle-id` | 条件 | — | OKR 周期 ID(int64 类型)。当 `--level=objective` 时**必填**。 |
|
|
48
|
+
| `--objective-id` | 条件 | — | Objective ID(int64 类型)。当 `--level=key-result` 时**必填**。 |
|
|
49
|
+
| `--style` | 否 | `simple` | 内容输入风格:`simple`(半纯文本 JSON,推荐) \| `richtext`(完整 ContentBlock JSON)。请参考 [ContentBlock 格式](lark-okr-contentblock.md)。 |
|
|
50
|
+
| `--content` | 是 | — | 内容。根据 `--style` 指定格式。支持 `@文件路径` 从文件读取或 `-` 从 stdin 读取。 |
|
|
51
|
+
| `--notes` | 否 | — | Objective 备注,仅 `--level=objective` 支持。根据 `--style` 指定格式,支持 `@文件路径` 或 `-` 从 stdin 读取。 |
|
|
52
|
+
| `--category-id` | 否 | — | Objective 分类 ID,仅 `--level=objective` 支持。通常不需要传入,见下方“分类提示”。 |
|
|
53
|
+
| `--user-id-type` | 否 | `open_id` | 用户 ID 类型:`open_id` \| `union_id` \| `user_id`。影响 mention 中用户 ID 的解释方式。 |
|
|
54
|
+
| `--dry-run` | 否 | — | 预览 API 调用而不实际执行。 |
|
|
55
|
+
| `--format` | 否 | `json` | 输出格式。 |
|
|
56
|
+
|
|
57
|
+
> **分类提示**:当用户明确要求设置 Objective 分类,或创建 Objective 返回 `invalid parameters` 且怀疑租户强制开启分类时,可以配置 --category-id 参数进行创建。先运行 `lark-cli okr categories list --as user` 查看可用分类,然后选择一个语义合适且 `enabled=true` 的分类 ID 作为 `--category-id`。分类创建后可以再调整;不必因为分类选择停下等待用户确认。
|
|
58
|
+
|
|
59
|
+
## 输入格式
|
|
60
|
+
|
|
61
|
+
### `--style simple`(默认)
|
|
62
|
+
|
|
63
|
+
推荐大多数创建场景使用 `simple` 风格。`--content` 和 `--notes` 都使用 `SemiPlainContent` JSON:
|
|
64
|
+
|
|
65
|
+
```json
|
|
66
|
+
{
|
|
67
|
+
"text": "提升北极星指标",
|
|
68
|
+
"mention": ["ou_xxxxxxxx"]
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
规则:
|
|
73
|
+
|
|
74
|
+
- `text` 必填,且不能为空白字符串
|
|
75
|
+
- `mention` 可选;如果传入,数组中的每个用户 ID 都不能为空字符串
|
|
76
|
+
- `--notes` 仅适用于 Objective;创建 KR 时传 `--notes` 会报错
|
|
77
|
+
- 同一条命令只有一个 flag 可以使用 `-` 读取 stdin;如果 `--content -`,`--notes` 请使用内联 JSON 或 `@文件路径`
|
|
78
|
+
|
|
79
|
+
### `--style richtext`
|
|
80
|
+
|
|
81
|
+
当你需要精确控制段落结构、插入文档链接,或使用完整富文本块结构时,使用 `richtext` 风格:
|
|
82
|
+
|
|
83
|
+
```json
|
|
84
|
+
{
|
|
85
|
+
"blocks": [
|
|
86
|
+
{
|
|
87
|
+
"block_element_type": "paragraph",
|
|
88
|
+
"paragraph": {
|
|
89
|
+
"elements": [
|
|
90
|
+
{
|
|
91
|
+
"paragraph_element_type": "textRun",
|
|
92
|
+
"text_run": {
|
|
93
|
+
"text": "建立跨部门协作机制"
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
]
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
规则:
|
|
104
|
+
|
|
105
|
+
- `blocks` 至少需要有一个非空段落或图片块
|
|
106
|
+
- 不能传空 `blocks`,也不能传只有空段落元素的内容
|
|
107
|
+
- 更多结构说明见 [ContentBlock 富文本格式](lark-okr-contentblock.md)
|
|
108
|
+
|
|
109
|
+
## 工作流程
|
|
110
|
+
|
|
111
|
+
1. 如果要创建 Objective,先使用 `+cycle-list` 获取目标周期的 `cycle_id`。
|
|
112
|
+
2. 如果要给已有 Objective 新增 KR,先通过 `+cycle-detail` 或其他 OKR 查询命令拿到 `objective_id`。
|
|
113
|
+
3. 选择输入风格:
|
|
114
|
+
- **推荐**:`simple`,适合普通文本和 mention。
|
|
115
|
+
- 需要复杂富文本时:`richtext`。
|
|
116
|
+
4. 执行 `lark-cli okr +create ...`。
|
|
117
|
+
5. 报告结果:
|
|
118
|
+
- 创建 Objective 时返回新的 `objective_id`
|
|
119
|
+
- 创建 KR 时返回新的 `key_result_id`,并附带父 `objective_id`
|
|
120
|
+
|
|
121
|
+
## Dry-run 对应接口
|
|
122
|
+
|
|
123
|
+
- `--level=objective`:
|
|
124
|
+
- `POST /open-apis/okr/v2/cycles/:cycle_id/objectives`
|
|
125
|
+
- `--level=key-result`:
|
|
126
|
+
- `POST /open-apis/okr/v2/objectives/:objective_id/key_results`
|
|
127
|
+
|
|
128
|
+
## 输出
|
|
129
|
+
|
|
130
|
+
### 创建 Objective 成功
|
|
131
|
+
|
|
132
|
+
```json
|
|
133
|
+
{
|
|
134
|
+
"level": "objective",
|
|
135
|
+
"objective_id": "7000000000000000002"
|
|
136
|
+
}
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### 创建 KR 成功
|
|
140
|
+
|
|
141
|
+
```json
|
|
142
|
+
{
|
|
143
|
+
"level": "key-result",
|
|
144
|
+
"objective_id": "7000000000000000002",
|
|
145
|
+
"key_result_id": "7000000000000000003"
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## 常见错误与处理
|
|
150
|
+
|
|
151
|
+
- `--level=objective` 但未传 `--cycle-id`
|
|
152
|
+
- 补充有效的周期 ID
|
|
153
|
+
- `--level=key-result` 但未传 `--objective-id`
|
|
154
|
+
- 补充已有 Objective 的 ID
|
|
155
|
+
- `--content` 为空、不是合法 JSON,或内容结构为空
|
|
156
|
+
- 按 `--style` 对应格式修正输入
|
|
157
|
+
- 在 `simple` 风格中传了 `docs` 或 `images`
|
|
158
|
+
- 改用 `--style richtext`,或移除这些字段
|
|
159
|
+
|
|
160
|
+
## 何时用 +create,何时用 +batch-create
|
|
161
|
+
|
|
162
|
+
| 命令 | 适用场景 |
|
|
163
|
+
|------|----------|
|
|
164
|
+
| `+create` | 创建单个 Objective,或向已有 Objective 新增单个 KR |
|
|
165
|
+
| `+batch-create` | 一次创建多个 Objective,并可同时为每个 Objective 创建多个 KR |
|
|
166
|
+
|
|
167
|
+
## 参考
|
|
168
|
+
|
|
169
|
+
- [lark-okr](../SKILL.md) -- 所有 OKR 命令
|
|
170
|
+
- [OKR 业务实体](lark-okr-entities.md) -- Objective、KR、周期等基础概念
|
|
171
|
+
- [ContentBlock 格式](lark-okr-contentblock.md) -- content/notes 字段的另一种输入风格,支持完整富文本格式
|
|
172
|
+
- [okr +batch-create](lark-okr-batch-create.md) -- 批量创建多个 Objective / KR
|
|
173
|
+
- [lark-shared](../../lark-shared/SKILL.md) -- 认证和全局参数
|
|
@@ -2,18 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
> **前置条件:** 先阅读 [`lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
列出指定用户的一页 OKR 周期,支持外部控制翻页和可选的时间范围后置过滤。
|
|
6
6
|
|
|
7
7
|
## 推荐命令
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
#
|
|
10
|
+
# 获取用户周期第一页 (默认页大小为 100 按时间倒序排列,一般不用翻页)
|
|
11
11
|
lark-cli okr +cycle-list --user-id "ou_xxx"
|
|
12
12
|
|
|
13
|
+
# 获取下一页
|
|
14
|
+
lark-cli okr +cycle-list --user-id "ou_xxx" --page-size 100 --page-token "7000000000000000002"
|
|
15
|
+
|
|
13
16
|
# 使用特定的用户 ID 类型列出周期
|
|
14
17
|
lark-cli okr +cycle-list --user-id "xxx" --user-id-type user_id
|
|
15
18
|
|
|
16
|
-
#
|
|
19
|
+
# 列出当前返回页中与时间范围重叠的周期(例如 2025-01 到 2025-06)
|
|
17
20
|
lark-cli okr +cycle-list --user-id "ou_xxx" --time-range "2025-01--2025-06"
|
|
18
21
|
|
|
19
22
|
# 预览 API 调用而不实际执行
|
|
@@ -26,7 +29,9 @@ lark-cli okr +cycle-list --user-id "ou_xxx" --dry-run
|
|
|
26
29
|
|------------------|----|-----------|------------------------------------------------------------------|
|
|
27
30
|
| `--user-id` | 是 | — | OKR 所有者的用户 ID |
|
|
28
31
|
| `--user-id-type` | 否 | `open_id` | 用户 ID 类型:`open_id` \| `union_id` \| `user_id` |
|
|
29
|
-
| `--time-range` | 否 | — |
|
|
32
|
+
| `--time-range` | 否 | — | 后置筛选条件:先按 `--page-size`/`--page-token` 请求一页,再在本地保留与该时间范围重叠的周期。格式:`YYYY-MM--YYYY-MM`(例如 `2025-01--2025-06`)。 |
|
|
33
|
+
| `--page-size` | 否 | `100` | 每页数量,范围 `1-100`。 |
|
|
34
|
+
| `--page-token` | 否 | `""` | 上一次响应中的 `page_token`,留空表示第一页。 |
|
|
30
35
|
| `--dry-run` | 否 | — | 预览 API 调用而不实际执行。 |
|
|
31
36
|
| `--format` | 否 | `json` | 输出格式。 |
|
|
32
37
|
|
|
@@ -34,8 +39,11 @@ lark-cli okr +cycle-list --user-id "ou_xxx" --dry-run
|
|
|
34
39
|
|
|
35
40
|
1. 获取目标用户的 `open_id`(或其他 ID 类型)。如果用户说"我的 OKR 周期",先通过 `lark-cli contact +get-user` 获取当前用户的
|
|
36
41
|
ID。
|
|
37
|
-
2. 执行 `lark-cli okr +cycle-list --user-id "ou_xxx"`,可选择使用 `--time-range`。
|
|
38
|
-
3.
|
|
42
|
+
2. 执行 `lark-cli okr +cycle-list --user-id "ou_xxx" --page-size 100`,可选择使用 `--time-range`。
|
|
43
|
+
3. 如果响应中 `has_more=true`,继续用返回的 `page_token` 调用下一页。
|
|
44
|
+
4. 报告结果:每个周期的 ID、开始/结束时间和状态。
|
|
45
|
+
|
|
46
|
+
`--time-range` 是后置筛选条件,不会改变服务端分页窗口。也就是说,命令会先获取指定页,再过滤该页中的周期;如果需要完整时间范围结果,需要按 `has_more`/`page_token` 逐页拉取并合并。
|
|
39
47
|
|
|
40
48
|
## 输出
|
|
41
49
|
|
|
@@ -51,7 +59,8 @@ lark-cli okr +cycle-list --user-id "ou_xxx" --dry-run
|
|
|
51
59
|
"cycle_status": "normal"
|
|
52
60
|
}
|
|
53
61
|
],
|
|
54
|
-
"
|
|
62
|
+
"has_more": true,
|
|
63
|
+
"page_token": "7000000000000000002",
|
|
55
64
|
"current_active_cycles": [
|
|
56
65
|
{
|
|
57
66
|
"id": "1234567890123456789",
|
|
@@ -66,6 +75,7 @@ lark-cli okr +cycle-list --user-id "ou_xxx" --dry-run
|
|
|
66
75
|
在这个周期信息中,这些字段值得关注:
|
|
67
76
|
|
|
68
77
|
- `id` 是这个周期的 ID,你通常需要用它在之后使用 `okr +cycle-detail` 获取 OKR 内容详情
|
|
78
|
+
- `has_more` 和 `page_token` 用于外部控制翻页;`has_more=true` 时,用 `--page-token` 原样传入本次返回的 `page_token` 获取下一页。
|
|
69
79
|
- `start_time` `end_time` 是周期的起止时间,总是从某个月1日开始,直到此月或之后某月的最后一日结束。
|
|
70
80
|
- 在 OKR 系统中,我们只关注这个时间的年月部分,如 "2025-01-01开始,2025-06-30结束" 的周期被称作 "2025 年 1-6 月" 周期,而
|
|
71
81
|
"2025-01-01开始,2025-01-31结束" 的周期被称作 "2025 年 1 月"周期。
|
|
@@ -50,6 +50,7 @@ Category (分类): Objective 的分组标签
|
|
|
50
50
|
|
|
51
51
|
- **当前周期**: 指周期的 start_time/end_time
|
|
52
52
|
指周期的 start_time / end_time 所在的时间段与当前时间重叠的周期(即: start_time <= 当前时间 且 end_time >= 当前时间)。 注意:时间重叠是判断当前周期的首要且必须的硬性条件,绝对不能仅仅根据 cycle_status == 1 去判断。 如果有多个符合时间重叠标准的周期,再在这些包含当前时间的周期中过滤,保留周期状态为 default (0) 或 normal (1) 的周期。如果仍然有多个,则选择其中较新的一个。当用户提及“上一个周期”,“下一个周期”一类的表述时,通常是以当前周期为准计算。
|
|
53
|
+
- 如果用户没有提及,那么当前周期一般不考虑年度周期(起止时间从 01-01 至 12-31 的周期)
|
|
53
54
|
- **所有者**: 绝大多数所有者都是用户,少部分租户启用了“团队OKR”功能,所有者可能是部门。用户身份下,只能编辑所有者为当前用户的
|
|
54
55
|
OKR。
|
|
55
56
|
|
|
@@ -40,7 +40,9 @@ lark-cli okr +indicator-update \
|
|
|
40
40
|
|
|
41
41
|
1. 使用 `+cycle-list` 和 `+cycle-detail` 获取目标 ID 或 KR ID。
|
|
42
42
|
2. 如需查看当前指标值,使用 `objective.indicators list` 或 `key_result.indicators list` 查询。
|
|
43
|
-
|
|
43
|
+
若当前量化指标没有 start_value/current_value/target_value/unit 这些字段,代表当前量化指标为未设置的默认初始进度。
|
|
44
|
+
3. 执行 `+indicator-update` 指定层级、ID 和新值。
|
|
45
|
+
使用 +indicator-update 为默认初始进度设置当前值会将该量化指标配置为默认的百分比模式。若用户不希望将指标设置为百分比,请使用原生 API 详细设置,参考 [lark-okr-indicators.md](lark-okr-indicators.md)
|
|
44
46
|
4. 命令自动查询指标 ID 并更新当前值。
|
|
45
47
|
|
|
46
48
|
## 输出
|
|
@@ -40,11 +40,11 @@ lark-cli okr objective.indicators list --objective-id "<目标ID>" [flags]
|
|
|
40
40
|
```bash
|
|
41
41
|
# 获取目标的量化指标
|
|
42
42
|
lark-cli okr objective.indicators list \
|
|
43
|
-
--objective-id
|
|
43
|
+
--objective-id 7000000000000000001
|
|
44
44
|
|
|
45
45
|
# 指定用户 ID 类型
|
|
46
46
|
lark-cli okr objective.indicators list \
|
|
47
|
-
--objective-id
|
|
47
|
+
--objective-id 7000000000000000001 \
|
|
48
48
|
--user-id-type "user_id"
|
|
49
49
|
```
|
|
50
50
|
|
|
@@ -60,6 +60,63 @@ lark-cli okr objective.indicators list \
|
|
|
60
60
|
|
|
61
61
|
返回 `indicator` 字段,包含该目标的量化指标详情。
|
|
62
62
|
|
|
63
|
+
示例返回值:
|
|
64
|
+
有进度时:
|
|
65
|
+
```json
|
|
66
|
+
{
|
|
67
|
+
"ok": true,
|
|
68
|
+
"identity": "user",
|
|
69
|
+
"data": {
|
|
70
|
+
"indicator": {
|
|
71
|
+
"create_time": "1782835200000", // 创建时间
|
|
72
|
+
"current_value": 60, // 当前值
|
|
73
|
+
"current_value_calculate_type": 0, // 当前值计算方式 0(手动更新)|2(按KR计算)|3(按拆解计算)。 仅当此处为 0 时,允许使用 patch API 更新当前值
|
|
74
|
+
"entity_id": "7000000000000000001",// 指标挂载的 Objective/KR id
|
|
75
|
+
"entity_type": 2, // 指标挂载在 Objective还是KR 上 2(Objective)|3(KR)
|
|
76
|
+
"id": "7000000000000000002", // 指标本身的 ID
|
|
77
|
+
"indicator_status": 0, // 指标状态 -1(未定义)|0(正常)|1(有风险)|2(延期)
|
|
78
|
+
"owner": { // 指标归属的用户
|
|
79
|
+
"owner_type": "user",
|
|
80
|
+
"user_id": "ou_xxx"
|
|
81
|
+
},
|
|
82
|
+
"start_value": 0, // 起始值, 默认0
|
|
83
|
+
"status_calculate_type": 0, // 状态计算方式
|
|
84
|
+
"target_value": 100, // 目标值, 默认 100
|
|
85
|
+
"unit": { // 指标单位,默认是公共的百分比
|
|
86
|
+
"unit_type": 0, // 单位类型 0(公共)|1(自定义)
|
|
87
|
+
"unit_value": "PERCENT" // 单位名
|
|
88
|
+
},
|
|
89
|
+
"update_time": "1782835200000" // 更新时间
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
默认初始进度:
|
|
95
|
+
```json
|
|
96
|
+
{
|
|
97
|
+
"ok": true,
|
|
98
|
+
"identity": "user",
|
|
99
|
+
"data": {
|
|
100
|
+
"indicator": {
|
|
101
|
+
"create_time": "1782835200000",
|
|
102
|
+
"entity_id": "7000000000000000001",
|
|
103
|
+
"entity_type": 2,
|
|
104
|
+
"id": "7000000000000000002",
|
|
105
|
+
"indicator_status": -1,
|
|
106
|
+
"owner": {
|
|
107
|
+
"owner_type": "user",
|
|
108
|
+
"user_id": "ou_xxx"
|
|
109
|
+
},
|
|
110
|
+
"status_calculate_type": 0,
|
|
111
|
+
"update_time": "1782835200000"
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
默认初始进度不携带 start_value/current_value/target_value/unit 等信息,若直接设置当前值,则使用百分比作为默认单位。
|
|
118
|
+
由于默认单位为百分比,当一定要计算数值时,可以视作 0%,但是向用户汇报默认初始进度时,应当明确对应的 O/KR 未设置进度这一点,以和真正的 0% 区别开。
|
|
119
|
+
|
|
63
120
|
---
|
|
64
121
|
|
|
65
122
|
## 二、查询关键结果的量化指标
|
|
@@ -187,12 +244,7 @@ lark-cli okr indicators patch \
|
|
|
187
244
|
```bash
|
|
188
245
|
lark-cli okr indicators patch \
|
|
189
246
|
--indicator-id "ind-123" \
|
|
190
|
-
--data '{
|
|
191
|
-
"current_value": 65.0,
|
|
192
|
-
"current_value_calculate_type": 0,
|
|
193
|
-
"indicator_status": 1,
|
|
194
|
-
"status_calculate_type": 0
|
|
195
|
-
}'
|
|
247
|
+
--data '{"current_value":65.0,"current_value_calculate_type":0,"indicator_status":1,"status_calculate_type":0}'
|
|
196
248
|
```
|
|
197
249
|
|
|
198
250
|
4. **验证更新结果**
|
|
@@ -210,10 +262,7 @@ lark-cli okr key_result.indicators list --key-result-id 7652569715131075780
|
|
|
210
262
|
# 2. 更新目标值和单位
|
|
211
263
|
lark-cli okr indicators patch \
|
|
212
264
|
--indicator-id 7652569715131075781 \
|
|
213
|
-
--data '{
|
|
214
|
-
"target_value": 500,
|
|
215
|
-
"unit": {"unit_type": 0, "unit_value": "YUAN"}
|
|
216
|
-
}'
|
|
265
|
+
--data '{"target_value":500,"unit":{"unit_type":0,"unit_value":"YUAN"}}'
|
|
217
266
|
```
|
|
218
267
|
|
|
219
268
|
## 参考
|
|
@@ -2,17 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
> **前置条件:** 先阅读 [`lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
|
4
4
|
|
|
5
|
-
获取目标(Objective)或关键结果(Key Result
|
|
5
|
+
获取目标(Objective)或关键结果(Key Result)的一页进展记录列表,支持外部控制翻页。
|
|
6
6
|
|
|
7
7
|
## 推荐命令
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
#
|
|
10
|
+
# 获取目标进展记录第一页 (默认页大小为 100,一般不用翻页)
|
|
11
11
|
lark-cli okr +progress-list \
|
|
12
12
|
--target-id 1234567890123456789 \
|
|
13
13
|
--target-type objective
|
|
14
14
|
|
|
15
|
-
#
|
|
15
|
+
# 获取下一页进展记录
|
|
16
|
+
lark-cli okr +progress-list \
|
|
17
|
+
--target-id 1234567890123456789 \
|
|
18
|
+
--target-type objective \
|
|
19
|
+
--page-size 100 \
|
|
20
|
+
--page-token "7000000000000000002"
|
|
21
|
+
|
|
22
|
+
# 获取关键结果进展记录第一页
|
|
16
23
|
lark-cli okr +progress-list \
|
|
17
24
|
--target-id 9876543210987654321 \
|
|
18
25
|
--target-type key_result
|
|
@@ -26,14 +33,17 @@ lark-cli okr +progress-list \
|
|
|
26
33
|
| `--target-type` | 是 | — | 目标类型:`objective` \| `key_result` |
|
|
27
34
|
| `--user-id-type` | 否 | `open_id` | 用户 ID 类型:`open_id` \| `union_id` \| `user_id` |
|
|
28
35
|
| `--department-id-type` | 否 | `open_department_id` | 部门 ID 类型:`department_id` \| `open_department_id` |
|
|
36
|
+
| `--page-size` | 否 | `100` | 每页数量,范围 `1-100`。 |
|
|
37
|
+
| `--page-token` | 否 | `""` | 上一次响应中的 `page_token`,留空表示第一页。 |
|
|
29
38
|
| `--dry-run` | 否 | — | 预览 API 调用而不实际执行。 |
|
|
30
39
|
| `--format` | 否 | `json` | 输出格式。 |
|
|
31
40
|
|
|
32
41
|
## 工作流程
|
|
33
42
|
|
|
34
43
|
1. 使用 `+cycle-list` 和 `+cycle-detail` 获取目标或关键结果的 ID。
|
|
35
|
-
2. 执行 `lark-cli okr +progress-list --target-id "..." --target-type objective`。
|
|
36
|
-
3.
|
|
44
|
+
2. 执行 `lark-cli okr +progress-list --target-id "..." --target-type objective --page-size 100`。
|
|
45
|
+
3. 如果响应中 `has_more=true`,继续用返回的 `page_token` 调用下一页。
|
|
46
|
+
4. 获取该目标或关键结果下的进展记录列表。
|
|
37
47
|
|
|
38
48
|
## 输出
|
|
39
49
|
|
|
@@ -41,7 +51,7 @@ lark-cli okr +progress-list \
|
|
|
41
51
|
|
|
42
52
|
```json
|
|
43
53
|
{
|
|
44
|
-
"
|
|
54
|
+
"progress_list": [
|
|
45
55
|
{
|
|
46
56
|
"progress_id": "1234567890123456789",
|
|
47
57
|
"modify_time": "2025-01-15 10:30:00",
|
|
@@ -52,13 +62,15 @@ lark-cli okr +progress-list \
|
|
|
52
62
|
}
|
|
53
63
|
}
|
|
54
64
|
],
|
|
55
|
-
"
|
|
65
|
+
"has_more": true,
|
|
66
|
+
"page_token": "7000000000000000002"
|
|
56
67
|
}
|
|
57
68
|
```
|
|
58
69
|
|
|
59
70
|
其中:
|
|
60
71
|
|
|
61
|
-
- `
|
|
72
|
+
- `progress_list` — 进展记录数组
|
|
73
|
+
- `has_more` 和 `page_token` 用于外部控制翻页;`has_more=true` 时,用 `--page-token` 原样传入本次返回的 `page_token` 获取下一页。
|
|
62
74
|
- `content` 字段是 JSON 字符串,为 OKR ContentBlock 富文本格式。请参考 [lark-okr-contentblock.md](lark-okr-contentblock.md) 了解详细信息。
|
|
63
75
|
- `progress_rate.status` 返回可读字符串:`normal`(正常)、`overdue`(逾期)、`done`(已完成)。
|
|
64
76
|
|
|
@@ -66,7 +78,7 @@ lark-cli okr +progress-list \
|
|
|
66
78
|
|
|
67
79
|
| 命令 | 用途 | API 版本 |
|
|
68
80
|
|------------------|------------------------------------|----------|
|
|
69
|
-
| `+progress-list` |
|
|
81
|
+
| `+progress-list` | 分页获取某个目标/关键结果的进展记录 | v2 |
|
|
70
82
|
| `+progress-get` | 根据进展记录 ID 获取单条记录 | v1 |
|
|
71
83
|
|
|
72
84
|
`+progress-list` 返回的 `progress_list` 数组中每条记录的结构与 `+progress-get` 返回的 `progress` 结构相同。
|
|
@@ -69,7 +69,7 @@ LARKSUITE_CLI_NO_UPDATE_NOTIFIER=1 LARKSUITE_CLI_NO_SKILLS_NOTIFIER=1 lark-cli a
|
|
|
69
69
|
遇到权限相关错误时,**根据当前身份类型采取不同解决方案**。
|
|
70
70
|
|
|
71
71
|
错误响应中包含关键信息:
|
|
72
|
-
- `
|
|
72
|
+
- `missing_scopes`:列出缺失的 scope (N选1)
|
|
73
73
|
- `console_url`:飞书开发者后台的权限配置链接
|
|
74
74
|
- `hint`:建议的修复命令
|
|
75
75
|
|
|
@@ -146,6 +146,24 @@ lark-cli update
|
|
|
146
146
|
|
|
147
147
|
**重要**:始终使用 `lark-cli update` 更新,它会同时更新 CLI 和 AI Skills。
|
|
148
148
|
|
|
149
|
+
## JSON 输出契约
|
|
150
|
+
|
|
151
|
+
`--format json`(默认)下,成功与错误的信封结构不同:
|
|
152
|
+
|
|
153
|
+
成功信封写入 **stdout**(退出码 0):
|
|
154
|
+
|
|
155
|
+
```json
|
|
156
|
+
{ "ok": true, "identity": "user", "data": { "guid": "..." }, "meta": { "count": 1 } }
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
错误信封写入 **stderr**(退出码非 0):
|
|
160
|
+
|
|
161
|
+
```json
|
|
162
|
+
{ "ok": false, "identity": "user", "error": { "type": "authorization", "subtype": "missing_scope", "code": 99991679, "message": "...", "hint": "...", "missing_scopes": ["..."] } }
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**判断成功必须用 `ok == true`(或进程退出码 0),不要用 `code == 0`**:成功信封没有顶层 `code` / `msg` 字段,`code` 只出现在错误信封的 `error` 内,含义是上游 OpenAPI 的 numeric code。按 OpenAPI 老格式 `{"code": 0, "msg": "ok"}` 判断会把所有成功调用误判为失败;封装写入类命令(如 `task +create`)时尤其危险,误判会绕过幂等逻辑导致重复创建。
|
|
166
|
+
|
|
149
167
|
## 安全规则
|
|
150
168
|
|
|
151
169
|
- **禁止输出密钥**(appSecret、accessToken)到终端明文。
|
|
@@ -160,22 +178,22 @@ lark-cli 对高风险写操作(`risk: "high-risk-write"`)有强制确认门
|
|
|
160
178
|
```json
|
|
161
179
|
{
|
|
162
180
|
"ok": false,
|
|
181
|
+
"identity": "bot",
|
|
163
182
|
"error": {
|
|
164
|
-
"type": "
|
|
183
|
+
"type": "confirmation",
|
|
184
|
+
"subtype": "confirmation_required",
|
|
165
185
|
"message": "drive +delete requires confirmation",
|
|
166
186
|
"hint": "add --yes to confirm",
|
|
167
|
-
"risk":
|
|
168
|
-
|
|
169
|
-
"action": "drive +delete"
|
|
170
|
-
}
|
|
187
|
+
"risk": "high-risk-write",
|
|
188
|
+
"action": "drive +delete"
|
|
171
189
|
}
|
|
172
190
|
}
|
|
173
191
|
```
|
|
174
192
|
|
|
175
193
|
**遇到这种情况,不要当普通错误放弃。** 按以下流程处理:
|
|
176
194
|
|
|
177
|
-
1. **识别**:看到子进程 exit code = `10` 且 stderr JSON 里 `error.type == "confirmation_required"`
|
|
178
|
-
2. **向用户确认**:把 `error.risk
|
|
195
|
+
1. **识别**:看到子进程 exit code = `10` 且 stderr JSON 里 `error.type == "confirmation"`、`error.subtype == "confirmation_required"`
|
|
196
|
+
2. **向用户确认**:把 `error.action`、`error.risk` 和关键参数展示给用户,明确告知"这是高风险操作",等待用户显式同意
|
|
179
197
|
3. **用户同意** → 在你**原始 argv 的末尾追加 `--yes`** 后重试
|
|
180
198
|
4. **用户拒绝** → 终止流程,不要擅自改写参数或跳过门禁
|
|
181
199
|
|