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步 - 任何处理之前)
读取这些文件以配置特定领域的操作:
-
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作为收件箱文件夹名称
- 使用
-
ops/config.yaml— 处理深度,管道链processing.depth: deep | standard | quickprocessing.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}找到连接
执行以下步骤:
- 完整阅读目标{vocabulary.note} — 理解其主张和上下文
- 在发现过程中: 记录你阅读了哪些{vocabulary.topic_map_plural},你运行了哪些查询(带分数),你评估了哪些候选。这将成为发现追踪 — 证明方法论被遵循,而不是事后重建。
- 运行第0阶段(索引新鲜度检查)
- 并行使用双发现:
- 浏览相关{vocabulary.topic_map}(s)以查找相关的{vocabulary.note_plural}
- 运行语义搜索以查找概念上相关的{vocabulary.note_plural}
- 评估每个候选:是否存在真正的连接?你能表达为什么吗?
- 在通过阐述测试的地方添加内联wiki链接
- 使用此{vocabulary.note}更新相关{vocabulary.topic_map}(s)
- 如果上下文中有任务文件:更新{vocabulary.reflect}部分
- 报告连接了什么以及为什么
- 如果目标中有
--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(无参数)
检查最近的添加:
- 查找在上一次会话中修改的{vocabulary.note_plural}
- 如果没有明显的,询问用户要连接哪些{vocabulary.note_plural}
/reflect [note]
专注于连接特定的{vocabulary.note}:
- 阅读目标{vocabulary.note}
- 发现相关内容
- 添加连接并更新{vocabulary.topic_map_plural}
/reflect [topic area]
综合一个领域:
- 阅读相关的{vocabulary.topic_map}
- 确定应该连接的{vocabulary.note_plural}
- 编织连接,更新综合
/reflect --handoff [note]
外部循环模式/ralph:
- 正常执行完整工作流程
- 在最后,输出结构化的RALPH HANDOFF块
- 用于在每个任务都有新鲜上下文的情况下运行孤立阶段
工作流程
第0阶段:验证索引新鲜度
在使用语义搜索之前,验证索引是否最新。这是自我修复:如果{vocabulary.note_plural}在管道之外创建(手动编辑,其他技能),reflect在搜索之前捕捉漂移。
- 尝试
mcp__qmd__status以获取目标集合的索引文档计数 - 如果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" - 计算实际文件数:
file_count=$(ls -1 {vocabulary.notes}/*.md 2>/dev/null | wc -l | tr -d ' ') - 如果计数不同,同步索引:
qmd update && qmd embed
在继续之前运行此检查。如果过时,同步并继续。如果当前,立即继续。
第1阶段:理解你要连接的内容
在寻找连接之前,深入理解源材料。
对于你要连接的每个{vocabulary.note}:
- 阅读完整的{vocabulary.note},不仅仅是标题和描述
- 确定核心主张和支持推理
- 记录关键概念、机制、影响
- 问:这个回答了什么问题?它提出了什么问题?
你要找的:
- 核心论点(在主张什么?)
- 机制(为什么/如何工作?)
- 影响(这导致什么?)
- 范围(何时适用?何时不适用?)
- 紧张(什么可能与此相矛盾?)
如果存在任务文件(管道执行):阅读任务文件,看看提取阶段发现了什么。减少笔记、语义邻居字段和分类提供了关于为什么提取这个{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}之间的张力表明需要解决
当你检测到综合机会时:
- 在输出报告中注明
- 不要在reflect期间创建综合{vocabulary.note} — 标记为未来工作
- 描述综合将主张什么以及哪些{vocabulary.note_plural}贡献
第4阶段:添加内联连接
连接生活在散文中,不仅仅是页脚。
内联链接作为散文:
维基链接是论点。标题在链接时作为散文工作。
好的模式:
由于[[other note]],问题变成了如何为检索结构化该记忆。
通过[[吞吐量比累积更重要]]的洞察表明,策展,而不是创造,是真正的工作。
这有效是因为[[好系统从摩擦中学习]] — 每次迭代都改善下一个。
坏的模式:
这与[[other note]]相关。
另见[[吞吐量比累积更重要]]。
如[[好系统从摩擦中学习]]中讨论的,系统得到改善。
如果你发现自己在写"这与"或"另见",停止。重新构建,使主张发挥作用。
在哪里添加链接:
- 内联在正文中,连接自然适合论点的地方
- 在相关笔记YAML字段中带有上下文短语
- 当连接足够强时两者都做
相关笔记格式:
相关笔记:
- "[[笔记标题]] — 通过添加时间维度扩展这一点"
- "[[另一笔记]] — 提供这一点依赖的机制"
上下文短语使用标准关系词汇:扩展,基础,矛盾,举例,综合,启用。
双向考虑:
当添加[[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}真的还没有连接。这没关系。
- 确保它至少通过主题页脚链接到一个{vocabulary.topic_map}
- 在{vocabulary.topic_map}空白中注明这个领域需要发展
- 不要强迫不存在的连接
太多连接(拆分检测)
如果一个{vocabulary.note}连接到5+个不同领域的{vocabulary.note_plural},它可能太宽泛了。
拆分检测标准:
- **领域传播:**连接跨越3+个不同的{vocabulary.topic_map_plural}主题区域
- **多个主张:**该{vocabulary.note}提出了不止一个可以单独站立的断言
- **链接拖拽:**你会想链接到{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}相矛盾时:
- 在两个{vocabulary.note_plural}中记录张力
- 添加到{vocabulary.topic_map}张力部分
- 不要自动解决 — 标记为判断
孤儿发现
如果你发现没有连接的{vocabulary.note_plural}:
- 在你的输出中标记它们
- 尝试连接它们
- 如果真的孤立,注明在相关{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: 队列条目推进,向后传递立即进行
链输出使用派生清单中的领域原生命令名称。