ReflectSkill reflect

这是一个用于构建和更新知识图谱的技能,通过发现笔记之间的联系并将其编织进MOC(心智图谱)来实现。关键词包括语义判断、知识图谱、连接发现、笔记综合。

NLP 0 次安装 0 次浏览 更新于 2/28/2026

Reflect

发现笔记之间的联系并更新MOCs。需要语义判断来识别真正的关系。在/reduce创建笔记后、探索联系时或需要对某个主题进行综合时使用。触发词为"/reflect"、“/reflect [note]”、“find connections”、“update MOCs”、“connect these notes”。

user-invocable: true allowed-tools: Read, Write, Edit, Grep, Glob, Bash, mcp__qmd__search, mcp__qmd__vector_search, mcp__qmd__deep_search, mcp__qmd__status context: fork

运行时配置(第0步 - 任何处理之前)

读取这些文件以配置特定领域的操作:

  1. ops/derivation-manifest.md — 词汇映射,平台提示

    • 使用vocabulary.notes作为笔记文件夹名称
    • 使用vocabulary.note / vocabulary.note_plural作为笔记类型的引用
    • 使用vocabulary.reflect作为输出中的过程动词
    • 使用vocabulary.topic_map / vocabulary.topic_map_plural作为MOC引用
    • 使用vocabulary.cmd_reweave作为下一阶段建议
    • 使用vocabulary.inbox作为收件箱文件夹名称
  2. ops/config.yaml — 处理深度,管道链

    • processing.depth: deep | standard | quick
    • processing.chaining: manual | suggested | automatic

如果这些文件不存在,使用通用默认值。

处理深度适应:

深度 连接行为
deep 全双发现(MOC + 语义搜索)。评估每个候选。多次通过。综合机会检测。所有连接的双向链接评估。
standard 双发现与前5-10个候选。标准评估。仅对强连接进行双向检查。
quick 单次通过 — 无论是MOC还是语义搜索。仅接受明显的连接。跳过综合检测。

立即执行

目标:$ARGUMENTS

立即解析:

  • 如果目标包含[[note name]]或笔记名称:为该{vocabulary.note}找到连接
  • 如果目标包含--handoff:在最后输出RALPH HANDOFF块
  • 如果目标为空:检查最近创建的{vocabulary.note_plural}或询问用户要连接的{vocabulary.note}
  • 如果目标是"recent"或"new":为今天创建的所有{vocabulary.note_plural}找到连接

执行以下步骤:

  1. 完整阅读目标{vocabulary.note} — 理解其主张和上下文
  2. 在发现过程中: 记录你阅读了哪些{vocabulary.topic_map_plural},你运行了哪些查询(带分数),你评估了哪些候选。这将成为发现追踪 — 证明方法论被遵循,而不是事后重建。
  3. 运行第0阶段(索引新鲜度检查)
  4. 并行使用双发现:
    • 浏览相关{vocabulary.topic_map}(s)以查找相关的{vocabulary.note_plural}
    • 运行语义搜索以查找概念上相关的{vocabulary.note_plural}
  5. 评估每个候选:是否存在真正的连接?你能表达为什么吗?
  6. 在通过阐述测试的地方添加内联wiki链接
  7. 使用此{vocabulary.note}更新相关{vocabulary.topic_map}(s)
  8. 如果上下文中有任务文件:更新{vocabulary.reflect}部分
  9. 报告连接了什么以及为什么
  10. 如果目标中有--handoff:输出RALPH HANDOFF块

**现在开始。**以下参考解释方法论 — 用于指导,而不是作为输出。


Reflect

发现连接,编织知识图谱,更新{vocabulary.topic_map_plural}。这是处理管道的前向连接阶段。

哲学

网络即是知识。

单个{vocabulary.note_plural}比它们之间的关系价值低。一个有十五个传入链接的{vocabulary.note}是十五条思路的交汇点。连接随着Vault的增长而创造复合价值。

