install
source · Clone the upstream repo
git clone https://github.com/kweaver-ai/kweaver-dip
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/kweaver-ai/kweaver-dip "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/bkn-creator/internal/bkn-doctor" ~/.claude/skills/kweaver-ai-kweaver-dip-bkn-doctor && rm -rf "$T"
manifest:
skills/bkn-creator/internal/bkn-doctor/SKILL.mdsource content
建模诊断
公约:
../_shared/contract.md
做什么
当
bkn-extract 产出的清单不稳定时,通过多轮对话诊断问题、收敛对象/关系/动作清单。
触发条件(满足任一)
- 输入模糊:对象/关系边界不清
- 领域冲突:候选领域分差小且未确认
- 待确认对象 >= 3
- 清单质量不足:方向冲突、主键缺失、命名异常
输入
:ambiguous_input / domain_conflict / too_many_pending / draft_quality_lowproblem_signal
:原始文本 + 当前候选清单current_material
三步收敛
1. 识别问题 → 范围/对象/关系/动作/质量,哪个不稳定?
2. 稳定骨架 → 先锁定:网络范围 + 核心 3-5 对象 + 关键 2-3 关系/动作。未稳定不进细节。
3. 修正交付 → 逐项修正后输出结构化清单 + 稳定/待确认标记。
建模准则
| 判断 | 规则 |
|---|---|
| 对象 vs 属性 | 简单特征值 → 属性;独立业务实体 → 对象 |
| 关系 vs 对象 | 仅表示连接 → 关系;连接有业务属性 → 升级为对象 |
| Action vs 关系 | 结构关联 → 关系;状态改变/业务动作 → Action |
| 主键 | 字符串、稳定可复算、优先业务单号 |
交互原则
- 每次只追问一个关键问题
- 先收敛范围与核心对象,再讨论关系/动作
- 冲突时并列候选,不强行裁决
- 未稳定前只输出"候选 + 原因 + 待确认"
输出
所有键名使用中文,便于非技术人员阅读:
澄清摘要: {问题, 解决方案} 稳定建模清单: 显式对象: [] 推断对象: [] 待确认对象: [] 关系清单: [] 动作候选: [] 问题解决记录: [{问题, 状态, 解决方案}] 待解决建议: []
质量自检(每轮输出前)
- 状态枚举误建为对象?
- 无主键对象?
- 关系方向未标注?
- pending 无处理建议?
- 未稳定写成确定? 任一失败先修正再输出。