Y02 自建skill通用技术规范
C:/Users/xub/.workbuddy/spec/3.行政法规/范式/Y02_自建skill通用技术规范.md类别:技术规范(通用型 · 覆盖
V1.0.0_lihengbian_DIY_*全系列)
落位:~/.workbuddy/spec\3.行政法规\范式\Y02_自建skill通用技术规范.md
适用对象:凡 frontmatter 含agent_created: true的自建 skill,含由第三方 skill 依宪法 M2.2.3 转化而来者
效力:本规范为 DIY 系列 skill 升级/迭代/知识注入的唯一权威依据;未定位到本规范 → 拒绝升级(§十三「无规范拒绝升级」)
一、命名规约(宪法 M2.2.2 / M2.2.3)
| 项 | 规则 | 判定正则 |
|---|---|---|
| 目录名 | V<主>.<次>.<补>_lihengbian_DIY_<中文功能名> |
^V\d+\.\d+\.\d+_lihengbian_DIY_[\u4e00-\u9fa5]+$ |
| 版本段 | 新建一律 V1.0.0;升位按语义化(feature=次+1 / bugfix=补+1 / major=主+1) |
— |
| 品牌段 | 固定小写 lihengbian,禁 利衡辨 / Lihengbian 变体 |
— |
| 标识段 | 固定大写 DIY |
— |
| 功能段 | 必须采用中文题名(如「智能摘要」「技术标准排版助手」),不含空格、不含连字符;英文原名件/kebab-case 件/拼音件须先定中文题名再落目录,禁直接沿用英文原名或拼音 | ^V\d+\.\d+\.\d+_lihengbian_DIY_[\u4e00-\u9fa5]+$ |
name |
必须等于目录名 | name == basename(dir) |
二、frontmatter 必含字段
name / description / version / author / created / updated / agent_created: true / allowed-tools
- 自建来源补
based_on: <原 skill 名与来源版本>(第三方转化时必填)。 description句式:利衡辨_DIY_<中文功能名> V<版本> — <能力一句话>……触发词:……(用途前置、触发词收尾)。- 时间字段用
updated(YYYY-MM-DD)。
三、第三方 skill 转化五步(宪法 M2.2.3)
- meta 溯源:
_skillhub_meta.json置source: local-diy,新增origin_skillId/convertedAt/convertedBy: 利衡辨。 - 目录更名:
skill_<数字ID>或第三方原名 →V1.0.0_lihengbian_DIY_<中文功能名>(功能段改为中文题名,不含空格、不含连字符)。 - frontmatter 重写:按第二节执行,保留
based_on溯源。 - 双端同步:用户级
~/.workbuddy/skills/与工作区skills/同名同内容;旧目录mv进任务夹_backup_*/归档,禁止直接删除。 - 落规闭环:同步写入宪法、
MEMORY_CORE.md硬约束、MEMORY_REFERENCE.md§六执行细则;未落规即转化未完成。
正文(脚本 / references / assets / templates)一律不动——仅改身份层,能力零损失。
四、启动顺序(每次会话/任务启动,全域铁律)
- 读 MEMORY(拿规则):首步读
~/.workbuddy/MEMORY_CORE.md,未读不得动手。 - 跑
_tools代码(强制):凡 .docx/.xlsx 交付物命名与四件套验证,强制调用~/.workbuddy/_tools/(deliverable.py/check_deliverables.py),禁止手敲文件名。 - 查 README(看 API):动手前查
~/.workbuddy/README/<对象目录名>/README.md;无独立 README 时以 SKILL.md 为 API 权威。 - 查技术规范与 SOP(升级/建夹必过闸):升级/迭代/训练/知识注入前先读本范式;每个新任务先读
S01+S02,建「三字标题_YYYY-MM-DD_HHMM/产出/素材/」,产出落产出/。 - 收尾总结:任务结束在最终回复用约 200 字总结「当前进展 + 核心结论 + 遗留问题」三要素,并附 token 消耗统计块。
五、升级五步闭环(硬约束)
- 闭环链路:读 MEMORY → 跑 _tools → 查 README → 查技术规范与 SOP → 建任务夹(S02),缺一不可。
- 只按本规范修改:逐条对照本范式对齐,不重写整个 SKILL.md;不碰全域规则(MEMORY)与工具链(_tools/),除非其自身变化。
- 无技术规范,拒绝升级:定位不到本范式 → 立即停下、禁止动手改。
六、登记表与体检
- 登记表
~/.workbuddy/skills_registry.json由skill_upgrade.py唯一读写,禁止手工改。 - 登记/重建:
python ~/.workbuddy/scripts/skill_upgrade.py --build-registry(以磁盘为准全量替换,剔除幽灵条目)。 - 体检:
--audit(版本号 / 目录名 / registry 三方对齐 + 范式闸门)。 - 升版:
--skill <名> --type feature|bugfix|major --note "说明"。
重放闸口径(V2.0.0 · 2026-09-23 L1 修复)
判据真源:本段是
~/.workbuddy/scripts/skill_upgrade.py重放闸的唯一口径真源;脚本内REPLAY_POLICY_VERSION常量须与本段同步。改口径=改本段;脚本只实现、不自备标准(宪法第16条「闸门不自备标准」)。
一、问题定性
同一条升版命令在沙箱放行后可能被重放执行两次(先受限沙箱跑一次、再放行态跑第二次),第二次在第一次产物上再 bump 一级 ⇒ 版本连跳两级、产出「内容与前版无差异的空版本」。2026-09-23 第四次实测(lihengbian_DIY_供应链评价 V1.9.0 → V1.10.0 → V1.11.0)暴露初版闸门(口径 1.0.0:单相落痕 + 三判据)存在结构性盲区,根因三条:
| 编号 | 缺陷 | 后果 |
|---|---|---|
| D1 | 落痕后置:唯一落痕点在 upgrade() 最末(四件套之后) |
中断即零痕迹,journal 不可作唯一判据 |
| D2 | 判据收窄:要求 to_ver == 当前版本,且只考察最近一条同指纹记录 |
中断产生的中间态无从命中 |
| D3 | 兜底静默:registry.dir 失效时按 bare 名扫最高版目录静默续升 |
「registry 与实盘不一致」这一铁证被用来自愈,而非拦截 |
二、新口径(口径版本 2.0.0)
最高位原则:registry 与实盘不一致必须拦截,不得静默续升。 判据主源=文件系统自身的不一致(即使 journal 被清空,亦能独立拦下重放);journal 退为辅证。
① 双相落痕(根治 D1)
- 相位一 intent:任何写动作之前(shutil.copytree 之前)落 stage='intent',记 (skill, kind, note) 指纹与预期 to_ver,返回 rec_id(由 指纹 + 时间戳 派生)。
- 相位二 done:升版成功收尾时把同 rec_id 那条改为 stage='done'。
- 落痕函数以脚本 record_intent() / record_done() 为准;record_upgrade() 保留为「intent + 立即 done」的兼容包装(供 --resume-fourpiece 使用)。dry-run 不落痕。
② 一致性硬闸 LD-R1(判据主源)
resolve_skill_dir_ex() 在 registry.dir 缺失/不存在时按 bare 名兜底扫描,并回传 via_fallback=True。upgrade() 在解析目录之后、任何写动作之前执行本闸:
若 via_fallback 为真:
reg_ver = registry[skill].version
disk_ver = 实盘最高非 .bak 目录的版本号(disk_max_version)
若 disk_ver != reg_ver → 抛 SystemExit,报「未登记的升版中间态」
若 disk_ver == reg_ver → 仅目录名漂移,放行(保留既有自愈能力)
③ 判重放判据 A/B/C(辅助判据)
遍历全部同指纹记录(不再只查首条),任一成立即判重放,取最新命中一条返回:
| 判据 | 条件 | 语义 |
|---|---|---|
| A | 同指纹且 stage=='intent' |
前次未收尾 → 命中,不论窗口(根治 D1) |
| B | 同指纹且 age <= 900s 且 to_ver == 当前版本 |
保留旧判据③ |
| C | 同指纹且 age <= 900s 且 from_ver == 当前版本 |
版本被回正后重放 |
窗口真源 REPLAY_WINDOW_SEC = 900(秒)。旧记录无 stage 键 → 不命中 A,仍走 B/C(向后兼容)。
④ 两个放行口语义分离(不可互相替代)
| 放行口 | 放行对象 | 适用场景 |
|---|---|---|
--allow-replay |
判据 A/B/C(重放闸) | 确需「同名同参」连升两级时 |
--allow-resume |
LD-R1 一致性闸 | 确认是升版中断续跑时 |
二者语义不同、不可互相替代;误用时的提示互相指路。
⑤ --reconcile 四方自洽核对入口(默认 dry-run,--apply 才写盘)
逐条报告:① registry[skill].dir 在 skills/ 下是否存在;② registry.version 与 SKILL.md frontmatter version 是否一致;③ 同一 bare 名下是否存在多个非 .bak 目录;④ journal 中 stage=='intent' 的未收尾记录;⑤ 孤立非 .bak 目录(存在但不在 registry)。
--apply 的写盘范围严格限定为「把 registry 的 dir/version 回正到实盘」这一种可逆动作(且仅在实盘该 bare 名下唯一目录时);③④⑤ 三类只报不改(涉及目录改名或删除,须人裁定)。
中断续跑的标准处置:先 --reconcile --apply 把 registry 回正到实盘,再按正常命令升版(此时 registry 与实盘已一致,LD-R1 自然放行)。
三、不变量与自证
- 不得以 stdout 自述为准:判据一律回读磁盘实况。
- V1 事故复现用例为唯一验收核心:须在 journal 为空的前提下独立拦下重放。
- 口径变更须递增
REPLAY_POLICY_VERSION并同步本段(现行'2.0.0')。
七、登记在册的 DIY skill
| 技能名 | 版本 | 来源 |
|---|---|---|
| lihengbian_DIY_Summarize | V1.0.0 | 自建 |
| lihengbian_DIY_Self_Improvement | V1.0.0 | 自建(基于 利衡辨_Self_Improvement 进化引擎) |
| lihengbian_DIY_deepseek-web-search | V1.0.0 | 自建(DeepSeek Responses API) |
| lihengbian_DIY_deepseek_MarkItDown | V1.0.0 | 自建(MarkItDown 文档转换) |
| lihengbian_DIY_minimax-docx | V1.0.0 | 转化自 minimax-docx(MiniMaxAI · MIT · v1.0.0) |
| lihengbian_DIY_minimax-xlsx | V1.0.0 | 转化自 minimax-xlsx(MiniMaxAI · MIT · v1.0.0) |
| lihengbian_DIY_minimax-pdf | V1.0.0 | 转化自 minimax-pdf(MiniMaxAI · MIT · v1.0.0) |
| lihengbian_DIY_pdfkit | V1.0.0 | 转化自 pdfkit-py(腾讯文档 PDFKit · v1.0.1) |
| lihengbian_DIY_Skill-Vetter | V1.0.0 | 转化自 skill-vetter(marketplace · v1.0.0) |
| lihengbian_DIY_博导论文 | V1.1.0 | 转化自 Paper2Agent(jmiao24/Paper2Agent · GitHub · MIT · main@ad105d0 · skills/paper2agent,2026-10-10);V1.1.0 新增丁路「论文成稿」(七仓方法论集成:Master-cai/Research-Paper-Writing-Skills·MIT、HKUSTDial/Supervisor-Skills·CC-BY-NC-SA、brycewang-stanford/Auto-Empirical-Research-Skills·CC-BY-SA、aipoch/medical-research-skills·MIT、brycewang-stanford/Awesome-Journal-Skills·MIT、cLin-c/paper-skill·MIT、zero565656/journal-recommender·未标注;只取方法论、未搬原文) |
版本:V1.0.2 | 编制:2026-09-09 | 依据:宪法 V1.2.0 第48条(盘位与命名)、基本法 V2.3.0_2026-09-25_1605 M2.2 / M2.4④ / M2.5②
修订:V1.0.1(2026-09-23)增补「### 重放闸口径(V2.0.0 · 2026-09-23 L1 修复)」条款段(与 W03(V1.2.0 条)/S06 同源、逐字一致);缘起 2026-09-23 L1 修复。
修订:V1.0.2(2026-09-24)同步基本法 V2.2.0 功能段口径翻转——① §一「功能段」行由「沿用原名(英文原名或 kebab-case),不中译、不改大小写」改为「必须采用中文题名,不含空格、不含连字符」,判定正则同步收紧为^V\d+\.\d+\.\d+_lihengbian_DIY_[\u4e00-\u9fa5]+$;② §一「目录名」行与 §二description句式、§三 第 2 步「目录更名」三处<功能名>一律改为<中文功能名>;③ 依据行由「宪法 V1.1.0 / 基本法 V2.0.0 M2.2.2 / M2.2.3」重锚为「宪法 V1.1.2 / 基本法 V2.2.0 M2.2 / M2.4④ / M2.5②」;④ 补本行修订记。存量V<版本>_lihengbian_DIY_<拼音/英文名>目录一律定性为存量命名违规件,按整改计划分批恢复中文题名,新建/升版一律按本版口径执行。缘起 2026-09-23 炳哥「按最新命名规则把拼音 skill 恢复中文名」指令暨 S0′ 下位规范同步段。
宪法 > 基本法 > 行政法规 > 地方法规 > 地方规章