# Add Task

> 根据用户描述创建任务条目，自动判断归属（已有项目、新建项目、跨项目复制），插入到合适位置。当用户说"添加任务""新建任务""加一个任务""创建任务""我要学""我要做"时触发。

- Skill: `rainzzzyyy/add-task` (Agent Skill)
- Install (CLI): `npx skillmds@latest add rainzzzyyy/add-task`
- Raw SKILL.md: https://api.skillmd.com/api/skills/rainzzzyyy/add-task/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: RainZZZYYY (https://skillmd.com/u/rainzzzyyy)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/rainzzzyyy/add-task

---


# 任务创建助手

根据用户的一句话描述，将任务结构化地写入 `/mnt/e/StudyNotes/10_项目/` 下的对应位置。

## 仓库中的项目类型

扫描 `10_项目/` 下的项目，区分两类：

| 类型 | 特征 | 判断标志 | 例子 |
|------|------|---------|------|
| **学习类项目** | 无截止日期，按阶段组织任务，任务以知识点为核心 | 任务清单内有阶段标题（`## 第X阶段`）、任务序号全局递增 | `视觉工程学习/` |
| **截止日期项目** | 有明确交付日期，任务以交付物为核心 | 用户提到了截止日期，或说"项目"/"做demo" | `零件缺陷检测/`（待新建） |

## 执行步骤

### 第 1 步：理解用户意图

从用户的一句话中提取：

- **要做什么**（任务主题和内容）
- **有没有截止日期**（"下周""周五前"等 → 归入截止日期项目）
- **属于哪个领域**（Python、OpenCV、PyTorch、工具、ROS2 等）
- **是一次还是多次**（"我要学 Docker 和 Kubernetes" → 两个任务，"我要学 Docker" → 一个任务）
- **有没有顺序依赖**（"先学 A 再学 B" → 标注依赖关系）

### 第 2 步：决定任务归属

按以下决策树判断：

```
用户描述
│
├─ 有明确截止日期或提到"项目"/"demo"？
│   └─ 是 → 截止日期项目
│       ├─ 该项目的某个任务与已有学习项目的任务高度重叠？
│       │   └─ 是 → 从学习项目「复制任务 + 补充说明」到截止日期项目
│       └─ 否 → 新建任务条目
│
├─ 是纯学习内容，无截止日期？
│   └─ 是 → 学习类项目
│       ├─ 与某个已有项目领域匹配？
│       │   └─ 是 → 插入该项目对应阶段
│       └─ 否 → 新建学习项目文件夹
│
└─ 既不是学习也不是独立项目？
    └─ 可能是琐事/待办 → 存入 00_收件箱，不建任务清单
```

**多个任务时**：逐条分析，可能分散到不同项目。

**跨项目复制规则**：

当截止日期项目的某个任务与学习项目中已有任务的知识点相同时：
1. 从学习项目复制该任务的完整内容
2. 转换为截止日期类模板：理论点合并到任务描述，产出转换为交付物
3. 在条目末尾追加补充说明：

```markdown
- [ ] **X｜主题**
  任务描述：xxx（来自学习项目的学习内容 + 理论点提炼）
  交付物：1. xxx  2. xxx
  截止日期：YYYY-MM-DD
  完成标准：1. xxx  2. xxx
  > 📋 复制自 [[视觉工程学习/任务清单]]。本项目补充：需要结合本项目实际数据调整参数，重点验证在低对比度场景下的效果。
  → 日记：
  → 笔记：
```

补充说明聚焦"本项目特有的差异"，不重复原任务内容。

### 第 3 步：决定插入位置

**已有项目**：由大模型判断最合适的阶段和位置。

判断依据（按优先级）：
1. 领域匹配：Python → 第一阶段，OpenCV → 第二/三阶段，PyTorch → 第四阶段，ROS2 → 第六阶段
2. 知识依赖：需要前置知识的任务放后面
3. 逻辑顺序：先基础后进阶、先工具后应用
4. 同阶段内的合理排序：与已有任务对比，插入合适位置

插入后自动重排该阶段及后续所有任务的序号（全局递增）。

**新项目**：直接在 `10_项目/` 下创建项目文件夹和 `任务清单.md`。

### 第 4 步：生成任务条目

