Files
yixiong-claude-marketplace/plugins/obsidian/skills/obsidian-tasks/SKILL.md
T
SkyJourneyandClaude Sonnet 4.6 1e35ee4d9f feat: 新增 obsidian 插件族(9 个技能)
- 新增 plugins/obsidian 插件目录,含 9 个 obsidian-* 技能
- 核心技能重构:去除 README.md 分散路由,合并 vault 自动检测
  SOP(.obsidian/ 目录置信度表 + 标准进入动作)到 SKILL.md
- 所有技能 description 精简重写:触发信号 + 边界 + .obsidian/
  联动激活信号,字数从 300+ 压缩至 220-250
- 更新 marketplace.json 追加 obsidian 插件条目

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-01 13:20:31 +08:00

7.4 KiB
Raw Blame History

name, description
name description
obsidian-tasks 管理 Obsidian vault 中基于 Markdown 复选框(`- [ ]`/`- [x]`)的任务清单与 GTD 工作流:跨文件列出/筛选任务、切换单条任务状态、项目进度统计、收集-处理-执行流程。触发词:todo、待办、任务清单、完成任务、GTD、任务状态。不用于 Linear/飞书任务(linear/lark-task),不用于 frontmatter status 字段(obsidian-meta)。检测到 .obsidian/ 时与核心技能同步激活。

Obsidian Tasks · 任务清单管理

基于 Markdown 复选框语法 - [ ] / - [x] 的任务管理子集。每个任务 = 笔记某一行。适合 GTDGetting Things Done)与 Zettelkasten 流程化任务。


