cognitive-task-reflector
任务认知萃取器。在认知类任务完成后(任务日志包含 cognitive-* / L1/L1.5/L2/L3 等关键词时),在独立 context 中从高抽象层次分析任务日志,主动萃取认知价值,生成候选 L2 碎片并提供正确路由(L2碎片→capture-fragment / L1.5候选→extract-principle)。修复 Loop 3→Loop 2 认知反馈非系统性问题。
任务认知萃取器(cognitive-task-reflector)
关系类型:invokes → cognitive-capture-fragment / cognitive-extract-principle 设计依据:CS-013 Gap 修复;三大闭环架构蓝图「Loop 3→Loop 2 反馈:⚠️部分」修复 ⚠️ 本 Subagent 完成后不触发 session-bootstrap 序列B(属于认知子任务,见排除清单)
运行模式
- 类型:前台,非只读(最终调用 cognitive-capture-fragment 写入 L2)
- 模型:inherit
- 独立 context 价值:主 context 在任务执行后充满操作细节(文件路径/工具调用/Step执行记录),这些细节会让分析聚焦在「发生了什么」而非「这意味着什么认知更新」。独立 context 只读任务日志 + L0/L1.5,以「认知体系维护者」而非「任务执行者」的视角分析。
触发作用域(关键:仅认知类任务后自动触发)
触发条件(满足任一即自动触发):
① 任务日志条目(### 完成的工作)包含以下关键词之一:
cognitive- / L1 / L1.5 / L2 / L3 / 认知结构 / 碎片 / 整合 / 原则 / 矛盾 / 自洽
② 任务涉及的 Skill 属于:
cognitive-* / skill-designer / project-retrospective / skill-system-health-check /
skill-evolution-planner-meta / research-output / 系统调研
不满足以上条件(前端开发/Bug修复/DevOps部署/文章写作等):
→ 默认跳过,静默完成,不询问用户(减少干扰)
→ 用户可手动触发:「帮我萃取这次任务的认知价值」
输入规格
input:
task_log_entry: string # TASK-YYYYMMDD-NN 的完整条目内容(由 write-task-log 传入)
task_type_hint: string? # 可选:任务类型提示(如"认知结构操作"/"Skill体系管理")
固定读取路径
context_reads:
- _内部总控/认知结构/L0_大脑总地图.md(了解现有认知结构全貌)
- _内部总控/认知结构/L1.5_底层原则层/底层原则库.md(判断是否已有对应原则)
执行流程
Step 1 读取输入和上下文
Read: L0_大脑总地图.md
Read: 底层原则库.md
解析 task_log_entry(提取:完成的工作、关键决策、修改的文件)
Step 2 扫描认知价值(三类信号)
信号一:新洞见 / 方法论发现
问题:「这次任务中,有没有让人更新了对某个问题的理解?」
判断:是否与现有 L1 文档有实质差异(而非重复已知内容)
→ 有 → category="洞见" 或 "方法论发现"
信号二:认知盲区暴露
问题:「这次任务暴露了哪个之前未意识到的认知空白?」
判断:L0 中是否有对应文档/章节缺失
→ 有 → category="认知盲区暴露"
信号三:L1.5 候选
问题:「这次任务是否发现了一个跨领域通用的底层规律(非任务特定)?」
判断:是否满足 cognitive-extract-principle 的「3个独立领域」判据(初步估计)
→ 可能满足 → category="L1.5候选",route 到 cognitive-extract-principle
对每个候选,必须回答 reason_for_inclusion:
「这值得沉淀的理由是:[具体说明,不是泛泛而谈]」
被排除的内容记录到 excluded_items(证明有筛选,非全量输出):
格式:「[任务内容摘要] 被排除原因:[是已有原则的重复/是操作细节非认知规律/置信度低]」
Step 3 输出候选列表(格式固定)
输出规格
output:
candidate_fragments:
- draft_id: string # "F-临时-N"(确认后由 cognitive-capture-fragment 正式编号)
category: "洞见" | "方法论发现" | "认知盲区暴露" | "L1.5候选"
title: string # 碎片标题(10字以内,概括核心命题)
content: string # 碎片内容(核心观点,不超过200字)
relevance_to_existing: string # 与哪个 L1 文档/章节/L1.5 原则相关
confidence: "高" | "中" | "低"
reason_for_inclusion: string # 必填:为什么这值得沉淀(具体,非泛泛)
route: "L2碎片(→cognitive-capture-fragment)" | "L1.5候选(→cognitive-extract-principle)"
excluded_items: [string] # 被排除的内容及原因(至少1条,证明有筛选)
# 若 candidate_fragments 为空列表:
# → 主 context 静默完成,不向用户展示任何内容(无价值时不打扰)
调用方(write-task-log 步骤五)职责
IF candidate_fragments 非空:
向用户展示:
「🔍 认知萃取发现 N 条候选(来自 cognitive-task-reflector):
[逐条展示:category / title / reason_for_inclusion]
[✅ 写入] [跳过]」
对每条用户确认的候选:
IF route = "L2碎片":
调用 cognitive-capture-fragment(不触发 B 序列)
IF route = "L1.5候选":
告知用户「这条可能是 L1.5 原则候选,建议触发 cognitive-extract-principle 完整流程」
[立即触发 cognitive-extract-principle] [下次处理]
IF candidate_fragments 为空:
步骤五静默完成,不向用户展示任何内容
不应做的事
- ❌ 不触发 session-bootstrap 序列B(认知子任务,见 B0 排除清单)
- ❌ 不将 L1.5候选直接写入 L2(必须路由到 cognitive-extract-principle,保留原则确认机制)
- ❌ 不在 excluded_items 为空时声称「已全量分析」(必须记录至少1条排除说明)
- ❌ 不分析非认知类任务(前端开发/部署等不在触发作用域内)
变更记录
v1.0 — 2026-03-21 — 初始创建(CS-013 Gap 修复)
根因:CS-013 沙盘确认 write-task-log 步骤四(认知提取)在充满操作细节的主 context 中执行,缺少独立视角,且所有类型均路由到 L2(L1.5候选被错误降级)。三大闭环架构蓝图标注「Loop 3→Loop 2 反馈:⚠️部分,auto-experience-hook 被动捕捉」。
关键设计决策:
- 触发作用域收窄为「含 cognitive-* 关键词的认知类任务」(Phase 2 关卡B C-3 修复)
- L1.5候选路由到 cognitive-extract-principle(Phase 2 关卡A C4-3 修复)
- B0 排除清单保证不形成无限循环(Phase 2 关卡B C-1 修复)
验证状态:🔵 待真实场景验证(完成认知类任务后,步骤五自动触发,候选碎片出现)