PicoBot/skills/lark-okr/references/lark-okr-cycle-list.md
ooodc a7883dbed9 refactor(todo): 重构待办事项管理逻辑及更新状态规则
- 移除 TodoItem 中的 priority、created_at 和 updated_at 字段
- 强制每个任务都必须有唯一 id,且由用户负责生成
- 修改合并模式逻辑,merge=true 下保留未提及的旧任务
- 支持已完成和已取消任务重新激活(状态改回 pending 或 in_progress)
- 禁止 in_progress 状态退回到 pending,必须标记为 completed 或 cancelled
- 优化状态转换校验,允许特定状态间合法切换
- 简化任务变更消息,移除详细的新增/更新/移除统计
- 更新文档和示例,明确 id 必须由用户生成和使用
- 修复和补充测试,增强状态转换和合并模式验证
- 调整任务时间戳生成逻辑,统一使用当前时间及索引
- 该变更提供更合理的任务状态机械及管理模式,提升稳定性和易用性
2026-06-13 09:22:33 +08:00

91 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# okr +cycle-list
> **前置条件:** 先阅读 [`lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
列出指定用户的 OKR 周期,支持可选的时间范围过滤。
## 推荐命令
```bash
# 列出用户的所有周期
lark-cli okr +cycle-list --user-id "ou_xxx"
# 使用特定的用户 ID 类型列出周期
lark-cli okr +cycle-list --user-id "xxx" --user-id-type user_id
# 列出时间范围内的周期(例如 2025-01 到 2025-06
lark-cli okr +cycle-list --user-id "ou_xxx" --time-range "2025-01--2025-06"
# 预览 API 调用而不实际执行
lark-cli okr +cycle-list --user-id "ou_xxx" --dry-run
```
## 参数
| 参数 | 必填 | 默认值 | 说明 |
|------------------|----|-----------|------------------------------------------------------------------|
| `--user-id` | 是 | — | OKR 所有者的用户 ID |
| `--user-id-type` | 否 | `open_id` | 用户 ID 类型:`open_id` \| `union_id` \| `user_id` |
| `--time-range` | 否 | — | 按时间范围过滤周期。格式:`YYYY-MM--YYYY-MM`(例如 `2025-01--2025-06`)。留空获取所有周期。 |
| `--dry-run` | 否 | — | 预览 API 调用而不实际执行。 |
| `--format` | 否 | `json` | 输出格式。 |
## 工作流程
1. 获取目标用户的 `open_id`(或其他 ID 类型)。如果用户说"我的 OKR 周期",先通过 `lark-cli contact +get-user` 获取当前用户的
ID。
2. 执行 `lark-cli okr +cycle-list --user-id "ou_xxx"`,可选择使用 `--time-range`
3. 报告结果:找到的周期数量、每个周期的 ID、开始/结束时间和状态。
## 输出
返回 JSON
```json
{
"cycles": [
{
"id": "1234567890123456789",
"create_time": "2025-01-01 00:00:00",
"update_time": "2025-01-01 00:00:00",
"tenant_cycle_id": "789",
"owner": {
"owner_type": "user",
"user_id": "ou_xxx"
},
"start_time": "2025-01-01 00:00:00",
"end_time": "2025-06-30 00:00:00",
"cycle_status": "normal",
"score": 0
}
],
"total": 1
}
```
在这个周期信息中,这些字段值得关注:
- `id` 是这个周期的 ID你通常需要用它在之后使用 `okr +cycle-detail` 获取 OKR 内容详情
- `start_time` `end_time` 是周期的起止时间总是从某个月1日开始直到此月或之后某月的最后一日结束。
- 在 OKR 系统中,我们只关注这个时间的年月部分,如 “2025-01-01开始2025-06-30结束” 的周期被称作 “2025 年 1-6 月” 周期,而
“2025-01-01开始2025-01-31结束” 的周期被称作 “2025 年 1 月”周期。
- 如果一个周期从某年1月1日开始某年12月31日结束则它是这一年的年度周期如 “2025-01-01开始2025-12-31结束” 的周期就是
“2025 年” 的年度周期
- `cycle_status` 为周期状态值,参见下文。
### 周期状态值
| 值 | 说明 |
|-----------|----------|
| `default` | 默认状态 (0) |
| `normal` | 生效 (1) |
| `invalid` | 失效 (2) |
| `hidden` | 隐藏 (3) |
在 OKR 系统中default/normal 状态下的周期当前正常生效invalid 状态下的周期已失效但通常仍然可以填写hidden 状态下的周期隐藏不可见。
## 参考
- [lark-okr](../SKILL.md) -- 所有 OKR 命令
- [lark-shared](../../lark-shared/SKILL.md) -- 认证和全局参数