这不是关键词匹配。这是语义判断 — 理解{vocabulary.note_plural}的含义以确定它们如何关联。一个关于"系统中的摩擦"的{vocabulary.note}可能与"验证方法"深度连接,即使它们没有共享任何词汇。你正在构建一个可遍历的知识图谱,而不是标记文档。

质量优于速度。明确优于模糊。

每个连接必须通过阐述测试:你能说出为什么这些{vocabulary.note_plural}连接吗?"相关"不是一个关系。"通过添加Y扩展X"或"因为Z与X相矛盾"是一个关系。

不良连接会污染图谱。它们制造噪音,使得真正的连接更难找到。如果不确定,不要连接。

调用模式

/reflect(无参数)

检查最近的添加:

  1. 查找在上一次会话中修改的{vocabulary.note_plural}
  2. 如果没有明显的,询问用户要连接哪些{vocabulary.note_plural}

/reflect [note]

专注于连接特定的{vocabulary.note}:

  1. 阅读目标{vocabulary.note}
  2. 发现相关内容
  3. 添加连接并更新{vocabulary.topic_map_plural}

/reflect [topic area]

综合一个领域:

  1. 阅读相关的{vocabulary.topic_map}
  2. 确定应该连接的{vocabulary.note_plural}
  3. 编织连接,更新综合

/reflect --handoff [note]

外部循环模式/ralph:

  • 正常执行完整工作流程
  • 在最后,输出结构化的RALPH HANDOFF块
  • 用于在每个任务都有新鲜上下文的情况下运行孤立阶段

工作流程

第0阶段:验证索引新鲜度

