--- 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 整理输出须严格遵循以下格式: ```markdown ## 二级分类(如: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 辅助开发、行业思考与视野 - 如果某篇文章不属于以上任何二级分类,停止并告知我,等我说明后再继续 - 三级标题(###)优先从下方已有分类体系列表中选择,若无适合分类可自行命名,三级标题自行命名无需用户确认 - 每篇文章格式: **[文章标题](文章链接)** - 使用周报原文中对于该篇文章的推荐语句 - 出自:来源周报名称(不加双方括号) - 不要在文章之间添加分隔线 --- 以下是周报内容 --- [粘贴周报原文] ``` **遇到未知分类时的处理流程:** 1. 停止整理,列出无法归类的文章及其建议分类名 2. 用户在 滴答清单(TickTick) 中手动新建对应列表,并告知新分类名 3. 将新分类名加入本次二级标题可用列表,继续完成整理 --- ### 步骤 A3:运行脚本添加到 滴答清单(TickTick) 将步骤A2整理好的标准格式markdown通过管道直接传递给脚本: ```bash 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:推断分类并生成推荐语 1. 根据文章标题/URL/主题,从「已有分类体系」中判断合适的 `list`(二级分类)和 `tags`(三级分类) 2. 若不确定二级分类,先告知用户判断结果,确认后再继续 3. 写一句简洁的推荐语(参考周报风格,20~50 字) 4. 出自行写:`出自:{文章URL}` --- ### 步骤 B3:运行单任务命令 ```bash 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 手动新增列表后再继续。