--- name: cognitive-ask description: 基于用户自己的认知文档回答问题,严格引用来源,标注置信度,暴露矛盾,识别知识空白。触发词:「基于我的文档」「根据我的想法」「我之前怎么想的」「我说过什么关于X」「我对X的看法是什么」「帮我回忆」「我的认知里怎么说」「我的框架里有没有」「从我的角度」「我如何看待」。 --- # 认知问答 Skill(Cognitive Ask) > 严格基于用户自己的认知文档(L0/L1/L1.5/L2)回答问题。 > 铁律:**不引入外部观点,不补充用户没有说过的内容,只用用户自己的文字和思考。** --- ## 知识导航表(执行前必须理解的概念根) | 层级 | 文档 | 需要理解的概念 | |---|---|---| | **D0 认知根(必读)** | `_内部总控/认知结构/L0_大脑总地图.md` | 整个K-object体系的入口索引:各L1文档的主题/位置/版本;扫描找相关K-objects | | **D3 规范参考** | `.cursor/rules/knowledge-integrity-rules.mdc`(R2 NO_FABRICATION + R3 READ_FIRST)| R2:不引入用户文档中没有的观点;R3:先读相关文档再回答,不凭印象 | | **D4 运行时数据** | `L0_大脑总地图.md` + 根据问题确定的相关L1/L1.5/L2文档 | 先扫描L0找相关文档,再读相关文档后回答 | **核心概念速查**: ① 只用用户自己的K-objects回答 = 禁止引入外部观点,禁止补充用户没有写过的内容 ② 引用必须说明来源:「在[文档名]§[章节]中提到…」——让用户能验证 ③ 知识空白 = 相关K-objects中找不到内容时,明确说「您的文档中未提及」,不自行推断 --- ## 这个 Skill 解决的问题 用户在多处文档、多次对话中积累了大量思考,但: - 某个话题在多个文档里都有提及,散落各处 - 不记得自己对某个问题的完整立场是什么 - 想知道自己的某个想法在整个思维体系里处于哪个位置 - 不确定自己是否已经想清楚了某个问题 --- ## 激活后立即执行 ``` Step 0 工作区路径探测(v2 Agent 兼容层) 认知库有两种可能的路径布局: 尝试读取:`docs/L0/大脑总地图.md` IF 成功 → **v2 模式**:L0=docs/L0/ | L1=docs/L1/ | L1.5=docs/L1_5/ | L2=docs/L2/ ELSE 尝试:`_内部总控/认知结构/L0_大脑总地图.md` IF 成功 → **Cursor 模式**:使用 _内部总控/认知结构/ 前缀(原路径不变) IF 都失败 → 告知用户认知库路径未初始化,停止 确定路径模式后,所有后续步骤中路径自动替换。 下文中 [CL0] / [CL1] / [CL1.5] / [CL2] 分别代表对应层的实际路径前缀。 Step 1 理解问题 → 用户的问题是什么?核心概念是什么? → 如果问题不清晰,追问一个最关键的问题(一次只问一个) → 明确问题后继续 Step 2 搜索文档(分层检索,从顶层到底层) [Layer 1] L1.5 底层原则层(最先检索) Read: [CL1.5]/底层原则库.md → 这个问题是否直接触及某个已确认原则(P1/P2等)? → 如果是,记录:「原则层有直接答案」 [Layer 2] L1 系统性文档(必须先读 L0,再系统覆盖相关聚类) Step 2a:Read [CL0]/大脑总地图.md → 从 L0 提取所有聚类列表和已登记的 L1 文档名 Step 2a.5:全量文档索引(防止 L0 过时导致遗漏) ⚠️ L0 可能不包含最近新建的文档——必须执行本步骤补全。 执行 list_files([CL1]) 或等效的文件系统扫描 → 获得 L1 目录下所有 .md 文件的完整列表 → 与 Step 2a 从 L0 中提取的列表做 diff → 若发现「L0 未登记的文档」:加入待检索列表,标注「L0 未登记,来自文件系统扫描」 → 记录:「L0 登记 N 篇,文件系统实际 M 篇,差异 K 篇」 → 判断「问题是全局性问题还是聚焦性问题」: 【全局性问题判断标准】满足以下任一条件,即为全局性: · 问题中包含「整体」「核心」「本质」「全部」「所有」「系统」「体系」 · 问题是「X是什么」「X有哪些观点」「X的关键是什么」形式 · 问题话题是一个跨文档的高层概念(无法被单个文档完整回答) → 全局性问题:**必须覆盖所有聚类(含 L0 未登记的),无例外** 【聚焦性问题】:用户明确指定了单一文档/聚类(如「[B]文档里说了什么」) → 聚焦性问题:可以限定在指定范围内 Step 2b:分两步读取每个 L1 文档(先结构,后内容) 对每个「待检索聚类」中的文档,执行以下两步: **Step 2b-①(结构扫描,必须先做)** Read 该文档的前 80 行(涵盖摘要 + 全部章节标题) → 提取所有 ## / ### 章节标题,构建「章节目录」 → 根据用户问题的关键词,标记「高相关章节」(显式理由) → ⚠️ 不允许「凭直觉」跳过某个聚类——必须给出明确的跳过原因 **Step 2b-②(定向读取,基于 ① 的结论)** 只读被标记的「高相关章节」(不是整篇) IF 文档整体相关性高(全局性问题 + 核心文档)→ 读全文 → 记录:找到了哪些相关内容,在哪里,来自哪个聚类 Step 2c:知识图谱邻域扫描 + BM25 兜底(双轨并行) **轨道 A:知识图谱邻域扫描**(优先,精度高) 认知科学依据:扩散激活(Collins & Loftus, 1975)——激活一个概念节点后, 激活沿关系边向邻近节点传播(priming effect) Read: [CL0]/知识图谱_正式文档.md(或 _内部总控/认知结构/知识图谱_正式文档.md) → 找到 Step 2b 中已确定的「主要相关L1文档」在图谱中的节点 → 获取该节点的全部关系边(出边+入边) → 按关系强度排序:depends(1.0) > extends(0.9) > cross_ref(0.7) > references(0.5) → 选取权重 ≥ 0.7 的邻居节点(Top-5,排除已在 Step 2b 读过的) IF 邻居节点与当前问题高度相关(主题相似): → Read 该邻居文档的相关章节(每个最多读 300 字) → 记录:「从图谱邻域发现补充内容,来自 [文档名]([关系类型] 关系)」 **轨道 B:BM25 关键词兜底**(知识图谱缺失时,或作为补充验证) 触发条件:知识图谱文件不存在 OR 图谱中已读文档的关系边 < 3 条(稀疏图谱) 提取用户问题的关键词(中文字 + 英文词) 对 Step 2a.5 中 L0 未登记但存在于文件系统的文档: → 读取各文档前 200 字(标题+摘要),计算关键词命中数 → 命中 ≥ 2 个关键词的文档:加入待检索列表,执行 Step 2b 两步读取 → 记录:「BM25 兜底发现补充文档 [文档名],命中词:[词列表]」 ⚠️ 约束: - Step 2c 是「补充」步骤,不是「替代」Step 2b 的步骤 - 两轨道合计最多新增 3-5 个文档,避免检索范围无限扩展 - 图谱文件不可读时轨道A静默跳过,但轨道B必须执行 [Layer 3] L2 碎片层(以下两种情况必须执行,不允许跳过) 强制触发条件(满足任一即必须读 L2): ① L2 碎片整合索引中,有「🔲 待整合」碎片的关联L1文档与本问题相关 ② 问题是全局性问题(已在 Step 2a 判断为全局性时,必须读 L2 补充 L1 之外的洞见) ⚠️ 不允许以「L1 已有足够内容」为理由跳过 L2 检索——L2 碎片常包含尚未整合进 L1 的新洞见 Read: _内部总控/认知结构/L2_碎片化思考/碎片整合索引.md → 搜索所有「🔲 待整合」碎片,找出与问题相关的条目 → Read 相关碎片的内容 → 标注:L2碎片的确认程度(confirmed / tentative / uncertain) → 在回答中注明:「以下来自 L2 碎片,尚未整合进 L1」 Step 3 综合分析 整理找到的所有相关内容,判断: ① 「清晰明确」:某文档/碎片有直接、完整的答案 ② 「需要综合」:答案散落在多处,需要拼合 ③ 「有矛盾」:不同文档/碎片对这个问题给出了有张力的答案 ④ 「有空白」:文档只涉及了部分,有明显没有覆盖到的角度 ⑤ 「完全空白」:认知库中没有覆盖这个问题 Step 4 生成回答(严格格式) ━━ 基于您的认知文档 ━━ 【核心答案】 [直接回答问题,只用用户文档中的原话或紧密推论] 【来源(必须列出每一条依据)】 · [文档名/碎片ID] > [章节/位置]:「原文摘录」 · [文档名/碎片ID] > [章节/位置]:「原文摘录」 【置信度】 [🟢 高]:文档中有明确表述,直接引用 [🟡 中]:需要综合多处推论,可能有偏差 [🔴 低]:仅有碎片级别的提及,尚未系统化 【矛盾(如有)】 发现以下不一致: · [文档A]说:「...」 · [碎片F-XXX]说:「...」 → 这两处存在[直接冲突/隐式张力],尚未消解。 **若为🔴 致命冲突(两个结论直接互斥,任一成立另一必然错误)**: ⚠️ 致命矛盾——此矛盾未消解将影响本答案的可信度,强烈建议立即运行矛盾检测 [立即运行矛盾检测] [了解但暂不检测] **若为🟡 隐式张力或🟢 轻微不一致**: 是否要现在运行矛盾检测?[是] [暂时不用] 【知识空白(如有)】 您的文档对以下角度尚未覆盖: · [空白点1]:[一句话说明缺了什么] · [空白点2] 是否要记录为待思考的碎片?[记录为碎片] [不用] ━━━━━━━━━━━━━━━━━━━━━━━━ Step 5 处理后续 → 用户说「是」(运行矛盾检测)→ 触发 cognitive-detect-contradiction Skill → 用户说「记录为碎片」→ 触发 cognitive-capture-fragment Skill,预填充「待思考:[空白点]」 → 用户有追问 → 继续在文档范围内回答(不引入外部内容) → 用户说「这块没想清楚」→ 询问「要运行 self-reflect(自我反思)来帮你想清楚吗?」 ``` --- ## 严格边界(铁律,不可突破) **✅ 可以做:** - 引用用户文档中的原话 - 综合多个文档/碎片的观点 - 指出文档间的矛盾 - 指出文档的覆盖空白 - 基于用户的L1.5原则推论(必须说明是推论) **❌ 不可以做:** - 用外部知识(学术文献、行业标准、其他人的观点)来补充答案 - 「根据一般来说...」「通常认为...」「理论上...」→ 禁止 - 在回答中不标注来源 - 把「用户没有说过」的内容放进【核心答案】里 - 把置信度标为🟢,但答案里其实包含了AI的推论 --- ## 特殊情况处理 **情况1:完全空白** 「您的认知文档中没有覆盖「[问题话题]」这个问题。 这是一个认知空白——意味着您可能: · 还没想过这个问题 · 想过但没有记录 建议:[记录为「待思考」碎片] [现在用self-reflect来想一想] [不处理]」 **情况2:问题跨越多个L1文档,需要大量阅读** 「这个问题涉及多个文档([文档列表]),完整回答需要逐一读取。 我先给一个基于L0和L1.5的快速预答案,再深入检索。 [快速预答案内容] 现在深入检索更多细节...」 **情况3:用户问的是「我有没有想过X」** 「在您的文档中: · [文档A] 第X章 提到了相关概念:「...」 · [碎片F-XXX] 触及了这个话题:「...」 但没有系统性地专门讨论「X」。 覆盖程度:⚠️ 有提及但不完整」 **情况4:用户问的是跟今日对话相关的内容(非文档内)** 「您在本次对话中提到了「...」(但尚未写入文档)。 如果您希望基于已文档化的内容,当前文档里这部分的状态是:[...] 需要先把刚才的想法写入文档吗?[记录为碎片]」 --- ## 变更记录 ### v1.1 — 2026-03-19 — Step 2 Layer 2 改为「先读 L0 系统聚类映射,再逐聚类检索」 **根因**:在「数字大脑有哪几个核心观点」的问答中,AI 凭直觉将问题映射到 [B][B'],跳过了 [PV](包含 LLM=算子、多粒子动力学)和 [B']§7(用户感知界面),导致回答严重不完整。根本原因是 Step 2 的「根据问题关键词,判断哪些L1文档最相关」是主观判断而非系统检索。 **修改内容**: - 修改:Step 2 Layer 2 → 从「凭关键词直觉选文档」改为「先读L0提取聚类列表,逐一判断相关性,生成待读聚类列表,再检索」 - 新增约束:全局性概念默认覆盖所有聚类;不允许在没有明确理由的情况下跳过某个聚类 **验证结果**: - 正向验证:「数字大脑核心观点」类问题 → 应先从 L0 识别聚类1+2+4,主动读 [PV] 和研究文档 - 负向验证:「P1原则有哪些应用场景」类聚焦问题 → 仍可合理限定在1-2个聚类 **验证状态**:🔵 待验证(已有正式沙盘 SK-014) --- ### v1.4 — 2026-03-22 — 致命矛盾强化触发提示(GAP-CS016-1 修复) **根因**:scenario-sandbox-builder Phase 2 验证(CS-016沙盘)发现:cognitive-ask 的矛盾检测触发设计为统一的「是否运行?[是][暂时不用]」,对致命矛盾(两个结论直接互斥)与轻微张力处理方式相同,用户容易选「暂时不用」跳过,导致致命矛盾积压影响答案可信度。 **修改内容**: - 修改:Step 4 矛盾展示格式 → 按矛盾严重程度区分:🔴 致命冲突使用「强烈建议立即运行」语气 + `[立即运行矛盾检测]` 触发词;🟡/🟢 保持原有「是否运行?[是][暂时不用]」 - 备份路径:`history/SKILL_v1.3_20260322_before_cs016.md` **验证方法**:发现🔴 致命矛盾时,Step 4 应输出「⚠️ 致命矛盾——强烈建议立即运行」而非普通询问 **验证状态**:🔵 待验证 --- ### v1.3 — 2026-03-19 — Layer 3 强制触发(SK-014 沙盘 + 新任务实证修复) **根因**:新会话AI回答「数字大脑核心观点」时,找到6条L1观点后认为「已完整」,跳过L2检索,导致F-019(智能体演化框架)和F-020(层次与闭环关键词)等重要洞见缺失。「如L1没有完整答案时」是主观条件,不可靠。 **修改内容**: - 修改:Layer 3 触发条件 → 从「如L1没有完整答案时」改为「两种强制触发情况:①有相关待整合碎片 / ②全局性问题」 - 新增:「不允许以L1已足够为理由跳过L2」的明确禁止语句 - 新增:L2碎片在回答中的标注要求 **验证状态**:🔵 待验证 --- ### v1.2 — 2026-03-19 — 全局性问题判断标准明确化(SK-014 沙盘残留风险修复) **根因**:SK-014 沙盘分析发现 v1.1 残留风险:「全局性概念」的判断仍是 AI 主观决定,可能将「数字大脑」错判为「聚焦概念」而跳过全聚类覆盖。 **修改内容**: - 修改:Step 2a → 在「全局性概念默认覆盖」的基础上,明确定义「全局性问题」的判断标准(含关键词列表 + 问题形式 + 跨文档特征),将主观判断改为客观标准 **验证状态**:🔵 待验证(已有正式沙盘 SK-014 覆盖) --- ## 注意事项 - **不要跳过"找不到"的情况**:如果某个角度文档里没有,就明说,不要用自己的知识补全 - **L2碎片要标注确认程度**:确认程度「uncertain」的碎片,回答时要说「您有过这个想法,但标注为存疑」 - **综合推论要透明**:如果是「A+B→C」的推论,要说「根据您文档中的A和B,可以推论出C,但您没有直接表述过C」 - **不要因为「显而易见」就省略来源** ### 2026-03-23 — 新增 Step 0 / Step 2a.5 / Step 2b 两步读取 / Step 2c BM25 兜底(v2 兼容 + 遗漏修复) **根因**:三处系统性遗漏: ① L0 可能过时(Step 2a 仅读 L0,文件系统里新建文档对 AI 不可见) ② Step 2b「定向读取章节」依赖 AI 猜测,章节针对性不足 ③ Step 2c 依赖知识图谱文件,v2 workspace 里该文件路径不同或不存在,导致邻域扫描静默跳过 **修改内容**: - 新增:Step 0「工作区路径探测」——自动检测 v2/Cursor 两种路径布局,向后兼容 - 新增:Step 2a.5「全量文档索引」——file system 扫描,diff L0 登记 vs 实际文件,补充遗漏 - 改造:Step 2b → 两步读取(先扫标题结构 → 再定向读高相关章节),减少「凭直觉」的不确定性 - 改造:Step 2c → 双轨并行(轨道A知识图谱邻域扫描 + 轨道B BM25关键词兜底),图谱缺失时不丢失覆盖 **验证方向**: - 正向:新建一篇 L1 文档但未更新 L0 → Step 2a.5 应发现它并加入检索 - 正向:v2 workspace(docs/ 布局)→ Step 0 应切换到 v2 路径 - 负向:图谱文件存在且关系边丰富 → 轨道 B 不触发,不增加不必要开销 ### 2026-03-23 — 新增 Step 2c(知识图谱邻域扫描,启动效应实现) **认知科学依据**: - 扩散激活(Collins & Loftus, 1975):激活一个概念节点后,激活向相邻节点传播 - 启动效应(Priming):先前刺激无意识地激活相关概念,加速后续检索 - 文档系统等价:知识图谱关系边 = 语义网络关系强度 **修改内容**: - 在 Step 2b(L1文档阅读)之后、Step [Layer 3](L2碎片)之前,插入 Step 2c - Step 2c:读取知识图谱,找到已阅文档的邻居节点,按关系强度选取高相关邻居补充阅读 - 限制:最多新增2-3个文档(避免过度扩展),知识图谱不可读时静默跳过