用途
Ontology 用于定义 Seed 的目标意味着什么,以及这种意义在哪里停止。它不询问动作,因为 acceptance_criteria 已经覆盖了动作。
输入
从 .symposium/scratch/socrates.md 顶层的 ## Seed 读取最新的 Seed。如果没有 Seed,则停止并请用户先运行 socrates。
Ontology 结构
ontology:
idea: <Seed.goal exactly>
boundary: <what is inside and outside the idea>
properties:
- <property 1>
- <property 2>
- <property 3>
流程
- 将 Seed.goal 原样复制到 ontology.idea。
- 提出一个边界问题:“这个理念的意义从哪里开始,到哪里结束?”
- 要求在该边界内恰好三个属性。
- 替换 .symposium/scratch/socrates.md 中顶层的 ## Ontology 部分。
- 在可用时,在 Codex Plan 模式中使用 request_user_input,在 Claude 中使用 AskUserQuestion,否则使用普通对话式提问。
提问风格
边界和属性都优先使用多选题提示,但保持可编辑。选项是候选边界/属性,不是最终的 ontology 术语。
边界提示形式:
这个理念的意义从哪里开始,到哪里结束?
A. <boundary candidate>
B. <boundary candidate>
C. <boundary candidate>
D. Other / define the boundary in your own words
属性提示形式:
哪些三个属性必须在该边界内?
A. <property>, <property>, <property>
B. <property>, <property>, <property>
C. <property>, <property>, <property>
D. Other / list exactly three properties
只写入用户选择或写出的术语。
规则
- idea 和 boundary 是不同的。
- 每个属性都必须在边界内。
- 恰好需要三个属性。
- 不要询问数据类型。
- 不要询问动作。
- 只有用户提供的边界和属性术语进入 YAML。
收敛比较
interview-harness 会比较前一个 ontology 和当前 ontology:
- idea:相同为 1,否则为 0。
- boundary:仅当用户确认两个边界含义相同时为 1。
- properties:两个属性集合之间的 Jaccard 重叠度。
对三个分数取平均值。0.85 或更高的分数意味着已收敛。