docs: clarify config validation and test policy

This commit is contained in:
Codex
2026-06-11 10:48:09 +00:00
parent 8b13c01d46
commit 73d9c2332b
3 changed files with 10 additions and 5 deletions
+6 -3
View File
@@ -5,12 +5,13 @@ UniDesk 是一个以主 server 为统一入口的分布式工作平台;本文
## P0 最高优先级:自有配置 YAML 优先规则
- P0: UniDesk 自有配置一律优先使用 YAML(`.yaml`/`.yml`),包括 `config/` 下的运行面、平台基础设施、节点/lane、部署参数和可调版本配置;除非外部工具硬性要求 JSON/TOML/ENV 等格式,禁止新增 JSON 作为 UniDesk 自有配置真相。
- P0: 需要代码读取的 YAML 配置必须显式校验 schema、字段类型和必填项;禁止静默 fallback、宽松猜测或把配置藏进脚本常量,后续版本、镜像、namespace、endpoint 等可调项必须从 YAML 配置进入受控 CLI。
- P0: 需要代码读取的 YAML 配置必须显式校验格式、字段类型和必填项;配置校验只保证“能被正确读取和渲染”,不得把业务策略、调度策略或数值选择写成代码硬编码、schema 硬范围、合同测试或隐藏默认值。后续版本、镜像、namespace、endpoint、容量、冷却时间、退避窗口等可调项必须从 YAML 配置进入受控 CLI,具体数值以 YAML 为准
## P0 最高优先级:G14 platform-infra 规则
- P0: `platform-infra` 是 G14 k3s 上 UniDesk 运维的平台基础设施 namespaceSub2API、Codex pool、FRP 暴露、统一消费 API key 和后续平台基础设施迁移的长期边界、路由与探针口径统一见 `docs/reference/platform-infra.md`Sub2API 日常操作统一见 `$unidesk-sub2api``.agents/skills/unidesk-sub2api/SKILL.md`)。
- P0: Codex pool 账号容量与调度候选必须从 `config/platform-infra/sub2api-codex-pool.yaml` 进入受控 CLI;当前数值以 YAML 为准,禁止用代码常量、Secret、运行时手补或长期参考文档里的硬编码数值覆盖 YAML。
- P0: Codex pool 的业务策略和数值只做 YAML 配置与运行面同步验证;除非用户明确要求实现新能力,修改既有 YAML 数值不得自动扩展为代码 schema、合同测试、单元测试或长期参考文档变更。
- P0: `devops-infra` 仅作为既有控制面基础设施逐步迁移来源,不再作为新增平台服务的默认 namespace;新增/迁移必须优先落到 `platform-infra`,并通过 `config/platform-infra/*.yaml``bun scripts/cli.ts platform-infra ...` 受控。
## P0 最高优先级:CaseRun 无服务与单步调试规则
@@ -37,6 +38,7 @@ UniDesk 是一个以主 server 为统一入口的分布式工作平台;本文
- P0: 用户最新明确要求优先于旧测试、旧门禁、旧预检、旧断言、旧 guard 和旧 gate;开发过程中遇到任何阻碍最新目标的旧测试、旧门禁、旧预检或旧断言,一律拆除,禁止继续维护、修补、叠例外或用兼容路径绕行。
- P0: 短连接 CLI、临时工具、文档和轻量 helper 不套用常驻服务、镜像、Job、GitOps、PR、CI/CD 或重型发布流程的旧门禁;如果旧流程要求与最新架构定位冲突,以最新架构定位为准并删除旧流程入口。
- P0: 任何测试、预检或自检只允许表达当前最新目标行为;旧历史断言不得作为回归保护保留,避免把旧路线固化成长期摩擦。
- P0: 不做合同测试。验证只保留两类:高频热点或明确曾修复 bug 回归风险时补最小单元测试;以及通过原入口/端到端 CLI 交互测试验证真实运行面。配置数值调整通常只跑对应 plan/sync/validate。
## Critical Long-Term Reference Docs Rule
@@ -65,6 +67,7 @@ UniDesk 是一个以主 server 为统一入口的分布式工作平台;本文
- P0: 当用户明确给出最新验收要求或纠偏原则时,旧断言、旧门禁和旧兼容路径一律拆除;测试只按最新要求表达目标行为,不保留与最新目标无关或相冲突的历史断言。
- P0: 不做兼容迁移,不做分支/开关,不用 feature flag、legacy mode 或双路径长期并存来绕开最新要求;实现、测试和文档必须直接收敛到最新目标状态。
- P0: 合同测试不是允许的测试形态;验证只使用最小单元测试或端到端 CLI 交互测试。历史上命名含 `contract` 的命令不得作为默认验证入口,业务策略和配置数值不得通过测试硬编码成额外门禁。
## Critical Remote Patch Transport Rule
@@ -82,7 +85,7 @@ UniDesk 是一个以主 server 为统一入口的分布式工作平台;本文
## Critical HWLAB Issue Closure CLI Validation Rule
- P0: HWLAB/G14/v0.2 的用户反馈、CLI、Cloud Web、AgentRun、device-pod、公开 API 或运行面工作流 issue,关闭前必须完成用户入口或原入口的真实验证;仅有 targeted test、unit/contract test、构建检查、PR 合并或源码层证据不得关闭 issue。
- P0: HWLAB/G14/v0.2 的用户反馈、CLI、Cloud Web、AgentRun、device-pod、公开 API 或运行面工作流 issue,关闭前必须完成用户入口或原入口的真实验证;仅有 targeted test、unit test、构建检查、PR 合并或源码层证据不得关闭 issue。
- P0: CLI 相关 issue 未完成目标 runtime 上的真实 CLI 验证时必须保持打开或重新打开;关闭评论必须写明实际 CLI/入口命令、目标 lane/URL/namespace、trace/session/thread/PipelineRun 等证据和结果,细则见 `docs/reference/g14.md`
## Critical CI/CD CLI Control Rule
@@ -136,7 +139,7 @@ UniDesk 是一个以主 server 为统一入口的分布式工作平台;本文
## Critical D601 UniDesk Workspace Rule
- P0: `D601:UniDesk` 的固定开发 workspace 是 D601 节点上的 `/home/ubuntu/workspace/unidesk-dev`,固定使用 `master` 分支和 `origin git@github.com:pikasTech/unidesk.git`;所有需要在 D601 上改 UniDesk 代码、跑轻量合同测试、做分布式敏捷实验补丁收敛或验证 Code Queue runner/trans/tran 的工作,都必须优先使用这个目录。
- P0: `D601:UniDesk` 的固定开发 workspace 是 D601 节点上的 `/home/ubuntu/workspace/unidesk-dev`,固定使用 `master` 分支和 `origin git@github.com:pikasTech/unidesk.git`;所有需要在 D601 上改 UniDesk 代码、跑轻量单元测试、做分布式敏捷实验补丁收敛或验证 Code Queue runner/trans/tran 的工作,都必须优先使用这个目录。
- P0: 每次开始 `D601:UniDesk` 分布式开发、切换任务、恢复中断或上下文压缩后,必须重新读取目标 workspace 的 `/home/ubuntu/workspace/unidesk-dev/AGENTS.md`,并以该文件和其引用的 UniDesk repo 内规则为当前任务约束;禁止只凭压缩摘要或主 server 记忆继续改代码。
- P0: UniDesk CLI/trans/tran/SSH 透传客户端工具链改进可以直接在 master server `/root/unidesk` 做轻量源码修改、提交和推送;这不允许在 master server 运行仓库级 check、browser smoke、镜像构建或编译,细则见 `docs/reference/dev-environment.md`
- `/home/ubuntu/cq-deploy``/root/unidesk``/app`、Code Queue pod 内 `/root/unidesk``/tmp/unidesk-*` 都是运行副本、部署副本或一次性实验面,不是 `D601:UniDesk` 日常开发 source truth;运行面热修可以直接作用于 pod/容器,但必须随后把持久化修复落回 fixed workspace 和 Git remote。