Skill: tangruilin/todo-manage (version 1.0.0)

--- name: todo-manager description: | 待办事项管理器。触发场景： (1) 用户提到 "待办"、"TODO"、"计划事项"、"任务" (2) 用户说 "帮我增加/新增/创建一个待办" (3) 用户说 "我有什么待办"、"查看待办"、"待办列表" (4) 用户说 "完成 xxx"、"开始 xxx"、"删除 xxx" (5) 用户说 "标记 xxx 为进行中/已完成" --- # 待办事项管理器 简洁的个人待办管理系统，支持状态流转、GitHub issue 关联和路径追踪。 ## 核心规则 - **三状态**：未开始 → 进行中 → 已完成 - **三文件**：每种状态一个文件，元数据单独存储 - **个人使用**：不支持多人绑定 - **询问式录入**：GitHub issue 和路径通过询问获得 ## 状态流转 ``` 未开始 (pending) → 进行中 (in_progress) → 已完成 (completed) ↓ ↓ ↓ todos_pending.json todos_in_progress.json todos_completed.json ``` ## 工作流程 ### 创建待办 用户说："新增待办 xxx" 或 "TODO: xxx" 1. 记录内容 + 创建时间 2. **询问**：是否关联 GitHub issue？ - 用户回答链接 → 记录 - 用户回答"不需要" → 跳过 3. **询问**：关联哪些路径？（可多选） - 用户提供路径 - 如果是 git 项目 → **询问分支** 4. 写入 `todos_pending.json` 5. 更新 `todos_meta.json` ### 开始待办 用户说："开始 xxx" 或 "把 xxx 标记为进行中" 1. 从 `todos_pending.json` 找到待办 2. 移动到 `todos_in_progress.json` 3. 更新元数据 ### 完成待办 用户说："完成 xxx" 或 "把 xxx 标记为已完成" 1. 从当前状态文件找到待办 2. 移动到 `todos_completed.json` 3. 记录 `completedAt` 时间 4. 更新元数据 ### 查询待办 用户说："我有什么待办" 或 "查看待办" 1. 读取三个文件 2. 按状态分组展示 3. **显示全局序号**：用 1️⃣ 2️⃣ 3️⃣ 标记，方便用户说"开始 2"、"完成 4" 4. 显示元数据统计 ### 删除待办 用户说："删除 xxx" 1. 从当前文件找到并删除 2. 更新元数据 ## 存储位置 所有文件存放在 workspace 目录： ``` workspace/ ├── todos_meta.json # 元数据 ├── todos_pending.json # 未开始 ├── todos_in_progress.json # 进行中 └── todos_completed.json # 已完成 ``` ## 数据结构 详见 [references/data-schema.md](references/data-schema.md) ## 输出格式示例 详见 [references/examples.md](references/examples.md) ## 注意事项 - 匹配待办时使用**模糊匹配**（内容关键词） - 路径可多选，git 项目必须包含分支 - GitHub issue 为完整链接格式 - 状态变更时自动更新 `todos_meta.json`

path: references/examples.md
content: # 使用示例

## 创建待办

**用户**：新增待办 完成项目文档

**助手**：
1. 创建待办「完成项目文档」
2. 是否关联 GitHub issue？请提供链接，或回复"不需要"。

**用户**：https://github.com/owner/repo/issues/123

**助手**：
已关联 issue。是否关联路径？可提供多个路径，回复"完成"结束。

**用户**：/Users/reilly/project-a

**助手**：
检测到 git 项目。当前分支：main。使用此分支还是指定其他？

**用户**：就用 main

**助手**：
已添加路径 `/Users/reilly/project-a` (分支: main)。继续添加路径，或回复"完成"结束。

**用户**：完成

**助手**：
```
✅ 待办已创建

📋 完成项目文档
   创建时间: 2026-04-04 21:00
   状态: 未开始
   GitHub: owner/repo#123
   路径: /Users/reilly/project-a (main)
```

---

## 查看待办

**用户**：我有什么待办？

