跳至文档正文
文档目录 · Reality-First

Developers

Reality-First Development

从聚身之家的身份歧义、生命周期、来源冲突、图片缺口、参数校验和迁移治理理解现实驱动的开发闭环。

从现实问题开始,回到实际使用

Reality-First Development 的工作顺序是:现实问题 → 最小有用数据 → 身份、时间与证据 → 模型和接口 → 实际使用 → 反馈修正。先让一次查询保留正确含义,再扩充数据量和界面。

下面是聚身之家已有实现或治理记录中的例子;代码能证明机制,不能单独证明某一生产版本已部署或数据已完善。

Robot duplicate → Identity

同名搜索可能命中多个机器人。详情接口会保留 matchTypecanonicalIdambiguouscandidates,把不确定性交给调用方处理。搜索得到名字之后还要确认厂商和规范 ID,不能用字符串相似度直接合并产品。

依据:emibot-rs/src/routes/robots.rs 的名称候选与身份响应。使用方式见 核心模型

Company lifecycle → Time / Lifecycle

企业停止经营不应从知识图谱消失。企业详情读取批准的生命周期断言,保留有效期、证据数量与核验状态;没有断言时返回 unknown。historical 是由特定状态派生的展示标记,不是删除指令,也不能由官网打不开推断。

依据:emibot-rs/src/routes/companies.rslifecycle_json;事件状态链见 Timeline / State

Source conflict → Evidence

两份资料的扭矩不同,可能属于不同版本或时间,也可能是真冲突。Part 模型保留独立规格主张、有效期、证据和修订链;不能只存一个“最新数字”。时间未知时无法证明两者互不冲突,应保留这个限制。

这是仓库已有的模型规则,不声称某两家厂商发生过未核实的争议。依据:docs/adr/0005-parts-bom-domain-schema.md 的规格时间与 source_conflict 规则;读取方式见 Evidence

Missing cover → Quality rule

没有合格官方单机原图时,产品图留空并记录缺口。低清帧、遮挡、多主体图、猜测重绘和透明占位图不能让资料“变完整”。数据质量取决于真实可用信息,图片填充率不是目标。

依据:仓库 AGENTS.md 的产品参数与图片规则。这条规则约束维护行为,不表示公共 API 会自动完成图片质量判定。

REST unknown param → Agent-safe contract

manufacturer 误传给机器人列表,若服务端静默忽略,Agent 就可能把全量列表当作筛选结果。现有 query 白名单对覆盖的路径返回 400、INVALID_QUERY_PARAMETER 与允许参数,阻断这种错误结论。它尚未覆盖所有新增路径,所以文档必须交代实际范围。

依据:emibot-rs/src/query_validation.rs 的冷启动回归记录。见 REST 错误契约

Migration incident → Governance guard

仓库治理记录说明:2026-09-18,8 个 company_profiles 迁移的审计发现其会向既有来源和证据表追加数据。它们从主干撤下并不撤销已经发生的数据库变化。这推动了敏感迁移分类、待执行集合核对及与内容摘要绑定的放行机制。

教训是把代码变更、数据库执行和实际读回分开验收。依据:docs/migration-governance.md 的事故与后续核实记录、scripts/check-migrations.py。本文只解释工程边界,不提供生产操作入口。

用一次接入检验这些原则

Getting started 发起真实搜索,用 Agent Guide 检查身份、未知与错误,再沿证据确认一个结论。遇到契约缺口时保留可复现请求和响应,而不是让页面叙述越过接口能力。