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-bind" ~/.claude/skills/kweaver-ai-kweaver-dip-bkn-bind && rm -rf "$T"
manifest:
skills/bkn-creator/internal/bkn-bind/SKILL.mdsource content
视图绑定
公约:
../_shared/contract.md | 绑定规则:references/binding-rules.md
做什么
给定对象草案和候选视图,为每个对象找到最佳绑定视图,输出 bound / pending / rejected。
输入
:对象清单(含属性和object_draft_list
标记)存储位置
:候选视图(空则使用candidate_views
输出的bkn-env
进行匹配)dataview_availability.available_views
:可选,dataview_availability
输出的完整信封(含bkn-env
、total_views
、fetched_views
、truncated
)available_views
:网络名、领域network_context
流程
- 存储位置过滤:
- 跳过
的对象(本地对象无需数据视图绑定)存储位置: local - 在输出中记录被跳过的 local 对象列表
- 仅对
对象执行后续步骤platform
- 跳过
- 从对象描述提取数据源线索
- 委托
查视图存在性 + 字段 schema(kweaver-core
)kweaver dataview get - 字段 schema 输出:将每个已绑定对象的视图字段 schema 写入
,供view_schema_map
做属性回灌和bkn-map
做属性命名预对齐bkn-draft - 字段兼容性验证:逐属性比对,
降级为 ambiguousnot_found > 50% - 补充匹配:语义(
)+ GKN 复用data-semantic - 逐对象决议:bound / pending / rejected
- 数据源一致性校验:不同 datasource_id 标记风险
判定规则见
references/binding-rules.md
输出
binding_decision_list: bound: [{object_id, object_name, selected_view_id, confidence, reason}] pending: [{object_id, object_name, candidates, blocking_points}] rejected: [{object_id, object_name, reason}] skipped_local_objects: [对象名] binding_summary: total_objects: 0 # 仅计算 platform 对象 bound_objects: 0 binding_rate: 0.0 # bound_objects / total_objects(不含 local 对象) view_schema_map: {object_name: [{field_name, field_type, description}]} # 已绑定对象的视图字段 schema,供 bkn-map 和 bkn-draft 复用
视图匹配职责
bkn-bind 是对象-视图匹配的唯一决策点。bkn-env 仅提供可用视图列表(dataview_availability),不做匹配推荐。
候选视图来源:
非空 → 使用用户传入的候选列表(candidate_views
仅用于截断风险检查)dataview_availability
为空 +candidate_views
存在 → 使用dataview_availabilitydataview_availability.available_views
为空 +candidate_views
不存在(如 update pipeline 跳过了 bkn-env)→ warn 用户"无候选视图列表,请手动指定 view_id 或 view_name 辅助匹配"dataview_availability
截断风险处理:当
dataview_availability.truncated == true 时:
- 向用户发出 warning:"平台视图列表可能存在截断,自动匹配可能遗漏目标视图。建议手动指定 view_id 或 view_name 辅助匹配。"
- 继续用已获取的候选列表执行匹配,不阻断流程
- 匹配结果为 pending 时,提示用户可能需要手动确认 view_id
约束
- 只做对象级绑定,属性映射交
bkn-map - 绑定值必须是
,不用名称替代view_id - 多候选无法裁决时输出 pending,不强选
- 不静默忽略数据源不一致