docs: resolve HWLAB runtime by node lane

This commit is contained in:
lyon
2026-06-15 00:39:49 +08:00
parent c28235cf35
commit 7be0f81378
14 changed files with 162 additions and 159 deletions
+29 -31
View File
@@ -4,13 +4,13 @@ HWLAB 是硬件实验室运行面和控制面项目。本文是 agent、指挥
## P0 CaseRun 无服务与单步调试规则
- P0: v0.2 HWPOD CaseRun、case registry 产物整理、trace 语义化、harness 诊断、短连接 CLI 和 D601/G14 目标 host 上可直接运行的 runner 调试,默认是无服务工作流;只要不需要变更 cloud-api、web、gateway、GitOps、k3s runtime 或其他常驻服务,就必须直接无服务运行和验证,禁止为了运行 CaseRun 触发 CI/CD、rollout 或服务发布。
- P0: HWPOD CaseRun、case registry 产物整理、trace 语义化、harness 诊断、短连接 CLI 和目标 node/lane host 上可直接运行的 runner 调试,默认是无服务工作流;目标 node 和 lane 以 issue、PR、CLI 参数或 `deploy/deploy.yaml` 的明确声明为准。只要不需要变更 cloud-api、web、gateway、GitOps、k3s runtime 或其他常驻服务,就必须直接无服务运行和验证,禁止为了运行 CaseRun 触发 CI/CD、rollout 或服务发布。
- P0: CaseRun 卡在 hwpod-node、workspace prepare、编译、下载、串口、artifact 收集或其他基础设施步骤时,必须先把卡点拆成同一目标运行面的单步命令验证;禁止用反复全量 CaseRun 大回环替代单步定位。
- P0: 只有单步卡点已经验证通过,且需要验证完整编排、trace 和 registry 产物时,才启动一次完整 CaseRun;完整 CaseRun 仍必须按 cli-spec 异步启动、短轮询状态、收集 trace,不得加入 evidence 自动评价、门禁或自动判断。
## P0 文档/CLI 直接主 worktree 规则
- P0: 单纯文档、AGENTS.md、docs/reference、SPEC、短连接 CLI、trans/tran/helper 这类轻量变更,禁止为了“隔离开发”新建 git worktree;必须在当前工作线固定主 worktree 直接修改、提交并 push 到对应 remote 分支v0.2 默认 `/root/hwlab-v02` -> `origin/v0.2`
- P0: 单纯文档、AGENTS.md、docs/reference、SPEC、短连接 CLI、trans/tran/helper 这类轻量变更,禁止为了“隔离开发”新建 git worktree;必须在当前 issue/CLI 明确的 node + lane 固定主 worktree 直接修改、提交并 push 到对应 remote 分支。没有明确目标时才读取受控配置解析默认值,禁止把 G14、D601 legacy 或 v0.2 写成全局默认
- P0: 只有业务代码、运行面、发布链路、CI/CD、Secret、权限、数据迁移、PROD 或明确高风险改动,才按项目规则创建隔离 worktree 或走 PR;不要把重型开发流程套到文档/CLI 轻量变更上。
- P0: 若固定主 worktree 因并行 dirty 文件无法快进,先保留并行变更,只提交当前文档/CLI相关文件;必要时使用非破坏性 rebase/autostash 或等价方式对齐 remote 后直接 push,禁止绕到新 worktree 掩盖主 worktree 状态。
@@ -24,18 +24,18 @@ HWLAB 是硬件实验室运行面和控制面项目。本文是 agent、指挥
- P0: HWLAB CLI 和 AgentRun/HWPOD runner 只允许从 `HWLAB_API_KEY` 读取用户 API key;不得新增或复活 `API_KEY``HWLAB_BEARER_TOKEN``--api-key``--bearer-token` 等别名入口。HTTP `Authorization: Bearer` 只是 CLI 从 `HWLAB_API_KEY` 生成的协议 header,不是第二个配置来源。
- P0: Web 只走 `hwlab_session` Web sessionCLI 保护命令缺少 `HWLAB_API_KEY` 时必须返回 `api_key_required``unsupported_api_key_source`,不得回退 Web session、cookie、password login 或 Keycloak token。
- P0: master server 和 G14 均已固化 v0.2 用户 API key,统一来源路径都是 `/root/.config/hwlab-v02/master-server-admin-api-key.env`处理 HWLAB CLI、Code Agent、HWPOD、trace/result、Web 等价 CLI 或 v0.2 验收前,必须先当前执行 host 的该文件加载或确认 `HWLAB_API_KEY`,禁止先把问题定性为缺少 API key
- P0: master server 和 G14 的 `~/.bashrc` 会加载该固定文件,并通过 `BASH_ENV=$HOME/.bashenv` 让从交互 shell 派生的非交互 bash 也能读取 `HWLAB_API_KEY`;若当前进程没有继承环境,先显式 `source ~/.bashrc` 或确认该固定文件,不得改走别名、token、cookie 或临时 fallback。
- P0: 查询 `HWLAB_API_KEY` 时只能输出 `present/missing`、source path 或 redacted prefix;禁止在 stdout、issue、trace、日志、AGENTS 或 docs 中打印完整 key。G14/HWLAB runtime 中环境变量缺失不代表 key 不存在,应先通过同一固定来源注入再继续排查。
- P0: 处理 HWLAB CLI、Code Agent、HWPOD、trace/result、Web 等价 CLI 或 runtime 验收前,必须先当前 issue/CLI 明确的 node + lane 读取对应 API key sourceRef 或受控本地 env 文件;禁止先把问题定性为缺少 API key,也禁止把某个节点或 v0.2 的路径写成全局默认
- P0: 若当前进程没有继承 `HWLAB_API_KEY`,先确认目标 node/lane 的受控来源、`~/.bashrc` / `BASH_ENV` 注入和 CLI status 输出;不得改走别名、token、cookie、password login 或临时 fallback。
- P0: 查询 `HWLAB_API_KEY` 时只能输出 `present/missing`、source path、sourceRef 或 redacted prefix;禁止在 stdout、issue、trace、日志、AGENTS 或 docs 中打印完整 key。目标 runtime 中环境变量缺失不代表 key 不存在,应先通过同一受控来源注入再继续排查。
## P0 G14 原生 k8s/GitOps 运行面归一
## P0 node/lane 运行面归一
- G14 是当前 HWLAB DEV/PROD 原生 k8s 与 GitOps 运行面真相;`hwlab-dev``hwlab-prod` 均由 G14 k3s、Tekton、`G14-gitops` 和 Argo CD 管理,详见 [docs/reference/node-gitops-cicd.md](docs/reference/node-gitops-cicd.md)
- `v0.2` 是 G14 上的加法扩容线:固定分支 `v0.2`、固定开发 workspace `G14:/root/hwlab-v02`、固定 CI/CD source repo `G14:/root/hwlab-v02-cicd.git`、固定 namespace `hwlab-v02`、FRP 入口 `74.48.78.17:19666/19667`;创建和集成 `v0.2` 不得删除、重命名、复用或改义现有 `G14`/`G14-gitops` 分支、`hwlab-dev`/`hwlab-prod` namespace 或 17666/17667、18666/18667 入口
- HWLAB 当前开发、发布和验收目标必须先从 issue、PR、CLI 参数或受控 lane 配置解析 node + lane;例如 issue 明确 `目标节点:D601``目标分支:HWLAB v0.3` 时,D601 v0.3 就是当前运行面真相,不得回退到 G14、v0.2 或 D601 legacy
- 每个 lane 的 source branch、开发 workspace、CI/CD source repo、namespace、公网入口、Secret sourceRef 和 route 由 `deploy/deploy.yaml` 及 UniDesk `hwlab nodes ... --node <node> --lane <lane>` 控制面解析;长期文档只能记录解析规则和专项规格,不能把某个 node/lane 的数值写成全局默认
- `v0.2` 的人写 deploy/runtime 配置单一出处是 `deploy/deploy.yaml``deploy/deploy.json` 不再是 v0.2 兼容源。所有脚本、renderer、planner 和 CLI 必须通过 `scripts/src/structured-config.mjs` / `scripts/src/deploy-config.mjs` 这类格式无关读写层消费配置,禁止把 YAML parser import 或 ad hoc YAML 解析散落到业务脚本里。
- G14 GitOps render 若改变 Argo Application、AppProject、runtime path 或 DEV/PROD 拆分目录,必须同步应用 `deploy/gitops/node/argocd/project.yaml``application-dev.yaml``application-prod.yaml`;只推 `G14-gitops` 分支不等于 Argo 已切到新 path。
- D601 HWLAB DEV、D601 `dev-cd-apply``ci-publish` 和旧 `main` JS 脚本式 CI/CD 已退出 G14 发布入口;G14 Tekton 只能通过 `scripts/artifact-publish.mjs` 作为集群内 build/push helper,再由 GitOps/Argo CD rollout新开发、发布、验收、文档和运行面实验不得把 D601 或 legacy 脚本 CD 当作当前 HWLAB runtime source-of-truth。
- G14 k3s 操作必须通过 UniDesk route `G14:k3s` 执行;不得用 D601 kubeconfig、Docker Desktop Kubernetes、master server 本地 check/build 或旧 JS CD 结果作为 G14 DEV/PROD 通过证据。
- Node GitOps render 若改变 Argo Application、AppProject、runtime path 或 lane 拆分目录,必须同步应用对应 node/lane 的 GitOps 文件;只推 GitOps 分支不等于 Argo 已切到新 path。
- D601 旧 DEV、`dev-cd-apply``ci-publish` 和旧 `main` JS 脚本式 CI/CD 只属于 legacy 路径;D601 的 node-scoped runtime lane(例如 D601 v0.3)不属于 legacy。新开发、发布、验收、文档和运行面实验不得把 legacy 脚本 CD 当作当前 HWLAB runtime source-of-truth。
- k3s 操作必须通过当前目标 node 的 UniDesk route 执行,例如 `D601:k3s` `G14:k3s`;不得用另一个节点的 kubeconfig、Docker Desktop Kubernetes、master server 本地 check/build 或旧 JS CD 结果作为当前 node/lane 的通过证据。
## P0 HyueAPI Direct NO_PROXY 规则
@@ -49,8 +49,8 @@ HWLAB 是硬件实验室运行面和控制面项目。本文是 agent、指挥
## P0 Legacy CD 删除纪律
- 旧 D601 `ci-publish``dev-cd-apply``dev-deploy-apply``dev-artifact-publish` 脚本入口已经从当前发布面删除;不要恢复这些文件、CLI 子命令或文档入口。
- 当前发布只走 G14 k3s Tekton + `G14-gitops` + Argo CD;镜像构建 helper 是 `scripts/artifact-publish.mjs`desired state 由 `scripts/gitops-render.mjs` 生成,细则见 [docs/reference/node-gitops-cicd.md](docs/reference/node-gitops-cicd.md)。
- 发现旧脚本、旧文档或旧 `hwlab-cli cicd` 再次进入 G14 Pipeline、AGENTS 或长期参考时,优先删除旧入口并把调用方改到 G14 GitOps 路径,不再做兼容保留。
- 当前发布只走受控 node/lane 的 Tekton/GitOps/Argo CD 控制面;镜像构建 helper 是 `scripts/artifact-publish.mjs`desired state 由 `scripts/gitops-render.mjs` 或 node/lane 控制面生成,细则见 [docs/reference/node-gitops-cicd.md](docs/reference/node-gitops-cicd.md)。
- 发现旧脚本、旧文档或旧 `hwlab-cli cicd` 再次进入当前 node/lane Pipeline、AGENTS 或长期参考时,优先删除旧入口并把调用方改到受控 GitOps 路径,不再做兼容保留。
## P0 门禁最小化纪律
@@ -65,25 +65,23 @@ HWLAB 是硬件实验室运行面和控制面项目。本文是 agent、指挥
## 工作区
- G14 分支固定 source workspace 是 G14 节点上的 `/root/hwlab`,固定使用 `G14` 分支和 `origin git@github.com:pikasTech/HWLAB.git`。在 G14 上进行代码、文档、GitOps render、Tekton/poller/Argo CD 修复或 CI/CD 验证前,必须先确认 `pwd``/root/hwlab``git status --short --branch``G14...origin/G14`;不满足时先停止并修正 workspace。
- `v0.2` 固定开发 workspace 是 G14 节点上的 `/root/hwlab-v02`,固定使用 `v0.2` 分支和 `origin git@github.com:pikasTech/HWLAB.git``/root/hwlab-v02` 只能作为 `v0.2` 人工开发、短连接源码工具和问题复现工作区,不得作为 `G14` scratch 区、DEV/PROD 热修目录或 CI/CD source commit 选择入口
- `v0.2` CI/CD source commit 只来自 G14 专用 bare repo `/root/hwlab-v02-cicd.git` 的自动 fetch 结果,并通过 `devops-infra` git mirror/relay 进入 Tekton、GitOps promotion 和 Argo`/root/hwlab-v02` 的 dirty、stale 或 untracked `.worktree/` 状态只能作为 isolated warning,不得阻塞或改变 CI/CD
- G14 开发默认先以 `/root/hwlab` 做固定 repo 预检,再在 `/root/hwlab/.worktree/<task>` 从最新 `origin/G14` 创建独立 worktree 修改和提交;固定 repo 不作为并行任务 scratch 区,详见 [docs/reference/commander-collaboration.md](docs/reference/commander-collaboration.md)。
- G14 k3s 操作必须通过 UniDesk SSH route `G14:k3s` 执行,例如 `bun scripts/cli.ts ssh G14:k3s kubectl get pods -n hwlab-ci`;禁止使用 `ssh G14 k3s ...`。不要把 `/workspace/hwlab``/root/HWLAB`D601 workspace、master-server checkout 或临时 clone 当作 G14 分支 source truth。
- 当前工作区必须由 issue、PR、CLI 或受控 lane 配置解析,预检内容至少包括 `pwd``git status --short --branch``git remote -v` 和目标 node/lane control-plane status;不满足目标时先停止并修正 workspace。
- D601 v0.3 的固定开发 workspace 是 D601 节点上的 `/home/ubuntu/workspace/hwlab-v03`,固定跟踪 `origin/v0.3`;当 issue 明确 D601 v0.3 时,这个 workspace 是当前 source truth,不是 legacy 对照面
- G14 v0.2、G14 DEV/PROD 或其他 lane 的固定 workspace 只在当前任务明确选择对应 node/lane 时使用;不得把它们写成所有 HWLAB 任务的默认入口,也不得用一个 lane 的 dirty、stale 或 untracked `.worktree/` 状态阻塞另一个 lane 的 CI/CD source commit 选择
- 业务代码、运行面或高风险变更按当前 node/lane 的固定 workspace 创建独立 worktree;固定 repo 不作为并行任务 scratch 区,详见 [docs/reference/commander-collaboration.md](docs/reference/commander-collaboration.md)。
- k3s 操作必须通过目标 node 的 UniDesk SSH route 执行,例如 `D601:k3s``G14:k3s`;禁止使用 `ssh <node> k3s ...`。不要把 `/workspace/hwlab``/root/HWLAB`、master-server checkout、另一个节点 workspace 或临时 clone 当作当前 node/lane source truth。
- Runner 和指挥常用工作区是 `/workspace/hwlab`;进入仓库先检查分支与工作树状态,详见 [docs/reference/commander-collaboration.md](docs/reference/commander-collaboration.md)。
- G14 DEV/PROD CI/CD 由 `G14` source branch、G14 k3s Tekton 和 `G14-gitops` branch 驱动;`v0.2` CI/CD 由 UniDesk 手动 trigger、`/root/hwlab-v02-cicd.git``devops-infra` git mirror/relay、G14 k3s Tekton 和 `v0.2-gitops` 驱动;需要构建、Playwright、check、发布预检或运行面验证时放到 G14 k3s/runner/CI/CD,不在 master server 跑重型验证。
- G14/v0.2 远端验证必须用短连接触发后台 job、PipelineRun脚本任务,再用短连接轮询 status/tail/exit code;不要用 UniDesk SSH/tran 长连接等待 check、layout、Playwright、Tekton/Argo 或发布动作完整结束,细则见 [docs/reference/spec-v02-cicd.md](docs/reference/spec-v02-cicd.md)
- D601 发布/构建 worktree 纪律只适用于 legacy 路径回溯,不再作为当前 HWLAB 发布默认入口当前入口见 [docs/reference/node-gitops-cicd.md](docs/reference/node-gitops-cicd.md)。
- 交付路径按变更风险选择:单纯文档、CLI/helper 轻量变更直接提交并 push 到当前工作线的 source branchG14 默认 `origin/G14``v0.2` 默认 `origin/v0.2`;业务代码、运行面、发布链路、Secret、权限、数据迁移、PROD 或其他高风险变更走 PR 工作流,PR base 必须匹配当前工作线,不能默认投向 `main`默认不要合并自己的 PR,用户或指挥官明确授权且满足门禁时可按长期参考自合并,不要改 PROD、不要重启服务。
- CI/CD 由当前 node/lane 的 source branch、CI/CD source repo、Tekton/GitOps branch 和 Argo Application 驱动;需要构建、Playwright、check、发布预检或运行面验证时放到目标 node/k3s/runner/CI/CD,不在 master server 跑重型验证。
- 远端验证必须用短连接触发后台 job、PipelineRun脚本任务`trans <node> playwright`,再用短连接轮询 status/tail/exit code;不要用 UniDesk SSH/tran 长连接等待 check、layout、Playwright、Tekton/Argo 或发布动作完整结束。
- D601 legacy 只指旧 DEV/CD 回放路径;D601 node-scoped runtime lane 由当前 issue/CLI 明确选择时是正式开发、发布和验收入口当前入口见 [docs/reference/node-gitops-cicd.md](docs/reference/node-gitops-cicd.md)。
- 交付路径按变更风险选择:单纯文档、CLI/helper 轻量变更直接提交并 push 到当前工作线的 source branch;业务代码、运行面、发布链路、Secret、权限、数据迁移、PROD 或其他高风险变更走 PR 工作流,PR base 必须匹配当前 node/lane source branch,不能默认投向 `main`、G14 或 v0.2。默认不要合并自己的 PR,用户或指挥官明确授权且满足门禁时可按长期参考自合并,不要改 PROD、不要重启服务。
- `DC-DCSN-P0-2026-003` / [pikasTech/HWLAB#78](https://github.com/pikasTech/HWLAB/issues/78) 是当前 M3 虚拟硬件可信闭环的上位约束;其他任务不得把 SOURCE、LOCAL、DRY-RUN、fixture 或前端状态误报为 M3 DEV-LIVE。
- 仓库禁止创建或提交 repo report 目录;验收、进展和结论只承载在 #7、专题 issue、每日简报或 PR/issue 评论。临时 JSON 只能写入 `/tmp``.state` 或 CI artifact,不能进入源码仓库。
## 固定入口
- G14 DEV Cloud Web`http://74.48.78.17:17666/`,规则见 [docs/reference/dev-runtime-boundary.md](docs/reference/dev-runtime-boundary.md)
- G14 DEV API/edge/live`http://74.48.78.17:17667/health/live`,规则见 [docs/reference/dev-runtime-boundary.md](docs/reference/dev-runtime-boundary.md)
- G14 PROD 预留入口:`http://74.48.78.17:18666/``http://74.48.78.17:18667/health/live`,规则见 [docs/reference/node-gitops-cicd.md](docs/reference/node-gitops-cicd.md)。
- G14 `v0.2` 规划入口:`http://74.48.78.17:19666/``http://74.48.78.17:19667/health/live`,只能指向 `hwlab-v02` namespace,规则见 [docs/reference/node-gitops-cicd.md](docs/reference/node-gitops-cicd.md)。
- Runtime Web/API/live 入口必须从当前 issue/CLI 明确的 node + lane control-plane status 读取;没有明确目标时才从受控 lane 配置解析,不得把 G14、v0.2、DEV/PROD 或 D601 legacy 端口写成所有任务默认入口
- D601 v0.3、G14 v0.2 和其他 node/lane 的公网入口、namespace、route 与 GitOps 应分别由 [docs/reference/node-gitops-cicd.md](docs/reference/node-gitops-cicd.md) 和受控 CLI 输出确认
- Cloud Workbench 默认首页与 UX 约束见 [docs/reference/cloud-workbench.md](docs/reference/cloud-workbench.md)。
## 规格
@@ -140,7 +138,7 @@ HWLAB 是硬件实验室运行面和控制面项目。本文是 agent、指挥
- 中文优先:issue、PR 正文、长期参考文档和用户可见说明默认用中文;英文术语只在命令、协议、接口、ID、路径和标准名需要保真时保留,详见 [docs/reference/chinese-first-documentation.md](docs/reference/chinese-first-documentation.md)。
- 用户反馈优先:用户和参谋提出的问题默认按高优先级用户反馈处理,blocker 状态不能替代反馈分流,必须挂到 [pikasTech/HWLAB#7](https://github.com/pikasTech/HWLAB/issues/7) 醒目位置,详见 [docs/reference/user-feedback-triage.md](docs/reference/user-feedback-triage.md)。
- docs-spec 本地权威优先:涉及 `AGENTS.md``docs/reference/*.md` 或过程文档蒸馏时,先按 [docs/reference/documentation-governance.md](docs/reference/documentation-governance.md) 执行,不另建同级规则副本。
- 交付路径按风险选择:单纯文档、CLI/helper 轻量变更直接提交并 push 到当前工作线的 source branchG14 默认 `origin/G14``v0.2` 默认 `origin/v0.2`;业务代码、运行面、发布链路、Secret、权限、数据迁移、PROD 或其他高风险变更走 PR 工作流,详见 [docs/reference/commander-collaboration.md](docs/reference/commander-collaboration.md)。
- 交付路径按风险选择:单纯文档、CLI/helper 轻量变更直接提交并 push 到当前 node/lane 的 source branch;业务代码、运行面、发布链路、Secret、权限、数据迁移、PROD 或其他高风险变更走 PR 工作流,详见 [docs/reference/commander-collaboration.md](docs/reference/commander-collaboration.md)。
## 常用轻量命令
@@ -155,16 +153,16 @@ HWLAB 是硬件实验室运行面和控制面项目。本文是 agent、指挥
- GitOps lane 严格 TS 检查:`npm run gitops:ts:check`;新拆 GitOps 模块直接进入 `scripts/src/*.ts``tsconfig.gitops.json`,不要继续堆进单个 `.mjs`
- DEV 依赖 runtime base 构建:`npm run dev-runtime-base:build`
- Legacy D601 DEV CD:旧脚本入口已删除;事故回放只读历史 issue/commit,不恢复旧命令。
- v0.2 WEB 等价短连接 CLI:在 `G14:/root/hwlab-v02` 或当前 v0.2 worktree 直接运行 `bun tools/hwlab-cli/bin/hwlab-cli.ts client ... --base-url http://74.48.78.17:19666`,默认走 Cloud Web 同源 API;细则见 [docs/reference/spec-v02-hwlab-cli.md](docs/reference/spec-v02-hwlab-cli.md)。
- WEB 等价短连接 CLI:在当前 node/lane 固定 workspace 直接运行 `bun tools/hwlab-cli/bin/hwlab-cli.ts client ... --base-url <target-web-url>`,默认走 Cloud Web 同源 APIv0.2 细则见 [docs/reference/spec-v02-hwlab-cli.md](docs/reference/spec-v02-hwlab-cli.md)。
- Code Agent session/trace/result/inspect/steer 操作见 `hwlab-code-agent` skill。
- v0.2 HWPOD CaseRun 无服务入口:用法见 `hwlab-caserun` skill;第一阶段默认 compile-only 并把 evidence 写回 case registry repo,开发/架构细则见 [docs/reference/spec-hwpod-harness.md](docs/reference/spec-hwpod-harness.md)。
- D601 k3s 只读观测:legacy 回溯入口,仅在确认需要 D601 事故复盘时使用当前 G14 运行面观察使用 UniDesk route `G14:k3s`
- 目标 k3s 只读观测:使用当前 node/lane 的 UniDesk route,例如 `D601:k3s``G14:k3s`D601 legacy 事故复盘只在任务明确选择旧路径时使用
- DEV runtime hotfix 只读审计计划:`npm run dev-runtime:hotfix-audit`
- Gateway 主动出站本地 smoke`npm run gateway:demo:smoke`;经本地 edge-proxy 验证用 `npm run gateway:demo:edge-smoke`
## D601 legacy 只读回溯
## D601 legacy 与 D601 node-scoped lane
当前 HWLAB DEV/PROD runtime(运行态)以 G14 原生 k3s 与 GitOps 为准;D601 只保留 legacy 事故回放、迁移对比和历史证据查询,不作为当前开发、发布、验收或 hotfix 目标。需要观察当前运行态时使用 UniDesk route `G14:k3s`,细则见 [docs/reference/dev-runtime-boundary.md](docs/reference/dev-runtime-boundary.md)。
`D601 legacy` 只指旧 DEV/CD、迁移对比、事故回放和历史证据查询路径。D601 上的 node-scoped runtime lane(例如 issue/CLI 明确的 D601 v0.3)是正式当前目标,不得被 legacy 规则排除;需要观察当前运行态时使用该 node/lane 的 UniDesk route,例如 `D601:k3s`,细则见 [docs/reference/node-gitops-cicd.md](docs/reference/node-gitops-cicd.md)。
## 禁止误判