zfl-absorb-skill
把"别人丢来一个技能包"变成"该装装、该挑挑、该跳跳"的确定性决策。
本技能处理的是技能包(zip / SKILL.md / prompt.md)这条路径;若文献源是一篇方法论文章,用 zfl-absorb-article-insight。
30 秒速查(一眼选路)
| 情况 | 该走哪条路 | 一句话判据 |
|---|---|---|
| 对方做你完全没有的事,且零冲突 | 整装 | 缺能力 + 能跑 + 不撞车 |
| 框架绑外部工具/非中文,但里面有几条通用原则 | 挑零件 | 抽 2–3 个平台无关零件并入现有技能 |
| 你和它做的事完全一样 | 跳过 or 收割 | 先看同域冲突预检(步骤 0),再做 A/B/C 决策 |
| 技能自称"AI 双重验证 100% 准确" | 重点审查 | 自信通胀话术,仅当启发参考 |
| 对方技能绑 Google API / VPS / 出海站 | 挑零件 or 跳过 | 国内跑不起来,只能捡通用零件 |
| 零件含 API/网络功能 | 必须 opt-in 守护 | 默认关 + 显式开 + 优雅降级,三护栏缺一不可 |
何时用
- 用户发来
*.zip或技能目录,问"这个技能怎么样""能不能吸收""对我有用吗"。 - 目标是给一句有依据的 verdict + 可执行吸收动作,不是逐行翻译对方 README。
工作流(5 步,先查后判)
0. 预研究(先理解再评估,呼应 last30days 的 pre-research)
- 在解包前,先解析该技能的"真实身份":它解决什么具体问题、对应你生态里哪个
zfl 技能可能重叠、去哪找它的真实使用信号(SkillHub 评分/评论、社区讨论,而非只看 README 自述)。 -
目的:避免被单一 README 的车轱辘话带偏(如"经 AI 双重验证 100% 准确"这类自信通胀话术)。
带着"实体画像"再去解包精读,比对效率远高于裸关键词扫描。 -
同域冲突预检(本次踩坑点):在解包后、决策前,必须
grep你生态内是否已存在同名或同域(功能/触发词重叠)的 zfl 技能:
ls ~/.workbuddy/skills/ | grep -iE "<关键词>"列同名;
grep -rln "<技能名>" ~/.workbuddy/skills/ --include=SKILL.md查反向引用(判断对方是否"参考了你"还是"独立另起");
关键词覆盖度/能力冗余检索优先用公共标准件(结构化输出+自动跳噪声目录+退出码语义):python ~/.workbuddy/skills/zfl-common/scripts/grep_redundancy.py <kw1,kw2,...> --skills-dir ~/.workbuddy/skills(单一真源,@see zfl-common)。
若命中已有技能,进入步骤 2.5 / 3.5 走"冲突诊断→收割/下线"分支,不要直接整装装进去再发现撞车。 -
能力深查(2026-09-17 新增,jlxz 翻盘实证):上面两条只扫顶层技能名 + SKILL.md,会漏掉折叠进套件
references/子文档的能力——zfl 生态按「折叠到现有技能而非新建独立技能」原则,大量能力以references/*.md章节形式存在,顶层技能名完全看不出来。判据:「生态里没有叫 X 的技能」≠「生态里没有 X 能力」。必做两条:
1. 全量深扫(不限 SKILL.md,须含references/与子技能目录):grep -rln "<关键词>" ~/.workbuddy/skills/ --include=*.md
2. 查已吸收痕迹(对方技能可能早已被吸收过):扫来源:/吸收自/经适配融入/经适配/ 对方作者名 / 对方技能名;命中即说明已吸收,直接走「跳过 or 收割」,不要再判成「缺能力」。
实证:jlxz-audit v1.3.1 初判「zfl 缺监理实施细则审核能力 → 整装候选」,深查后zfl-telecom-completion-audit/references/supervision-implementation-audit.md第15章明写「来源:张晋 jlxz-audit v1.2.0,经适配融入本体系」、第16章 Excel 三色表逐字一致,且 zfl 版已增强 → 结论翻转为跳过(整装会撞触发词 + 造面板噪声)。
@see PF-459(动手写规则前先检索既有 references)、PF-420(「未并入」常是「已部分吸收」)。 -
机械前置(不靠清单记忆判缺口/冗余):判「生态没有 X 能力」「该技能是重复造轮子」前,跑机械前置而非凭清单回忆(能力规模已超记忆可靠范围):
python ~/.workbuddy/skills/zfl-skill-factory/scripts/enumerate_skill_tree.py --covered "<关键词>"(覆盖度实证,含references/与套件子技能);
... --gap-check <候选清单>(真缺口候选 / 弱覆盖 / 伪缺口三栏);... --suite <套件>(子技能实时版本)。
@seezfl-common/references/anti-memory-checks.md(反「清单记忆」机械前置对照表 SSOT)。实证:2026-09-18 凭清单记忆判 6 处缺口,机械枚举后 4 处为伪缺口(漏纳套件references/)。
1. 解包精读(不凭文件名拍脑袋)
- 全部解压到临时目录(
_absorb_<date>/,用完硬删——见下"清理")。 - 必读:
SKILL.md+prompt.md+*_meta.json+skill.json+examples/*。看实际 SKILL.md 正文,不只看 description。 - 一句话概括:这个技能核心在做什么动作,靠什么跑起来。
2. 四维度评估(每维给结论)
| 维度 | 问什么 | 危险信号 |
|---|---|---|
| 核心内容 | 它解决什么具体问题? | 描述动作却不执行(footgun) |
| 重叠度 | 你现有 zfl 技能已覆盖多少? | 与已有技能 100% 冗余、或引入非标准记号降低可读性 |
| 可行性 | 在你环境(国内/中文/无外部基建)能跑吗? | 绑定 Google API / VPS / 商用账号 / 出海站点,跑不起来 |
| 风险 | 装进来会污染什么? | "描述操作的记号"进被回归环境、误导性的"AI 验证 100% 准确"权威话术 |
2.5 同域冲突识别(命中步骤 0 预检后必做)
当生态内已存在同名或同域技能时,先判冲突类型,再决定走整装还是步骤 3.5 收割分支:
| 冲突类型 | 判定依据 | 处理路径 |
|---|---|---|
| 代码复制型 | 对方技能直接复制/改编你的技能(引用你的 skill 名、内容高度一致) | 整装无意义 → 跳过;或仅挑其增量差异(若你有滞后) |
| 触发词撞车型 | 对方独立另起、做同一件事但未引用你(grep 反向引用为空白),常见于 IMA 换编辑器重生成 | 走步骤 3.5 收割分支;不要两个都留(触发词分流 + 面板噪声) |
| 命名冲突型 | 同名不同功能(极少见) | 改名其一,避免面板/路由歧义 |
> 关键判定:grep 对方技能有无引用你的同名技能。本次 IMA zfl-doc-desensitize 完全没引用 zfl-redaction,是独立较弱重复(纯提示词版、无执行引擎),属「触发词撞车型」。
> 跨源合并(呼应 last30days 的 cross-source cluster merge):单一 README 只是"作者自述"这一个信源。
> 评估时至少交叉 README + SkillHub 上架信息/评分 + 社区真实反馈 三源;同一能力的不同表述
> 合并为一条判断,不被某一源的夸大或修饰带偏。真实使用者信号 > 作者的间接自述。
3. 三档决策
- 整装:核心能力你缺、零冲突、能跑 → 直接装(极少发生)。
- 挑零件:框架错配但含可复用微观原则 → 抽 2–3 个平台无关零件,并入现有 zfl 技能,不整包导入。
- 跳过:冗余 / 零价值 / 高风险 → 不进生态。
> 铁律:宏观成熟技能对 demo 级同行方法论,价值在微观零件不在整体框架。 整体框架跑不起来时,挑零件即可,连零件都不值得捡就直接跳。
3.x Verdict 输出模板(固定格式,一看就懂)
每次评估完成后,按此模板输出结论,保证可复现、可对比、可追溯:
## Verdict: zfl-absorb-skill 评估报告
### 输入
- 技能包: <名称>.zip / 目录路径
- 版本: <版本号>
- 来源: SkillHub / IMA / 其他(链接/路径)
### 四维评估(1-5 分)
| 维度 | 得分 | 结论 |
|---|---|---|
| 核心内容 | _/5 | <一句话> |
| 重叠度 | _/5 | <与生态内哪些技能重叠> |
| 可行性 | _/5 | <国内中文无外部基建能跑吗> |
| 风险 | _/5 | <装进来会污染什么> |
### 冲突诊断
- 同域技能: <有/无,如有列出名称>
- 冲突类型: <代码复制型 / 触发词撞车型 / 命名冲突型 / 无冲突>
- grep 反向引用: <有引用/无引用>
### 决策
- 结论: **整装 / 挑零件 / 跳过 / 收割下线**
- 理由: <2-3 句依据>
- 吸收动作: <并入哪个现有技能的哪个段落 / 挑哪些零件 / 下线存档路径>
### 风险提示
- <如有,列出具体风险点和规避措施>
3.5 同域冲突收割分支(命中步骤 2.5「触发词撞车型」时)
目标:一条线、无重复、无触发冲突,契合"吸进现有不新建"原则。先比成熟度,再选决策:
| 决策 | 适用 | 动作 |
|---|---|---|
| B 收割+下线(推荐) | 现有技能更强(有执行引擎/零幻觉/可配置/审计),对方仅含少量独特细粒度 | 吸独特需求进现有技能 + 存档下线对方 + 全树改标签 + 五源对齐 |
| A 直接下线 | 对方完全冗余、无独特价值 | 仅存档下线对方,改全树标签指向现有 |
| C 都留+收窄 | 两者确实互补且无合并价值(罕见) | 给对手收窄触发词(最差:多一个面板条目、制造人为分流) |
B 收割落地清单(本次已验证可复现):
1. 收割用"默认关新规则"最低风险继承细粒度:在现有技能引擎加一条 default: False 的规则(additive,零回归)。匹配须双向覆盖(如"姓名+类型"、"标签:姓名"),并用负向先行断言排除正确名的子串(教训:校验"错误拼写"log-gen 时,log-generator 含该子串会误报,须 (?!erator))。
2. 下线用 mv 存档(可逆):沙箱 safe-delete 守卫 fail-closed 不删文件,移 _archived_skills/ 而非 rm。
3. 全树改标签:用脚本批量 replace 对手技能名→现有技能名(含版本号),复核 live 零残留(本次 153 文件 / 409 处)。
4. 升被改技能版本(五源对齐):SKILL.md 有 frontmatter 与 metadata 两处 version 须都改 + VERSION/_skillhub_meta.json/CHANGELOG。默认规则集不变,跑对抗/回归测试确认零回归再收尾。
4. 挑零件落地(若选"挑零件")
- 并入已有技能的正确段落(如内容质量原则并入
zfl-公众号排版的"内容质量自检"段),不新建独立技能位(你警惕"启用超 80 个技能"的面板噪声)。 - 最便宜的高价值动作(2026-09-01 实战提炼):对方技能的「验收标准表/必检行」结构,常可零成本吸收为把本生态已有纪律物化成验收表明文物证行——如 corporate-legal 的「法条引用须精确条款号+版本」映射到 zfl 既有 R5「标准版本号审计」纪律,仅把它从"心里有数"落成审计技能验收表的必检行,不引入任何新逻辑,却立刻提升全技能可核查性。优先挑这类"纪律物化"而非"逻辑搬运"。
- 三不:不引对方的非标准记号(如 I-Lang 压缩 DSL)、不绑对方外部工具链、不搬整套框架。
- 来源/边界在文档里显式声明(来源技能 + "启发非照搬" + 丢弃了什么)。
- 升被改技能的版本号(frontmatter 两处同步;若技能有 VERSION/_meta 等五源文件,按
zfl-skill-factory的align_versions.py+five_source_check.py走六源一致)。
5. 零件若含网络/API 功能 → opt-in 守护零依赖
这是本技能最关键的护栏。任何"接入模型/调 API"的增强,做成:
- 默认关:不加 flag 时全程本地零依赖、离线可跑。
- 显式开:用户传 --embed / --api 之类才联网。
- 优雅降级:密钥缺失或接口报错 → 自动回退本地降级方案并明文提示,绝不崩溃或变不可用。
- 用 Node 22 自带全局 fetch(零 npm 依赖)调 OpenAI 兼容端点,密钥走环境变量(EMBED_* 等),端点可 EMBED_BASE_URL 覆盖(支持本地 ollama/vLLM)。
- 诚实边界写进脚本 docstring 与 SKILL.md:哪条原则"机检不了需人工"、哪条"是代理非真语义"。
实战样例(2026-08-12,ilang 三技能)
- 输入:
ilang-compress-skill-2.3.2(提示词压缩 DSL)、ilang-everything-is-ok-1.0.4(同 DSL 精简子集,与前者 100% 冗余)、ilang-seo-awesome-1.2.2(出海 Google pSEO 框架)。 - 评估:#1/#2 价值≈0 且引入"描述操作"的非标准记号(与中文可读技能治理冲突,是 footgun);#3 框架绑 Google API/建站/联盟,国内公众号场景跑不起来,但其"内容质量 4 原则"平台无关。
- 决策:三个都不整装;从 #3 抽 4 条内容质量原则(独家信息增益≥15% / 开头200字实体锚定 / 关键词密度已死 / 段落语义衔接)并入
zfl-公众号排版,明确不引 I-Lang、不绑外部工具链。 - 落地:原则的 R2/R3/R4 做成零依赖脚本
check_content.js(v1.2.0);R4 后续按用户"如果适合,做"升级为--embed真语义余弦(v1.3.0),严格走上述 opt-in 三护栏。验证:默认离线 / 无密钥回退 / 端点不可达 catch 回退 三路径全绿。 - 教训:
#3自称"Google 算法经 Gemini 双重验证 100% 准确"属 AI 自信通胀话术,仅作启发参考,非事实权威。
实战样例(2026-08-12,IMA 脱敏技能同域冲突)
- 输入:IMA 导出
zfl-doc-desensitizev1.1.0(与已发布的zfl-redaction同域)。 - 预检命中:
grep发现生态内已有zfl-redaction(代码引擎、21+ 规则确定性机检、真涂改、审计日志)。 - 冲突识别(步骤 2.5):IMA 版完全没引用 zfl-redaction(反向 grep 空白)→ 触发词撞车型,且 IMA 版是纯提示词较弱重复(无引擎、无真涂改、可能漏脱误脱)。
- 决策(步骤 3.5):B 收割+下线。
- 收割 IMA 版独有"通信工程单位/岗位分类替换"→ 吸进 zfl-redaction 新增
org_role_cat规则(默认关、双向匹配、负向先行断言防子串误报),实测"建设单位:X"→"建设单位:××公司"不漏、对"总监理工程师"不误伤。 - 存档下线 IMA 版(mv 可逆);plan/rule/ctr 全树 153 文件 409 处标签改指向 zfl-redaction,零残留。
- zfl-redaction 升 1.0.6 五源对齐;默认规则集不变,对抗测试基线维持(零回归)。
- 教训:生态内同名域技能要先 grep 再吸收;收割用"默认关新规则"最低风险继承;五源 bump 时 SKILL.md 两处 version 都改。
FAQ / 避坑指南
1. "我该整装还是挑零件?"——看这条边界
- 整装只有一种情况:核心能力你完全没有 + 零冲突 + 能跑。实际工作中很少发生。
- 凡是"这个框架看起来不错,但绑了 XXX"→ 都是挑零件。
- 凡是"它的做法和我现有技能一样"→ 直接走同域冲突预检,大概率跳过或收割。
2. "对方技能自称 AI 验证 100% 准确"——可信吗?
不可信。这是自信通胀话术(AI 生成内容的常见特征)。评估时只看它能解决什么具体问题,不看它自称多准确。把"100% 准确"当作红旗而非背书。
3. "两个技能都做同一件事,我留哪个?"——收割判断
- 先看谁有执行引擎(脚本/工具链)→ 有引擎的优先
- 再看谁零幻觉(确定性机检 vs 提示词版)→ 确定性优先
- 两者都够好时,留成熟度更高的那个,把对方的独特细粒度吸进来(用"默认关新规则"最低风险继承)
- 绝不同时保留两个 → 触发词分流 + 面板噪声 + 维护成本翻倍
4. "收割时怎么保证零回归?"
- 新规则默认关(
default: False),additive,不改变默认行为 - 匹配双向覆盖 + 负向先行断言防子串误报(如校验
log-gen时排除log-generator) - 五源对齐后跑对抗/回归测试确认基线不变
5. "网络/API 功能怎么安全引入?"
三护栏缺一不可:① 默认关(不加 flag 不联网)② 显式开(--embed/--api)③ 优雅降级(密钥缺失/接口报错 → 本地回退 + 明文提示,绝不崩溃)
6. "升版本怎么升?"
- SKILL.md frontmatter 和 metadata 两处
version都要改 - 有 VERSION/_skillhub_meta.json/CHANGELOG 的,按
zfl-skill-factory的align_versions.py+five_source_check.py走六源一致
7. "临时解包目录删不掉怎么办?"
- D 盘 safe-delete 守卫会拦截
rm,用python -S(跳过 site 钩子)+ 绝对路径硬删 - 绕过法见
zfl-windows-care相关记忆
清理(每次必做)
- 临时解包目录用
python -S(跳过 site 钩子)+ 绝对路径硬删——D 盘 safe-delete 守卫会 fail-closed 拦截rm,绕过法见zfl-windows-care相关记忆;source zip 不要动。 - 测试稿同理硬删,不留过程产物污染工作区。
@see(单一真源,不要维护第三份副本)
zfl-absorb-article-insight— 文献源是文章时用(本文献源是技能包,别混用)。zfl-skill-absorb-audit— 吸收已有技能前的对抗审计(安全/触发率/增益)。zfl-skill-factory— 升版本 / 发布前六源一致性门禁(align_versions.py+five_source_check.py)。scripts/demo_verdict.js— 半自动化 Verdict 生成器:读技能包 SKILL.md → 自动提取元数据 + 信号扫描 → 输出已填元数据的 Verdict JSON(评分留"待评估"占位符,人工补充后标记 COMPLETED)。解决 TRACE 评测 R 维度"不运行任何程序"的分类偏见。zfl-公众号排版/scripts/check_content.js— 本技能 opt-in 护栏的落地范例(默认词面代理 /--embed真语义 / 双降级)。
CHANGELOG
完整版本历史见 CHANGELOG.md(本文件不内嵌版本表,避免面板渲染断链与噪声审计误报)。
约束与错误处理
- 本技能仅处理其声明范围内的任务,不越界执行未授权操作。
- 错误处理:输入不合法时返回明确错误说明,不静默跳过;依赖缺失时降级提示并给出替代路径。
scripts/demo_verdict.js错误契约(运行失败可诊断):- 参数缺失 / 目标目录无
SKILL.md→console.error明确用法或缺失路径,退出码1,不静默退出。 _skillhub_meta.json/skill.json存在但内容损坏 → 输出[WARN] <文件> 解析失败(内容损坏)…后继续(不阻塞主流程,但版本一致性校验该项降级为 NOT_CHECKED,不误判为 PASS)。- frontmatter 中 YAML 数组/对象值解析失败 → 保留原始字符串(设计性降级,非错误)。
- 零依赖:仅用 Node 原生
fs,无需npm install;任何异常均落到上述三类明确输出之一,不存在空catch静默吞错。
不适用场景
- 不适用于需要实时交互或外部 API 调用的场景。
- 不适用于超出本技能声明范围的任务类型。
自检与成功标准
- 成功标准:输出满足任务声明的全部要求,关键信息完整无遗漏,视为完成。
- 输出前自检:核对输出是否覆盖全部要求项、数据是否准确、格式是否符合规范。