在使用语义搜索之前,验证索引是否最新。这是自我修复:如果{vocabulary.note_plural}在管道之外创建(手动编辑,其他技能),reflect在搜索之前捕捉漂移。

  1. 尝试mcp__qmd__status以获取目标集合的索引文档计数
  2. 如果MCP不可用(工具失败或返回错误):回退到bash:
    LOCKDIR="ops/queue/.locks/qmd.lock"
    while ! mkdir "$LOCKDIR" 2>/dev/null; do sleep 2; done
    qmd_count=$(qmd status 2>/dev/null | grep -A2 '{vocabulary.notes_collection}' | grep 'documents' | grep -oE '[0-9]+' | head -1)
    rm -rf "$LOCKDIR"
    
  3. 计算实际文件数:
    file_count=$(ls -1 {vocabulary.notes}/*.md 2>/dev/null | wc -l | tr -d ' ')
    
  4. 如果计数不同,同步索引:
    qmd update && qmd embed
    

在继续之前运行此检查。如果过时,同步并继续。如果当前,立即继续。

第1阶段:理解你要连接的内容

在寻找连接之前,深入理解源材料。

对于你要连接的每个{vocabulary.note}:

  1. 阅读完整的{vocabulary.note},不仅仅是标题和描述
  2. 确定核心主张和支持推理
  3. 记录关键概念、机制、影响
  4. 问:这个回答了什么问题?它提出了什么问题?

你要找的:

  • 核心论点(在主张什么?)
  • 机制(为什么/如何工作?)
  • 影响(这导致什么?)
  • 范围(何时适用?何时不适用?)
  • 紧张(什么可能与此相矛盾?)

如果存在任务文件(管道执行):阅读任务文件,看看提取阶段发现了什么。减少笔记、语义邻居字段和分类提供了关于为什么提取这个{vocabulary.note}以及它与什么相关的关键时刻。

第2阶段:发现(寻找候选)

使用双发现:{vocabulary.topic_map}探索和语义搜索并行。这些是互补的,而不是顺序的。

**在你去的时候捕捉发现追踪。**记录你阅读了哪些{vocabulary.topic_map_plural},你运行了哪些查询(带分数),你尝试了哪些搜索。这将成为输出中的发现追踪部分 — 证明方法论被遵循,而不是事后重建。

主要发现(并行运行):

路径1:{vocabulary.topic_map}探索 — 策划导航

如果你知道主题(检查{vocabulary.note}的主题页脚),从{vocabulary.topic_map}开始:

  • 阅读相关{vocabulary.topic_map}(s)
  • 跟随核心思想中的策划链接 — 这些是人类/代理策划的连接
  • 注意什么已经连接到类似概念
  • 检查紧张和空白以获取上下文
  • 代理笔记揭示了关于导航的什么?

{vocabulary.topic_map_plural}告诉你已经策划了什么思考以及它是如何组织的。有人已经决定对这个主题来说什么重要。

路径2:语义搜索 — 找到{vocabulary.topic_map_plural}可能错过的内容

语义搜索的三层回退:

**第1层 — MCP工具(首选):**使用mcp__qmd__deep_search(混合搜索与扩展+重新排名):

  • 查询:“[{vocabulary.note}的核心概念和机制]”
  • 限制:15

**第2层 — bash qmd带锁序列化:**如果MCP工具失败或不可用:

LOCKDIR="ops/queue/.locks/qmd.lock"
while ! mkdir "$LOCKDIR" 2>/dev/null; do sleep 2; done
qmd query "[note's core concepts]" --collection {vocabulary.notes_collection} --limit 15 2>/dev/null
rm -rf "$LOCKDIR"

锁定防止多个并行工作器同时加载大型模型。

**第3层 — 仅grep:**如果MCP和bash都失败,记录"qmd不可用,仅grep发现"并依赖{vocabulary.topic_map} + 关键词搜索。这会降低质量但不会阻塞工作。

通过相关性评估结果 — 阅读任何标题或片段表明真正连接的结果。语义搜索找到{vocabulary.note_plural}即使词汇不同也共享意义。一个关于"迭代周期"的{vocabulary.note}可能与"从摩擦中学习"连接,尽管没有共享任何词汇。

为什么两条路径:

{vocabulary.topic_map} = 已经策划为相关内容 语义搜索 = 邻居尚未策划 仅使用搜索会错过策划结构。仅使用{vocabulary.topic_map}会错过主题之外的语义邻居。两者一起使用可以捕捉到任何一个单独会错过的内容。

次要发现(在主要之后):

步骤3:关键词搜索

对于特定术语和完全匹配:

grep -r "term" {vocabulary.notes}/ --include="*.md"

使用grep时:

  • 你知道应该出现的确切单词
  • 寻找特定术语或短语
  • 查找一个命名概念的所有用途
  • 词汇稳定且可预测

步骤4:描述扫描

使用ripgrep扫描{vocabulary.note}描述以寻找边缘情况:

  • 这是否扩展了源{vocabulary.note}?
  • 这是否与或创建张力?
  • 这是否提供了证据或示例?

用原因标记候选(不仅仅是"相关")。

步骤5:链接跟踪

从有希望的候选,跟随它们现有的链接:

  • 他们连接到什么?
  • 是否有相关{vocabulary.note_plural}的集群?
  • 链是否出现,你的源{vocabulary.note}应该加入?

这是图遍历。你正在探索邻里。

第3阶段:评估连接

对于每个候选连接,应用阐述测试。

阐述测试:

完成这个句子:

[[note A]]连接到[[note B]]因为[具体原因]

如果你不能用一些实质性的东西填写[具体原因],连接失败。

有效关系类型:

关系 信号 示例
扩展 添加维度 “扩展[[X]]通过添加时间方面”
基础 提供基础 "这有效是因为[[Y]]建立… "
矛盾 创建张力 "与[[Z]]冲突,因为… "
举例 具体实例 “在实践中演示[[W]]”
综合 结合洞察 “从结合[[A]]和[[B]]中出现”
启用 解锁可能性 “通过提供…使[[C]]可操作”

如果:

  • 连接是"相关"而没有具体性
  • 你仅通过关键词匹配找到它而没有语义深度
  • 链接会混淆而不是澄清
  • 关系太明显而无用

代理遍历检查:

问:“如果代理跟随这个链接,他们得到什么?”

代理好处 保留链接
提供推理基础(为什么某事有效) YES
提供实施模式(如何做) YES
表面张力要考虑(权衡意识) YES
提供具体示例(基础抽象) YES
只是"相关主题"没有决策价值 NO

Vault为代理遍历而建。每个连接都应该帮助代理决定或理解某事。仅因为"有趣"而存在而没有操作价值的连接是噪音。

综合机会检测:

在评估连接时,注意综合机会 — 两个或更多的{vocabulary.note_plural}一起意味着一个更高阶的主张尚未被捕获。

综合机会的迹象:

  • 两个{vocabulary.note_plural}提出互补论点,结合成没有单独说的某事
  • 在三个或更多的{vocabulary.note_plural}中出现模式,尚未命名
  • 两个{vocabulary.note_plural}之间的张力表明需要解决

当你检测到综合机会时:

  1. 在输出报告中注明
  2. 不要在reflect期间创建综合{vocabulary.note} — 标记为未来工作
  3. 描述综合将主张什么以及哪些{vocabulary.note_plural}贡献

第4阶段:添加内联连接

连接生活在散文中,不仅仅是页脚。

内联链接作为散文:

维基链接是论点。标题在链接时作为散文工作。

好的模式:

由于[[other note]],问题变成了如何为检索结构化该记忆。

通过[[吞吐量比累积更重要]]的洞察表明,策展,而不是创造,是真正的工作。

这有效是因为[[好系统从摩擦中学习]] — 每次迭代都改善下一个。

坏的模式:

这与[[other note]]相关。

另见[[吞吐量比累积更重要]]。

如[[好系统从摩擦中学习]]中讨论的,系统得到改善。

如果你发现自己在写"这与"或"另见",停止。重新构建,使主张发挥作用。

在哪里添加链接:

  1. 内联在正文中,连接自然适合论点的地方
  2. 在相关笔记YAML字段中带有上下文短语
  3. 当连接足够强时两者都做

相关笔记格式:

相关笔记:
  - "[[笔记标题]] — 通过添加时间维度扩展这一点"
  - "[[另一笔记]] — 提供这一点依赖的机制"

上下文短语使用标准关系词汇:扩展,基础,矛盾,举例,综合,启用。

双向考虑:

当添加[[A]]到[[B]]时,问:[[B]]也应该链接到[[A]]吗?

并不总是。关系并不总是对称的:

  • "扩展"通常不是双向的
  • "举例"通常是一个方向
  • "矛盾"通常是双向的
  • "综合"可能引用两个来源

只有在跟随该路径对代理遍历有用时才添加反向链接。

重新编织任务过滤(在添加双向链接时):

当你编辑一个旧的{vocabulary.note}以添加反向链接时,你可能会标记它进行全面重新考虑通过重新编织。但如果这些适用则跳过重新编织标记:

跳过条件 理由
笔记有>5个传入链接 已经是中心 — 一个更多的链接不需要全面重新考虑
笔记有type: tension在YAML中 结构框架,不是需要演变的内容
笔记在当前批次中重新编织 不要重新编织刚刚重新编织的内容
笔记是{vocabulary.topic_map} {vocabulary.topic_map_plural}是导航,不是需要重新考虑的主张

检查传入链接:

grep -r '\[\[笔记名称\]\]' {vocabulary.notes}/*.md | wc -l

如果>= 5,跳过重新编织标记。

第5阶段:更新{vocabulary.topic_map_plural}

{vocabulary.topic_map_plural}是综合中心,不仅仅是索引。

何时更新{vocabulary.topic_map}:

  • 新{vocabulary.note}属于核心思想
  • 发现了新的张力
  • 填补了空白
  • 出现了综合洞察
  • 值得记录的导航路径

{vocabulary.topic_map}大小检查:

更新核心思想后,计算链接数:

grep -c '^\- \[\[' "{vocabulary.notes}/[moc-name].md"

如果接近拆分阈值(可配置,默认~40):在输出中注明"{vocabulary.topic_map}接近拆分阈值(N链接)" 如果超过:警告"{vocabulary.topic_map}超出推荐大小 — 考虑拆分"

拆分是人类决定(需要架构判断),但/reflect应该发出信号。

{vocabulary.topic_map}结构:

# [主题名称]

[开场综合:关于主题的主张。不是"这个{vocabulary.topic_map}收集{vocabulary.note_plural}"而是"核心洞察是Y因为Z。"这是思考,不是元描述。]

## 核心思想

- [[主张笔记]] — 它对理解的贡献
- [[另一个主张]] — 它如何适应或挑战现有想法

## 张力

- [[主张A]]和[[主张B]]冲突因为... [真正的未解决张力]

## 空白

- 还没有关于X方面的
- 需要Y的具体例子
- 缺少:与Z方法的比较

---

代理笔记:
- YYYY-MM-DD:[探索了什么]。[洞察或死胡同]。

更新核心思想:

添加新{vocabulary.note_plural}并用上下文短语解释贡献:

- [[新笔记]] — 通过展示摩擦教会你检查什么来扩展质量论点

顺序很重要。将{vocabulary.note_plural}放在它们适合逻辑流程的地方,而不是按字母顺序。

更新张力:

如果新{vocabulary.note}创建或解决张力:

## 张力

- [[可组合性]]要求小笔记,但[[上下文限制]]意味着遍历有开销。[[新笔记]]表明,权衡取决于预期的遍历深度。

记录真正的冲突。张力是宝贵的,不是错误。

更新空白:

移除现在已经填补的空白。添加在反思过程中发现的新空白。

第6阶段:添加代理笔记

代理笔记是未来导航的面包屑。

何时添加代理笔记:

  • 非明显的导航路径发现
  • 值得记录的死胡同
  • 发现了有生产力的{vocabulary.note}组合
  • 关于主题集群出现了洞察

格式:

代理笔记:
- YYYY-MM-DD:[探索了什么]。[洞察或发现]。

好的代理笔记:

- 2026-02-15:尝试通过"学习"连接 — 太通用了。更好的路径:摩擦 -> 验证 -> 质量。机制链更紧密。
- 2026-02-15:[[主张A]]和[[主张B]]形成了一个紧密的一对。A设定了标准,B教授了方法。

坏的代理笔记:

- 2026-02-15:阅读了{vocabulary.topic_map}并添加了一些链接。
- 2026-02-15:连接了[[笔记A]]到[[笔记B]]。

测试:这是否有助于未来的代理更有效地导航?

质量门

门1:阐述测试

对于每个添加的连接,你能完成:

[[A]]连接到[[B]]因为[具体原因]

如果任何连接未通过此测试,请移除它。

门2:散文测试

对于每个内联链接,大声读出句子。它自然流畅吗?你会这样对朋友解释这个想法吗?

不好:“这与[[笔记]]相关” 好:"由于[[笔记]],含义是… "

门3:双向检查

对于每个A -> B链接,明确决定:B -> A应该存在吗? 如果关系是不对称的,请记录你的理由。

门4:{vocabulary.topic_map}连贯性

更新{vocabulary.topic_map}后,阅读开场综合。它仍然成立吗?新的{vocabulary.note_plural}扩展或挑战它吗?

如果综合现在是错误的或不完整的,请更新它。

门5:链接验证

验证每个wiki链接目标存在。永远不要创建链接到不存在的文件。

# 检查链接目标是否存在
ls {vocabulary.notes}/"目标名称.md" 2>/dev/null

处理边缘情况

未找到连接

有时{vocabulary.note}真的还没有连接。这没关系。

  1. 确保它至少通过主题页脚链接到一个{vocabulary.topic_map}
  2. 在{vocabulary.topic_map}空白中注明这个领域需要发展
  3. 不要强迫不存在的连接

太多连接(拆分检测)

如果一个{vocabulary.note}连接到5+个不同领域的{vocabulary.note_plural},它可能太宽泛了。

拆分检测标准:

  1. **领域传播:**连接跨越3+个不同的{vocabulary.topic_map_plural}主题区域
  2. **多个主张:**该{vocabulary.note}提出了不止一个可以单独站立的断言
  3. **链接拖拽:**你会想链接到{vocabulary.note}的一部分,而不是全部

如何评估:

问:“如果我从上下文X链接到这个{vocabulary.note},不相关的内容包括Y会来吗?”

如果是,该{vocabulary.note}捆绑了应该分开的多个想法。

拆分检测输出:

### 拆分候选:[[宽泛笔记]]

**指标:**
- 连接到7个{vocabulary.note_plural}跨越3个领域
- 提出了关于:(1)捕获工作流程,(2)综合模式,(3)工具选择的不同主张
- 从[[笔记A]]链接会拖入与工具选择无关的内容

**提议拆分:**
- [[捕获工作流程比综合模式重要]] — 第一个主张
- [[工具选择遵循工作流程需求]] — 第三个主张
- 保持原始{vocabulary.note}专注于综合模式

**行动:**标记为人决策,不要自动拆分

何时不拆分:

  • {vocabulary.note}真的只关于一件事,触及许多领域
  • 连接都是相同关系的变化
  • 拆分会创建太薄而无法单独站立的{vocabulary.note_plural}

冲突笔记

当新内容与现有{vocabulary.note_plural}相矛盾时:

  1. 在两个{vocabulary.note_plural}中记录张力
  2. 添加到{vocabulary.topic_map}张力部分
  3. 不要自动解决 — 标记为判断

孤儿发现

如果你发现没有连接的{vocabulary.note_plural}:

  1. 在你的输出中标记它们
  2. 尝试连接它们
  3. 如果真的孤立,注明在相关{vocabulary.topic_map}空白中

输出格式

反思后报告:

## 反思完成

### 发现追踪

**为什么这很重要:**显示方法论被遵循。盲目委托隐藏了是否发生了双重发现。追踪使验证成为可能。

**{vocabulary.topic_map}探索:**
- 阅读[[moc-name]] — 发现候选:[[笔记A]], [[笔记B]], [[笔记C]]
- 从[[笔记A]]跟随链接到[[笔记D]]

**语义搜索:**(通过MCP | bash回退 | grep-only)
- 查询"[笔记的核心概念]" — 顶级命中:
  - [[笔记E]] (0.74) — 评估:强匹配,机制重叠
  - [[笔记F]] (0.61) — 评估:弱,只有表面词汇
  - [[笔记G]] (0.58) — 评估:跳过,不同领域

**关键词搜索:**
- grep "特定术语" — 发现[[笔记H]](已在{vocabulary.topic_map}候选中)

### 连接添加

**[[source note]]**
- -> [[target]] — [关系类型]:[为什么]
- <- [[incoming]] — [关系类型]:[为什么]
- 内联:在关于X的段落中添加了链接到[[笔记]]

### {vocabulary.topic_map}更新

**[[moc-name]]**
- 将[[笔记]]添加到核心思想 — [贡献]
- 更新张力:[[A]] vs [[B]]现在包括[[C]]
- 从空白中移除:[已填补]
- 代理笔记:[学到什么]

### 综合机会

[可以结合成更高阶洞察的{vocabulary.note_plural},提出的主张]

### 标记关注

- [[孤儿笔记]] — 找不到连接
- [[宽泛笔记]] — 可能从拆分中受益
- [[X]]和[[Y]]之间的张力需要解决

成功看起来像什么

成功的反思:

  • 每个连接都通过了阐述测试
  • 内联链接读作自然散文
  • {vocabulary.topic_map_plural}获得综合,不仅仅是条目
  • 代理笔记揭示非明显路径
  • 知识图谱变得更可遍历
  • 未来的代理将更有效地导航

测试:如果有人跟随你添加的链接,他们是否找到了真正有用的上下文?路径是否照亮了理解?

临界约束

永远不要:

  • 创建wiki链接到不存在的文件
  • 添加"相关"连接而没有具体理由
  • 强迫不存在的连接
  • 无语义判断自动生成
  • 跳过阐述测试

总是:

  • 验证链接目标存在
  • 解释为什么连接存在
  • 考虑双向性
  • 更新相关{vocabulary.topic_map_plural}
  • 当导航洞察出现时添加代理笔记
  • 工作时捕捉发现追踪

网络通过判断增长

这项技能是关于构建一个复合价值的知识图谱。你添加的每个连接都是未来思考可以跟随的遍历路径。你没有添加的每个连接都保持了图谱的清洁。

质量优于数量。一个真正的连接比十个模糊的连接更有价值。

图谱不仅仅是存储。它是一个外部思考结构。小心构建。


交接模式(–handoff标志)

当用--handoff调用时,在会话结束时附加此结构化格式。这使得外部循环(/ralph)可以解析结果并更新任务队列。

**检测:**检查$ARGUMENTS是否包含--handoff。如果是,完成正常工作流程后附加此块。

交接格式:

=== RALPH HANDOFF: {vocabulary.reflect} ===
目标:[[笔记名称]]

完成的工作:
- 发现:{vocabulary.topic_map} [[moc-name]], 查询"[查询]"(MCP|bash|grep-only),grep "[术语]"
- 添加的连接:N(阐述测试:通过)
- {vocabulary.topic_map}更新:[[moc-name]]核心思想部分
- 综合机会:[计数或无]

修改的文件:
- {vocabulary.notes}/[笔记名称].md(添加内联链接)
- {vocabulary.notes}/[moc-name].md(核心思想更新)
- [任务文件路径]({vocabulary.reflect}部分)

学习:
- [摩擦]:[描述] | 无
- [惊喜]:[描述] | 无
- [方法论]:[描述] | 无
- [过程差距]:[描述] | 无

队列更新:
- 推进阶段:{vocabulary.reflect} -> {vocabulary.reweave}
- 重新编织候选(如果任何通过过滤器):[[笔记]] | 无(过滤:中心/张力/最近)
=== END HANDOFF ===

任务文件更新(通过ralph循环调用)

当通过/ralph循环运行时,提示包括任务文件路径。完成工作流程后,更新任务文件的## {vocabulary.reflect}部分:

  • 添加的连接及原因
  • 所做的{vocabulary.topic_map}更新
  • 阐述测试结果
  • 发现追踪摘要

**关键:**交接块是输出,不是工作流程的替代。首先完成完整的reflect工作流程,更新任务文件,然后格式化结果为交接。

队列更新(交互执行)

当交互运行(不是通过/ralph)时,你必须在队列中推进阶段。/ralph自动处理这一点,但交互会话不。

完成工作流程后,推进阶段:

# 获取时间戳
TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%SZ")

# 推进阶段(当前阶段 -> 下一个,添加到已完成阶段)
jq '(.tasks[] | select(.id=="TASK_ID")).current_phase = "{vocabulary.reweave}" |
    (.tasks[] | select(.id=="TASK_ID")).completed_phases += ["{vocabulary.reflect}"]' \
    ops/queue/queue.json > tmp.json && mv tmp.json ops/queue/queue.json

交接块的"队列更新"部分不仅仅是输出 — 它是你自己的待办事项列表,当交互运行时。

管道链

连接发现完成后,根据ops/config.yaml管道.chaining模式输出下一步:

  • manual: 输出"Next: {vocabulary.cmd_reweave} [note]" — 用户决定何时进行
  • suggested: 输出下一步并推进任务队列条目到current_phase: "{vocabulary.reweave}"
  • automatic: 队列条目推进,向后传递立即进行

链输出使用派生清单中的领域原生命令名称。