plugins/tools/skein/skills/skein-check/SKILL.md
task check 阶段质量验证。exec 产物完成后、finish 前使用。派 skein-checker 跑 lint/type-check/tests/契约 + 一致性核查, 回传通过|失败|冲突报告。未过或检出冲突不放行 finish。验证与修复分离。
npx skillsauth add lazygophers/ccplugin skein-checkInstall 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.
exec 完成后、finish 前的质量门。验证与修复分离: skein-checker 只验证 (无写权), 失败交合适 agent (无则 skein-executor) 修。未过禁 finish。
禁动 design.md — design.md 写入归 planning (仅 planning 阶段 + check 失败回 planning 二次进入可写); exec / check / finish 阶段均禁动。check 检出方案性冲突 → 回 planning 改 design 后重派, 禁 check 阶段就地改 design。
工作目录 (worktree 态自适应) — 本仓 worktree 隔离启用态: !
skein config --json 2>/dev/null | jq -r '.use_worktree' || echo unknown。true=在 task worktree 内验证/修复;false/unknown=原地在仓库根。真值以 task 的worktree字段为准 (null=原地)。下文"task worktree"按此二读。
skein-checker (只读 + 跑命令, 回传 PASS/FAIL 报告)。skein-executor) 在该 task 工作目录 (worktree 或原地仓库根) 内定点改 (dispatch prompt 带执行纪律)。skein-checker: 传 Active task id + 工作目录 (task 的 worktree 字段; null=原地仓库根)。checker 分两步: ① checkpoint 核对 → ② 场景自适应内置 check, 回传报告。
skein prd read <id> --type=acceptance 取 prd ## 验收标准 (禁 dispatch prompt 传验收全文, 避免上下文漂移 + 省 token), 只验未勾 (- [ ]) 项; 已 - [x] 项视为上轮已过, 跳过不重复验。--check 验收 checklist (skein subtask list <id> 出各 subtask 验收项)。全过 → checkpoint 满足 (勾验收/标记完成归 step 2 判定回写)。这是 exec 不做、由 check 统一做的验收 (点1↔点3 对接: exec 只 done, check 才勾验收)。[工具失败: 未识别项目场景], 列已尝试。skein contract <id> (列出 planning 阶段锁进 task.json 的契约)skein-executor) 定点修复后重检。skein prd check <id> --type=acceptance --list "<验收项文本>" 回写勾选态持久化 (脚本写盘, 禁裸 Edit prd.md; 载体是 main 非 checker), 未过项保持 - [ ] 留待修复后重验。需反勾 (修复后回退) 用 skein prd uncheck。进行中 态) — check FAIL 或检出冲突, 禁改 task 状态 (依旧 进行中/S_ACTIVE, 不建新 task; 「回 planning」是思维回炉语义, 非状态机新枚举)。main 先回 planning 思维重审失败: 重新审视 checker 报告的失败原因 (lint/type/test/契约 fail / 一致性冲突), 用 AskUserQuestion 或 grill 与用户确认修复方向是否对 (是定点修一处 / 还是方向错了需重拆 / 还是契约本身要改), 禁跳过确认直接补 subtask 回 exec。确认方向后, 按错误性质分档补设计/工件, 再回 exec (--deps 挂失败源), 回 exec 重新 claim 派发。确认无误后才继续进入 exec 执行:
skein subtask add <tid> <fix-sid> --name "修复: <失败点>" --desc "<报错原文 / file:line>" --agent <合适> --deps <失败 subtask sid> (只改失败相关文件, 设计无需动)。--deps 挂对应源 subtask, 必要时同步更新契约)。直到全绿且零冲突才放行 — 未覆盖完所有冲突禁 finish。skein prd write/add 修 prd 目标/边界/验收 + skein contract <id> --add 补/改契约, 再据新设计 subtask add 重拆或补子任务。新方案经 grill/AskUserQuestion 确认无误, 才回 exec 执行 (禁未确认就补 subtask)。subtask add。新增修复 subtask depends_on 失败源 subtask (已 done) → 立即 ready, exec claim 即派; task 全程 进行中, 修复进度落在同 task 看板 DAG。skein-checker 复跑 (含一致性)。未过回 planning 重确认循环 (task 始终 进行中)。skein-flow 走 finish。完成判据 (放行 finish 前勾满):
--check 项全完成 (标记完成)skein contract 全覆盖, 无遗漏)- [x]| 触发 | 一线修复 | 仍失败兜底 |
| ------------------------ | -------------------------------------------- | --------------------------------------------------------------- |
| 孤立失败 (单点 lint/type/test/契约 fail) | 回 planning 重确认: main 重新 grill/AskUserQuestion 与用户敲定修复方向, 确认后同 task subtask add 1 个定点修复子任务 (--deps 失败源), task 保持 进行中, 回 exec 重新 claim 派发 | 反复不过 → 见下「≥3 轮」路径 |
| 一致性冲突 / 根因跨 subtask | 回 planning 重确认后, 同 task subtask add 多个修复子任务 (一冲突一 subtask), task 保持 进行中, 回 exec 逐条覆盖 | 冲突未全覆盖禁 finish, 逐条覆盖到零冲突才放行 |
| 修复子任务 ≥2 轮仍 FAIL (第 3 轮) | 停加子任务循环 → 按 references/root-cause-protocol.md 5 维根因复盘 | 带根因回 planning 重确认 (grill 方向) 定向重修; 根因超 exec (需求/设计缺陷) → 停手附根因报告转人工 |
🔒 铁律: 全绿且零冲突才放行 finish; check 失败走 step 3 回 planning 重确认。
| 场景 | 正确做法 (❌ 反面) |
| ---------------- | ------------------------------------------------------------------------------ |
| 跑验证 | 派 skein-checker (❌ main 亲跑 lint/test) |
| checker 报失败 | 交合适修复 agent 定点改 (❌ checker 自改码) |
| 放行 finish | 全绿 + 契约逐条 pass + 零冲突 (❌ 未全绿 / 只 lint 不验契约) |
| check 失败 | 走 step 3: grill 敲定方向 → 同 task subtask add, task 保持 进行中 (❌ 跳确认补 subtask / 改状态 / 另建 task) |
| 冲突处理 | 逐条 subtask add 覆盖到零冲突 (❌ 未覆盖完就 finish) |
| 已 - [x] 项 | 跳过不重验 (❌ 重复验证) |
| 通过的验收项 | 回写 - [x] (❌ 不回写致下轮重验) |
| 反复失败 | 第 3 轮走根因复盘 (❌ 无限重检) |
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 全自动修, 断链只报告)。