Merge branch 'docs/tasktree-migration-governance'
Pipelines as Code CI / hwlab-web-probe-sentinel-nc01- Success
Pipelines as Code CI / platform-infra-gitea-nc01- Success
Pipelines as Code CI / unidesk-host- Success

This commit is contained in:
pikastech
2026-07-18 17:55:20 +02:00
35 changed files with 113 additions and 54 deletions
+2
View File
@@ -7,6 +7,8 @@ description: UniDesk AgentRun-backed Code Queue CLI — Skill(cli-spec)。legacy
新任务、Aipod/Artificer 派单、session follow-up、events/logs/result、attempts/retry、ack/cancel、dispatch 和 run/command/runner drill-down 走 AgentRun 资源原语。legacy `codex` 只保留历史只读、未读积压和残留任务停止。
`--mdtodo-id` 是尚未退役的 AgentRun 兼容字段,不是任务权威;任务登记与遗留文件迁移统一遵循 `$unidesk-tasktree`
## 高频入口
```bash
@@ -2,6 +2,8 @@
新 Code Queue 工作统一使用 AgentRun 资源原语:
- `--mdtodo-id` 仅是 AgentRun 遗留兼容字段;任务权威与迁移统一遵循 `$unidesk-tasktree`
- `agentrun create|apply`:创建 task 或应用 AipodSpec manifest
- `agentrun get|describe`:有界读取列表和详情;
- `agentrun describe task/<taskId> --input -o json`:读取可重建 task 输入、AipodSpec identity、资源引用和脱敏 provenance
@@ -170,7 +170,7 @@
- workload ready 且无持续重启;
- Service endpoint 存在;
- backend/provider/public `/health` 返回成功;
- 恢复动作、根因假设和待持久化修复进入 issue 与运维 MDTODO
- 恢复动作、根因假设和待持久化修复进入 issue 与 TaskTree;遗留 MDTODO 按 `$unidesk-tasktree` 迁移
### 长期防复发
+8 -7
View File
@@ -17,19 +17,20 @@ description: UniDesk Decision Center 与秘书日程入口。用户说“你是
- 正式战略、方向选择、优先级、范围取舍、阶段门槛和管理原则写入 Decision Center。
- 决策驱动的提醒、跟踪项、等待项和管理待办写入 Todo Notes。
- Todo Notes 条目应直接引用对应 Decision Center 文号,例如 `DC-DCSN-P0-2026-006`
- MDTODO 属于项目执行面,不属于秘书或顶级决策的默认写入目标。
- 只有任务已经明确到项目 workspace、MDTODO FILE、Rxx 层级、实施动作和交付验收时,才通过 `$mdtodo-edit` 写入 MDTODO
- 战略分析、方向决策、内测原则、跨项目优先级和仅需持续跟踪的事项不得写入 MDTODO
- Decision Center 文号可以被既有执行任务引用,但主代理不得仅因产生了决策就自动新建 MDTODO ITEM
- TaskTree 属于项目执行面,不属于秘书或顶级决策的默认写入目标。
- 只有任务已经明确到项目 workspace、TaskGroup/Task 层级、实施动作和交付验收时,才通过 `$unidesk-tasktree` 写入 TaskTree
- 战略分析、方向决策、内测原则、跨项目优先级和仅需持续跟踪的事项不得写入 TaskTree
- Decision Center 文号可以被既有执行任务引用,但主代理不得仅因产生了决策就自动新建 Task
- 用户要求“记录决策并建立待办”但未明确要求执行面任务时,固定顺序如下:
1. 在 Decision Center 创建或更新正式决策文书。
2. 在对应 Todo Notes 清单新增或更新管理待办,并引用决策文号。
3. 只有用户进一步指定项目实施任务时,才进入 MDTODO
- 发现决策面事项误写入 MDTODO 时,必须立即纠正。
- 使用 `$mdtodo-edit` 删除误建任务,禁止手工编辑任务区
3. 只有用户进一步指定项目实施任务时,才进入 TaskTree
- 发现决策面事项误写入 TaskTree 时,必须立即纠正。
- 使用 `$unidesk-tasktree` 删除误建任务
- 保留 Decision Center 文书。
- 将对应事项写入 Todo Notes,并复核文号可见。
- 若误写已经提交,精确提交并推送撤销,不得夹带工作区其他并行修改。
- 遗留 MDTODO 的处理统一遵循 `$unidesk-tasktree`
---
+1 -1
View File
@@ -39,7 +39,7 @@ GitHub issue/PR 正式读写必须走 `bun scripts/cli.ts gh ...` 或 `trans gh:
- 只有确认 head 是可删除的临时分支时才显式传 `--delete-branch`
- 显式删除同时清理 Git 已登记、分支精确匹配、非主 worktree 且状态干净的本地 worktree
- `--keep-branch` 仅作为兼容的显式声明。
- 功能skill、MDTODO 报告和完成状态在 merge 前已齐备时,必须进入同一个 PR。禁止仅为补写 merge SHA、`mergedAt`、branch deletion 或重复 closeout 再开文档 PR;这些事实由 GitHub PR 和 `gh pr merge` 默认摘要保存
- 功能skill 在 merge 前进入同一个 PRTaskTree ExecutionReport 不作为仓库文件提交。遗留 MDTODO 按 `$unidesk-tasktree` 迁移,禁止仅为补写 merge 事实再开文档 PR
- 成功 merge 后默认摘要已披露 `mergeCommit``mergedAt`,不再机械执行 `pr view`。只有输出缺字段、merge 后出现新运行证据,或需要定点排障时才继续查询;只有用户明确要求把 merge 后新证据写回 Git 时,才创建第二个 closeout PR。
## 常用入口
@@ -29,8 +29,8 @@ PR 工作必须使用受控 UniDesk GitHub 命令:
- `pr merge --merge --sync-node JD01` 在支持时额外执行映射节点 source-workspace sync;当前用于 HWLAB `v0.3`
- `--keep-branch` 保留为兼容的显式声明;只有明确需要保留本地 worktree 状态时才使用 `--skip-local-closeout`
- 只有 ancestry 和语义吸收都明确安全时才使用 squash。
- 功能实现skill、MDTODO 报告和完成状态在 merge 前已齐备时,必须用一个 PR 收口。不得仅为补 merge SHA、`mergedAt`、branch deletion、已合并状态或重复 closeout 再开 PR
- merge commit 与合并时间由 GitHub PR 事实和 `gh pr merge` 默认摘要保存,不要求回写 MDTODO 报告。成功合并后不机械执行 `pr view`;只有默认输出缺少必要字段或需要定点排障时才查询。
- 功能实现skill 在 merge 前用一个 PR 收口TaskTree ExecutionReport 不作为仓库文件提交。遗留 MDTODO 按 `$unidesk-tasktree` 迁移
- merge commit 与合并时间由 GitHub PR 事实和 `gh pr merge` 默认摘要保存,不要求回写 TaskTree。成功合并后不机械执行 `pr view`;只有默认输出缺少必要字段或需要定点排障时才查询。
- 只有 merge 后才产生新的运行面证据,并且用户明确要求将该证据写回 Git 时,第二个 closeout PR 才合理。
同一 PR 的 closeout 应在 merge 前写明 source branch、验证证据和残余风险。
@@ -9,6 +9,8 @@ description: >-
# UniDesk HWPOD 运维
- 本 skill 中的 MDTODO 仅表示遗留工作区来源与旧 Web 验收面;恢复相关任务前按 `$unidesk-tasktree` 迁移,不得新增文件式任务。
- 运维对象:
- 默认对象:当前 HWLAB v0.3 Python 图形节点;
@@ -1,4 +1,4 @@
interface:
display_name: "UniDesk HWPOD 运维"
short_description: "运维 Python UI HWPOD 节点、连接、工作区与 MDTODO"
short_description: "运维 Python UI HWPOD 节点、连接、工作区与遗留任务来源"
default_prompt: "使用 $unidesk-hwpod-ops 调查并运维指定 HWLAB Python UI HWPOD 节点。"
@@ -1,5 +1,7 @@
# Python 图形节点
- 下文 MDTODO 来源属于遗留节点合同;恢复相关任务前按 `$unidesk-tasktree` 迁移。
## 当前权威来源
- HWLAB 源码:YAML 选中的 v0.3 源工作区内 `tools/hwlab-node.py`
@@ -1,5 +1,7 @@
# 工作区与 MDTODO
- 本文只记录遗留来源兼容面;任务管理迁移统一遵循 `$unidesk-tasktree`
## 必需声明
- 新增节点/工作区规则:
+1 -1
View File
@@ -7,7 +7,7 @@ description: UniDesk 统一管理员密码的 YAML-first 分发与清理技能
遵循 `Skill(cli-spec)`,只通过 owning YAML、领域受控 CLI 和 `web-probe` 分发与验收,不读取、打印或从运行面反解密码。
- 通用 Secret 生命周期、工具改进和跨服务治理任务统一跟踪于 `docs/MDTODO/secret-lifecycle-governance.md`;本 skill 只保留统一管理员密码的现行最短路径和判定标准
- 通用 Secret 生命周期、工具改进和跨服务治理任务统一用 TaskTree 跟踪;遗留 MDTODO 按 `$unidesk-tasktree` 迁移
## 唯一事实源
+1 -1
View File
@@ -47,7 +47,7 @@ bun scripts/cli.ts platform-infra sub2api codex-pool runtime events --target PK0
- YAML 是 source of truthtarget、public exposure、Secret sourceRef、Codex pool 和 sentinel 配置都从 YAML 进入 CLI。
- 单目标纯版本滚动使用运行面优先快速通道:
- 先完成受控 `rollout` 和既有消费配置 smoke 验收;
- 成功后再补 MDTODO、报告和 commit
- 成功后再补 TaskTree ExecutionReport 和 commit;遗留 MDTODO 按 `$unidesk-tasktree` 迁移
- 直接 push `master`,不创建 PR
- 该通道只允许目标镜像字段和对应记录变更,源码、CLI、runtime、代理、Secret、多 target 或其他配置变更必须走独立分支和 PR。
- Secret 只输出对象名、key 名、presence、fingerprint 或 redacted prefix;禁止打印完整 token/key。
@@ -109,7 +109,7 @@ proxy secret/config 文件只允许放在受控 Secret/state 路径,输出只
- 快速通道边界:
- 只适用于单 target 的纯版本滚动;
- 允许变更目标的 `image.repository``image.tag``pullPolicy` 和对应 MDTODO 报告
- 允许变更目标的 `image.repository``image.tag``pullPolicy` 和对应 TaskTree ExecutionReport
- 不允许夹带 Sub2API 源码、UniDesk CLI、账号池 runtime、代理、Secret、多 target 或其他配置变更;
- 超出边界时使用独立分支和 PR,不得直接 push `master`
- 开始前同步:
@@ -135,8 +135,8 @@ proxy secret/config 文件只允许放在受控 Secret/state 路径,输出只
- 只有终态缺少 smoke 证据时,补一次 `sub2api smoke --target <target>`
- rollout 或 smoke 未成功时不得提交和推送目标版本。
- 成功后收尾:
- rollout 与 smoke 成功后再创建或补全 MDTODO 和任务报告
- 把目标镜像 YAML、MDTODO 和报告放入同一精确提交;
- rollout 与 smoke 成功后再创建或补全 TaskTree Task 和 ExecutionReport
- 遗留 MDTODO 按 `$unidesk-tasktree` 迁移;目标镜像 YAML 仍单独精确提交;
- 直接执行 `git push origin master`,不创建 draft PR、正式 PR 或 guarded merge
- 推送失败时先解决远端快进关系,不重复 rollout;
- push 后核对远端 `master` 已包含该提交和目标镜像声明。
+20 -20
View File
@@ -10,7 +10,7 @@ description: UniDesk 主代理调度子代理的必读技能。用户提到子
## 高频规则
- 涉及 PK01 的派单默认只允许只读调查:
- 只有用户在当前请求中明确要求修改 PK01,子 issue、MDTODO 或代理 prompt 才能授权修改其版本、配置、Secret 绑定、边缘路由、容器或运行面;
- 只有用户在当前请求中明确要求修改 PK01,子 issue、TaskTree Task 或代理 prompt 才能授权修改其版本、配置、Secret 绑定、边缘路由、容器或运行面;
- 泛化的修复、恢复、部署和排障目标不构成 PK01 变更授权。
- 主代理与子代理必须按用户明确目标控制实现范围:
- 未经用户明确要求,禁止新增或扩展通用合同、租约、安全机制、围栏及其配套门禁;
@@ -27,18 +27,18 @@ description: UniDesk 主代理调度子代理的必读技能。用户提到子
- 局部实现缺陷不冒充整 PR 方向错误;判定依据必须是用户最新目标、适用 SPEC 和 current/desired data flow。
- 执行型和调研型委派必须使用 AgentRun `Artificer`
- 只有用户明确指定原生子代理,或 Artificer 经有界 readiness、最短真实派单或 typed failure 证明确实不可用时,才允许改用原生子代理;
- Artificer 的 `create task``apply``dispatch` 必须以下文“子 issue + MDTODO”登记为 fail-closed 前置;禁止先创建 task 或派单再补登记;
- 原生子代理和 Artificer 每次派单前都必须已有对应 MDTODO ITEM 或 SUBITEM;派单 prompt 与最终报告必须写明同一个 MDTODO ID
- Artificer 的 `create task``apply``dispatch` 必须以下文“子 issue + TaskTree”登记为 fail-closed 前置;禁止先创建 task 或派单再补登记;
- 原生子代理和 Artificer 每次派单前都必须已有对应 TaskTree Task;派单 prompt 与最终报告必须写明同一个 Task ID
- 新执行任务和 review 返工默认创建新的 task/session
- 除非用户在当前请求中明确要求继续、恢复或复用指定 session,禁止用 `agentrun send`、return 或 turn 把任务派给已有 session
- 旧 session 只作为只读上下文和证据来源,新 session 通过 issue、PR、MDTODO 和 commit 接续;
- 旧 session 只作为只读上下文和证据来源,新 session 通过 issue、PR、TaskTree 和 commit 接续;
- 新 writer 开始前必须确认旧 writer 已终态,禁止两个 session 并发写同一 worktree。
- Artificer 协调状态只复用 MDTODO 与 AgentRun 已有的 task/run/command/session 资源:
- Artificer 协调状态只复用 TaskTree 与 AgentRun 已有的 task/run/command/session 资源:
- 普通派单、新 session 接续、重试和 closeout 不得另建锁、租约、证明链、第二状态库或配套围栏;
- 审查证据只保留 issue/PR/commit、验证摘要和必要下钻链接,不复制无界日志或构造额外实证体系;
- 只有直接保护真实业务资源、不可逆操作或明确损害风险时才允许最小 guard,且只覆盖实际风险窗口并在风险解除后立即释放;
- Artificer 的 `create task` 外层入口:
- 必须使用与子 issue / MDTODO 语义一致的唯一中文短标题;
- 必须使用与子 issue / TaskTree Task 语义一致的唯一中文短标题;
- 标题至少包含一个中文汉字,专有名和空格可以保留;
- 必须按 owning YAML 选中 Target
- 必须通过 `trans <Target>:<unideskWorkspace>` 重入目标节点;
@@ -58,8 +58,8 @@ description: UniDesk 主代理调度子代理的必读技能。用户提到子
- Artificer 只能在修复自动上线后作为被测对象,执行最短新 session canary 或业务验收;
- 用户只说“子代理”“并行代理”或“派代理”时,不构成原生子代理例外,仍必须使用 Artificer;
- 主代理不得因为方便、速度、空闲并发槽、已有原生 worktree、历史习惯或预计任务较短而自行降级到原生子代理;管理性、决策性工作由主代理直接完成,不构成原生子代理例外;
- Artificer 已被证明确实不可用时,先创建独立 issue 和泛化问题域 MDTODO,再派一个原生子代理修复 Artificer;只有与故障修复解耦且用户明确要求继续的紧急业务任务,才允许临时使用原生子代理,并必须在 Artificer 恢复后交接;不得把临时 fallback 固化为长期调度入口;
- Artificer 恢复后,原生子代理必须在 clean commit、PR 或只读报告 checkpoint 停止继续扩展;主代理通过原 issue、MDTODO 和 session 传递接续上下文,再由 Artificer 接替尚未完成的工作;禁止两个执行面共享可写 worktree、重复提交或并发修改同一任务;
- Artificer 已被证明确实不可用时,先创建独立 issue 和 TaskTree Task,再派一个原生子代理修复 Artificer;只有与故障修复解耦且用户明确要求继续的紧急业务任务,才允许临时使用原生子代理,并必须在 Artificer 恢复后交接;不得把临时 fallback 固化为长期调度入口;
- Artificer 恢复后,原生子代理必须在 clean commit、PR 或只读报告 checkpoint 停止继续扩展;主代理通过原 issue、TaskTree 和 session 传递接续上下文,再由 Artificer 接替尚未完成的工作;禁止两个执行面共享可写 worktree、重复提交或并发修改同一任务;
- 管理性、决策性文档仍由主代理负责,不为了满足 Artificer 优先规则而外包治理决策。
- 子代理并发必须从用户原始任务的依赖图出发主动扩展:
- 主代理先识别串行定锚项、已就绪任务和后续依赖,再计算当前可安全派发集合;
@@ -80,7 +80,7 @@ description: UniDesk 主代理调度子代理的必读技能。用户提到子
并撤销 patch 或确认其已被声明式交付覆盖;
- 通用抽象、输出优化、skill、报告和长期治理不得成为恢复门禁;
- 恢复达到用户原入口可用的标准后,主代理不得把临时恢复当作任务完成,必须继续完成用户明确要求的根因修复、工程化、PR、验证和治理;
- 与恢复根因解耦且具备独立 issue、MDTODO、worktree 和验收入口的工程化任务,必须在恢复期间立即并行派发,不得全部排到恢复之后串行执行。
- 与恢复根因解耦且具备独立 issue、TaskTree Task、worktree 和验收入口的工程化任务,必须在恢复期间立即并行派发,不得全部排到恢复之后串行执行。
- 子代理并行只用于成功率高、耦合度低、能放进独立 worktree/branch/issue/PR 的任务;共享架构方向、公共契约和同文件高冲突修改先串行定锚。
- 子代理产出的审核默认由主代理直接完成:
- 用户允许子代理实施、要求并行或启用多轮审查,不等于允许调度审核子代理;
@@ -95,8 +95,8 @@ description: UniDesk 主代理调度子代理的必读技能。用户提到子
- 不得用人工补跑伪造成功;
- 停止后由主代理判断是等待基础设施恢复、建立独立基础设施 issue,还是在用户新增授权后改走其他路径。
- 管理性、决策性文档由主代理直接完成,不把决策权或治理写入外包给子代理:
- 主代理负责 `AGENTS.md`、skill 核心规则、长期 reference 规范、架构决策、主 issue anchor/closeout,以及 MDTODO FILE 的领域划分、ITEM 结构和状态治理;
- 子代理可以在已明确的 issue、MDTODO ITEM 和验收边界内独立调研,并编写对应任务报告、验证记录、实现说明和证据附件;
- 主代理负责 `AGENTS.md`、skill 核心规则、长期 reference 规范、架构决策、主 issue anchor/closeout,以及 TaskGroup/Task 结构和状态治理;
- 子代理可以在已明确的 issue、TaskTree Task 和验收边界内独立调研,并编写对应 ExecutionReport、验证记录、实现说明和证据附件;
- 子代理报告只承载其任务事实与结论,不能自行改写上层目标、架构取舍、优先级、主线状态或跨任务治理规则;
- 主代理审阅子代理报告后,亲自把被采纳的结论写入管理性、决策性文档。
- 纯文档交付可以按 `$git-spec` 的稳定分支快路径由主代理直接 commit/push,不要求临时 branch、`.worktree` 或 PR;发现本地分叉、并行改动、分支保护或运行面影响时必须保留状态并回到隔离交付。
@@ -104,9 +104,9 @@ description: UniDesk 主代理调度子代理的必读技能。用户提到子
- 主代理和子代理必须通过 issue/PR/comment 链接传递可复用上下文、调查结论、证据链接和下一步边界;派发前先读既有评论,prompt 中只引用链接和增量任务,不复述长结论,避免不同子代理重复调查同一事实。
- 主代理派发任何执行型子代理前必须完成以下登记;对 Artificer,全部步骤必须早于 AgentRun `create task``apply``dispatch`
- 创建子 issue,把主要任务、接续上下文、目标分支/worktree、范围、禁止项和验收入口写入正文;
- 使用 `$mdtodo-edit` 在对应泛化问题域的 MDTODO ITEM 或 SUBITEM 中登记子 issue 链接,并把任务标记为进行中;不得为单个 issue 创建窄范围 MDTODO FILE
- 任一登记缺失或写入失败时不得创建 AgentRun task;派单后补写 MDTODO 不计为合规登记。
- 派单 prompt 必须写入 MDTODO ITEM/SUBITEM ID;子代理的阶段报告、PR 说明和最终报告必须回链同一 ID。
- 使用 `$unidesk-tasktree` 在对应 TaskGroup 中创建或更新 Task、登记子 issue 链接,并把任务标记为进行中
- 任一登记缺失或写入失败时不得创建 AgentRun task;派单后补写 TaskTree 不计为合规登记。
- 派单 prompt 必须写入 Task ID;子代理的阶段报告、PR 说明和最终报告必须回链同一 ID。
- 子代理 prompt 只给子 issue 链接和极短边界,不塞大段任务正文。每个执行型子代理维护自己的子 issue 和评论作为接续上下文;主 issue 评论区只由主代理写入主线 anchor、阶段汇总、调度决策和最终 closeout。
- 子代理不得把过程日志、单步证据、长调查和 post-task 反馈直接堆到主 issue 评论区,只能在主 issue 需要可见时由主代理引用子 issue/PR/comment 链接。
- 主代理跟踪子代理进度时优先读取子 issue 评论区、关联 PR 更新和 bounded issue/PR 状态;不要为了普通进度查询主动 `send_input interrupt` 打断子代理主线。只有子 issue/PR 长时间无更新且只读 worktree 也无推进时,才进入问询、关闭和重开流程。
@@ -126,13 +126,13 @@ description: UniDesk 主代理调度子代理的必读技能。用户提到子
- 子代理长时间无响应时,主代理按“问询 -> 只读检查 worktree/PR/issue -> 再窄问询”的顺序处理;多次问询仍无回复时,可以关闭旧子代理,并在原 worktree/原分支/原 issue 边界上重开新子代理接续。重开前不得删除或重置旧 worktree;新子代理必须先读取原 worktree 状态和既有 issue/PR/comment 链接,再继续最小下一步。
- 子代理完成任务后,主代理必须再给该子代理发送 post-task 收口要求;若主代理要求子代理纠偏或补验证,则等纠偏完成后再发 post-task。post-task 反馈由子代理按 `$post-task` 自行给出判断,主代理不负责反馈池去重;主代理只从子代理提好的反馈中挑选适合工程化的项转成正式 FEATURE/BUG issue,并优先派回提出该反馈的子代理执行。
- post-task 派单与去重必须限制在同一 canonical logical operation
- identity 至少同时绑定 tenant/project、Aipod、MDTODO、Target、repository/ref、绝对 targetWorkspace、源码提交和最终 payload hash;同一 operation 重放只复用原 task
- identity 至少同时绑定 tenant/project、Aipod、TaskTree Task、Target、repository/ref、绝对 targetWorkspace、源码提交和最终 payload hash;同一 operation 重放只复用原 task
- 不得按同一 post-task dispatch、时间窗口、session、标题、Issue 前缀或列表邻近关系把多个 task 归为重复;
- 不同 payload 复用 idempotency key 必须输出 typed conflict,保留所有 task,禁止通过 cancel 猜测性收敛;
- identity 不完整、task input 不可读、投影陈旧或终态事实不一致时只输出 warning,并停止 destructive cancellation
- post-task cleanup 不得取消 sibling task;取消只用于用户明确授权的目标,或同一 task/attempt 的受控终止。
- post-task 反馈明确有助于达到“下次同类任务可以减少不必要工具调用”时,主代理可以直接创建对应 issue、登记 MDTODO,并派后续子代理改进工具、文档或 skill,无需再次等待用户确认:
- 仍须遵守子 issue、MDTODO、独立 worktree、目标分支、受控 GitHub 入口和主代理审核要求;
- post-task 反馈明确有助于达到“下次同类任务可以减少不必要工具调用”时,主代理可以直接创建对应 issue、登记 TaskTree,并派后续子代理改进工具、文档或 skill,无需再次等待用户确认:
- 仍须遵守子 issue、TaskTree、独立 worktree、目标分支、受控 GitHub 入口和主代理审核要求;
- 改进任务必须与原业务主线隔离并优先并发推进,不得成为当前业务交付、合并或上线门禁;
- 不得借反馈扩展业务功能、安全机制、权限契约、审计门禁或其他未经授权的范围。
- 主代理结束条件:
@@ -151,7 +151,7 @@ description: UniDesk 主代理调度子代理的必读技能。用户提到子
- 完成任务要求的自动交付、线上验证或原入口复测。
- 主代理还必须完成治理收尾:
- 完成对应 issue closeout
- 写入 MDTODO 任务报告并更新状态;
- 写入 ExecutionReport 并更新 Task 状态;
- 清理已吸收的 worktree 和分支;
- 确认没有本轮子代理遗留的必要收尾后,才可以向用户结束当前任务。
- 不得以“异步派发”“非阻塞支线”或“后续再观察”为由提前结束。
@@ -163,7 +163,7 @@ description: UniDesk 主代理调度子代理的必读技能。用户提到子
## 主线与支线隔离
- 主线执行中遇到可临时缓解的非主线问题时,固定按以下顺序处理:
- 先创建边界独立的 GitHub issue,并在语义化 MDTODO 中引用 issue 链接、根因假设、临时缓解和最终验收入口;
- 先创建边界独立的 GitHub issue,并在 TaskTree Task 中引用 issue 链接、根因假设、临时缓解和最终验收入口;
- 主代理仅通过受控入口执行有界、可逆、可验证的临时缓解,同时保存缓解前后证据和回退方式;
- 将根因修复交给独立子代理、worktree、branch 和 PR,禁止让支线继续占用主代理主线;
- 缓解达到继续主线的最低条件后,主代理立即恢复用户原始目标,不等待支线完成。
@@ -177,7 +177,7 @@ description: UniDesk 主代理调度子代理的必读技能。用户提到子
- CI/CD、rollout、PipelineRun、Argo closeout`$unidesk-cicd`
- WebProbe、Workbench、浏览器复测:`$unidesk-webdev`
- 子代理完成后的反馈收口和反馈 issue 判定:`$post-task`
- Artificer 和其他执行型子代理派单前的任务登记必须使用 `$mdtodo-edit`;只有用户明确要求多轮审查或循环修复时才使用 `$mdtodo-loop`,启用后仍由主代理审核,除非用户明确要求审核子代理
- Artificer 和其他执行型子代理派单前的任务登记必须使用 `$unidesk-tasktree`;遗留 MDTODO 的处理也统一遵循该 skill
## 何时读取 reference
@@ -33,7 +33,7 @@
- 恢复关键路径上的最小诊断、配置修正和复测按真实依赖顺序执行;
- 必要的运行面 patch 由 `$unidesk-daddev` P2 约束,只证明方向或临时恢复;
不得把 patch 状态当作 source authority、自动交付成功或最终验收;
- 与根因解耦的 CLI、reference、报告、独立仓库修复和长期治理,在具备独立 issue、MDTODO、worktree、PR 与验收入口时立即并行;
- 与根因解耦的 CLI、reference、报告、独立仓库修复和长期治理,在具备独立 issue、TaskTree Task、worktree、PR 与验收入口时立即并行;
- 只有缺少受控恢复入口直接阻塞恢复时,才允许把工具修改放到恢复关键路径。
- 运行面恢复后,主代理继续完成根因修复、持久化配置、自动交付、原入口复测和治理收口;不得以临时恢复或单次手工成功代替用户要求的终态。
- P2 patch 验证成立后,主代理必须把变化收敛到 owning YAML、源码或 renderer
@@ -66,13 +66,13 @@
- 大任务先有 GitHub issue 或在既有 issue 中补并行计划:列出子任务、负责人/子代理、目标分支、预期 PR、验证入口、依赖关系和哪些任务可并行。
- Artificer 派单采用 fail-closed 登记顺序:
- 先创建子 issue,冻结目标分支、工作区、范围、禁止项和验收入口;
- 再使用 `$mdtodo-edit` 在泛化问题域 MDTODO 中创建或更新 ITEM/SUBITEM、登记子 issue 链接并标记进行中;
- 再使用 `$unidesk-tasktree` 在对应 TaskGroup 中创建或更新 Task、登记子 issue 链接并标记进行中;
- 只有上述写入成功后,才允许 AgentRun `create task``apply``dispatch`
- 缺少 MDTODO FILE、任务项、进行中状态或子 issue 链接时不得派单,派单后补写不算合规。
- 派单后的协调状态直接复用 MDTODO 与 AgentRun task/run/command/session;普通新 session 接续、重试和 closeout 不新增锁、租约、第二状态库、证明链或围栏。证据保持为有界摘要与稳定链接;只有直接保护业务资源、不可逆操作或明确损害风险的最小 guard 才属于例外。
- 缺少 TaskGroup、Task、进行中状态或子 issue 链接时不得派单,派单后补写不算合规。
- 派单后的协调状态直接复用 TaskTree 与 AgentRun task/run/command/session;普通新 session 接续、重试和 closeout 不新增锁、租约、第二状态库、证明链或围栏。证据保持为有界摘要与稳定链接;只有直接保护业务资源、不可逆操作或明确损害风险的最小 guard 才属于例外。
- 执行派单和 review 返工默认创建新 task/session
- 用户未在当前请求中明确要求继续、恢复或复用指定 session 时,不得用 `agentrun send`、return 或 turn 触发已有 session
- 新 session 从子 issue、MDTODO、PR、commit 和旧 session 的只读结果接续,不复制无界上下文;
- 新 session 从子 issue、TaskTree、PR、commit 和旧 session 的只读结果接续,不复制无界上下文;
- 复用原 worktree 前必须确认旧 writer 已终态,避免两个 session 并发写入。
- 主 issue 评论区由主代理独占维护:只写主线 anchor、阶段汇总、调度决策、已采纳结论、下一批边界和最终 closeout。子代理不得直接在主 issue 评论区堆过程、日志、单步证据或 post-task 反馈;需要让主线可见时,由主代理在主 issue 引用子 issue/PR/comment 链接。
- 主代理派发执行型子代理前必须先创建子 issue,不能把主要任务正文直接塞进 subagent prompt。子 issue 标题应能反映父 issue、运行面/模块和子任务;正文必须引用父 issue、目标分支/worktree、允许范围、禁止范围、验收入口、模型/思考等级选择理由和当前接续链接。子代理的调查、单步证据、阻塞、post-task 和后续接力评论都写在自己的子 issue 或关联 PR 中。
@@ -88,9 +88,9 @@
- 每个子代理完成主任务后,主代理必须发送 post-task 收口要求;如果主代理发现需要纠偏、补证据或返工,应先让子代理完成纠偏,再发送 post-task。post-task 只收集反馈和后续问题线索,不应让子代理自行扩大代码修改范围。
- 子代理按 `$post-task` 自行输出已判断的 feedback 候选、疑似归属和是否建议转正式 issue;主代理不负责反馈池去重,不代替子代理维护 `[FEEDBACK]` issue。主代理只从子代理提好的 feedback 中挑选适合直接工程化的项,另起正式 FEATURE/BUG issue 后继续调度。
- feedback 转正式 issue 后,优先派回提出该 feedback 的子代理执行,使调查上下文和修复上下文保持连续;只有该子代理不可用或任务边界已变化时才派给其他子代理。
- feedback 明确能减少下次同类任务不必要工具调用时,主代理可以直接建立正式 issue、登记 MDTODO 并派后续子代理改进工具、文档或 skill,无需再次等待用户确认。该任务使用独立 worktree/PR 并与业务主线并发,不能成为当前业务交付门禁,也不能借机扩展未经授权的业务或安全范围。
- feedback 明确能减少下次同类任务不必要工具调用时,主代理可以直接建立正式 issue、登记 TaskTree 并派后续子代理改进工具、文档或 skill,无需再次等待用户确认。该任务使用独立 worktree/PR 并与业务主线并发,不能成为当前业务交付门禁,也不能借机扩展未经授权的业务或安全范围。
- post-task 派单只按完整 logical operation 做幂等重放:
- tenant/project、Aipod、MDTODO、Target、repository/ref、绝对 targetWorkspace、源码提交和最终 payload hash 任一不同都不是重复任务;
- tenant/project、Aipod、TaskTree Task、Target、repository/ref、绝对 targetWorkspace、源码提交和最终 payload hash 任一不同都不是重复任务;
- 显式 key 与 canonical fingerprint 冲突时保留全部 task 并输出 typed evidence
- identity 缺失、投影陈旧或权威终态不确定时只 warning,不允许按 dispatch/session/时间窗口批量取消 task。
@@ -127,9 +127,9 @@ Prompt 至少包含以下字段,按任务裁剪:
1. 建立计划:列出可并行任务、串行依赖和每个子代理交付物。
2. 为每个执行型子代理先创建子 issue,把任务正文写进子 issue。
3. 使用 `$mdtodo-edit` 把子 issue 登记到泛化问题域 ITEM/SUBITEM 并标记进行中;登记失败时停止派单。
3. 使用 `$unidesk-tasktree` 把子 issue 登记到对应 TaskGroup/Task 并标记进行中;登记失败时停止派单。
4. 计算当前可安全并发窗口并同时派发全部已就绪的低耦合子任务;共享契约先派一个基线任务。
- Artificer 的 `create task``apply``dispatch` 均只能发生在 MDTODO 登记之后。
- Artificer 的 `create task``apply``dispatch` 均只能发生在 TaskTree 登记之后。
5. 轮询子代理结果:子 issue comment、PR、验证摘要、阻塞;任一任务终态或依赖变化后立即重新计算窗口并补派,不能退化为长期单任务等待。
6. 对每个 PR 做架构 review、bounded diff 和必要本地验证;方向错误时按“关闭或精确 revert 后重建”处理,只有局部实现缺陷才进入新 session 返工;只有定点排障时单独执行 preflight,正常收口直接使用内建 readiness 的 guarded merge。
7. 按依赖顺序合并;合并后同步目标 worktree。
+19
View File
@@ -30,6 +30,10 @@ description: >-
- 不新增历史工具名、历史 operation 或兼容别名;
- 历史 Markdown 任务文件只通过 `group import-markdown` 迁移;
- 导入后以 TaskGroup、Task 与 ExecutionReport 为任务管理对象。
- 禁止为新任务创建或继续写入 MDTODO:
- skill、长期文档或 issue 中仍引用 MDTODO 时,将其视为待迁移入口;
- 历史报告、已退役服务名和只读过程记录可以保留原词,不能作为新任务权威;
- 当前任务没有遗留 MDTODO 时,直接创建或继续 TaskTree 任务。
- CLI 输出必须是可见 JSON
- 成功必须检查 `ok=true``operation`
- 失败必须保留稳定错误码和非零退出;
@@ -140,6 +144,21 @@ tasktree workflow start
## 历史任务迁移
- 当前任务引用的 MDTODO 必须在继续实施前迁移:
1. 用 `group import-markdown --dry-run` 核对层级、任务、报告、缺失报告和压平 warning。
2. 执行正式导入,并保存 TaskGroup、Task、Subtask、Subsubtask 与 ExecutionReport ID。
3. 用 `group stats` 和必要的 `task get``report list` 核对状态、层级和报告数量。
4. 确认 GitHub 自动备份包含新快照;自动备份未生效时使用受控手动备份。
5. 运行 `backup verify`,要求数据库 SHA 与 GitHub 快照 SHA 一致。
6. 只有上述步骤全部成功后,才一次性删除原 MDTODO FILE 及其专属报告目录。
7. 删除后从已导入的 TaskTree 对象继续任务,不再回写或重建原文件。
- 迁移失败、报告缺失未裁决或备份未验证时:
- 禁止删除原文件;
- 禁止在旧文件上继续推进;
- 保留现场并修复导入或备份入口。
- 只读历史材料不自动批量迁移:
- 当前任务真正恢复、修改或依赖其中任务状态时才触发迁移;
- 不篡改历史报告中的旧系统名称、命令和运行面事实。
- 迁移入口:
```bash
+1 -1
View File
@@ -195,7 +195,7 @@ trans NC01:k3s kubectl -n temporal get service temporal-frontend \
## 跟踪与配合
- 基础设施可靠性任务记录在 `docs/MDTODO/platform-infra-runtime-reliability.md`
- 基础设施可靠性任务统一记录在 TaskTree;遗留 MDTODO 按 `$unidesk-tasktree` 迁移
- 详细方案、偏差与验收证据写入对应 GitHub issue,并使用 `$unidesk-gh` 受控入口。
- 跨 host 调试与临时 native smoke 使用 `$unidesk-daddev``$unidesk-trans`
- Web 公网验收使用 `$unidesk-webdev`
@@ -191,4 +191,4 @@ SH
- 首个确定的 OOM、ABI、许可证、上游 ref 或硬件能力错误触发 `stop_condition` 后立即停止同族试配。
- 依赖下载失败与模型失败必须分层记录,不能把网络、registry 或包 ABI 问题误判为模型不可用。
- smoke 未进入原入口时,首次调用、热调用、峰值显存和生成物必须明确写 `未执行`,不能填推测值。
- 后续候选模型或依赖组合使用新的 issue、MDTODO、资源前缀和实验目录,不能在当前 smoke 中无界扩展。
- 后续候选模型或依赖组合使用新的 issue、TaskTree Task、资源前缀和实验目录,不能在当前 smoke 中无界扩展;遗留 MDTODO 按 `$unidesk-tasktree` 迁移
+2 -2
View File
@@ -168,8 +168,8 @@ description: UniDesk Web 开发与受控浏览器验证技能。用户提到 Web
- smoke 不点击评分刷新或抽奖,不允许除登录外的写请求。
- 沉淀后的 typed command 必须复用 observer start 时选中的 semantic origin;不得在 command 内嵌 URL/IP,也不得为 internal/public 各复制一份 command。
- Workbench 性能卡顿调查优先用 `observe command --type performanceCapture` + `observe analyze` + `observe collect --view performance-summary``performance-summary` 必须保持首屏 bounded,只输出 LongTask/LoAF/event-loop gap 摘要、CPU profile hotspots/stacks 和 sourceFiles,下钻完整 profile/report 时再显式读取 artifact。
- Project Management/MDTODO closeout 必须区分 `control` 页和被动 `observer`显式 `observe command` 的 command result、control URL 和对应截图是用户动作证据;observer 周期刷新或 stop 后根路由空态只能作为对照信号,不能覆盖 command result。涉及报告的验收要同时记录 `reportPreviewVisible``reportFullscreenVisible`、报告 deep link 和截图 SHA。
- MDTODO → Workbench launch 验收必须引用 `launchWorkbenchFromMdtodo` 的 command result确认文件/任务选择、Workbench session、launch/chat 状态和 OTel trace header;不要只凭页面最终停在 Workbench URL 判断通过
- 遗留 Project Management/MDTODO closeout 必须区分 `control` 页和被动 `observer`;恢复相关任务前按 `$unidesk-tasktree` 迁移。显式 `observe command` 的 command result、control URL 和对应截图是用户动作证据;observer 周期刷新或 stop 后根路由空态只能作为对照信号,不能覆盖 command result。
- 遗留 MDTODO → Workbench launch 只用于迁移前兼容验收必须引用 `launchWorkbenchFromMdtodo` 的 command result不能作为新任务管理入口
- Workbench provider profile 验收使用 `observe command --type sendPrompt --provider <profile>` 时,command result 必须显示 `requestedProvider``providerSelection.selected``/v1/agent/chat` 202、traceId 和最终 `turn-summary`;只有 prompt 成功不够,必须确认浏览器控件实际选中目标 profile。
- Workbench Kafka 实时 fanout 的重复验收:
- 使用 `observe command --type validateRealtimeFanout --profile <yaml-profile> --provider <provider> --text <first> --second-text <second>`
@@ -39,7 +39,7 @@
- 桌面默认视口是 `1920x1080`
- 记录命令栏、状态底栏和主体工作区的实际高度及占比;
- 确认页头未超过默认高度预算,主体工作区占据全部剩余高度;
- 项目、MDTODO 和报告类页面按风险覆盖紧凑桌面视口,例如 960x600;
- TaskTree、遗留 MDTODO 和报告类页面按风险覆盖紧凑桌面视口,例如 960x600;遗留任务迁移见 `$unidesk-tasktree`
- 紧凑桌面覆盖深链默认态、左侧树折叠态和右侧报告关闭态;
- 涉及报告渲染或布局重写时覆盖右侧报告栏和报告全屏态;
- 记录 document overflow 为零、主内容区不滚动、pane 宽高和滚动范围、正文或报告可见性、按钮遮挡情况及截图 SHA。
+3 -2
View File
@@ -101,10 +101,11 @@
- 禁止原生 `gh`/手写 API
- 写入默认中文。
- P0: 可临时缓解的非主线问题:
- 先创建独立 GitHub issue 和语义化 MDTODO
- 先创建独立 GitHub issue 和语义化 TaskTree Task
- 主代理只执行有界、可逆、可验证的临时缓解;
- 支线交独立子代理后,主代理立即回到原主线;
- 完整判定和交付规则见 `$unidesk-subagent`
- P0: 任务管理与 MDTODO 迁移统一遵循 `$unidesk-tasktree`
- P0: 远端文本修改:
- 优先走 `$unidesk-trans``trans <route> apply-patch`
- route/cwd 见 `docs/reference/cli.md`
@@ -137,7 +138,7 @@
- P0: MET 非线性补偿研究与 MN 小论文投稿查询固定工作区:
- 透传路由:`D518:win/c/work/met_nonlinear_master`
- Windows 路径:`C:\work\met_nonlinear_master`
- 投稿任务入口`docs/MDTODO/20260605-MN投稿前修改.md`
- 历史投稿任务入口恢复前按 `$unidesk-tasktree` 迁移
- P0: HWLAB 凭据脱敏和 issue 关闭遵循 `docs/reference/hwlab.md`
- 关闭前必须在选中 node/lane 走原入口真实验证;
- 源码、PR 或构建通过不能替代原入口验证。
+2
View File
@@ -2,6 +2,8 @@
本文只记录 UniDesk 侧对独立仓库 `pikasTech/agentrun` 的开发与运维约束。AgentRun 作为 HWLAB Agent 编排执行基础设施时,需求规格正文由 UniDesk OA 管理,入口是 [PJ2026-0102 Agent编排](../../project-management/PJ2026-01/specs/PJ2026-0102-agent-orchestration.md)。AgentRun 仓库内 `docs/reference/spec-v01-*.md``docs/reference/architecture.md` 只保留到 OA 规格的交叉引用 stub;实现细节、源码组织和仓库本地运行说明仍维护在 AgentRun 仓库自身。
文中的 `--mdtodo-id` 是尚未退役的兼容字段;任务权威与迁移统一遵循 `$unidesk-tasktree`
## 仓库与 Worktree
AgentRun 唯一长期仓库是:
+2
View File
@@ -1,3 +1,5 @@
- 本文中的 MDTODO 是遗留服务名;任务管理与迁移统一遵循 `$unidesk-tasktree`
- Requirements
- Build a distributed work platform covering research, project development, and project management
- Deploy the main entry point on a server with a public IP, providing a unified interface
+2
View File
@@ -1,5 +1,7 @@
# D601 Artifact Registry
本文中的 `mdtodo` 是遗留 artifact consumer 名;任务管理与迁移统一遵循 `$unidesk-tasktree`
D601 artifact registry 是为 backend-core 和标准用户服务轻量 CD 准备的本地镜像制品入口。它使用开源、成熟的 CNCF Distribution Docker registry,不自定义镜像协议,也不把镜像托管到第三方服务。
backend-core 和 reviewed user services 的长期分工是:CI 在 D601 构建并发布 commit-pinned 镜像,CD 在运行目标只拉取、替换/导入和验证该镜像。registry 是这条链路的本地制品缓存,不是构建编排器,也不是生产部署控制面。
+2
View File
@@ -1,5 +1,7 @@
# UniDesk CI On D601 k3s
本文中的 `mdtodo` 是遗留 CI 服务名;任务管理与迁移统一遵循 `$unidesk-tasktree`
UniDesk CI is hosted on the D601 native k3s cluster with Tekton Pipelines and Tekton Triggers. It is CI only. CD remains separate from Tekton. No Tekton task may roll out production services. CI/CD runtime-version governance follows `docs/reference/release-governance.md` and [GitHub issue #6](https://github.com/pikasTech/unidesk/issues/6). The default user-service release order is owned by `docs/reference/user-service-delivery.md`.
## Components
+2
View File
@@ -1,5 +1,7 @@
# CI/CD Standardization
本文中的 `mdtodo` 是遗留交付对象名;任务管理与迁移统一遵循 `$unidesk-tasktree`
This document defines the stable split between CI artifact producers, artifact catalog data, legacy guardrails and CD consumers. Detailed Tekton rules remain in `docs/reference/ci.md`; registry runtime and consumers remain in `docs/reference/artifact-registry.md`; user-service delivery order remains in `docs/reference/user-service-delivery.md`.
`deploy.json` is the single release-intent source for deployment-time parameters that must stay aligned across CI/CD, dev and prod consumers, and runtime health checks. Other files and manifests may mirror those values for wiring or compatibility, but they must be derived from `deploy.json` and not become a second source of truth. The long-term standardization work is tracked in [GitHub issue #60](https://github.com/pikasTech/unidesk/issues/60).
+2
View File
@@ -1,5 +1,7 @@
# UniDesk CLI Reference
本文中的 `mdtodo` 命令、字段和服务名属于遗留兼容面;任务管理与迁移统一遵循 `$unidesk-tasktree`
## 只读观测长轮询
- mutation、构建、发布和部署触发保持 fire-and-forget;长轮询只属于只读观测,不改变执行 authority。
+2
View File
@@ -1,5 +1,7 @@
# Desired Deploy Reconciler
本文中的 `mdtodo` 是遗留部署对象名;任务管理与迁移统一遵循 `$unidesk-tasktree`
UniDesk deployment is driven by a desired-state manifest. The manifest answers only one question: which service should run which repository commit. Runtime topology, ports, providers, compose files, Kubernetes manifests, health paths and proxy policy remain in `config.json` and the existing service manifests.
Persistent D601 dev environment rules, including the public dev frontend port, `deploy apply --env dev` service scope and Rust backend-core build boundary, are owned by `docs/reference/dev-environment.md`. Release-line governance, CI/CD runtime pinning and the `release/v1` transition policy are owned by `docs/reference/release-governance.md` and [GitHub issue #6](https://github.com/pikasTech/unidesk/issues/6). This document owns the generic desired-state reconciler and target-side build contract.
+2
View File
@@ -1,5 +1,7 @@
# UniDesk Deployment Reference
本文中的 `mdtodo` 是遗留部署对象名;任务管理与迁移统一遵循 `$unidesk-tasktree`
主 server 使用根目录 `docker-compose.yml` 统一编排 database、backend-core、frontend、dev-frontend-proxy、provider-gateway 以及必须留在主 server 的用户服务。当前环境本身就是主 server,因此 provider-gateway 也在同一台机器上启动,用与普通计算节点相同的 WebSocket 方式接入 core。Code Queue 按“master 低资源低抖动控制面、D601 高资源高抖动执行面”拆分:队列 CRUD、任务提交、历史摘要和轻量 Trace 读取由主 server Compose 中的 `code-queue-mgr` 直管 PostgreSQLCodex/OpenCode scheduler、runner、dev-container、active run steer/interrupt 和执行态写回仍由 D601 原生 k3s/k8s Code Queue 执行面承担。
Production runtime and CI/CD control-plane versioning follow `docs/reference/release-governance.md` and [GitHub issue #6](https://github.com/pikasTech/unidesk/issues/6): server-side runtime is commit-pinned through `deploy.json`, while a newer `master` CLI may operate it only through compatible APIs and server-reported capabilities.
+2
View File
@@ -1,5 +1,7 @@
# 开发与构建执行环境
本文中的 `mdtodo` 是遗留开发运行面名;任务管理与迁移统一遵循 `$unidesk-tasktree`
本文档是以下事项的权威出处:
- NC01、D601 与 Master server 的构建执行面边界;
+3 -1
View File
@@ -1,5 +1,7 @@
# DevOps Hygiene
本文中的 MDTODO workspace 指遗留用户数据边界;任务管理与迁移统一遵循 `$unidesk-tasktree`
This document is the authoritative source for UniDesk deployment hygiene: Git-backed deployment truth, dirty-environment boundaries, bounded manual operations and CI source-auth rules. Release-line and CI/CD runtime-version governance is owned by `docs/reference/release-governance.md` and [GitHub issue #6](https://github.com/pikasTech/unidesk/issues/6). If the same hygiene rule would need edits in `docs/reference/dev-environment.md`, `docs/reference/deploy.md`, `docs/reference/ci.md`, `docs/reference/dev-ci-runner.md`, `docs/reference/deployment.md`, `AGENTS.md` or `TEST.md`, keep the detailed rule here and leave only a cross-reference elsewhere.
## Source Of Truth
@@ -229,7 +231,7 @@ CHANGELOG 的文档交叉引用必须同时满足以下要求:
- 新的安全机制、权限体系或凭据治理层;
- admission fence、activation fence、CAS 围栏或配套门禁。
- 既有权限校验、Secret 脱敏、不可逆操作保护和损害预防规则必须继续遵守;范围控制不授权删除仍保护明确风险的既有安全底线。
- 发现衍生问题时可以创建边界独立的 issue 或 MDTODO 记录,但在用户另行授权前不得实现、合并、部署,也不得把它加入原任务的验收条件或阻塞路径。
- 发现衍生问题时可以创建边界独立的 issue 或 TaskTree Task,但在用户另行授权前不得实现、合并、部署,也不得把它加入原任务的验收条件或阻塞路径。
- 现有 guard 或工具限制阻碍原始目标时,先验证它是否仍保护当前任务中的明确风险,并优先使用现有架构内的最小配置或受控操作完成目标;若只能通过架构扩展解决,必须先向用户说明必要性、影响范围和替代方案并取得明确授权。
- 子代理不得自行扩大 issue、prompt 或 PR 范围。主代理负责在 review、preflight 和合并前删除非必要前置,并把获准之外的发现留在支线。
+2
View File
@@ -1,5 +1,7 @@
# UniDesk Frontend Reference
本文中的 MDTODO 页面是遗留 Web 兼容面;任务管理与迁移统一遵循 `$unidesk-tasktree`
UniDesk 前端是 React 组件化工业控制台,不追求展示型大屏效果。设计目标是高信息密度、低装饰、低字号、低间距,并让调度、节点、事件和配置入口在单屏内快速切换。
## Source Contract
+2
View File
@@ -1,5 +1,7 @@
# HWLAB 指挥侧参考
本文中的 MDTODO/Project Management 是遗留页面名;恢复相关任务前按 `$unidesk-tasktree` 迁移。
本文定义 UniDesk 指挥官推进 `pikasTech/HWLAB` 时的固定入口、workspace、上线口径和常见误判边界。HWLAB 的项目内操作细则以 HWLAB 仓库自己的 `AGENTS.md``docs/reference/` 为准;本文只记录 UniDesk 侧如何进入和监督。
## 固定入口
+2
View File
@@ -1,5 +1,7 @@
# UniDesk User Services Reference
本文中的 `mdtodo` 是遗留微服务与兼容运行面名;任务管理与迁移统一遵循 `$unidesk-tasktree`
UniDesk 用户服务是挂载到 UniDesk 核心服务上的、面向用户使用的非核心业务服务;底层配置、API、CLI 和 E2E check 名称仍保留 `microservice` 兼容命名。UniDesk 核心服务(frontend、backend-core、database、provider-gateway、主 server 控制入口)不得依赖某个用户服务存在;缺少部分或全部用户服务时,核心仍必须能启动、运行和完成基础运维。
用户服务可运行在计算节点 Docker、主 server Docker 或受控 k8s 中。外部业务服务只登记仓库引用和运行映射;UniDesk 自有服务可以在 `src/components/microservices/` 维护源码,并由对应 YAML 声明运行、Secret、持久化和交付责任。
+2
View File
@@ -1,5 +1,7 @@
# User Service Delivery Policy
本文中的 `mdtodo` 是遗留用户服务名;任务管理与迁移统一遵循 `$unidesk-tasktree`
This document owns the default delivery path for UniDesk user services registered in `config.json.microservices[]`, together with the paired frontend verification expectations for those services. It does not replace `docs/reference/deploy.md`, `docs/reference/ci.md`, `docs/reference/dev-environment.md`, or `docs/reference/microservices.md`; it states the default release order that future user-service work should follow unless a service-specific exception is documented.
## Scope