domain-impact-analysis
Installation
SKILL.md
领域影响分析与顶层设计
拿着需求与不变式单,回答三个问题:哪些现有领域受影响,要不要新领域;谁是这一程的重点、次要、连带;系统全局上这些领域怎么摆。产出领域影响分级表和最粗粒度的顶层设计,它们是后面细化、论证、实施、验收的总边界。
下面两节是思维模型 think-orthogonal 在领域上的做法:先拆轴、每条轴找一个拥有者,再按轴交叉出的表逐格分级。分级按的是与本程改动的关系,不按路径。
先找轴,再找领域
分级之前先问现有领域的结构能不能直接承载这个需求,能就没有新领域。先答三问:应然、实然、差异。做法加载技能 think-ought-vs-is。
需求提出时通常带着一个机制、症状或里程碑,不带它所在的维度。问题里出现的那个词多半不是问题所在的轴。先做维度分解,再对领域:
- 剥掉表面。问这里真正在变的量是什么,什么必须保持不变。
- 命名轴。逐项问:谁在做(身份),允不允许(授权、策略),在哪里运行(落点、执行环境),哪份工作要持续(会话、工作),谁执行、活多久(运行时寿命),怎样被看见(观察),怎样接线(装配)。每条轴落在一个拥有者。
- 找到这条轴的拥有者,先读它的现行正文。多数待决事项在这一步消失,因为拥有者已经回答了它。
- 查耦合。检查答案有没有让一条轴决定另一条轴。常见形式:隔离提供者决定授权范围;一个实例的寿命决定观察挂在哪里;调用方的寿命决定被调用工作的寿命;提交协议的一个细节反过来决定事实归谁。
- 到这一步才分类剩下的事项:某条轴上没有拥有者的缺口是新设计;同一条轴上两个都自洽的答案交有权者裁决;其余是实现已经设计好的东西。
迷失了轴的信号:问题里带着机制名;一个答案有两个来自不同领域的理由;其他领域的词出现在本领域契约里;A 的寿命决定了 B 的寿命;一个默认值悄悄成了边界;请有权者在不同轴的选项之间二选一,而这些选项并不互相替代。