ワンクリックで
task-finish
用户在 task worktree 中要求“收尾”、完成任务、自动收尾,或要求自动完成已验证 change 的归档、提交、集成、推送和本地清理时使用。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
用户在 task worktree 中要求“收尾”、完成任务、自动收尾,或要求自动完成已验证 change 的归档、提交、集成、推送和本地清理时使用。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
在 Buildr workspace 中安装、更新或同步 Buildr、更新或同步 workspace、诊断和维护组织工作资产,用户要求采用内部流程、调整工作方式、修改或替换 Skill 行为,或要求复盘任务、总结可沉淀的 Skill/Rule 时使用;覆盖 Buildr CLI 与产品入口 Skill、组织(Organization/Root)、项目(Project)、服务(Service)、组件(Components)、规则(Rules)、技能(Skills)、命令(Commands)、内置能力(Builtins)、工作能力适配和 Agent runtime 渲染。
用户要求采用内部流程、调整工作方式、修改默认 Skill 行为、创建或替换专业 Skill、卸载可能被编排的 Skill,或 Agent 准备改变 provides、requires、capability contract、binding 及跨 Skill 协作边界时使用;负责从自然语言意图完成影响分析、候选开发、组合验证、安全激活和 runtime 同步,不要求用户理解 capability 术语。
用户表达提交、推送、拉取、pull、合并、merge、rebase、checkout、switch、reset、cherry-pick、revert、stash、发布、删除分支等单项 Git 意图,或 Git 操作存在授权、提交范围、amend、远端改写、工作区转换、分支删除等歧义时使用。用于统一 Git 协作约定和安全默认行为,而不是完整任务结束编排。
创建、修改、同步或归档 OpenSpec change,且需要建立契约基线、检查 active change 冲突、陈旧 delta 或同步结果时使用。此 Skill 是 Buildr 的 OpenSpec sidebar,不修改外部 openspec-* Skills。
非简单 Workspace 任务开始探索、设计、诊断、实现或验证时,持续收集可能影响长期 Rule、Skill、capability Contract 或产品能力的轻量信号;用户要求复盘或沉淀,或 Task Finish 触发 finalize 时也使用。负责 observation、资格审查、人工决定和新任务交接,不保存完整轨迹。
为复杂、长期、跨批次、跨 change、跨服务或团队,或存在交叉依赖和多次用户判断的任务创建、更新和检查只读 HTML 任务看板;管理完整任务、change 关联、交付批次和依赖任务池。用户明确要求任务可视化、任务看板、整体进度、任务全景、长期跟踪,或沿用旧称“任务驾驶舱”时也使用。简单短时任务不机械创建。
| name | task-finish |
| description | 用户在 task worktree 中要求“收尾”、完成任务、自动收尾,或要求自动完成已验证 change 的归档、提交、集成、推送和本地清理时使用。 |
本 Skill 是 buildr.task-finish/v1 的默认编排 provider。它组合 OpenSpec、已绑定的 buildr.task-verification/v2、buildr.git-task-integration/v1 和 buildr.task-worktree-lifecycle/v2 providers,把已完成任务安全推进到目标分支已推送、本地任务环境已按 provider 契约处理的状态。它拥有“收尾”意图、阶段顺序和失败停止条件,不复制验证、Git 集成或 task environment lifecycle provider 的 policy。
用户在当前轮次明确说“收尾”、完成任务或自动收尾,表示一次性授权以下常规动作:
该授权只在当前轮次有效。执行验证或 Git 写操作前,必须向用户一次性说明任务/change、提交范围、commit message、目标分支、远端、三个 required selected provider identities、provider 声明的实际验证/集成/清理策略和本地清理范围;上下文清楚时不再逐项等待确认。
“收尾”不授权 force push、创建或推送远端任务分支、删除远端任务分支、丢弃改动、改写已推送或共享分支历史,也不授权替用户解决需要业务或语义判断的冲突。merge commit 是否属于常规动作由 selected task-integration contract、provider policy 和执行前披露决定,不由本 Skill 全局禁止。出现固定排除项时停止并请求对具体动作的明确授权或决策。
在任何归档、提交、merge、push 或 cleanup 前确认:
git rev-parse --show-toplevel、git worktree list --porcelain 和当前分支解析真实仓库、Buildr workspace root、canonical task worktree 与本地任务分支。buildr.task-verification/v2、buildr.git-task-integration/v1 与 buildr.task-worktree-lifecycle/v2 均已解析为 ready;任一 required dependency 为 blocked 时,只报告 reason、candidates 和 nextActions,不继续 provider-dependent action。openspec status --change <id> --json 和 apply instructions 确认 artifacts、tasks 与 action context;未完成、blocked 或 workspace planning context 不得自动归档。requiredAssurance。只有 status: passed、level == requiredAssurance、reusable: true,且 candidateIdentity 与当前 implementationCandidateIdentity 一致时,才把它作为本次收尾证据;Task Finish 不自行选测试。普通收尾通常为 affected,发布、高风险或显式完整收尾为 candidate。inspect 并复用,taskVerificationExecuteCalls: 0、candidateExecutorCalls: 0;summary verifier 或 provider inspection 不得描述为重新执行验证。requiredAssurance 的 evidence、证据不可读/不可复用,或 implementation content 已改变时,才调用 selected task-verification provider execute 执行该保证;失败或仍为 incomplete 时停止后续集成、推送和清理。- [ ] 精确变为 - [x],仅在 Project policy 明确定义且当前会话可证明 source identity、target identity、change/task identity、精确 marker transition 及无其他 diff 时,记录 closeout-metadata-only / verification-result-metadata-only。该 transition evidence 标记为 session-only;原 Candidate evidence 继续绑定 source implementation identity。任务歧义、额外编辑、identity 不匹配或跨会话缺少证据时不得仅凭最终 diff 推断,按 implementation content 已改变处理。totalDurationMs、timingSource、最慢检查、失败项、跳过项和 reference。不得引用其他 run,也不得把并行 check duration 相加推算 wall-clock。evidenceRetention、cleanupAfter、cleanupStatus 和可用时的 cleanupReference。当前有效 Candidate evidence 在所有 consumer 使用完毕前不得清理。buildr.verification-timing/v1 时,继续使用 node test/verification/timing/verify-summary.mjs <summary-path> <product-root> candidate 做 fail-closed 专项核对;只有 summary status、run kind、source.repositoryRoot、source.productRoot、source.head 和 source.candidateFingerprint 与最终候选一致时,才标记 timingSource: verifier-reported。Changed 或 Focus summary 不能替代 Candidate。如果此前正式验证失败,收尾前必须确认 selected task-verification provider 在修复期间优先重跑失败项和受影响专项检查,并在候选重新稳定后完成一次新的 requiredAssurance。不得把仍在修复循环中的专项检查结果当作正式验证证据。
多个 change、多个 worktree、多个远端或目标分支无法消歧时停止,不替用户选择。
当前任务包含已完成的 active OpenSpec change 时:
openspec-* Skill 源来加入收尾逻辑。当前任务语义完成、canonical specs 同步结果和 contract sidebar 结论可确认、候选 tree 与最终验证证据有效后,且 cleanup 尚未使来源证据消失时:
buildr.task-asset-review/v2 selected provider 的 finalize。Task Finish 只传递 Workspace root、task owner、当前 task/change identity 和最终证据引用,不汇总 observation 信号、不执行资格门禁、不判断最终应沉淀什么。no-observation 或 discarded 时继续正常收尾,不增加形式化复盘。awaiting-human 时,在 worktree cleanup 前等待用户明确 accept 或 reject。accept 只建立后续新 task-triage handoff,不改变原任务内容,也不构成 Rule、Skill、capability Contract 或产品实现授权。asset-maintenance 记录,也不决定 product follow-up 的 OpenSpec 内容。全部审查和去向政策属于 selected provider。当前任务包含已完成的 active OpenSpec change 时:
git diff --check。new blank line at EOF 时,才自动删除多余结尾空白行,使每个文件恰好以一个换行结束。git diff --check 和当前 planning root 的 OpenSpec strict validation。归档改变 delivery tree,但不自动改变 implementationCandidateIdentity。只运行归档直接影响的格式、OpenSpec 或项目专项检查;这些 closeout workflow checks 不得计作 task-verification execute 或 Candidate executor invocation。
deliveryTreeIdentity,例如 git rev-parse HEAD^{tree},以及集成前后的 tree/commit/ref evidence;Task Finish 同时保留已验证的 implementationCandidateIdentity。same-content:delivery tree 的内容与 implementation Candidate 相同。调用 selected provider inspect 并复用 evidence;不得启动验证 executor,两个 execute count 均为 0。closeout-metadata-only:差异完全来自当前 Task Finish 已执行且可归因的 OpenSpec sync/archive、归档格式规范或 Project 明确定义的 closeout-only artifacts。保留 implementation Candidate evidence,只运行 closeout workflow 已要求的 focused checks;不得调用 task-verification execute,两个 execute count均为 0。verification-result-metadata-only 是 closeout-metadata-only 的严格 subtype:只允许同一会话内刚成功的 Candidate 对应的唯一最终任务 checkbox 由 - [ ] 变为 - [x],并要求 source/target identity、change/task identity、精确 marker transition 与唯一 diff 证据。调用 provider inspect,两个 execute count 均为 0;最终报告必须明确 Candidate 只验证 source implementation identity,metadata transition 单独解释 target delivery identity。implementation-changed:rebase 冲突解决、生成资产更新、代码/配置/runtime 资产变化,或任何无法完全证明属于 closeout-only scope 的差异。原 evidence 失效,在集成完成前调用 selected provider execute 重新运行同一 requiredAssurance;Candidate 时 candidateExecutorCalls: 1,Affected 时保持 0,失败时停止尚未执行的 integrate、push 和 cleanup。closeout-metadata-only 时按 implementation-changed fail closed。verification-result-metadata-only 没有当前会话的完整 transition evidence 时也必须 fail closed。treeChanged: true 时,直接遵守 required Core workspace-transition invariant,并通过产品入口 Buildr Skill 执行具体 doctor、sync 询问和修复边界;不依赖 provider id。在验证证据仍有效且目标 workspace 满足 selected provider 的前置条件时,调用 task-integration provider 完成已披露的集成和推送计划,并核对其 result evidence。默认计划只推送已集成的目标分支,并记录任务分支未推送;不得因为任务分支存在、已提交或已合入而创建或推送其远端 ref。只有用户在当前轮次明确要求远端任务分支时,才可在披露分支、远端、目的和待推送提交后将其纳入计划。provider 报告冲突、远端状态变化、授权不足或写入失败时停止;不得由 Task Finish 改用另一套 Git policy 或扩大授权。
OpenSpec 和 task-integration 阶段成功后,把 integration/push evidence、当前工作区状态和本机入口信息交给 selected worktree-lifecycle provider。placement、retention、cleanup preconditions 和删除顺序由该 provider contract 与正文决定,本 Skill 不复制。
多仓 task environment 必须按 receipt 逐仓完成验证、提交、集成和 push evidence 核对;这些远端动作不是跨仓原子事务。任一仓库失败时停止 cleanup,报告已完成与未完成仓库并保留整个 environment。只有全部成员 checkout clean、已安全集成且没有 preview/CLI/runtime 依赖时,才按由内到外顺序清理 nested worktrees 与 root worktree。
如果健康的 Local App 或当前 buildr 入口仍依赖即将删除的 task worktree,Task Finish 必须先完成入口交接:在停止旧实例前读取用户级 instance.json,只接受通过其 secret 的 /api/v1/health 验证过的 loopback URL,并记录其中的 port;从已集成、仍保留的 checkout 重装开发 CLI 与 development launcher;停止旧实例后,使用 buildr app --port <recorded-port> --no-open 启动或复用新实例。只有新的健康实例仍监听该记录端口、command -v buildr 解析到保留 checkout,且静态资源或运行身份不再指向 task worktree 时,才允许删除 worktree。没有健康实例、实例不依赖 task worktree 或没有可验证端口时,不得虚构端口,按普通入口迁移继续。
如果 buildr app preview list --json 显示 preview,Task Finish 必须按 owner worktree 分类:owner 等于当前 task worktree 的健康 preview 必须先使用 buildr app preview stop <instance> 认证停止并确认不再健康;owner 属于其他 worktree 的 preview 必须保持运行,不得迁移、停止、清理或改写其端口和状态目录。当前任务 preview 无法停止或仍健康时停止 cleanup 并保留 worktree;其他任务 preview 不构成当前任务 cleanup 的阻塞条件。最终报告必须分别列出当前任务 preview 的停止结果与未触碰的并发 preview。
记录端口无法重启、被占用、健康检查失败或新入口仍指向 task worktree 时,禁止以随机端口或其他端口替代;停止 cleanup,保留 task worktree 与任务分支,报告记录端口、失败原因和恢复路径。Task Finish 仍要求:工作目录切换到主 workspace 或其他保留目录后再执行清理;不删除远端任务分支,除非用户另行明确授权;provider 必须返回 retained/removed 状态、入口迁移、Local App 迁移前后端口与健康结果,以及清理后仓库证据。provider 判断应保留时,将保留原因纳入最终报告,不把未清理描述为收尾失败。
集成与推送完成、最终验证摘要已捕获、资产审查和其他 evidence consumer 已结束后:
evidenceRetention: transient 时,请求 selected task-verification provider 使用其 cleanupReference 清理精确 run;Task Finish 不自行把该职责转交给 worktree-lifecycle provider。caller-managed 或 session-only 时不执行默认删除,按 provider 返回的 caller policy 或当前会话语义处理。cleanupStatus: cleaned,最终报告不得继续把已删除路径描述为可访问证据。cleanupStatus: retained、路径和原因;该失败不回滚已完成的 archive、integration 或 push。最终报告除交付、OpenSpec、提交/推送、doctor、active change 和 worktree 清理状态外,还必须基于已核对的 Candidate evidence 说明:implementationCandidateIdentity、deliveryTreeIdentity、transition class/subtype、provider operations、目标分支推送结果、任务分支未推送状态或其明确授权、taskVerificationExecuteCalls、candidateExecutorCalls、验证范围与状态、完整验证总耗时、timing source、最慢检查及其耗时、失败项、跳过项、closeout delta checks、evidence retention 和 cleanup status。存在 verification-result-metadata-only 时还要报告 source/target identity、change/task identity、marker transition 与 session-only retention,并明确 Candidate 未直接覆盖 target delivery tree。Buildr Product summary 包含预算时同时报告预算状态;summary 仍保留时报告绝对路径,已清理时报告摘要已捕获且 transient evidence 已删除,不得输出失效路径。不得只报告“测试通过”或只列各阶段耗时。
任一步骤失败时: