From cc2c4201d44e6f859bfb2d229b7bdba03f99edae Mon Sep 17 00:00:00 2001 From: Codex Date: Mon, 13 Jul 2026 09:45:58 +0200 Subject: [PATCH] docs: require subagent closeout before task end --- .agents/skills/unidesk-subagent/SKILL.md | 20 +++++++++++++++++++ .../cli-output-progressive-disclosure.md | 4 ++++ docs/MDTODO/mdtodo-tooling-reliability.md | 4 ++++ 3 files changed, 28 insertions(+) diff --git a/.agents/skills/unidesk-subagent/SKILL.md b/.agents/skills/unidesk-subagent/SKILL.md index c84e0bd9..2f0af7c3 100644 --- a/.agents/skills/unidesk-subagent/SKILL.md +++ b/.agents/skills/unidesk-subagent/SKILL.md @@ -64,6 +64,26 @@ description: UniDesk 主代理调度子代理的必读技能。用户提到子 - 子代理完成后必须留下可审查工件:PR、issue comment、commit、验证输出摘要、部署/observer/trace 证据或阻塞说明;主代理不能只凭口头结论合并。 - 子代理长时间无响应时,主代理按“问询 -> 只读检查 worktree/PR/issue -> 再窄问询”的顺序处理;多次问询仍无回复时,可以关闭旧子代理,并在原 worktree/原分支/原 issue 边界上重开新子代理接续。重开前不得删除或重置旧 worktree;新子代理必须先读取原 worktree 状态和既有 issue/PR/comment 链接,再继续最小下一步。 - 子代理完成任务后,主代理必须再给该子代理发送 post-task 收口要求;若主代理要求子代理纠偏或补验证,则等纠偏完成后再发 post-task。post-task 反馈由子代理按 `$post-task` 自行给出判断,主代理不负责反馈池去重;主代理只从子代理提好的反馈中挑选适合工程化的项转成正式 FEATURE/BUG issue,并优先派回提出该反馈的子代理执行。 +- 主代理结束条件: + - 当前用户任务只要派出过子代理: + - 主代理就必须保持任务进行中; + - 等待本轮全部子代理进入真实终态; + - 不得把 task 创建成功、dispatch 成功、`running`、已提交 commit 或已创建 PR 当作主代理可以结束的交付点。 + - 子代理返回后,主代理必须继续完成职责范围内的收尾: + - 完成必要的纠偏和 post-task; + - 审核 PR 并执行获授权的合并; + - 同步目标分支; + - 完成任务要求的自动交付、线上验证或原入口复测。 + - 主代理还必须完成治理收尾: + - 完成对应 issue closeout; + - 写入 MDTODO 任务报告并更新状态; + - 清理已吸收的 worktree 和分支; + - 确认没有本轮子代理遗留的必要收尾后,才可以向用户结束当前任务。 + - 不得以“异步派发”“非阻塞支线”或“后续再观察”为由提前结束。 + - 只有满足以下任一条件时才可停止等待: + - 用户明确取消或暂停; + - 出现需要用户新增授权且无法继续的外部阻塞。 + - 因取消、暂停或外部阻塞停止等待时,不得把任务报告为已完成。 ## 主线与支线隔离 diff --git a/docs/MDTODO/cli-output-progressive-disclosure.md b/docs/MDTODO/cli-output-progressive-disclosure.md index eda09bcf..b47ad14a 100644 --- a/docs/MDTODO/cli-output-progressive-disclosure.md +++ b/docs/MDTODO/cli-output-progressive-disclosure.md @@ -138,3 +138,7 @@ ### R9.1 按 [UniDesk #1905](https://github.com/pikasTech/unidesk/issues/1905) 清理冲突的 reference/skill/Next,并在 Artificer YAML prompt/resource bundle 内明确支持 stdin 时禁止一次性 /tmp 正文;补最小 render/行为测试后独立交付,当前只登记不执行,完成任务后将详细报告写入[任务报告](./details/cli-output-progressive-disclosure/R9.1_Task_Report.md)。 + +## R10 [in_progress] + +解决 UniDesk #1656(https://github.com/pikasTech/unidesk/issues/1656):由 Artificer 在独立 worktree 修复 cicd status --node 成功零输出,并统一 PaC consumer 的 registry applicability;GitOps-only 或 publisher-only 应显示 N/A 且由 PipelineRun、GitOps/Argo 与 runtime 证据闭环,只有 owning YAML 明确声明 image/registry 的 consumer 才把 registry missing 作为 blocker。保持默认输出有界、text/JSON/YAML 同构、缺失可选 YAML 事实降级为 warning,不新增严格合同或手工交付入口;补针对性测试和 unidesk-cicd 说明,提交独立 PR 且不自行合并,完成任务后将详细报告写入[任务报告](./details/cli-output-progressive-disclosure/R10_Task_Report.md)。 diff --git a/docs/MDTODO/mdtodo-tooling-reliability.md b/docs/MDTODO/mdtodo-tooling-reliability.md index 3d3f92cb..daa13217 100644 --- a/docs/MDTODO/mdtodo-tooling-reliability.md +++ b/docs/MDTODO/mdtodo-tooling-reliability.md @@ -18,3 +18,7 @@ ### R1.3 在独立 worktree 提交 PR,完成 Python/skill 校验和临时 fixture 前向验收;合并后更新本机受控 skill 安装并用本 MDTODO 的真实 Markdown 标题复测,完成任务后将详细报告写入[任务报告](./details/mdtodo-tooling-reliability/R1.3_Task_Report.md)。 + +## R2 [in_progress] + +解决 UniDesk #1913(https://github.com/pikasTech/unidesk/issues/1913):复用 agent_skills #7 与 PR #8 的 MDTODO 安全 stdin 实现,让主代理、Artificer resource bundle 和受控 host skill 投影默认使用安全标题输入,并有界披露 source/target freshness、warning 与精确修复入口;不得复制第二套 MDTODO 工具、增加版本门禁或覆盖宿主并行脏改,由 Artificer 在独立 worktree 和分支实现、测试并提交 PR,不自行合并,完成任务后将详细报告写入[任务报告](./details/mdtodo-tooling-reliability/R2_Task_Report.md)。