**助手**：
```
📋 待办事项 (共 7 项)

⏳ 未开始 (3)
1️⃣ 完成项目文档
   🔗 owner/repo#123 | 📁 /project-a (main) | 📅 04-01

2️⃣ 学习 Rust 异步编程
   📁 /learning | 📅 04-02

3️⃣ 整理博客文章
   📅 04-03

🔄 进行中 (2)
4️⃣ 阅读 LevelDB 源码
   📁 /CXX/leveldb (main) | 📅 03-28

5️⃣ 编写单元测试
   📁 /project-a (feature/test) | 📅 03-30

✅ 已完成 (2)
6️⃣ 配置开发环境
   📅 完成 04-01

7️⃣ 完成需求文档
   🔗 owner/repo#100 | 📁 /project-a | 📅 完成 04-03
```

**注意**：
- 序号全局唯一，方便用户说"开始 2"、"完成 4"
- 显示格式简洁，重点信息一目了然

---

## 状态变更

**用户**：开始完成项目文档

**助手**：
```
🔄 状态已更新

「完成项目文档」
未开始 → 进行中
```

**用户**：完成项目文档

**助手**：
```
✅ 待办已完成

「完成项目文档」
进行中 → 已完成
完成时间: 2026-04-04 21:30
```

---

## 删除待办

**用户**：删除学习 Rust

**助手**：
```
🗑️ 已删除

「学习 Rust 异步编程」
```

---

## 统计查询

**用户**：待办统计

**助手**：
```
📊 待办统计

| 状态 | 数量 | 占比 |
|------|------|------|
| ⏳ 未开始 | 3 | 43% |
| 🔄 进行中 | 2 | 29% |
| ✅ 已完成 | 2 | 29% |
| **总计** | **7** | 100% |

本周完成: 2 项
```

path: references/data-schema.md
content: # 数据结构定义

## todos_meta.json

元数据文件，记录统计信息：

```json
{
  "pending": 5,
  "in_progress": 2,
  "completed": 12,
  "lastUpdated": "2026-04-04T21:06:00Z"
}
```

| 字段 | 类型 | 说明 |
|------|------|------|
| pending | number | 未开始数量 |
| in_progress | number | 进行中数量 |
| completed | number | 已完成数量 |
| lastUpdated | string | 最后更新时间 (ISO 8601) |

---

## 待办项结构

每个待办文件（`todos_pending.json`、`todos_in_progress.json`、`todos_completed.json`）都是数组：

```json
[
  {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "content": "完成项目文档",
    "createdAt": "2026-04-04T21:00:00Z",
    "status": "pending",
    "githubIssue": "https://github.com/owner/repo/issues/123",
    "paths": [
      {
        "path": "/Users/reilly/project-a",
        "branch": "main"
      },
      {
        "path": "/Users/reilly/docs",
        "branch": null
      }
    ],
    "completedAt": null
  }
]
```

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id | string | ✅ | UUID v4 |
| content | string | ✅ | 待办内容 |
| createdAt | string | ✅ | 创建时间 (ISO 8601) |
| status | string | ✅ | pending / in_progress / completed |
| githubIssue | string | ❌ | GitHub issue 完整链接 |
| paths | array | ❌ | 关联路径列表 |
| paths[].path | string | ✅ | 文件系统路径 |
| paths[].branch | string | ❌ | Git 分支名（非 git 项目为 null） |
| completedAt | string | ❌ | 完成时间 (ISO 8601)，仅在 completed 时有值 |

---

## 状态映射

| 状态 | 英文 | 文件 |
|------|------|------|
| 未开始 | `pending` | todos_pending.json |
| 进行中 | `in_progress` | todos_in_progress.json |
| 已完成 | `completed` | todos_completed.json |

---

## 初始化

首次使用时创建空文件：

```json
// todos_meta.json
{
  "pending": 0,
  "in_progress": 0,
  "completed": 0,
  "lastUpdated": null
}

// todos_pending.json
[]

// todos_in_progress.json
[]

// todos_completed.json
[]
```

Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)