何时使用

  • 列出 vault 中所有任务(跨文件)
  • 筛选未完成todo)或已完成done)的任务
  • 状态字符筛选(- [ ] 待办、- [x] 完成、- [/] 进行中、- [?] 存疑等)
  • 切换单个任务状态(ref = path:line
  • 配合每日笔记做 GTD 收集/回顾流程

不用于

  • Linear issue → linear 技能
  • 飞书任务 → lark-task 技能
  • Frontmatter 级别的 status: doneobsidian-meta(那是笔记级状态,不是任务级)
  • 任务的视觉化看板 → obsidian-bases + obsidian-tasks

命令速查

列出任务

obsidian tasks                          # vault 所有任务(text 默认)
obsidian tasks todo                     # 只列未完成
obsidian tasks done                     # 只列已完成
obsidian tasks verbose                  # 按文件分组,含行号
obsidian tasks format=json              # JSON 输出(agent 友好)
obsidian tasks total                    # 仅返回任务总数

obsidian tasks file="项目Alpha"         # 某文件的任务
obsidian tasks path="10-Projects/alpha/README.md"
obsidian tasks active                   # 当前激活文件的任务
obsidian tasks daily                    # 今天每日笔记的任务

obsidian tasks status="/"               # 按自定义状态字符筛选(进行中)
obsidian tasks status="?"               # 存疑
obsidian tasks status="!"               # 重要
obsidian tasks status="-"               # 取消

操作单个任务

# 方式 1:用 refpath:line
obsidian task ref="10-Projects/alpha/README.md:42" toggle
obsidian task ref="10-Projects/alpha/README.md:42" done
obsidian task ref="10-Projects/alpha/README.md:42" todo
obsidian task ref="10-Projects/alpha/README.md:42" status="/"

# 方式 2:用 file + line
obsidian task file="项目Alpha" line=42 done

# 方式 3:操作每日笔记
obsidian task daily line=7 toggle

Task Emoji Shorthand 约定(社区标准)

Obsidian Tasks 插件广泛使用的状态字符:

字符 含义 渲染
待办 - [ ]
x 已完成 - [x]
/ 进行中 - [/]
? 存疑/需澄清 - [?]
! 重要/关键 - [!]
- 已取消 - [-]
> 已转发/委派 - [>]
< 已调度(计划中) - [<]

CLI 的 status="<char>" 参数支持这些自定义字符。


AI Agent 最佳实践

场景 1 · 每日任务收集(GTD 收集阶段)

每天早晨,扫描所有来源把任务汇总到当天每日笔记:

# 1. 收集昨天未完成的任务
obsidian tasks todo format=json > /tmp/open-tasks.json

# 2. 提取 vault 中所有 "TODO:" "FIXME:" "XXX:" 标记(这些不是正式 task)
obsidian search query="TODO:" limit=50 format=json
obsidian search query="FIXME:" limit=50 format=json

# 3. 由 agent 分类后,写入今天的每日笔记(见 obsidian-daily 技能)
obsidian daily:append content="\n## 今日任务\n- [ ] 处理 TODO: ...\n- [ ] 继续昨日未完成: ..."

场景 2 · 周回顾(Weekly Review

GTD 的核心仪式,每周一次:

# 1. 本周已完成(展示成就)
obsidian tasks done verbose format=json > /tmp/done-this-week.json

# 2. 未完成且超期 7+ 天的任务(僵尸任务,需要决策)
obsidian tasks todo verbose format=json > /tmp/stale-tasks.json

# 3. 由 agent 生成周报
obsidian create path="99-Log/weekly-$(date +%Y-W%V).md" content="# 周回顾\n..."

场景 3 · 项目进度检查

# 某项目的完成度
obsidian tasks path="10-Projects/alpha/README.md" total          # 总数
obsidian tasks path="10-Projects/alpha/README.md" done total     # 已完成数

# 计算百分比后写回 frontmatter(配合 obsidian-meta
# progress = done / total * 100
obsidian property:set name=progress value=65 type=number file="项目Alpha"

场景 4 · AI 生成任务的注入规范

当 AI agent 为用户拆解任务时,输出格式应遵循:

## AI 拆解任务 · 2026-04-09

来源:用户需求"重构认证模块"
拆解方式:按 PR 颗粒度,每个任务 < 2h

- [ ] 📖 阅读现有认证中间件代码
- [ ] 🧪 补充现有逻辑的单元测试(无则写)
- [ ] ✂️ 抽取 Token 验证为独立函数
- [/] 🔧 引入 JWT 库替换自研实现
- [ ] 📝 更新 API 文档
- [ ] ✅ 回归测试

约定

  • Emoji 前缀标注任务类型(📖 阅读 / 🧪 测试 / ✂️ 重构 / 🔧 开发 / 📝 文档 / 验证)
  • /(进行中)的任务至多 1 个(WIP 限制)
  • 每个任务自描述,不依赖上下文才能理解

场景 5 · 跨笔记任务聚合视图

# 把所有 `50-Zettel/` 下的待办聚合到一个 MOC 笔记
obsidian tasks path="50-Zettel" todo verbose format=json > /tmp/zettel-tasks.json

# 写入 MOC
obsidian create path="60-MOC/open-research-questions.md" content="# 待解决的研究问题\n..."

Bash 脚本范式:完整的 Daily Standup

#!/bin/bash
# 每日站会助手:生成今日状态

TODAY=$(date +%Y-%m-%d)
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d 2>/dev/null || date -v -1d +%Y-%m-%d)

echo "# Daily Standup · ${TODAY}"
echo ""
echo "## ✅ 昨日完成"
obsidian tasks done verbose format=json | \
  jq -r '.[] | select(.completed >= "'${YESTERDAY}'") | "- \(.text) [\(.file):\(.line)]"'

echo ""
echo "## 🔄 今日计划"
obsidian tasks todo verbose format=json | \
  jq -r '.[] | "- [ ] \(.text) [\(.file):\(.line)]"' | head -10

echo ""
echo "## 🚧 进行中"
obsidian tasks status="/" verbose format=json | \
  jq -r '.[] | "- [/] \(.text) [\(.file):\(.line)]"'

与其他技能的协作

场景 链路
每日任务注入 obsidian-tasks → obsidian-dailydaily:append
项目进度同步 obsidian-tasks(统计)→ obsidian-metaproperty:set progress
任务可视化 obsidian-tasks(写入)→ obsidian-bases(视图展示)
GTD 周回顾工作流 obsidian-workflow-pkm(编排)
Linear 双向同步 obsidian-tasks + linear

常见陷阱

现象 原因 对策
task toggle 不生效 line 数字错了 tasks verbose 先确认行号
缩进子任务被识别为独立任务 Markdown 语法正常 接受:Obsidian 视子任务为独立
自定义 status 字符不显示 主题不支持 切换支持 Tasks Emoji 的主题
tasks 命令返回空 路径/文件名错 obsidian files 先确认
每日任务重复出现 没有迁移机制 在每日模板里写"迁移昨日未完成"逻辑
AI 滥加任务导致 WIP 爆炸 没设置上限 约定:进行中(/)至多 1~3 个