docs: 错误 PR 回滚并默认新 session 派单
This commit is contained in:
@@ -21,12 +21,20 @@ description: UniDesk 主代理调度子代理的必读技能。用户提到子
|
||||
- 涉及事件、投影、实时、回放或持久化的派单,主代理必须在子 issue 中先写出 current data flow 和 desired data flow;两者存在架构变化时,先更新长期 SPEC 并取得用户明确授权,再允许实施。
|
||||
- 新增测试只能验证已经授权的合同,不能用测试通过把未经授权的架构变化、迁移依赖或新 authority 合法化。
|
||||
- 主代理审核顺序固定为:先比较用户最新目标、适用 SPEC 和 current/desired data flow,再审核代码内部一致性、测试和实现质量;后者通过不能覆盖前者偏离。
|
||||
- 发现整个 PR 的授权目标、架构方向、data flow 或 source of truth 错误时,禁止在该 PR 上继续补丁:
|
||||
- 未合并 PR 直接关闭并停止其 writer,从最新目标分支创建新分支、新 worktree 和新 PR;
|
||||
- 已合并 PR 先创建只做精确回滚的独立 revert PR,合并回滚后再从恢复后的目标分支开始正确实现;
|
||||
- 局部实现缺陷不冒充整 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;
|
||||
- 新执行任务和 review 返工默认创建新的 task/session:
|
||||
- 除非用户在当前请求中明确要求继续、恢复或复用指定 session,禁止用 `agentrun send`、return 或 turn 把任务派给已有 session;
|
||||
- 旧 session 只作为只读上下文和证据来源,新 session 通过 issue、PR、MDTODO 和 commit 接续;
|
||||
- 新 writer 开始前必须确认旧 writer 已终态,禁止两个 session 并发写同一 worktree。
|
||||
- Artificer 协调状态只复用 MDTODO 与 AgentRun 已有的 task/run/command/session 资源:
|
||||
- 普通派单、续跑、重试和 closeout 不得另建锁、租约、证明链、第二状态库或配套围栏;
|
||||
- 普通派单、新 session 接续、重试和 closeout 不得另建锁、租约、证明链、第二状态库或配套围栏;
|
||||
- 审查证据只保留 issue/PR/commit、验证摘要和必要下钻链接,不复制无界日志或构造额外实证体系;
|
||||
- 只有直接保护真实业务资源、不可逆操作或明确损害风险时才允许最小 guard,且只覆盖实际风险窗口并在风险解除后立即释放;
|
||||
- Artificer 的 `create task` 外层入口:
|
||||
@@ -42,10 +50,10 @@ description: UniDesk 主代理调度子代理的必读技能。用户提到子
|
||||
- 只允许由 UniDesk owning YAML 将 `/root/.codex/auth.json.pika` 与 `/root/.codex/config.toml.pika` 投影为 `gpt-pika` SecretRef;
|
||||
- 任务 prompt、task payload、日志和 issue 不携带 credential value;
|
||||
- 模型或 reasoning override 不能切换 provider/SecretRef;
|
||||
- 只有 Artificer 已通过有界 readiness、最短真实派单或同 session 续跑证据,才判定为可用;单个业务任务失败必须先按 typed reason 判断,不能直接宣告 Artificer 不可用;
|
||||
- 只有 Artificer 已通过有界 readiness 或最短真实新 session 派单证据,才判定为可用;单个业务任务失败必须先按 typed reason 判断,不能直接宣告 Artificer 不可用;
|
||||
- Artificer 禁止递归修复自身:
|
||||
- 影响派单、AipodSpec、provider/model、credential 投影、session/workspace、Runner、AgentRun runtime 或其 CI/CD 可用性的故障,调查与实现必须交给原生子代理;
|
||||
- Artificer 只能在修复自动上线后作为被测对象,执行最短 canary、原 session 续跑或业务验收;
|
||||
- Artificer 只能在修复自动上线后作为被测对象,执行最短新 session canary 或业务验收;
|
||||
- 用户只说“子代理”“并行代理”或“派代理”时,不构成原生子代理例外,仍必须使用 Artificer;
|
||||
- 主代理不得因为方便、速度、空闲并发槽、已有原生 worktree、历史习惯或预计任务较短而自行降级到原生子代理;管理性、决策性工作由主代理直接完成,不构成原生子代理例外;
|
||||
- Artificer 已被证明确实不可用时,先创建独立 issue 和泛化问题域 MDTODO,再派一个原生子代理修复 Artificer;只有与故障修复解耦且用户明确要求继续的紧急业务任务,才允许临时使用原生子代理,并必须在 Artificer 恢复后交接;不得把临时 fallback 固化为长期调度入口;
|
||||
@@ -70,7 +78,7 @@ description: UniDesk 主代理调度子代理的必读技能。用户提到子
|
||||
- 子代理产出的审核默认由主代理直接完成:
|
||||
- 用户允许子代理实施、要求并行或启用多轮审查,不等于允许调度审核子代理;
|
||||
- 只有用户明确要求子代理审核、独立审核代理或多代理交叉审核时,才允许派发审核型子代理;
|
||||
- 主代理发现问题后,直接形成纠偏要求并由原执行 session 续跑或在原任务边界内修复,不新增审核代理。
|
||||
- 主代理发现问题后,直接形成纠偏要求;实现返工默认派给新的 task/session,不新增审核代理,也不把返工 send 给原执行 session。
|
||||
- 管理性、决策性文档由主代理直接完成,不把决策权或治理写入外包给子代理:
|
||||
- 主代理负责 `AGENTS.md`、skill 核心规则、长期 reference 规范、架构决策、主 issue anchor/closeout,以及 MDTODO FILE 的领域划分、ITEM 结构和状态治理;
|
||||
- 子代理可以在已明确的 issue、MDTODO ITEM 和验收边界内独立调研,并编写对应任务报告、验证记录、实现说明和证据附件;
|
||||
|
||||
@@ -60,7 +60,11 @@
|
||||
- 再使用 `$mdtodo-edit` 在泛化问题域 MDTODO 中创建或更新 ITEM/SUBITEM、登记子 issue 链接并标记进行中;
|
||||
- 只有上述写入成功后,才允许 AgentRun `create task`、`apply` 或 `dispatch`;
|
||||
- 缺少 MDTODO FILE、任务项、进行中状态或子 issue 链接时不得派单,派单后补写不算合规。
|
||||
- 派单后的协调状态直接复用 MDTODO 与 AgentRun task/run/command/session;普通续跑、重试和 closeout 不新增锁、租约、第二状态库、证明链或围栏。证据保持为有界摘要与稳定链接;只有直接保护业务资源、不可逆操作或明确损害风险的最小 guard 才属于例外。
|
||||
- 派单后的协调状态直接复用 MDTODO 与 AgentRun task/run/command/session;普通新 session 接续、重试和 closeout 不新增锁、租约、第二状态库、证明链或围栏。证据保持为有界摘要与稳定链接;只有直接保护业务资源、不可逆操作或明确损害风险的最小 guard 才属于例外。
|
||||
- 执行派单和 review 返工默认创建新 task/session:
|
||||
- 用户未在当前请求中明确要求继续、恢复或复用指定 session 时,不得用 `agentrun send`、return 或 turn 触发已有 session;
|
||||
- 新 session 从子 issue、MDTODO、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 中。
|
||||
- 子代理 prompt 只传子 issue 链接、模型要求和“不写父 issue 评论区”等极短边界;不要在 prompt 里复述长任务、历史结论、日志或完整证据。主代理通过观察子 issue 评论区跟踪进度。
|
||||
@@ -80,6 +84,11 @@
|
||||
## PR 工作流
|
||||
|
||||
- 子代理 PR 应小而可审:一个根因、一个模块边界、一个目标 issue;跨模块架构 PR 必须在 body 中写明为什么不是局部修补。
|
||||
- 主代理一旦确认整个 PR 的授权目标、架构方向、data flow 或 source of truth 错误,不得要求原 PR 继续修补:
|
||||
- PR 未合并时,先关闭 PR 并停止旧 writer;保留有界证据后,从最新目标分支创建新分支、新 worktree、新 task/session 和新 PR;
|
||||
- PR 已合并时,先创建只包含该 PR 精确反向变更的 revert PR;回滚合并并恢复目标分支后,再创建正确实现 PR;
|
||||
- 不在同一个 PR 中混合“回滚错误架构”和“实现新架构”,避免无法独立验证恢复基线;
|
||||
- 只有局部实现缺陷时才在原 PR 内修正,不能把方向性错误降级成普通 review comment。
|
||||
- 主代理本人 review:
|
||||
- 先看架构约束和倒退风险,再看实现细节;
|
||||
- 重点检查是否重新引入旧 authority、并行请求源、裸 API 绕过、隐藏默认、阈值硬编码或降低探针能力;
|
||||
@@ -109,7 +118,7 @@ Prompt 至少包含以下字段,按任务裁剪:
|
||||
4. 计算当前可安全并发窗口并同时派发全部已就绪的低耦合子任务;共享契约先派一个基线任务。
|
||||
- Artificer 的 `create task`、`apply` 和 `dispatch` 均只能发生在 MDTODO 登记之后。
|
||||
5. 轮询子代理结果:子 issue comment、PR、验证摘要、阻塞;任一任务终态或依赖变化后立即重新计算窗口并补派,不能退化为长期单任务等待。
|
||||
6. 对每个 PR 做架构 review、bounded diff 和必要本地验证;只有定点排障时单独执行 preflight,正常收口直接使用内建 readiness 的 guarded merge。
|
||||
6. 对每个 PR 做架构 review、bounded diff 和必要本地验证;方向错误时按“关闭或精确 revert 后重建”处理,只有局部实现缺陷才进入新 session 返工;只有定点排障时单独执行 preflight,正常收口直接使用内建 readiness 的 guarded merge。
|
||||
7. 按依赖顺序合并;合并后同步目标 worktree。
|
||||
8. 触发受控 CI/CD 或让明确授权的子代理上线;主代理核对 closeout。
|
||||
9. 用原入口复测;把剩余问题拆到新 issue 或追加既有 issue。
|
||||
|
||||
Reference in New Issue
Block a user