bkn-modeling-advisor

$npx mdskill add kweaver-ai/kweaver-dip/bkn-modeling-advisor

Guides BKN modeling to produce compliant object, relation, action, risk, and concept definitions.

  • Helps users design or extend a Business Knowledge Network from scratch or existing schemas.
  • Depends on user-provided business domain descriptions, documents, or existing BKN definitions.
  • Determines modeling approach based on new, import, or from-doc modes and asks one question at a time.
  • Outputs structured BKN definitions in phases with narration and confirmation before proceeding.

SKILL.md

.github/skills/bkn-modeling-advisorView on GitHub ↗
---
name: bkn-modeling-advisor
description: 指导业务知识网络(BKN)建模,输出符合 BKN 2.0.0 的对象类型、关系类型、操作类型、风险类型与概念分组定义。适用于用户提出本体设计、知识网络建模、实体关系梳理、Action 设计、Schema 评审、从文档提取初稿或扩展现有 BKN 的场景。
---

# BKN Modeling Advisor

## 适用场景

当用户出现以下意图时使用本技能:
- 从零设计一个 BKN
- 扩展/重构已有 BKN
- 从 PRD、流程文档提取本体初稿
- 评审 BKN 结构是否合理
- 讨论对象、关系、Action、风险与治理建模

## 工作模式

先识别模式,再进入流程:

1. `new`:无现成 BKN,从业务场景开始建模
2. `import`:已有 BKN,做增量设计或评审
3. `from_doc`:用户提供文档,先抽取初稿再补齐

## 交互原则

- 每次只问一个关键问题,等待回答后推进
- 优先使用业务语言,不要求用户理解 JSON 细节
- 每个阶段结束先复述(Model Narration)再确认
- 对不确定术语先标记,再请求澄清
- 出现高风险变更时,强制补齐审批与回滚描述

## 建模流程

按以下阶段推进,`import`/`from_doc` 可从中间阶段切入。

### Phase 1:领域锚定

收集并确认:
- `network.id`
- `network.name`
- `network.description`
- `business_domain`(如采购、库存、计划、质量)

### Phase 2:场景走查

让用户描述典型流程,提取候选项:
- 反复出现的业务名词 -> 候选 `object_type`
- 状态变化与动作 -> 候选 `action_type`
- 对象之间的关联 -> 候选 `relation_type`

### Phase 3:对象类型确认

对每个候选对象检查:
- 是否有独立生命周期
- 是否有稳定唯一标识(字符串主键)
- 是否至少有 3 个可追踪属性
- 是否被多个流程或角色使用

对象输出至少包含:
- `id`, `name`, `description`
- `data_properties[]`
- `keys.primary_keys[]`, `keys.display_key`

### Phase 4:关系类型确认

逐对对象确认:
- 业务含义是否清晰
- 基数(1:1 / 1:N / N:1 / N:M)
- 关系实现类型
  - `direct`:字段直连,需 `mapping_rules`
  - `data_view`:需中间视图,需映射定义

如果“关系本身有属性”(如金额、状态、生效日期),优先升级为独立对象,而非直接建 link。

### Phase 5:操作类型确认

为每个操作明确:
- 谁触发(角色)
- 改变哪些对象和字段
- 前置条件(`pre_conditions`)
- 参数来源(`property` / `input` / `const`)
- 风险等级(`low` / `medium` / `high`)
- 是否必须审批(`requires_approval`)

`bound_object.action_type` 仅可取:
- `add`
- `modify`
- `delete`
- `query`

### Phase 6:可选治理补充

按需补充:
- `risk_type`:高风险动作的控制策略
- `concept_group`:对象分组(按业务域/职责)

### Phase 7:完整性审查与导出

导出前逐项检查:
- 必填字段齐全
- ID 命名合法(建议仅用 `[a-z0-9_-]`)
- 引用对象存在且可达
- 主键/显示键指向有效字段
- Action 参数绑定完整

## 快速建模准则

### 对象 vs 属性

- 简单特征值(状态、等级、颜色) -> 属性
- 独立业务实体(可被引用、有生命周期) -> 对象

### 关系 vs 对象

- 仅表示连接 -> 关系
- 连接本身有业务属性 -> 升级为对象

### Action vs 关系

- 描述“结构关联” -> 关系
- 描述“状态改变或业务动作” -> Action

### 主键设计

- 必须为字符串
- 必须稳定且可复算
- 优先业务单号/编码,避免随机 UUID

## 输出格式

默认输出两段内容:

1. **业务复述版**(给业务方确认)
2. **BKN 结构草案**(JSON 片段,按节点类型分组)

如用户确认“导出完整文件”,再输出完整 BKN JSON。

## 与 bkn-creator 对接契约(MUST)

当被 `bkn-creator` 委托时,输出必须满足以下契约:

1. 对象分组
   - `explicit_objects`
   - `inferred_objects`(每项必须含 `inference_reason`)
   - `pending_objects`
2. 关系命名
   - `relation.name` 必须使用中文业务名
   - 英文技术标识仅可放在 `relation_id`
3. 待确认项处理提示
   - 当 `pending_objects` 非空时,必须附“待确认对象处理建议”(纳入 / 移出 / 保留待确认)
   - 不得将“待确认对象”直接并入最终确认清单
4. 交付内容
   - 业务复述版(可供用户确认)
   - 结构化建模清单(可供 `bkn-creator` 继续门禁流转)

## 输出模板

### A. 业务复述版

```markdown
当前模型包含:
- 核心对象:...
- 关键关系:...
- 主要操作:...
- 高风险点:...
- 待确认项:...
```

### B. BKN 结构草案(示例骨架)

```json
{
  "network": {
    "id": "example_network",
    "name": "示例网络",
    "description": "..."
  },
  "object_types": [],
  "relation_types": [],
  "action_types": [],
  "risk_types": [],
  "concept_groups": []
}
```

## 质量门禁(每轮)

输出前自检:
- 是否把“状态枚举”误建为对象
- 是否出现无法解释的缩写字段名
- 是否有无主键对象
- 是否有未绑定的 Action 参数
- 是否遗漏审批/审计要求(高风险场景)

如果任一失败,先修正再输出。

## 需要追问的最小问题集

信息不足时按以下顺序提问:
1. 网络覆盖范围是什么?
2. 最核心的 3-5 个业务对象是什么?
3. 每个对象的唯一标识是什么?
4. 最关键的 2-3 条对象关系是什么?
5. 最关键的 2-3 个业务动作是什么?

## 结束标准

满足以下条件才可宣布完成:
- 用户确认业务复述准确
- BKN 结构通过完整性检查
- 待确认项明确列出并已获用户接受(可留 backlog)

More from kweaver-ai/kweaver-dip