# Write Task Log

> 指导 AI 正确填写任务日志，并在任务完成后自动提取认知价值。当任务完成后、对话即将结束时、或用户提到「写日志」「更新日志」「任务记录」时自动触发。对应 AGENT_RULES.md RULE-01/02/03。版本：v2.0（2026-03-19新增步骤四：认知提取）

- Skill: `tashangkd/write-task-log` (Agent Skill, multi-file: 6 files)
- Install (CLI): `npx skillmds@latest add tashangkd/write-task-log`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tashangkd/write-task-log/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: TashanGKD (https://skillmd.com/u/tashangkd)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/tashangkd/write-task-log

---


# 任务日志填写技能

每次任务完成后，按以下步骤操作。**顺序不可颠倒，四步必须全部完成。**

> **设计原则（v2.0新增）**：默认模式是执行任务，不是捕捉认知。但每次任务完成后，自动提取认知价值，作为认知结构飞轮的燃料。郑总无需主动触发，这是系统自动完成的后台步骤。

---

## 步骤一：在 `任务日志.md` 追加日志条目

文件路径：`/Users/boyuan/aiwork/0310_huaxiang\_内部总控\任务日志.md`

### 格式模板

```markdown
---

## [TASK-YYYYMMDD-NN] 任务名称

**日期**：YYYY-MM-DD  
**执行者**：AI（Claude）  
**触发来源**：用户需求 / 联动规则XX / 内部计划  
**触发的 Skill**：[逗号分隔的 Skill 目录名，如 role-产品经理, skill-designer]（可选，有明确 Skill 触发时填写）

### 完成的工作
（简明描述做了什么，关键决策是什么）

### 创建/修改的文件
- 新增：`路径/文件名`（说明用途）
- 修改：`路径/文件名`（说明改了什么）

### 关联关系
（本次任务与其他项目/文档的关系，使用 explains/implements/depends-on 等类型）

### 用户原始需求（逐条记录）
- 需求1：...

### 遗留事项
（未完成、需后续跟进的内容，无则写"无"）
```

### 规则
- ID 格式：`TASK-YYYYMMDD-NN`（当日第 NN 条）
  - **防并发冲突（必须执行）**：写入前，用 grep 扫描 `任务日志.md` 全文中今日所有 `TASK-YYYYMMDD-` 条目，取最大序号 NN，新序号 = NN+1
  - ⚠️ 禁止：只读文件末尾来判断序号——多 session 并发时末尾序号可能已落后
- **只增不减**：绝对不修改历史条目，只在末尾追加
- Session 结束时，在最后一条日志末尾追加**需求汇总**（用户的明确需求 + 隐含设计倾向 + 对未来方向的暗示）

---

## 步骤二：更新 `项目排期表.md`

文件路径：`/Users/boyuan/aiwork/0310_huaxiang\_内部总控\项目排期表.md`

```
检查该任务是否已在排期表中？
  ├── 已存在 → 更新状态字段（🔲待开始 → 🟡进行中 → ✅完成）
  ├── 属于某母任务 → 在母任务下加子任务并标注状态
  └── 全新任务 → 在总览表 + 详细条目区追加
```

**例外**：纯文档小修改（改错别字）无需更新排期表。

---

## 步骤三：检查是否需要触发联动

查看 `AGENT_RULES.md` 第六节联动规则表：

| 触发事件 | 是否发生 | 需要触发的联动 |
|---------|---------|--------------|
| ①公理体系变动 | ？ | 场景A + B |
| ②体系结构变动 | ？ | 场景G（通知TF） |
| TF变动（含Breaking Change） | ？ | 场景I（通知所有APP） |
| ④⑤分身数据格式变动 | ？ | 场景L（通知消费方） |

如有联动需要触发，参见技能 `trigger-linkage-rules/SKILL.md`。

---

---

## 步骤四：~~认知提取~~（v1.1 废弃，由步骤五接管）

> ⛔ **本步骤已废弃**（2026-03-21）。
> 
> 原因：步骤四在充满操作细节的主 context 中执行认知提取，视角受污染；且所有类型均路由到 L2（L1.5候选被错误降级）。
> 
> 功能完全由「步骤五：认知萃取（cognitive-task-reflector）」接管，步骤五提供独立 context + 正确路由。

---

## 步骤五：认知萃取（v1.1 新增，替代步骤四）

**触发条件**（满足任一条件即触发，G-04 扩展）：

条件①（认知类关键词）：任务日志条目（### 完成的工作）包含以下关键词之一：
`cognitive-` / `L1` / `L1.5` / `L2` / `L3` / `认知结构` / `碎片` / `整合` / `原则` / `矛盾` / `自洽`

条件②（角色类 Skill 触发，新增）：任务日志的「**触发的 Skill**」字段（可选字段）包含以下 Skill 名之一：
`role-AI工程师` / `role-产品经理` / `role-技术架构师` / `role-UI设计师` / `role-数据分析师` / `skill-designer` / `research-output`
（这些角色的工作有较高认知洞见价值，即使不含认知类关键词也应尝试萃取）

不满足任何条件 → 步骤五静默跳过，不询问用户。

**执行方式**：

```
IF 触发条件满足：
  调用 cognitive-task-reflector 子智能体
  输入：{
    task_log_entry: [刚写入的 TASK-YYYYMMDD-NN 完整条目内容]
  }
  
  ⚠️ 本调用属于认知子任务，不触发 session-bootstrap 序列B（见 B0 排除清单）
  
  处理输出：
  IF candidate_fragments 非空：
    向用户展示：
    「🔍 认知萃取（cognitive-task-reflector）发现 N 条候选：
      [逐条：category / title / reason_for_inclusion]」
    用户逐条确认：
      → route="L2碎片" → 调用 cognitive-capture-fragment（同样不触发B序列）
      → route="L1.5候选" → 告知：「建议触发 cognitive-extract-principle 完整流程」
                           [立即触发] [下次处理]
  IF candidate_fragments 为空：
    步骤五静默完成，不向用户展示任何内容

IF 触发条件不满足：
  步骤五静默跳过
```

**与旧步骤四的对比**：

| 维度 | 旧步骤四（废弃） | 新步骤五（接管） |
|---|---|---|
| 执行位置 | 主 context（含操作细节）| 独立 context（仅读日志+L0+L1.5）|
| 触发范围 | 每次任务后必须扫描 | 仅认知类任务（含关键词）自动触发 |
| L1.5候选路由 | 错误写入 L2 | 正确路由到 cognitive-extract-principle |
| 输出控制 | 固定汇报3条 | 候选为空时静默完成，不打扰 |

---

## 快速检查清单

完成任务后，逐项确认：

- [ ] `任务日志.md` 末尾已追加新条目（格式正确，ID 唯一）
- [ ] `项目排期表.md` 状态已更新
- [ ] 跨项目联动已评估（有触发则处理，无则记录"已评估，无需联动"）
- [ ] ~~步骤四认知提取~~（已废弃，由步骤五接管）
- [ ] 步骤五认知萃取：触发条件满足则 cognitive-task-reflector 已调用；不满足则静默跳过

---

## 变更记录

### v1.4 — 2026-03-22 — 序号防并发冲突机制同步（GAP-CO009-1 修复）

**根因**：scenario-sandbox-builder Phase 2 验证（CO-009沙盘）发现：write-task-log SKILL.md 的序号生成逻辑与 session-bootstrap B4（v1.2 更新的 grep防冲突）存在双轨漂移——直接触发此 Skill 时走 SKILL 内逻辑（无grep），绕过了 session-bootstrap 的防冲突修复。

**修改内容**：
- 修改：「规则」章节的 ID 格式说明 → 从「当日第NN条，从01起」改为「grep全文扫描取最大序号+1」
- 新增：⚠️ 禁止只读末尾的强制约束
- 备份路径：`history/SKILL_v1.3_20260322_before_co009.md`

**验证方法**：触发 write-task-log 时，序号生成步骤应包含 grep 扫描逻辑，与 session-bootstrap B4 一致
**验证状态**：🔵 待验证

---

### v1.3 — 2026-03-22 — 步骤五触发条件扩展（G-04 修复，PD-011 元验证发现）

**根因**：skill-closure-verifier-meta 对 PD-011（AI工程实现大闭环沙盘）执行 Phase 2 验证，发现 write-task-log 步骤五触发关键词全为认知体系词汇（cognitive-/L1/L2等），AI工程任务日志（如「完成 Prompt 设计」「实现 LLM 调用链」）不含这些词，导致 cognitive-task-reflector 不被触发，AI工程实践经验无法回流认知结构。

**修改内容**：
- 修改：步骤五触发条件 → 从单一「认知类关键词」扩展为「条件① 关键词 OR 条件② 角色类Skill」
- 新增：条件②（角色类 Skill 触发）——当任务日志「触发的 Skill」字段含特定角色 Skill 名时，也触发步骤五
- 新增关键词：`自洽`（认知体系词汇补充）
- 备份路径：`history/SKILL_v1.2_20260322_before_g04.md`

**验证结果**：
- 正向验证：完成 role-AI工程师 任务后，任务日志触发的Skill字段含「role-AI工程师」→ 步骤五触发，cognitive-task-reflector 尝试萃取认知价值
- 负向验证：纯 DevOps/文章写作任务（触发的Skill不在扩展列表）仍静默跳过，不生成低质量碎片

**验证状态**：🔵 待验证

---

### v1.2 — 2026-03-21 — 任务日志格式新增 triggered_skills 字段（SD3 修复）

**根因**：skill-evolution-planner-meta 在演进规划时依赖 CO-BUILD-LOG + PENDING-EXPERIENCES，但没有「哪个 Skill 被触发了多少次」的频率数据。任务日志是天然的 Skill 使用记录，但当前格式无结构化 Skill 字段，只能从「完成的工作」文本中猜测。

**修改内容**：
- 修改：任务日志格式模板 → 新增可选字段「触发的 Skill」，填写本次任务中明确触发的 Skill 目录名（逗号分隔）

**验证结果**：
- 正向验证：有明确 Skill 触发的任务日志包含该字段
- 负向验证：字段为「可选」，未触发明确 Skill 的任务（如纯对话）不强制填写

---

### v1.1 — 2026-03-21 — 废弃步骤四，新增步骤五（cognitive-task-reflector 接管，CS-013 修复）

**根因**：Phase 2 关卡B C-2 问题：write-task-log 步骤四与 cognitive-task-reflector 功能双写，同一任务日志被提取两次；关卡A C4-3 问题：步骤四所有类型均路由到 L2（L1.5候选被降级）。CS-013 沙盘确认步骤四在操作细节充斥的主 context 中执行，视角受污染。

**修改内容**：
- 废弃：步骤四（原认知提取），保留说明文字供参考，标注废弃原因
- 新增：步骤五（认知萃取）——调用 cognitive-task-reflector 子智能体，仅在认知类任务（含关键词）后自动触发；候选碎片含正确路由（L2→capture-fragment / L1.5→extract-principle）；无候选时静默完成
- 备份路径：`history/SKILL_v1.0_20260321.md`

**验证结果**：
- 正向验证：完成 cognitive-reorganize 任务后，步骤五自动触发 cognitive-task-reflector，输出包含 excluded_items 的候选列表（待验证）
- 负向验证：完成前端开发任务（无 cognitive-* 关键词）后，步骤五静默跳过，无弹出询问

**验证状态**：🔵 待验证

---

## 相关规范

- [AGENT_RULES.md RULE-01/02/03](../../_内部总控/AGENT_RULES.md)
- [07_关联声明与日志规则.md](../../_内部总控/开发规范/07_关联声明与日志规则.md)

