con un clic
task-finish
用户在 task worktree 中要求“收尾”、完成任务、自动收尾,或要求自动完成已验证 change 的归档、提交、集成、推送和本地清理时使用。
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
用户在 task worktree 中要求“收尾”、完成任务、自动收尾,或要求自动完成已验证 change 的归档、提交、集成、推送和本地清理时使用。
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional 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 已删除,不得输出失效路径。不得只报告“测试通过”或只列各阶段耗时。
任一步骤失败时: