首次使用此 skill 前,必须先读取 references/ONBOARDING.md 完成环境配置。
text
TASK_DIR=~/.openclaw/workspace/kinema-tasks
text
kinema-tasks/
├── active/ ← 活跃任务(Pending / In Progress / Snoozed)
├── archived/ ← 终结任务(Done / Cancelled)
└── snapshots/ ← 每日快照,按日期保存 YYYY-MM-DD.md
TASK-00001 → TASK-00002 → ...scripts/next-id.sh 获取下一个可用序号active/ 和 archived/ 共享同一序号空间每个任务一个独立 Markdown 文件: TASK-XXXXX.md
markdown
# TASK-00001: {标题}
## Metadata
| 字段 | 值 |
|------|-----|
| 状态 | Pending |
| 优先级 | urgent |
| 领域 | OpenClaw生态 |
| 截止日期 | 2026-04-10 |
| 创建时间 | 2026-04-07 |
| 最后更新 | 2026-04-07 |
## 描述
{任务的详细描述,自由格式纯文本}
## Changelog
| 时间 | 变更 |
|------|------|
| 2026-04-07 | 创建任务,状态: Pending |
字段必填说明状态是Pending / In Progress / Done / Snoozed / Cancelled优先级是urgent / normal / low领域是预设: OpenClaw生态 / 其他项目 / 生活,可扩展截止日期否YYYY-MM-DD,无截止日期填 —创建时间是YYYY-MM-DD最后更新是YYYY-MM-DD,每次变更时更新描述否自由格式纯文本Changelog是按时间正序追加,不修改已有记录
text
┌──────────┐
│ Pending │
└────┬─────┘
│ 开始执行
▼
┌──────────────┐ 完成(需用户确认)
│ In Progress │────────→ Done → archived/
└──────┬───────┘
│ 暂停
▼
┌──────────┐
│ Snoozed │
└──────────┘
任意状态 ──→ Cancelled(需用户确认)→ archived/
变更触发方式需要确认Pending → In Progress用户指令否In Progress → Pending用户指令否↔ Snoozed用户指令否→ DoneAgent 主动或用户指令是→ Cancelled用户指令**是(二次确认)**Done / Cancelled状态变更后自动移入 archived/
触发:用户描述新任务
流程:
scripts/create-task.sh 创建文件text
用户: "ClawHub publish 命令在遇到同名版本时报错没有清晰提示"
Agent: "收到,确认几个信息:
1. 优先级?urgent / normal / low
2. 属于哪个领域?OpenClaw生态 / 其他项目 / 生活
3. 截止日期?
4. 补充描述?还是就按你说的来?"
触发:用户明确指令
流程:
.md 文件scripts/archive-task.sh 移入 archived/text
用户: "TASK-00003 标记为 In Progress"
用户: "TASK-00001 的截止日期改到 4月20日"
触发:用户指令涉及多个任务
流程:
text
用户: "把所有 normal 的任务截止日期都推迟一天"
Agent: "以下任务将被修改:
- TASK-00002(截止 04/10 → 04/11)
- TASK-00005(截止 04/20 → 04/21)
确认执行?"
触发:用户明确说"取消"或"删除"某个任务
流程:
Cancelled,Changelog 追加记录,移入 archived/触发条件:
流程:
archived/北京时间 09:00(UTC 01:00),每天一次
text
📋 KinemaTasks Daily Report — {M月D日}
{2-3句话状况摘要,由模型根据下方 section 内容生成,非固定模板}
Status: ▶ in_progress ○ pending ✓ done
● URGENT ────────────────────────────────────────────────────────────
▶ TASK-XXXXX Apr 09 2d left 标题 #领域
○ TASK-XXXXX Apr 10 3d left 标题 #领域
● NORMAL ────────────────────────────────────────────────────────────
○ TASK-XXXXX Apr 11 4d left 标题 #领域
✓ TASK-XXXXX Apr 06 done 标题 #领域
● LOW ────────────────────────────────────────────────────────────────
○ TASK-XXXXX — 标题 #领域
● SNOOZED ────────────────────────────────────────────────────────────
○ TASK-XXXXX Apr 12 5d left 标题 #领域
● EXPIRED ────────────────────────────────────────────────────────────
○ TASK-XXXXX Apr 01 6d overdue 标题 #领域
───────────────────────────────────────────────────────────────────────
● RECENTLY DONE ───────────────────────────────────────────────────────
✓ TASK-XXXXX Apr 06 done 标题 #领域
───────────────────────────────────────────────────────────────────────
新增 (N)
TASK-XXXXX 标题 | 优先级 | 领域
状态变更 (N)
TASK-XXXXX 旧状态 → 新状态
字段变更 (N)
TASK-XXXXX 字段 旧值 → 新值
取消 (N)
TASK-XXXXX 标题
符号状态▶In Progress○Pending / Snoozed✓Done
每行格式: {符号} TASK-XXXXX {日期} {时间提示} {标题} #{领域}
Apr 09 格式,无截止日期显示 —Nd left / due today / Nd overdue / done(仅已完成任务)/ 无(无截止日期)#领域 格式最近完成的 Done 任务单独列出在「RECENTLY DONE」section,最近 5 条,按完成时间倒序,Cancelled 不展示。
报告有两种触发方式:
方式触发者执行者说明定时推送Cron(每天 09:00/09:01/09:02 BJT)Isolated session agentcron 依次执行归档→报告→快照,推送结果手动查询用户在对话中询问当前 session agentAgent 直接在对话中执行,不走 cron
report.sh 生成结构化内容, 由模型撰写 2-3 句摘要,组装完整报告并推送snapshot.sh 写入当日快照触发:用户输入 /mytask、询问"看看任务"、"任务列表"、"任务报告"等
active/ 和 archived/ 中所有任务文件
/mytask可直接触发手动查询,无需额外参数。
report.sh输出的是不含摘要的结构化部分(当前任务状况 + 昨日变动)。摘要由 Agent 模型根据report.sh的输出内容自行撰写。
对比 最近一次快照 与当前 active/ 状态:
变动类型判断依据新增任务 ID 在上次快照中不存在状态变更状态字段值不同(Cancelled 单独归入"取消")字段变更优先级 / 领域 / 截止日期字段值不同取消上次快照中存在、当前 archived/ 中状态为 Cancelled
无上次快照 → 跳过 diff 部分,只输出当日任务状况 无变动 → diff 部分显示"无变动"
Section包含排除排序● URGENT优先级 = urgent,未过期Snoozed 状态剩余时间升序,无截止日期排末尾● NORMAL优先级 = normal,未过期Snoozed 状态同上● LOW优先级 = low,未过期Snoozed 状态同上● SNOOZED状态 = Snoozed(无论是否过期)无剩余时间升序,无截止日期排末尾● EXPIREDPending/InProgress + 已过期Snoozed 状态过期天数降序(过期最久排前)● RECENTLY DONEarchived/ 中最近 5 条 Done 任务Cancelled完成时间倒序
最近完成的 Done 任务单独列出在「RECENTLY DONE」section,最近 5 条,按完成时间倒序,Cancelled 不展示。
时间提示格式:
Nd left(如 2d left)due todayNd overdue(不再追加 ⚠️)done核心规则:Snoozed 状态优先,即使过期也不出现在「EXPIRED」中。
markdown
# Snapshot — {YYYY-MM-DD}
> 生成时间:{YYYY-MM-DD} 09:00 BJT
## 任务列表
| 任务 | 标题 | 状态 | 优先级 | 领域 | 截止日期 |
|------|------|------|--------|------|---------|
| TASK-XXXXX | 标题 | 状态 | 优先级 | 领域 | 截止日期 |
## 摘要
共 N 个活跃任务 | N In Progress · N Pending · N Snoozed
快照文件由 cron 写入,不应手动修改。
任务时间(BJT)Cron Name说明归档检查09:00kinema-tasks-archive-check扫描 active/ 中 Done/Cancelled 文件,更新 Changelog 并移入 archived/每日早报09:01kinema-tasks-daily-report读取最近快照 + 当前 active 生成 diff + 报告,推送到对话写入快照09:02kinema-tasks-write-snapshot扫描 active/ 生成快照写入 snapshots/YYYY-MM-DD.md
三个 cron 使用
--session isolated+--channel+--to+--announce,配置步骤详见 references/ONBOARDING.md Step 2(确定推送通道)和 Step 4(创建 cron 任务)。 严格按顺序执行:归档检查 → 早报推送 → 写入快照
所有脚本位于 scripts/ 目录,通过 TASK_DIR 环境变量控制路径,默认 ~/.openclaw/workspace/kinema-tasks。
脚本用途next-id.sh获取下一个可用任务序号create-task.sh创建任务文件(模板填充)archive-task.sh将任务移入 archived/snapshot.sh生成并写入当日快照report.sh生成每日报告(输出到 stdout)
领域说明OpenClaw生态Skill 开发、生态调研、社区贡献其他项目非 OpenClaw 的技术项目生活非技术类事务
可自由扩展,创建任务时由用户指定或 Agent 提议。