diff --git a/AGENTS.md b/AGENTS.md index cac87a3b..3d184d6f 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -11,11 +11,21 @@ UniDesk 是一个以主 server 为统一入口的分布式工作平台;本文 ## Critical G14 HWLAB Workspace Rule - P0: `G14:HWLAB` 的唯一长期 source workspace 是 G14 节点上的 `/root/hwlab`,固定使用 `G14` 分支和 `origin git@github.com:pikasTech/HWLAB.git`;所有 G14 侧 HWLAB 代码、文档、render、polling、CI/CD 修复都必须以该目录为准。 +- P0: 每次开始 `G14:HWLAB` 分布式开发、切换任务、恢复中断或上下文压缩后,必须重新读取目标 workspace 的 `/root/hwlab/AGENTS.md`,并以该文件和其引用的 HWLAB repo 内规则为当前任务约束;禁止只凭压缩摘要或主 server 记忆继续改代码。 - 操作入口必须通过 UniDesk SSH 维护桥:host/source 操作用 `bun scripts/cli.ts ssh G14 script` 或 `bun scripts/cli.ts ssh G14 apply-patch`,k3s 操作用 `bun scripts/cli.ts ssh G14:k3s ...`;禁止使用 `ssh G14 k3s ...`,定位必须写在第一个 route token,后续 token 才是 operation。 - 每次开始 `G14:HWLAB` 工作前必须先通过 SSH 桥在 G14 执行 `cd /root/hwlab && git status --short --branch && git remote -v`;若分支不是 `G14...origin/G14`、remote 不是 `git@github.com:pikasTech/HWLAB.git`,或当前路径不是 `/root/hwlab`,必须停止并先修正 workspace,不得继续开发、render、polling 或部署。 - 禁止把 master server、D601、`/root/HWLAB`、`/home/ubuntu/hwlab`、`/workspace/hwlab` 或临时 clone 当作 `G14:HWLAB` source truth;master server 也不得运行 HWLAB check、Playwright/browser smoke、镜像构建或其他重型验证,验证必须走 G14 `/root/hwlab`、G14 k3s/Tekton 或其他获批外部执行面。 - 长期细节见 `docs/reference/g14.md`;G14 节点本地也保留 `/root/docs/hwlab-g14-workspace.md`,两处口径必须保持一致。 +## Critical D601 HWLAB Workspace Rule + +- P0: `D601:HWLAB` 的固定开发 workspace 是 D601 节点上的 `/home/ubuntu/workspace/hwlab-dev`,固定使用 `main` 分支和 `origin git@github.com:pikasTech/HWLAB.git`;所有需要在 D601 上改 HWLAB 代码、跑 `node --test`、`web:check`、Playwright/browser smoke 或分布式敏捷实验补丁收敛的工作,都必须优先使用这个目录。 +- P0: 每次开始 `D601:HWLAB` 分布式开发、切换任务、恢复中断或上下文压缩后,必须重新读取目标 workspace 的 `/home/ubuntu/workspace/hwlab-dev/AGENTS.md`,并以该文件和其引用的 HWLAB repo 内规则为当前任务约束;禁止只凭压缩摘要或主 server 记忆继续改代码。 +- `/home/ubuntu/workspace/hwlab` 是 D601 上的部署/构建/CD 副本,不是日常开发 source workspace;`/tmp/hwlab-*`、`/home/ubuntu/workspace/hwlab-*` 一次性目录、`/home/ubuntu/hwlab` runner 历史目录和 master-server checkout 都不能作为 `D601:HWLAB` 开发真相。 +- 每次开始 `D601:HWLAB` 工作前必须通过 UniDesk SSH 桥执行 `cd /home/ubuntu/workspace/hwlab-dev && git status --short --branch && git remote -v`;若路径、分支、remote 或权限不符合预期,必须先修正固定 workspace,再继续开发、测试或发布。 +- D601 上 HWLAB 验证必须通过 UniDesk 透传在 D601 执行,禁止回到 master server 跑 HWLAB check、Playwright/browser smoke、镜像构建或其他重型验证。k3s 操作使用 route 语法 `D601:k3s ...`,默认 D601 原生 k3s kubeconfig。 +- 长期细节见 `docs/reference/hwlab.md`。 + ## Critical D601 Kubernetes Control-Plane Rule - P0: D601 上的 Kubernetes 运行面只能以自部署原生 k3s 为准;Docker Desktop Kubernetes 已经停用并清理数据,任何人不得重新启用或把它作为 UniDesk/HWLAB 部署、CI/CD、诊断或验收目标。跟踪 issue: [pikasTech/unidesk#138](https://github.com/pikasTech/unidesk/issues/138),热修复背景见 [pikasTech/unidesk#118](https://github.com/pikasTech/unidesk/issues/118)。 diff --git a/docs/reference/hwlab.md b/docs/reference/hwlab.md index f5486434..3f047726 100644 --- a/docs/reference/hwlab.md +++ b/docs/reference/hwlab.md @@ -7,9 +7,13 @@ - UniDesk 指挥侧 workspace:`/root/unidesk`,固定使用 `master`,开始前执行 `git status` 和 `git pull --ff-only origin master`。 - HWLAB 指挥侧 workspace:`/workspace/hwlab`,固定使用 `main`,开始前执行 `git status` 和 `git pull --ff-only origin main`。 - HWLAB 项目内长期规则入口:`/workspace/hwlab/AGENTS.md`。 -- D601 HWLAB 运行副本:通过 `bun scripts/cli.ts ssh D601` 进入,优先使用 `/home/ubuntu/workspace/hwlab`;该目录是 D601 上的部署/构建副本,开始前也要 `git -C /home/ubuntu/workspace/hwlab pull --ff-only origin main`。 +- `D601:HWLAB` 固定开发 workspace:通过 `bun scripts/cli.ts ssh D601 script` 进入 `/home/ubuntu/workspace/hwlab-dev`,固定使用 `main` 分支和 `origin git@github.com:pikasTech/HWLAB.git`。所有 D601 侧 HWLAB 代码修改、`node --test`、`web:check`、Playwright/browser smoke、分布式敏捷实验补丁收敛和 PR 前验证都优先在这个目录执行。开始前必须执行 `cd /home/ubuntu/workspace/hwlab-dev && git status --short --branch && git remote -v`,确认分支是 `main...origin/main` 且 remote 正确。 +- 开始 `D601:HWLAB` 分布式开发、切换任务、恢复中断或上下文压缩后,必须重新读取 `/home/ubuntu/workspace/hwlab-dev/AGENTS.md`;该文件和 HWLAB repo 内 `docs/reference/` 是代码修改、测试和 PR 的当前约束来源。 +- D601 HWLAB 部署/构建/CD 副本:`/home/ubuntu/workspace/hwlab` 只作为部署、构建、CI/CD 或发布读数副本使用,开始前也要 `git -C /home/ubuntu/workspace/hwlab pull --ff-only origin main`;不要把它和 `/home/ubuntu/workspace/hwlab-dev` 的开发职责混用。 +- D601 临时目录边界:禁止把 `/tmp/hwlab-*`、`/home/ubuntu/workspace/hwlab-*` 一次性目录、master-server checkout 或其他 runner clone 当作 `D601:HWLAB` source truth。确需一次性 repo 的 CD wrapper 会自行创建并清理;人工开发和测试必须回到 `/home/ubuntu/workspace/hwlab-dev`。 - D601 上 `/home/ubuntu/hwlab` 可能是 runner 或并行任务工作区。指挥官不能把它当作部署真相,也不能清理、reset 或复用其中的 runner worktree。 - `G14:HWLAB` 固定 workspace:只能通过 UniDesk SSH 桥进入 G14 的 `/root/hwlab`,固定使用 `G14` 分支和 `origin git@github.com:pikasTech/HWLAB.git`。每次开始 G14 工作前必须执行 `cd /root/hwlab && git status --short --branch && git remote -v`,期望分支是 `G14...origin/G14`;若不满足,先修正 workspace,不能继续开发、render、polling 或部署。 +- 开始 `G14:HWLAB` 分布式开发、切换任务、恢复中断或上下文压缩后,必须重新读取 `/root/hwlab/AGENTS.md`;不能只凭主 server 的压缩上下文继续操作 G14 source workspace。 - G14 k3s 操作必须使用 route 语法 `G14:k3s`,例如 `bun scripts/cli.ts ssh G14:k3s kubectl get pods -n hwlab-ci`;禁止写成 `ssh G14 k3s ...`。`/root/HWLAB`、`/home/ubuntu/hwlab`、`/workspace/hwlab`、D601 workspace、master-server checkout 或临时 clone 都不能作为 `G14:HWLAB` source truth。 ## 关键 GitHub 入口