按项目类型选用模板。

**学习类项目任务模板**：

```markdown
- [ ] **序号｜主题**
  学习内容：xxx
  理论点：1. xxx  2. xxx  3. xxx  4. xxx
  产出：1. xxx  2. xxx  3. xxx  4. xxx
  完成标准：1. xxx  2. xxx  3. xxx  4. xxx
  → 日记：
  → 笔记：
```

**截止日期项目任务模板**：

```markdown
- [ ] **序号｜主题**
  任务描述：xxx
  交付物：1. xxx  2. xxx  3. xxx
  截止日期：YYYY-MM-DD
  完成标准：1. xxx  2. xxx  3. xxx
  → 日记：
  → 笔记：
```

**字段对比**：

| 字段 | 学习类 | 截止日期类 | 说明 |
|------|--------|-----------|------|
| 学习内容 | ✅ | - | 要学什么 |
| 理论点 | ✅ | - | 背后的原理 |
| 任务描述 | - | ✅ | 要交付什么 |
| 交付物 | - | ✅ | 具体产出文件 |
| 截止日期 | - | ✅ | 显式的日期 |
| 产出 | ✅ | - | 代码/笔记/截图等 |
| 完成标准 | ✅ | ✅ | 两类都需要验证条件 |
| → 日记 / → 笔记 | ✅ | ✅ | 两类都留链接槽位 |

**跨项目复制时**：从学习项目复制使用学习类模板，到截止日期项目时转换为截止日期类模板——理论点合并到任务描述中，产出转换为交付物。

序号由大模型根据插入位置自动计算，后续已有任务序号相应递增。

**粒度控制**：
- 一个任务对应一个可独立完成的知识点或交付件
- 如果用户一句话包含了多个独立知识点（如"学 Docker 和 K8s"），拆为多个任务
- 如果用户描述过于宏大（如"学完机器学习"），提醒拆分成更细的任务

### 第 5 步：检测重复

插入前检查当前位置附近是否有高度相似的任务（标题或学习内容 80% 以上重叠）。

- 有 → 提示用户"任务清单中已有类似任务 `XX｜xxx`，是否需要更新而非新建？"
- 无 → 正常插入

### 第 6 步：更新关联文件

1. 更新 `任务总控.md`：如果是新项目则新增一行；更新任务总数
2. 如果涉及跨项目复制，两个项目的任务清单都要更新，并添加双向 `[[链接]]`

### 第 7 步：汇总确认

展示即将进行的操作：

```
📋 任务归属
  项目：视觉工程学习（学习类）
  阶段：第一阶段：基础环境与 Python 工程
  位置：插入在任务 9 之后

🆕 新建任务（1 个）
  - [ ] 10｜Python｜虚拟环境与依赖管理
  学习内容：pip、venv、requirements.txt、环境导出与复现
  ...

🔢 序号重排
  任务 10 及之后的所有序号 +1

📊 总控更新
  任务总控.md：1/51 → 1/52
```

确认后写入。

## 特殊场景处理

| 场景 | 处理方式 |
|------|---------|
| 用户只说"我要学 X"没有更多细节 | 根据 X 的常见学习路径自动补全理论点、产出、完成标准，然后请用户确认或修改 |
| 任务描述包含"先…再…" | 创建两个任务，第二个标注依赖：`（依赖：任务 X）` |
| 新领域不属于现有阶段 | 在学习项目中新增阶段标题；若是全新领域，新建学习项目文件夹 |
| 用户给出的任务比已有任务的粒度更细/更粗 | 问用户是否拆分为子任务，或合并到已有任务 |
| 任务清单不存在 | 先创建完整的任务清单骨架（含 frontmatter、标题），再插入任务 |

## 原则

- **归属由大模型决定，不反复追问** — 基于描述和现有项目结构自动判断，只在确实模糊时才确认
- **学习类与截止日期类分开** — 学习任务不放截止日期项目，反之亦然；交叉部分用「复制 + 补充说明」
- **跨项目任务可复制** — 同知识点的任务在两类项目中可以同时存在，但截止日期项目的版本应增加针对性的补充说明
- **序号自动维护** — 插入和重排不破坏已有任务的序号连续性
- **宁可多确认一步，不写错位置** — 汇总展示让用户确认后再写入

