Files
heicodedebug/chek/2026-06-01_需要统一定义的标准清单.md

6.3 KiB
Raw Permalink Blame History

Heicode 需要统一定义的标准清单

日期:2026-06-01 关联:见本仓库《Heicode 全链路代码评审报告》(README.md) 背景:评审发现的统一根因——关键业务概念没有单一权威定义,而是在 Runtime / Manager / 客户端 / 文档 里各写一份,再靠下游正则和文档补丁去对齐。本清单列出需要"定一份、各方引用"的标准。


总原则

每个关键概念定唯一权威定义 + 唯一裁判方;由 Runtime 输出"结构化真相",Manager 据结构化字段裁决,客户端只消费结论。删掉客户端 / Manager 各自的本地正则与各写一份的枚举。

共 8 个标准,按优先级分三档。


🔴 地基级(必须先定)

1. 任务完成判定标准(Completion Contract)

项 内容
现状散落 HeiCode-Swarm/agent/task_executor.py:141(模型自报 status 即成功)、orchestrator/main.py:519(无条件发 completed)、heicode-mananger/heicode/controller/agnet_callback.go:304(Manager 镜像 completed)
要钉死 completed 的充要条件:代码类任务必须有结构化产出(files_modified 非空 / 有 diff / 有 commit);否则进入非成功终态
唯一裁判 Manager(据 Runtime 上报的结构化字段判定,不靠文本)

2. 状态枚举与状态机(Status Enum / State Machine)

项 内容
现状散落 文档枚举 heicode-desktop-sub-agile-api.md:1399(没有 completed)vs 代码实际写 completed(agnet_callback.go:307)
要钉死 deployment.status / runtime_state / task.status 三套枚举完整合法值(含 completed 与新增 completed_without_deliverable / needs_codegen)+ 状态转移图;文档 / Go / 客户端三处对齐
唯一裁判 一份枚举定义被三方 import / 引用

3. 交付物分类与有效性标准(Artifact Taxonomy)

项 内容
现状散落 Runtime 硬编码类型 orchestrator/main.py:480,494;Manager 自由字符串无校验 + uri 正则 agnet_runtime_client.go:670;客户端另一套中文正则 heicode-desktop-sub-agile-api.md:300
要钉死 artifact_type 规范枚举;"是否算代码交付物"只依据结构化字段判定,不再 re-parse 文本
唯一裁判 Manager;删客户端 classifyArtifact 与 Manager runtimeArtifactsAreSummaryOnly 两套正则

🟠 与地基配套

4. 结构化产出契约(Runtime → Manager 结构化真相 Schema)

项 内容
说明 支撑标准 1、3 的载体
现状 files_modified / git_skipped / artifact_type 只塞在 artifact metadata 里,无人据此否决 completed
要钉死 Runtime 每次完成必须上报的结构化字段集:files_modified[]、has_diff、commit_sha、deliverable: code|document|summary_only、tokens_used 等;Manager 据此裁决

5. 回调事件契约(Callback Event Schema)

项 内容
现状 事件类型/必填字段已部分定义 agnet_callback.go:463,但与 ASCE §12.1 必采事件、§12.2 必采字段未完全对齐
要钉死 事件类型全集(task.* / handoff.* / approval.* / resource.accessed / secret.lease.created / usage.recorded / artifact.created)+ 每类必填字段 + trace 完整性要求(保证可回放)

6. 安全治理标准(Security & Governance)— 一组小标准

子标准 现状 要钉死
secret_ref 格式 Agnet 入口已强制 azkv://,但 Resource CRUD 未校验(resource.go:449) 所有写入口统一强制
明文密钥定义与扫描 仅按字段名拦截(resource.go:33) 补值级模式(JWT/sk-/ghp_ 等)+ 统一扫描覆盖面(含 metadata / 数组 / secret_ref 列)
高危操作清单 + 审批 gate Manager 不阻断(agnet_control_plane.go:1071) 钉死高危操作清单 + "未批准必须阻断执行"在 Manager 还是 Runtime 强制
凭证 lease 与撤销 lease 为 lease:// 占位(agnet_approval.go:213),revoke 不通知 Runtime(agnet_approval.go:339) lease 是真凭证还是引用;撤销是否同步 Runtime 立即失效
permission manifest 语义 仅生成下发,无运行时校验(agnet_control_plane.go:870) "给模型看" vs "系统强制",运行时校验点在哪
审计字段 best-effort 非 fail-closed(agnet_audit.go:59) 统一 who/agent/resource/action/time/approval/result,是否 fail-closed

🟡 独立可并行

7. 模型清单标准(Model Registry)

项 内容
现状散落(四套口径) 代码 claude-sonnet-4-6(agnet_role_template.go:49);文档示例 agnet-model-backend(占位名);文档明令禁用占位名(:48);生产实际仅 gpt-5.4(:15)
要钉死 默认 / 允许模型的单一可信来源,对齐生产 NewAPI,清占位名

8. 编排权威与术语标准(Orchestration Authority & Naming)— 产品决策,单独立项

项 内容
现状散落 客户端本地 swarm、云端蜂群、Swarm 自带 /tasks 旁路三套,同名不同义
要钉死 每种模式唯一编排权威(交互式=本地 / 无人值守·计费·审计=云端经 Manager);术语单义(云端保留 swarm,本地改名 local-team);废弃旁路入口

优先级与落地顺序

顺序 标准 说明
1 标准 1 + 2 + 4 完成判定 + 状态机 + 结构化契约,是其余一切的地基
2 标准 3 + 6 交付物裁判 + 安全治理,责任上移到 Manager
3 标准 5 跟随 1/4 把事件 schema 补齐、对齐 ASCE
4 标准 7 随手清理,低风险
5 标准 8 独立产品决策推进,不与上面混做

标准间依赖关系

标准4(结构化产出契约)
   ├── 支撑 → 标准1(完成判定)
   └── 支撑 → 标准3(交付物分类)
标准2(状态机)── 定义终态 ── 标准1 引用
标准5(事件契约)── 承载 ── 标准1/3/6 的过程事件与 trace
标准6(安全治理)── 依赖 ── 标准5 的 approval / secret.lease / resource.accessed 事件
标准7、标准8 相对独立

本清单依据全链路只读评审得出,证据可在各仓库 文件:行 复核。