Skip to content

[候选工作单元(WorkCell)D1] 定义身份、AST 与双向创作 #182

Description

@TablewareBox

独立设计文档(审阅中):候选工作单元(WorkCell)组合定义、启动与分层动作设计
变更审阅:PR #188

父地图:#181

Outcome

冻结候选工作单元定义(WorkCell Definition)的身份、受限 Python AST、规范定义图、双向创作和发布生命周期,使人和 AI 可以稳定生成、修改、校验并发布同一语义定义。

已接受决策(Accepted Decisions)

  • D1-01:候选工作单元定义(WorkCell Definition)是一等、可版本化定义,拥有稳定身份、revision、digest、公共合同与嵌套依赖。
  • D1-02:v1 结构固定;候选启用(Activation)不能通过参数改变成员 class、alias、父子关系、库位(Site)、导出或动作(Action)合同。
  • D1-03:保留 @workcell 函数语法;Python 定义文件通过现有 -g/--graph 直接作为启动输入,不新增 --workcell;每个 .py 启动文件恰好一个顶层根定义。
  • D1-04:Python 与规范 JSON/结构化画布允许双向语义创作;同一草稿同一时刻只有一种可写模式。
  • D1-05:不承诺源码字节无损;发布前必须满足 graph -> Python -> graph 规范 digest 固定点。
  • D1-06=A:v1 使用失败关闭 AST allowlist;禁止动态控制流、任意调用、I/O、环境读取和未知 AST 节点。
  • D1-07=A:定义身份为包目录(PackageCatalog)fqid、发布权威分配的单调 revision 与摘要;id= 是稳定 member_id,变量名只属于 source map。
  • D1-08=A:规范 JSON 自身采用现有字段优先的 NetworkX node-link 形态;顶层使用 directed/multigraph/graph/nodes/links,节点复用 id/name/type/class/parent/children/pose/config/data,连接复用 id/source/target/type/port,仅新增必要的可选 config_bindingsnodes/linksid 规范排序,children/config.sites 保留业务顺序;精确依赖与资产闭包进入摘要,source map 与 ui_layout 留在 sidecar。定义排除运行实例 UUID、真实物料(Material)状态和库位占用(SiteOccupancy)。读取形式固定为 nx.node_link_graph(document, edges="links", key="id")
  • D1-09=A:单一 draft_revision/可写模式,保存使用 CAS;切换先校验并展示完整语义 diff,冲突显式 rebase,无效草稿不替换最后有效候选图。
  • D1-10=A:v1 从 workspace/已安装 package 的显式 .py 启动;依赖和资产只经显式 Package Source 产生的包目录(PackageCatalog)固定,workspace、wheel 与缓存 archive 必须摘要一致。
  • D1-11=A:草稿(Draft)可变、候选定义(Candidate)与已发布定义(Published Definition)不可变;只有已发布定义可进入目录、嵌套和启用,发布重编译精确闭包并原子失败关闭。

本票设计状态

D1-01~D1-11 已全部冻结;后续只在实现发现已接受合同不可实现或与当前跨仓权威冲突时重开版本化决策。本票保持协议定义状态,等待拆分 repository-local 交付票和验收实现。

不包含

  • 物理位姿的具体合同;
  • 现场启动值、敏感配置提供者(Secret Provider)和候选启用快照(Activation Snapshot);
  • 设备注册表(Device Registry)公开/私有投影;
  • 工作流支持动作(Workflow-backed Action)的运行语义。

Acceptance gates

  • AST 扫描不 import/exec 作者源码、驱动或资源工厂;
  • workspace、clean wheel 与缓存 archive 产生相同规范 digest;
  • 稳定 member_id 不依赖局部变量名或 nodes 数组位置,childrenconfig.sites 的业务顺序可稳定往返;
  • 规范文档可由 nx.node_link_graph(document, edges="links", key="id") 初始化且不丢失并行连接;
  • 双向生成固定点、完整 diff、CAS 冲突和 invalid-draft 保留均有测试;
  • 非法引用、循环、动态 Python、目录漂移和运行时权威字段全部失败关闭。

关联

Metadata

Metadata

Assignees

No one assigned

    Labels

    feature:workcell-compositionWorkCell 组合定义、注册编译、可见性与 Action 发布ready-for-humanRequires human implementationstage:protocol-definitionDefining or freezing the OKF protocolwayfinder:grilling需要与人逐题确认的 Wayfinder 决策票

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions