# Bkn Doctor

> 建模质量诊断与多轮收敛。主路径不稳定时介入。

- Skill: `openbkn-ai/bkn-doctor` (Agent Skill)
- Install (CLI): `npx skillmds@latest add openbkn-ai/bkn-doctor`
- Raw SKILL.md: https://api.skillmd.com/api/skills/openbkn-ai/bkn-doctor/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: openbkn-ai (https://skillmd.com/u/openbkn-ai)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/openbkn-ai/bkn-doctor

---


# 建模诊断

公约：`../_shared/contract.md`

## 做什么

当 `bkn-extract` 产出的清单不稳定时，通过多轮对话诊断问题、收敛对象/关系/动作清单。

## 触发条件（满足任一）

- 输入模糊：对象/关系边界不清
- 领域冲突：候选领域分差小且未确认
- 待确认对象 >= 3
- 清单质量不足：方向冲突、主键缺失、命名异常

## 输入

- `problem_signal`：ambiguous_input / domain_conflict / too_many_pending / draft_quality_low
- `current_material`：原始文本 + 当前候选清单

## 三步收敛

**1. 识别问题** → 范围/对象/关系/动作/质量，哪个不稳定？

**2. 稳定骨架** → 先锁定：网络范围 + 核心 3-5 对象 + 关键 2-3 关系/动作。未稳定不进细节。

**3. 修正交付** → 逐项修正后输出结构化清单 + 稳定/待确认标记。

## 建模准则

| 判断 | 规则 |
|------|------|
| 对象 vs 属性 | 简单特征值 → 属性；独立业务实体 → 对象 |
| 关系 vs 对象 | 仅表示连接 → 关系；连接有业务属性 → 升级为对象 |
| Action vs 关系 | 结构关联 → 关系；状态改变/业务动作 → Action |
| 主键 | 字符串、稳定可复算、优先业务单号 |

## 交互原则

- 每次只追问一个关键问题
- 先收敛范围与核心对象，再讨论关系/动作
- 冲突时并列候选，不强行裁决
- 未稳定前只输出"候选 + 原因 + 待确认"

## 输出

所有键名使用中文，便于非技术人员阅读：

```yaml
澄清摘要: {问题, 解决方案}
稳定建模清单:
  显式对象: []
  推断对象: []
  待确认对象: []
  关系清单: []
  动作候选: []
问题解决记录: [{问题, 状态, 解决方案}]
待解决建议: []
```

## 质量自检（每轮输出前）

- 状态枚举误建为对象？
- 无主键对象？
- 关系方向未标注？
- pending 无处理建议？
- 未稳定写成确定？
任一失败先修正再输出。

