$npx -y skills add kweaver-ai/kweaver-dip --skill bkn-doctor建模质量诊断与多轮收敛。主路径不稳定时介入。
| 1 | # 建模诊断 |
| 2 | |
| 3 | 公约:`../_shared/contract.md` |
| 4 | |
| 5 | ## 做什么 |
| 6 | |
| 7 | 当 `bkn-extract` 产出的清单不稳定时,通过多轮对话诊断问题、收敛对象/关系/动作清单。 |
| 8 | |
| 9 | ## 触发条件(满足任一) |
| 10 | |
| 11 | - 输入模糊:对象/关系边界不清 |
| 12 | - 领域冲突:候选领域分差小且未确认 |
| 13 | - 待确认对象 >= 3 |
| 14 | - 清单质量不足:方向冲突、主键缺失、命名异常 |
| 15 | |
| 16 | ## 输入 |
| 17 | |
| 18 | - `problem_signal`:ambiguous_input / domain_conflict / too_many_pending / draft_quality_low |
| 19 | - `current_material`:原始文本 + 当前候选清单 |
| 20 | |
| 21 | ## 三步收敛 |
| 22 | |
| 23 | **1. 识别问题** → 范围/对象/关系/动作/质量,哪个不稳定? |
| 24 | |
| 25 | **2. 稳定骨架** → 先锁定:网络范围 + 核心 3-5 对象 + 关键 2-3 关系/动作。未稳定不进细节。 |
| 26 | |
| 27 | **3. 修正交付** → 逐项修正后输出结构化清单 + 稳定/待确认标记。 |
| 28 | |
| 29 | ## 建模准则 |
| 30 | |
| 31 | | 判断 | 规则 | |
| 32 | |------|------| |
| 33 | | 对象 vs 属性 | 简单特征值 → 属性;独立业务实体 → 对象 | |
| 34 | | 关系 vs 对象 | 仅表示连接 → 关系;连接有业务属性 → 升级为对象 | |
| 35 | | Action vs 关系 | 结构关联 → 关系;状态改变/业务动作 → Action | |
| 36 | | 主键 | 字符串、稳定可复算、优先业务单号 | |
| 37 | |
| 38 | ## 交互原则 |
| 39 | |
| 40 | - 每次只追问一个关键问题 |
| 41 | - 先收敛范围与核心对象,再讨论关系/动作 |
| 42 | - 冲突时并列候选,不强行裁决 |
| 43 | - 未稳定前只输出"候选 + 原因 + 待确认" |
| 44 | |
| 45 | ## 输出 |
| 46 | |
| 47 | 所有键名使用中文,便于非技术人员阅读: |
| 48 | |
| 49 | ```yaml |
| 50 | 澄清摘要: {问题, 解决方案} |
| 51 | 稳定建模清单: |
| 52 | 显式对象: [] |
| 53 | 推断对象: [] |
| 54 | 待确认对象: [] |
| 55 | 关系清单: [] |
| 56 | 动作候选: [] |
| 57 | 问题解决记录: [{问题, 状态, 解决方案}] |
| 58 | 待解决建议: [] |
| 59 | ``` |
| 60 | |
| 61 | ## 质量自检(每轮输出前) |
| 62 | |
| 63 | - 状态枚举误建为对象? |
| 64 | - 无主键对象? |
| 65 | - 关系方向未标注? |
| 66 | - pending 无处理建议? |
| 67 | - 未稳定写成确定? |
| 68 | 任一失败先修正再输出。 |