plugins/tools/skein/skills/skein-finish/SKILL.md
task 收尾闭环门 (被 skein-flow finish 委托, 或用户显式 "收尾/归档/闭环")。check 全绿后 (验收已 check 做完) 派 skein-finisher 只勘察改动+悬挂残留 → skein finish 闭环 (commit→merge→销 worktree→标记完成, 异步 spec) → 异步派 skein-specer 跑 sediment + 检测 .pending-fix 标记双保险派 auto-fix。finish 只收尾不做验收核对。未 finish 闭环(标记完成) = 未闭环, 禁宣告 Done。
npx skillsauth add lazygophers/ccplugin skein-finishInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
check 全绿后的收尾门。验收/完成度核对已在 check 阶段做完, finish 只做收尾 (勘察改动+悬挂 → 合并 → 销 worktree → 标记完成 → 异步 spec), 不重做验收。未 finish 闭环(标记完成) = 未闭环, 禁宣告 Done。 归档 = 保留期 (默认 7 天) 到期后 _autoclean 自动目录迁移, 非 finish 步、非 Done 门。
工作目录 (worktree 态自适应) — 本仓 worktree 隔离启用态: !
skein config --json 2>/dev/null | jq -r '.use_worktree' || echo unknown。true=task 有 worktree, finish 走 commit→merge→销 worktree;false/unknown=taskworktree=null原地, finish 仅 commit (无 merge/销 worktree 步)。真值以 task 的worktree字段为准 (null=原地)。skein finish脚本按此自适应, 下文"worktree"按此二读。auto_commit 态自适应 — 本仓 auto_commit: !
skein config --json 2>/dev/null | jq -r '.auto_commit' || echo unknown。true(默认)=skein finish自动git add -A+ commit 再 merge;false=finish 不自动 commit, worktree/原地有未提交改动即拒绝 finish 报错 (防 --force 强删丢失), 须先手动 commit 再 finish。auto_commit=false 时收尾勘察发现改动 → 提示用户手动提交。
| 动作 | 谁 | 产出 |
| --------------- | --------------------------------- | ------------------------------------------------ |
| 收尾勘察 | 派 skein-finisher (只读, 合并前清障) | diff 摘要 + 悬挂清单 (不做验收核对) |
| 清悬挂 + 生命周期 | main 同步跑 (不算实质工作) | TaskList/TaskStop + skein finish (commit→merge→销 worktree→标记完成) |
| sediment 沉淀 | 异步 fire-and-forget 派 skein-specer (finish 闭环后) | memorier 自主跑判定门 + skein-spec sediment 写盘 + reindex (main 不等回传, finish 已闭环) |
task id + 工作目录 (task 的 worktree 字段; null=原地仓库根) → 派 skein-finisher → 出口: diff 摘要 + 悬挂清单。只勘察改动+悬挂残留供干净合并, 不做验收/subtask 完成度核对 (那是 check 的职责, 到此已全绿)。悬挂残留 (调试码/临时文件) 由 main 清理后再合并。TaskList 查残留 subagent / 后台任务 → TaskStop 关闭。未关 = 未闭环, 禁 finish。skein finish <id> (commit→merge→销 worktree→标记完成, status=已完成)。finish 到此即闭环, 禁为 sediment 阻塞。归档不在此步 (保留期后自动)。skein-specer, main 不等回传即结束回合。细节见 references/sediment-protocol.md。.skein/spec/.pending-fix 标记 (Stop hook 回合结束若检出 spec 问题所写, 详见 skein-spec auto-fix 模式)。标记存在 → 异步 bg 派 skein-specer 跑 skein-spec maintain --apply 全自动修 (超预算降级 / stale·keywords重复·废弃归档 / 断链只报告), 与 sediment 同批 fire-and-forget (main 不等回传, 同路径双保险防 Stop hook 漏检)。标记不存在 → 跳过。完成判据 (勾满才算闭环):
TaskStop 关闭skein finish 成功 (commit→merge→销 worktree→标记完成).pending-fix 标记已检测 (有则 auto-fix bg 已派, 无则跳过)| 触发 | 一线修复 | 仍失败兜底 |
| --------------------------- | ------------------------------- | ----------------------------------------- |
| finisher 报悬挂残留 (调试码/临时文件) | main 清理后再合并 | 清不掉 → 停手, 报用户裁 |
| skein finish merge 冲突 | 读冲突文件手动解 → 重跑 finish | 解不开 → 停手, 保留 worktree, 报用户裁 (5 步纪律见 references/merge-conflict-resolution.md) |
| auto_commit=false 且有未提交改动 → finish 拒绝报错 | 提示用户手动 git commit 后重跑 finish | 用户不提交 → 停手, 禁 --force 强删 (会丢改动) |
| 悬挂 subagent TaskStop 关不掉 | 重试 TaskStop | 仍在 → 停手, 禁 finish (未闭环) |
🔒 铁律: 未 finish 闭环(标记完成) = 未闭环, 禁宣告 Done; sediment 异步 fire-and-forget 禁阻塞 finish。
| 场景 | 正确做法 (❌ 反面) |
| ---------------- | ------------------------------------------------ |
| 收尾勘察 | 派 skein-finisher 做勘察 (❌ main 亲跑收尾勘察) |
| finisher 职责 | finisher 只读勘察改动+悬挂, 不做验收核对 (验收归 check)、sediment 归 memorier (❌ finisher 核对 subtask 完成度 / 自己改码 / 跑 sediment) |
| sediment 时序 | finish 先闭环 (销 worktree + 标记完成), sediment 异步 fire-and-forget 在后 (❌ sediment 阻塞 finish / 为等 memorier 回传延后 skein finish) |
| sediment trace | memorier 回传到达后 main 补 output trace 供审阅 (❌ sediment 判定不输出 trace) |
| 宣告 Done | skein finish 标记完成后才宣告 Done (归档=保留期后自动迁移) (❌ 未 finish 闭环即宣告 Done) |
tools
UI/UX 与布局设计——做界面布局/结构/导航/组件/交互的设计决策。触发:做UI/UX/布局/排版/导航/组件/交互/栅格/响应式/图表选型/字体配对。按媒介路由 HTML/Web、原生 App(iOS/Android/桌面)、CLI、TUI。需后端动态系统不适用;配色/主题/色板走姊妹 skill design-color。
tools
主题与配色设计——做颜色搭配/调色板/主题/品牌色阶/暗模式的设计决策。触发:选配色/调色/主题/色板/品牌色/暗模式/对比度/色盲/UI风格。按媒介路由 HTML/Web(CSS变量)、原生App(平台token)、CLI(ANSI)、TUI(真彩/256/16降级)。保证可访问性(对比度/色盲安全)。需后端动态系统不适用;UI/UX 布局/组件/交互走姊妹 skill design-uiux。
tools
跨任意组件(plugin/skill/agent/command)的验证驱动优化循环纪律 skill。当用户要优化某个已有组件却无明确方向、或要防止改了反而更差(自评乐观偏差 / 多维同改归因失效 / 为凑分加废话膨胀)、或要把一套通用「评分→单变量改→改后验证严格更好才留否则回滚→触顶停」的纪律套到任意组件上时使用。管优化过程本身的纪律(validation gate / ratchet / 独立验证 / 触顶停),不评单组件深度(交 skill-dev),不查插件接线(交 plugin-dev)。仅手动 /optimize-any 触发。
data-ai
两层规则记忆 (基于 .skein/spec)。planning 时 recall 召回相关规则、task finish 后 sediment 沉淀学习 + prune 自动精简过期/重复/断链规则。core 常驻硬规 + recall 按需召回, 经判定门自动写盘 (不逐次问用户)。产出 .skein/spec 下 core/recall 规则文件 + index。另支持空仓 bootstrap 播种规则基线、记忆大面积失效 (大重构/换栈) 时 reconstruct 可逆归档后按项目类型分型重建、maintain 手动体检 (超预算/stale/断链/重复/废弃, --apply 自动修复)、auto-fix (Stop hook 写 .pending-fix 标记 → main 派 skein-specer bg 跑 maintain --apply 全自动修, 断链只报告)。