进、存、出In, store, out
需求从说出到被用上,要经过三个环节,失败也正好分三类。每个环节都有一个成熟领域解决过同样结构的问题,这套方法借的是它们的做法。
A requirement passes three stages between being said and being used, and failures fall into the same three groups. For each stage, a mature field has already solved a problem with the same structure; the method borrows from them.
进:像编译器In: like a compiler
原话是源码,条目是中间表示。源码不丢,条目能从原话重拆;每条条目带原话指针,像编译错误带行号。软偏好像警告,可以权衡掉但要报出来;硬约束像错误,不满足的方案无效。语音转写里可疑的词先确认,不一路自信地解释下去。
Your words are the source code; items are the intermediate form. The source is never thrown away, so items can be rebuilt from it, and each item points back to the words it came from, like a compiler error points to a line. Soft preferences are like warnings: they can be traded off but must be reported. Hard constraints are like errors: a plan that breaks one is invalid. Suspicious words in a voice transcript are confirmed first, not confidently explained away.
存:像法律裁冲突Store: like law resolving conflicts
- 后法优先:同一对象、同一范围,新的取代旧的。
- 特别法优先:范围更窄的,在它的范围里优先;出了范围,旧的照旧有效。“今天我一个人”只改今天,不改“四人同行”。
- 上位法优先:手段和仍有效的目的冲突时,目的优先;不悄悄选一边,要写出冲突。
- 先区分对象、主体、范围、时段,相同才谈取代。已付款的决定不被新说法自动撤回,只标“待复核”。agent 对一个词的理解只是推荐,不能当成用户的话。
- Later rule wins: for the same object and scope, the newer statement replaces the older one.
- Narrower rule wins: a narrower statement takes priority inside its scope; outside it, the older one still holds. "I'm alone today" changes today only, not "four of us travel together".
- Higher rule wins: when a means conflicts with a goal that still holds, the goal wins; the conflict is written down, not silently resolved.
- First check whether object, person, scope and time really are the same; only then talk about replacement. Paid decisions are not undone automatically by new words; they are flagged for review. An agent's reading of a word is a suggestion, never the user's words.
出:像数据库的视图Out: like a database view
原话是只追加的事件日志,条目、决定、计划都是从它推出的视图。最要紧的一条:视图建了没人查,等于没建。所以出方案这个动作必须先查视图,取出适用集。
Your words form an append-only event log; items, decisions and plans are views derived from it. The key point: a view that nobody reads is useless. So making a plan must start by reading the view and taking out the applicable set.