name: article2ticktick description: 将技术周报中的文章整理为滴答清单(TickTick)待办事项,同时支持单篇文章直接添加。当用户提供周报 markdown 文档、要求将周报文章添加到滴答清单,或提及"技术周报"、"文章汇总"、"添加到滴答"等关键词时,使用此技能;当用户分享单篇文章链接并希望添加到滴答清单时,同样使用此技能。
技术文章 → 滴答清单工作流
概述
将技术周报(肘子 Swift 周刊、老司机 iOS 周报等)中推荐的文章,批量转换为 滴答清单(TickTick) 待办事项,自动完成分类标签。也支持单篇文章直接添加。
相关脚本
脚本随 Skill 一同安装,位于 ${CLAUDE_SKILL_DIR}/scripts/ 目录:
| 脚本 | 说明 |
|---|---|
add_articles.py |
主脚本:批量或单篇添加文章到 滴答清单(TickTick) |
字段映射规则
| 滴答清单(TickTick)字段 | 来源 | 处理方式 |
|---|---|---|
title |
**[文章标题](链接)** |
去除两侧 **,保留 [文章标题](链接) |
content |
所有 - bullet 行 |
拼接执行日期(yyyy-MM-dd,)+ 各行去掉 - 前缀、去掉 [[]],以 , 合并 |
list |
当前 ## 二级标题 |
直接使用;必须与滴答清单中已有列表名完全一致 |
tags |
当前 ### 三级标题 |
直接使用 |
标准文章格式(必须遵守)
收到新周报后,AI 整理输出须严格遵循以下格式:
## 二级分类(如:SwiftUI、Swift 语言、AI 辅助开发)
### 三级子分类(如:状态管理与观察、并发与异步)
**[文章标题](文章链接)**
- 使用周报原文中对于该篇文章的推荐语句
- 出自:来源名称(去掉双方括号,只写名称)
**[下一篇文章标题](链接)**
- 使用周报原文中对于该篇文章的推荐语句
- 出自:来源名称
注意事项:
- 二级标题用于 滴答清单(TickTick)的
list(清单名),必须严格使用下方「已有分类体系」表格中的现有名称,不得创建新的二级标题 - 如果某篇文章明显不属于任何已有分类,停止整理,询问用户,等用户在 滴答清单(TickTick) 中手动新增列表后再继续
- 三级标题用于 滴答清单(TickTick)的
tags(标签) - 每篇文章必须有「出自」行,注明来源周报名
- 不要在文章块之间插入
---分隔线
工作流步骤
本 Skill 有两个工作流分支,根据用户需求选择:
- 分支 A(批量周报):用户提供一整期周报,AI 整理后批量添加
- 分支 B(单篇文章):用户分享单篇文章链接,AI 判断分类后直接添加
工作流分支 A:批量周报
- [ ] 步骤 A1:接收周报内容
- [ ] 步骤 A2:AI 整理为标准格式(遇到未知分类则暂停询问)
- [ ] 步骤 A3:运行脚本添加到 滴答清单(TickTick)
- [ ] 步骤 A4:更新新的分类(如有)
步骤 A1:接收周报内容
用户提供以下任意一种形式:
- 直接粘贴周报原文(markdown 或富文本)
- 提供周报文件路径
步骤 A2:AI 整理为标准格式
使用以下 Prompt 将周报内容整理为标准格式:
请将以下周报内容整理为标准 markdown 格式,直接输出内容不要解释。
约束:
- 二级标题(##)必须从以下列表中选择,不得自行创建新标题:
SwiftUI、Swift 语言、数据与持久化、iOS 与 macOS 工程实践、开发工具与工作流、AI 辅助开发、行业思考与视野
- 如果某篇文章不属于以上任何二级分类,停止并告知我,等我说明后再继续
- 三级标题(###)优先从下方已有分类体系列表中选择,若无适合分类可自行命名,三级标题自行命名无需用户确认
- 每篇文章格式:
**[文章标题](文章链接)**
- 使用周报原文中对于该篇文章的推荐语句
- 出自:来源周报名称(不加双方括号)
- 不要在文章之间添加分隔线
--- 以下是周报内容 ---
[粘贴周报原文]
遇到未知分类时的处理流程:
- 停止整理,列出无法归类的文章及其建议分类名
- 用户在 滴答清单(TickTick) 中手动新建对应列表,并告知新分类名
- 将新分类名加入本次二级标题可用列表,继续完成整理
步骤 A3:运行脚本添加到 滴答清单(TickTick)
将步骤A2整理好的标准格式markdown通过管道直接传递给脚本:
SKILL_SCRIPTS="${CLAUDE_SKILL_DIR}/scripts"
# 先 dry-run 预览,确认解析正确
echo "[步骤A2输出的markdown内容]" | python3 "$SKILL_SCRIPTS/add_articles.py" --dry-run
# 确认无误后正式执行
echo "[步骤A2输出的markdown内容]" | python3 "$SKILL_SCRIPTS/add_articles.py" --delay 0.8
可选参数:
--dry-run:仅预览解析结果,不实际打开 TickTick--delay 0.8:调整每条任务间隔秒数(默认 0.5,若 TickTick 响应慢可适当增大)
步骤 A4:更新新的分类
如果本次执行过程中创建了新的二级和三级分类,务必将新分类名称添加到下方「已有分类体系」表格中,以供后续 AI 整理使用。
工作流分支 B:单篇文章直接添加
适用场景
用户分享单篇文章链接,希望直接添加到滴答清单(TickTick),不走周报批量流程。
- [ ] 步骤 B1:用户提供文章 URL 和标题
- [ ] 步骤 B2:推断分类(list + tags)并生成推荐语
- [ ] 步骤 B3:运行单任务命令添加到 滴答清单(TickTick)
步骤 B1:接收文章信息
用户提供:
- 文章 URL(必须)
- 文章标题(必须,若未提供则从 URL 或页面标题推断)
- 分类建议(可选,不提供则根据内容判断)
步骤 B2:推断分类并生成推荐语
- 根据文章标题/URL/主题,从「已有分类体系」中判断合适的
list(二级分类)和tags(三级分类) - 若不确定二级分类,先告知用户判断结果,确认后再继续
- 写一句简洁的推荐语(参考周报风格,20~50 字)
- 出自行写:
出自:{文章URL}
步骤 B3:运行单任务命令
SKILL_SCRIPTS="${CLAUDE_SKILL_DIR}/scripts"
# 先 dry-run 预览
python3 "$SKILL_SCRIPTS/add_articles.py" \
--task \
--title "[文章标题](https://example.com/article)" \
--list "SwiftUI" \
--tags "状态管理与观察" \
--desc "Claude 生成的推荐语句" \
--desc "出自:https://example.com/article" \
--dry-run
# 确认无误后执行(去掉 --dry-run)
python3 "$SKILL_SCRIPTS/add_articles.py" \
--task \
--title "[文章标题](https://example.com/article)" \
--list "SwiftUI" \
--tags "状态管理与观察" \
--desc "Claude 生成的推荐语句" \
--desc "出自:https://example.com/article"
说明:
--title须为[文章标题](URL)格式,保留方括号和圆括号--desc可多次传入,每次对应一条描述 bullet,用,拼接后写入 content--list必须与滴答清单现有列表名完全一致(参见下方分类表)
快速参考:已有分类体系
保持与滴答清单现有列表一致,整理时二级分类只能使用这些名称:
| 二级分类(list,= TickTick 列表名) | 常见三级分类(tags) |
|---|---|
| SwiftUI | 基础组件与 API、布局视觉与动画、状态管理与观察、导航与交互、系统集成与实战、性能与调试、应用架构 |
| Swift 语言 | 并发与异步、语言特性与底层原理、跨平台与嵌入式 |
| 数据与持久化 | SwiftData、CloudKit 与数据同步、数据库 |
| iOS 与 macOS 工程实践 | 系统能力与平台集成、App Store 与发布、资源管理、应用架构 |
| 开发工具与工作流 | 包管理器与依赖、Xcode 与项目工程、测试与调试、命令行与服务端、框架与库 |
| AI 辅助开发 | Agent 编码实践、工具与配置、端侧 AI |
| 行业思考与视野 | 硬件产品、就业市场 |
如果周报内容不属于以上分类,停止并询问用户,待用户在 TickTick 手动新增列表后再继续。