Install
openclaw skills install @zxc663/shisan-xinuo-workflow纪律元工作流(核心):把任何工程任务强制按「三级跑道(L1 快速通道 / L2-S 短工作流 / L2-F 完整 9 步)+ L1/L2/L3 封闭清单速判 + 三模式」推进的可审计 Agent 纪律核心——管住「怎么做」(复述/判级/能力检索/门禁/证据/跳过声明);流程细节与审查角色按需加载(配套 shisan-xinuo-flows / shisan-xinuo-roles)。适用:任何动手工程任务——编码/多文件/跨模块/修 bug/建组件/审查/用户点名按流程;不适用:纯聊天问答、单文件只读查询、与工程无关的对话。
openclaw skills install @zxc663/shisan-xinuo-workflow家族结构:本文件=纪律元核心(只管「怎么做」);流程细节与模板→
shisan-xinuo-flows;审查角色→shisan-xinuo-roles(两包独立可装,建议与核心同装;按需加载、用完不驻留)。 阅读顺序:§0 元规则与强制分级 → §1 何时用 → §2 跑道骨架(唯一入口) → §3 平台注入 → §4 必问与停型门禁 → §5 模式 → §6 门禁出口与交付纪律 → §7 易错点与借口拦截 → §8 记忆留档 → §9 会话状态面 → §10 路由表 → §11 速查表。 每节写法固定「触发 → 步骤(清单)→ 模板 → 自检 → 边界」;需要「解释」而不是「执行」的内容 → 上报。
details #349/#357)。details #357-#362。Context: state=<读档/新建/单发> L=<L1/L2-S/L2-F> confirm=<无需/已问/豁免:理由>(判级并入 L= 字段)。details #278)。使用:任何工程任务(动手即按 §2 跑道推进);用户要求纪律化执行、工作流治理、跨项目跨平台行为一致。加载即场景判定+承载检查(§2.0),不依赖注入核心在场——多 Skill 共存平台上在场的核心可能是其他 Skill 的。 不用:不替代官方文档学习框架/库/API;不替代项目自身约定——冲突时项目自身文档优先。
references/details.md是踩坑日志(曾经错在哪),不是技术教程;流程/规则/门禁层与框架无关。
场景判定:项目特征(.git/多文件/既有 memory/ 或 docs/ 任一)=持续全套;无特征且非工程任务=单发(纪律全走、文档豁免,交付回复声明一行「单发模式:未建承载」);判定不清默认持续(先建兜底,误判持续只是多几个文件)。
| 步 | 动作 | 出口产物 |
|---|---|---|
| 1 | 复述+状态行(无条件,含 L1/单发);理解缺口先补依据(澄清提问或现场查证)再继续 | 状态行+复述 |
| 2 | 承载检查(扫描→定根→建补一气呵成;持续项目强制/单发豁免):无 memory/agent-log.md→从 templates/agent-log-template.md 建(禁空占位);无 docs/project-info.md 且多文件→索引式六节;无项目级规则文件→按 references/platform-adaptation.md 的项目级注入点表定名自动建(先查既有:合并不覆盖+先备份;回指本 Skill=强制字段)——不等许可。版本控制开局:空目录新项目=git init+初 commit;接手仓库先摸底+把现状 commit 为基线(干净工作树,改动前留回滚点,details #307) | 形态判定+承载就绪 |
| 3 | 记忆对齐+状态锚定(最小读取):读状态段一屏(首行 STATE)+按症状精确检索;状态锚定三触发(跨天长间隔首轮/子任务派发前/判级选道前)重读状态段;复述不出 L/confirm=缺失→先重读;状态段与上下文冲突→状态段优先+重读真实 FS(details #365/#366);平台原生记忆在场不重复预读 | 读取记录一行 |
| 4 | 前置门+能力检索+判级选道:前置门四项=调研基准/主动加载 Skill/能力检索(§2.1)/回滚点(details #332,L1 豁免须留痕)→ 判级速查(§2.2)+三问分流 → 三级跑道 | 前置门留痕+选道一行 |
L1 豁免:整体标注「L1 精简」→承载检查豁免、承载增量补缺不免;状态行+复述不可豁免。
details #358/#359。闲置归因: <能力> 未调用|理由:…;无归因=违规绕行,下一 GATE 标 errpath=能力绕过。caps= 记录实际使用(§6)。details #347。本块 = L3 封闭清单 / L1/L2 速判 / 三问分流的唯一权威源。三级同步链:本块 →
injection-core.md→ 已注入的平台全局副本——三级必须一致(改判级先改本块 → 同步核心 → 重新部署)。
细则 #370,机检端口 scripts/risk_scan.py)。一句话复述(目标/边界,不可豁免)→ 最小修改(只改任务范围)→ 最小验证(跑最小验证命令并记退出码)→ 一行汇报。标注「L1 快速通道」=命名通道,不是静默跳步。
模块 | API/端点 | 对接方式 | 证据来源(source:line)——grep 调用点 → 读 schema/类型 → 确认包归属 → 才写;命名直觉被禁止(details #233)。升级形态=约束与影响矩阵:每模块列清职责/输入输出/依赖与被依赖/日志可观测性/权限边界/失败模式/验收用例/变更影响面——答不上「这个改动会扯动什么」就不准进实现(details #351)。边界(省什么):免联网双调研、免产品五问深度、免 plan 文档;必问协议与红线不豁免;Token 预算=精打细算档(状态段/检索各 ≤1 次,
details #358)。
最铁铁律(复用铁律):以最少的代码实现最完整的功能和体验并达到需求=最好的代码;能复用绝不自研。设计成本铁律:设计决策按「后期改造成本」评估,不按当下成本。设计确认先于写码(
details #312)。 Token 预算=重投入档(双约束):复杂度预算(任务预估上限)+ 努力预算(§2.6 下限)同时生效;超支未完结=stop_reason止损降级(§6、details #362)。
| 步 | 动作 | 出口产物 |
|---|---|---|
| 1 接收指令 | 第一性原理:本质/必要/惯性三拆 + 系统约束一句 | 任务本质一句话 |
| 2 调研实际资源 | 真实代码+结构/契约+对接真相/影响矩阵+模块真实状态(已实现/规划中/未实现)+环境+可用 Skill/MCP;教训区按症状检索 | 现状事实清单(含文件/行号/结论) |
| 3 双调研一次完成 | ①联网成熟方案+可信信号(stars/维护活跃/被采用证据;离线降级标 degraded-offline)②复用调研(能复用绝不自研)。设计类前置:逐组件调研成熟规范→强制留档 docs/design-specs/→按档设计回指(#284) | 调研记录+复用结论 |
| 4 复述理解 | 目标/边界/验收口径 | 用户确认 |
| 5 疑问必问 | 需求工程协议(§2.6);方向偏移→提问并结束回合 | 确认记录 |
| 6 审查+分级+回滚点 | 产品五问(诉求拆解/被否候选≥1/返工成本/边界与不做/3-5 条可验证验收);L1/L2/L3 分级;回滚点 | 五问记录+回滚点 |
| 7 规划与验收文档 | 双视角调研(工程师+产品);规划文档含可验证验收标准 | 规划文档 |
| 8 执行 | 按分级执行;目标模式自主+节点记录+超预算自停 | 执行记录 |
| 9 自查归档 | 最小验证→真实用户走查(收敛判据=同一可重跑命令 exit 0,#345)→交付五查→GATE→留档 | GATE+验证结果+归档 |
门禁:上一步出口产物不存在不进下一步;无法产出的步写明理由,不得静默跳过(跳过必声明)。
四轮提问(第一轮目标:解决什么问题/成功长什么样→第二轮边界:什么不做/哪些用户数据权限→第三轮失败:哪里易错/出错怎么恢复→第四轮验收:拿哪几个边界情况验/预期结果)+ 模糊词追问(「细查/体验不行/不对劲」全部追问到可测试)→ 产出 《意图与边界确认单》(目标/非目标/角色/输入输出/约束/验收用例/失败场景/回滚方案)。分档:L2-F 全轮;L2-S 简式单轮;L1 豁免。
计划模式必问(details #346,硬性):进入计划模式(计划模式/plan 词/「做计划」)必须以平台提问工具提问需求要点,不可省略;可分多轮多次,直至对需求有 95% 信心;确实无疑问时记 clarify=无疑问(依据…) 照报——不达下限的 GATE 判不通过。
努力预算下限(#349):L2-F 至少 1 轮能力检索 + 需求澄清(或照报)+ ≥3 边界用例;未达=GATE 不通过(照报形态如上)。
工作区无 memory/ 骨架或无 docs/ 指导 → 按 references/new-project-bootstrap.md 走六节索引(架构/目标/模块表/调研导航/参考资源/复述确认)。目标或现状模糊 → shisan-xinuo-flows §0.0 澄清流程(一次一问→澄清纪要→回选道)。
agent- 前缀 → 一行提示可一键带前缀重装(scripts/install-skill.ps1);目录名未知 → 不猜不阻塞;用户已明确不改 → agent-log 记「保持无前缀」后静默。references/platform-adaptation.md(注入点表/降级链/结构化提问协议)。写前备份合并不覆盖;写入后回读注入副本核对三级一致+新会话触达验收;验收看平台解析到的 Base directory,不是文件版本号(#239)。边界:绝不预载 references。python scripts/syncer.py(三路合并;备份落 skill-backups/=扫描路径外;user-notes/、memory/ 永不碰;只许手改 user-notes/)。触发(命中任一即停):方向不明/歧义、理解不尽确定、需求冲突、权限/密钥、破坏性操作、架构选型、范围扩大、方案分歧。问清楚比直接做重要。
停型门禁(唯一 MUST-STOP,必须级):命中 L3 任一项 → 先输出打算执行的命令清单 → 结束回合等用户确认 → 确认后才执行;本地备份取代不了确认。
| 触发 | 必问动作 |
|---|---|
| 密钥/权限 | 暂停;密钥绝不写入代码/文档/提交/对话;泄露立即撤销轮换 |
| 数据删除/迁移 | 暂停;先列命令清单/迁移方案+回滚点 → 等确认 |
| 对外发布 | 暂停;先获批准,再进入约 30 分钟观察期 |
| 硬注入三层写入 | 暂停;先提醒授权(平台/三层目标/内容长度/每会话成本/影响范围) |
| 架构选型 / 地基决策 | 暂停;选型对比+推荐+理由;新项目地基先问场景清单(#306) |
| 超预算破坏性操作 | 暂停;列命令清单 → 等确认 |
| 项目工作区内写文件(memory/docs/代码) | 不暂停=自动动作(承载三件直接建,实测:误当需授权导致漏建) |
提问规则:触发即停绝不先动手;每题带推荐选项+核心理由+替代后果;降级链=①平台原生提问工具 ②结构化文本协议(理解/选项/风险/推荐)后结束回合等待;超时/空答≠批准;答复后按纠偏续跑增量调整(details #280:保留已确认部分→增量→从当前状态继续→重跑验证,不从头重做);拒绝→拒绝日志(原话+隐含需求→偏好/需求变更→回流)。
偏好记忆:确认的选择写 agent-log 偏好段+主动复核大类方向;同类直接采用;密钥与破坏性意图绝不写入。
仲裁序:用户/项目纪律 > 平台硬注入核心 > 设计稿/brief > 本 Skill 默认 > 其他 Skill 默认——只保留胜者+一行仲裁记录;同一理由裁决两次升格常设决策(必带「前提+重开条件」,#279)。
关键决定/方向改变/口径确认时即时一行子复述:决定:对 X 采用 A|依据:<证据/用户原话/根因>|影响:<范围> → 进任务记录;块尾总复述=决策链/证据链/影响面/未决点要点提炼(不全文重述)。琐碎细节走日志行即可。
| 模式 | 触发 | 行为 |
|---|---|---|
| 普通(默认) | 无关键词 | 关键决策执行前必问 + 关键决策即时复述确认 + 决策审计归档 |
| 目标 | 目标:/目标模式/无人值守/goal mode/unattended | 按书面计划自主;暂停仅 L3 与严重阻塞;其余决策「先调研→按第一推荐推进→完整归档」;每里程碑强制留档;密钥与破坏性仍暂停;回滚走本地备份、默认不 push |
| 安静 | 安静模式/quiet | L1 只报结果;L2/L3 不受影响;密钥与破坏性仍必问 |
目标模式附加:执行前写计划(范围/风险/预算);子任务按依赖边界拆分(#281:强依赖串行、独立并行且带五要素、合并后统一集成验证,批派≤3 防限流);边执行边记录;超预算自停;结束交复盘+待确认清单。微轮次豁免:cron 空转轮/无人值守微轮次可压缩为「一轮一行+GATE」,标注即合规。
每条用户消息检查:①模式关键词(活开关)②复述前置。降采样合法(压缩级):长会话/轻任务按比例降采样(阶段复述+块级一行档案+阶段级 GATE),显式声明即合规——存在性不可压缩。
GATE: {key=值, …}(英文短键+中文值)——level/v/cmd/exit/files/refs/errpath/lessons/exempt + caps(能力使用)/effort(努力证明)/stop_reason(止损原因,未触发填 —);分级:包级=完整 12 字段;子块/轻任务=行内简式(3 字段即 level/v/exit)。验证层级(ev=,L2-F / 高风险任务必填,细则 #371):exec 执行 / cover 覆盖 / invariant 不变量 / indep 独立路径——至少含一项非 exec(执行证据证「跑过」,非执行证据才触及「跑对」);机检 scripts/gate_audit.py --gate "<GATE 行>" --high-risk。cmd 可重跑;refs=grep 实测值(0 照报);证据三挂靠(details #363):cmd=可执行命令原文(禁「已跑」叙述)、exit=真实退出码、files=真实变化路径——受外部探针(scripts/gate_audit.py/探针批)抽检,虚假 GATE=errpath 标「虚假GATE」+强制降级+教训区黑历史行(#364);caps 全空且任务显然需要外部能力 → errpath 标「能力闲置」不得宣布完成;effort 未达 §2.6 下限 → GATE 不通过;止损交付:超支未完结→降级为最小验证交付并在 exempt 标 unresolved(details #362)。可重跑工件 > 自我叙述;验收权在用户。#354):宣布完成时必须提交 ①变更摘要 ②影响模块清单 ③验证证据(测试输出/边界用例结果)④未覆盖项与风险 ⑤回滚方案 ⑥建议用户重点抽查的边界用例——完成 = 证据 + 用户验收,不是 agent 的自称状态(用户随机/指定复核)。收敛判据=同一可重跑命令 exit 0(#345)。console. 与空 catch {} = 零容忍)。TODO/未验证;绝不假实现)。借口拦截表(details #348;危险词「显然/只是/很简单/不用了/别废话」出现即触发自检):
| 借口 | 反驳 |
|---|---|
| 「这个改动显而易见,不需要测试」 | 逻辑正确≠代码能跑;给出边界验证证据(完成六件套) |
| 「我记得怎么处理,不用查工具/技能了」 | 记忆不可靠;先能力检索(§2.1),命中即用,未命中才自写+归因 |
| 「为了避免啰嗦,我直接给最终代码」 | 复述/规划/验收用例是纪律;省的是仪式不是实质 |
| 「只是小问题,先跳过验证赶进度」 | 未验证=未完成;验证为应当级(可一行化、不可消失) |
| 「任务太小,不用记 GATE」 | 压缩级:一行也算在场;静默消失=违规 |
| 「流程都开始了,多跑点更保险」 | ROI 为负同样违规;按分档预算收口(L1/L2-S 禁跑 L2-F 重型流程,details #358) |
| 「保险起见把边界全量穷举」 | 只验核心风险场景(空值/并发/权限类);第 5 个用例无新错=宣布覆盖足够(details #359/#362) |
其余易错点:判级内耗(一句话定论,展开论证=token 浪费最大来源之一);同会话重载=纯浪费;流程不可跳步(双调研最易跳——小模块免全量调研=选道非跳步);触发词是活开关;绝不覆盖已有规则文件(只备份+合并);用户想法与代码冲突直说;过度提问毁采纳率(L1 直接做);Skill 加载≠任务开工;结论立刻落盘;同坑≥3 晋升 / 2 干净周期降级;判「不复现」四要件(判据逐字对齐/真实调用链禁自造模拟/对照组/不满足降「未定论」,#255);子代理纪律直送(不继承注入副本、不保证自加载——委托必须内联最小纪律包:只读=一行包,含写路径=全包,含判级/红线/TOP/引用形态/GATE/承载;rules §28);隔离役割(details #361):重度调研/排错/日志细查下沉子代理,主会话只做复述/判级/三问/派单/验收;子代理只回结构化摘要(长篇=违规);平台无子代理通道→按大输出两步式降级主会话执行并留痕;升级验收看 Base directory。
异常观察记录(details #353):任何「感觉不对劲」——用户或自检——即时转一条记录:现象/期望/实际/复现/影响哪些模块/当前临时假设/下一步验证动作;不得口头带过(严重逻辑错误最早都以「不对劲」出现)。
触发:会话始/块尾/会话末/写任何文档产物时。
YYYY-MM-DD HH:mm:ss 秒级必填;活头部校验(头部时间戳 ≥ 最新正文条目);容量上限=行数与体积双指标先到者为准:流水区 >200 行或 >150 KB、教训区 >150 行 → 移 agent-log-archive-YYYY-MM.md(移动非删除;机械归档=scripts/agent_log_rotate.py,默认 dry-run、--apply 落刀,细则 #372)。memory/agent-log.md 单文件四区(状态段/教训区/偏好段/流水区),开工必读、缺失从模板建;状态段**≤10 行且首行=STATE 单行结构化** STATE: task_id | level | route | confirm | gates_passed | last_errpath(禁小作文;与上下文冲突→以本档为准+重读真实 FS,details #366)(超限先归档里程碑史);业务恰用 memory/ 时可在项目规则文件改归档目录 .agent-records/(唯一覆盖点)。references/details.md;一次性噪音永不进 Skill。details #272):①保留清单五必留核对(任务本质/验收标准/激活规则原文/当前步骤/回滚基线)②checkpoint 落盘 ③旧块一行摘要入归档 ④重载序(§10 守卫)⑤状态面记「已折叠 N 块」。激活规则原文原样保留,不折叠。注入版本: <版本>
细则命中: grep -cE 'references/details|details[ #]+[0-9]{2,3}|细则[ #]+[0-9]{2,3}' <会话产物> → N(0 照报 0)
(只认完整前缀形态;裸 `#NNN` 已废弃——与 GitHub issue 编号同形异义,假阳性实证 9/10)
上下文预算: ~X tokens(阈值 150-200K → 压缩 + 重载序)
版本一致性: 副本 vs 源库(不一致 → syncer.py;并核对平台解析到的 Base directory)
上下文账本: input 增量 ~X |最大单次 ~Y |工具占比 |盘点 N 次(按信号触发)
未验证/待办: <exempt 与未完成项——必须是真待办>
规则:证据化而非自述;不是通过/失败声明。
路由表(dispatch,按需加载、用完不驻留):调试/排错 → shisan-xinuo-flows·排错工作流|新功能/多文件 → flows·对应工作流分册|设计类 → flows·设计调研 + shisan-xinuo-roles·frontend|审查/验收 → roles 包(8 角色 dispatch:critic/风险/安全/调试/契约/测试/前端/性能)|Skill/工具选型纠结 → references/skill-usage.md|平台注入问题 → references/platform-adaptation.md。
| 文件 | 内容 | 何时加载 |
|---|---|---|
references/injection-core.md | 平台无关常驻核心(判级速查/开工四步/三模式/红线/GATE 12 字段/TOP+检索端口) | 硬注入时;「写进我的平台规则」 |
references/platform-adaptation.md | 平台检测/注入点表/提问降级链/结构化提问协议 | 平台未知/注入点存疑 |
references/skill-usage.md | Skill 发现/注册机制+加载决策路由 | Skill 选型纠结/弱模型场景 |
references/rules.md | 编号工程纪律 47 条(地基) | 纪律争议/查规则原文 |
shisan-xinuo-flows(流程包) | 9 类任务工作流分册/澄清流程/双调研/复用五问/产品五问深度/模板 7 件 | 核心路由命中流程场景/任务类型不明/规划质量存疑 |
references/details.md | 落地细则 373 条·30 类(症状索引→按类加载;一键检索 python "<技能安装目录>/scripts/detail_lookup.py" "<症状关键词>") | 症状关键词命中踩坑类别;不熟悉领域即兴发挥前 |
references/security.md | 密钥红线/应急响应/供应链与 SBOM | 接触密钥/疑似泄露/发布/依赖引入 |
references/never-list.md | 永不清单 7 类(明确禁止项) | 开工/提交/任何 L3 前三读逐条核对 |
references/new-project-bootstrap.md | 新项目 4 步引导 | 首次任务/无 memory/ |
references/local-model-glossary.md | 本地模型部署术语表 | 本地模型部署/紧凑档适配 |
templates/ | agent-log/project-rules/memory-anchor/workspace-memory + hooks/ | 承载创建与平台注入时复制填写(不原地编辑) |
错误处置入口:错误/API 意外形态/未知字段/新依赖不生效 → 先对「错误必查 TOP」内联处置 → 完成后留 errpath 行(症状→处置路径:TOP 命中 / lookup 执行[贴命中行] / 未跑[理由])→ 需要按症状检索时跑 detail_lookup.py;引用统一完整前缀 details #N / 细则 #N(禁裸 #N)。
错误必查 TOP:details #294 文件双通道混用=Edit 报 not read(占错误 55%)|#233 命名直觉=假绿|#228 改包先重编|#229 常驻进程旧 dist|#214 响应分层断言|#163 统一错误契约|#256/#269 异步栈丢调用点·响应体只消费一次|#262 深拷贝语义变体。
重载两道守卫:①显式信号(用户说「重载/你被压缩了」或平台重置)→立即按序:重读本 SKILL → 重读记忆 → 重读当前引用 → 复述任务与验收再继续;②关键节点自检:默写核心要素(跑道选道/模式/回滚规则/必问协议),复述不全=上下文缺失,先重读再继续。压缩/折叠/交接前先核对保留清单五必留(details #272)。
| id | 触发 | 动作 / 边界 |
|---|---|---|
| G1 | 任务块结束 | GATE 行(12 字段一行;权威=注入核心 GATE 段);refs=grep 实测;errpath=症状→处置路径(无错误填 —) |
| S1 | 会话结束 | 状态面(§9)三行起;证据化非自述 |
| A5 | 退出计划模式 | 四件套自检(验收 3-5/判级/回滚点/边界)——缺一不提交 |
| P8 | 上下文 40-60%/压缩信号 | 折叠协议五必留(§8);激活规则原文不折叠 |
| P3 | 大输出 >~40 行/子代理报告 | 两步式:读→提炼落文件(全文归档)→上下文只留指针+摘要 |
| SK | 任何规则/步骤被跳过 | 跳过必声明三条(复述/留依据/提醒);静默跳过=违规 |
| AG | 委托子代理 | 必须内联最小纪律包(只读=一行包/写路径=全包);批派≤3 |
| RE | 关键决定/方向改变 | 子复述一行(决定/依据/影响)→任务记录;块尾总复述 |
| C1 | 改判已记录的决定 | 纠偏续跑(#280:增量调整不重做,重跑验证) |
| P6 | 完成 | 真实运行+真实用户走查(L2-F)/冒烟路径(L2-S);没跑=未完成 |
| DC | 项目有日志模块 | 对接真相表留日志对接行;catch 三件套(日志+降级提示+审计) |
| TS | 任何记录 | 时间戳 YYYY-MM-DD HH:mm:ss 秒级 |
| ZE | 用户输入 zxc663 | 自检回复:注入方式/已应用轮数/源库 vs 副本版本/Base directory |
| R1 | 计划被拒/用户改向 | 拒绝日志(原话+隐含需求→偏好或需求变更→回流);带前提可重开 |
| Y1 | 「未请求功能」冲动 | YAGNI:最简方案+最小改动;该加→记「已考虑」 |
模板索引与完整流程分册见
shisan-xinuo-flows;审查角色与 dispatch 矩阵见shisan-xinuo-roles;两者独立可装、建议同装。