From 7514a5f0feeacc74992a47e8dbd7f1b057208bdd Mon Sep 17 00:00:00 2001 From: maogeigei Date: Fri, 16 Oct 2026 07:17:16 +0800 Subject: [PATCH] =?UTF-8?q?session-mechanism=EF=BC=9A05=EF=BC=8F06=20?= =?UTF-8?q?=E5=8F=AA=E6=94=B6=E9=80=9A=E7=94=A8=E8=A6=81=E6=B1=82=EF=BC=8C?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E9=85=8D=E7=BD=AE=E4=B8=93=E5=B1=9E=E8=A7=84?= =?UTF-8?q?=E5=88=99=E5=85=A8=E9=83=A8=E7=A7=BB=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 用户令(2026-10-16):「技能优化规则 只能放 通用要求,不能放技能环境配置目录要求的专属规则」 +「技能库盘点规则 也要按照这个标准调整」。 - 06 删掉 A 段(配置外置/不写死本机/本机生成契约/路径形态/入仓白名单)与总表的 A 层 5 行, 总表 21 条 → 16 条三层(B 结构 4 + C 流程 9 + D 表述 3),编号重排 1–16; 入口写明「只收通用要求」,专有配置规则指向 01-文档索引.md 的「技能环境配置规范」。 - 05 的第三段删掉 白名单/本机生成契约/写死本机/路径形态 四项(同属环境配置规范), 查隐患段剩三项并重编号;全篇 11 项 → 7 项。 - SKILL.md §0 的 ⑧⑨ 两项摘要同步(条数、编号、A 段删除);05 的编号引用改指重排后的 #4/#1。 - 自测 t_skill06_entries_same_source 的条数口径 21 → 16。 验收:全量自测 PASS 113 / FAIL 0;体检 fail 0 / warn 1 / ok 15;manifest 82 份; install.py --verify 全绿;05 = 76 行、06 = 106 行。 --- session-mechanism/SKILL.md | 18 ++-- .../references/05-技能库盘点规程.md | 37 ++----- .../references/06-技能优化规程.md | 96 ++++++++----------- session-mechanism/scripts/selftest.py | 12 +-- 4 files changed, 64 insertions(+), 99 deletions(-) diff --git a/session-mechanism/SKILL.md b/session-mechanism/SKILL.md index fe7e570..c1376f9 100644 --- a/session-mechanism/SKILL.md +++ b/session-mechanism/SKILL.md @@ -464,26 +464,24 @@ python .workbuddy/collab/collabd.py --set-life 进行中 --by "主会话"  🔴 **配合任务会话的六阶段一起用**(见 `references/collab.md` §5):**需求识别 → 调研 → 规划 → 执行 → 验证 → 归档**——每个阶段都能撞上"该自己定还是该问用户",本档就是那一刻的判据。 **⑧ 我要盘点技能库**(用户说「**盘点技能库**」「**技能库体检**」「**技能清理**」「**技能清单**」「**技能已无作用**」——任一句即触发)⇒ 读 **`references/05-技能库盘点规程.md`**(2026-10-15 立)。 - 它把 2026-10-06 ~ 10-15 里**零散做过的 6 次"技能盘点"**归纳成 **11 项可执行的检查**,分四段走: + 它把 2026-10-06 ~ 10-15 里**零散做过的 6 次"技能盘点"**归纳成 **7 项可执行的检查**,分四段走:  · **先测再判** —— ① 盘点技能根下每一层(含**非技能散件**)② 判"在用/没用"(判据=**实际被加载过几次**,扫会话转录)。  · **分类** —— ③ 按"**删了会丢什么**"分四档(能力型/知识方法型/散件/绝不能动)④ 查功能重叠(列出合并落点)。 - · **查隐患** —— ⑤ 白名单对不对 ⑥ 本机生成的契约有没有被误入库 ⑦ 入库代码里有没有"写死这台机器" ⑧ 路径形态对不对 ⑨ 正文有没有自相矛盾 ⑩ 有没有多份副本 ⑪ 待提交清单。 -  🔴 这一段的**判据正本 = `06-技能优化规程.md` 的 A/B 两层**,05 只管采集读数。 + · **查隐患** —— ⑤ 正文有没有自相矛盾(判据正本 ⇒ `06-技能优化规程.md`)⑥ 有没有多份副本 ⑦ 待提交清单。 +  🔴 **入仓白名单 / 本机生成契约 / 写死本机 / 路径形态**这四项属**技能环境配置规范**,本规程**不重复查**。  · **输出** —— 产物落 `交付物/技能清单-<日期>.md`,必须含「**这份读数能说明什么、不能说明什么**」一节。  🔴 开头就摆着两条**已证过的坑**:**零值必须先自证**(拿一个已知非零的样本做对照,否则"全 0"分不清真没有与没测到)· **"在册" ≠ "在跑"**(判机制生效看**新鲜调用时间戳**,⛔ 不看配置文件里有没有)。  ⛔ 本规程只交「清单 + 分档 + 读数」,**删/改/并的判据只有用户能给**;要动手另按 `references/00-动手前必过.md` 走。 **⑨ 我要优化技能本身**(用户说「**优化技能**」「**技能怎么改更好**」「**梳理技能**」「**梳理一下技能的要求和描述**」「**技能太长**」「**这条规则写在哪**」「**这个技能能不能拷到别的机器用**」——任一句即触发)⇒ 读 **`references/06-技能优化规程.md`**(2026-10-15 立)。  **一句话判据**:**写技能时,假设读者是"另一台机器上的另一个会话"** —— 拿它回放一遍,毛病自己浮出来。 - **三层,按 B → C → D 这个顺序做**(层名与文末总表对齐;**环境配置 A 层另属一份规范,只给指针**): - · **A 技能环境配置**(换机器能不能活)—— #1 配置外置 / #2 不写死本机 / #3 本机生成契约不入库 / #4 路径形态统一 / #5 入仓按白名单。 -  🔴 判据正本=`SKILL.md §0` 的「包内目录怎么分」+「路径一律用相对」+ 十一条禁令第 11 条 + 仓根 `.gitignore`;06 里**不复述**。 - · **B 结构层**(结构清晰·重点突出·无冲突·边界清晰)—— #6 单一真源 #7 注入面与真源同源(🔴 每轮注入的面**改文字必须量长度**)#8 命名一致 #9 正文不自相矛盾。 - · **C 流程层**(流程顺畅·功能正常)—— #10 步骤顺序正确 #11 编号连续 #12 无跳步 #13 步骤间职责不越界 #14 字段归属正确 #15 上下游不断裂 #16 引用路径正确 #17 字段不缺失 #18 产物链完整(**P0**)。 - · **D 表述层**(简洁·高效·实用·无歧义)—— #19 肯定表述(正本 ⇒ `references/rules.md §9`)#20 说人话 #21 一页纸。 + **三层,按 B → C → D 这个顺序做**(🔴 本规程**只收通用要求**;`env/` 怎么放、路径怎么写、什么不入仓这类**某个技能包专有的配置规则不在其中**): + · **B 结构层**(结构清晰·重点突出·无冲突·边界清晰)—— #1 单一真源 #2 注入面与真源同源(🔴 每轮注入的面**改文字必须量长度**)#3 命名一致 #4 正文不自相矛盾。 + · **C 流程层**(流程顺畅·功能正常)—— #5 步骤顺序正确 #6 编号连续 #7 无跳步 #8 步骤间职责不越界 #9 字段归属正确 #10 上下游不断裂 #11 引用路径正确 #12 字段不缺失 #13 产物链完整(**P0**)。 + · **D 表述层**(简洁·高效·实用·无歧义)—— #14 肯定表述(正本 ⇒ `references/rules.md §9`)#15 说人话 #16 一页纸。  🔴 **优先级**:B 结构 > C 流程 > D 表述 —— 前两层出毛病**机制失效或断链**,表述只是**效果差**。  🔴 **目标(用户 2026-10-15 原话)**:让技能描述**结构清晰·重点突出·简洁·高效·实用·无歧义·流程顺畅·功能正常·规则边界清晰·无冲突**。 - 🔴 **文末附「技能优化描述 · 总表」21 条四层**;**验法按层不同**:A ⇒ 拷到别处跑一遍/B ⇒ 同源比对 md5/C ⇒ 画数据流看断点/D ⇒ 人读(⛔ 别假装它有自动结论)。 + 🔴 **文末附「技能优化描述 · 总表」16 条三层**;**验法按层不同**:B ⇒ 同源比对 md5/C ⇒ 画数据流看断点/D ⇒ 人读(⛔ 别假装它有自动结论)。 --- diff --git a/session-mechanism/references/05-技能库盘点规程.md b/session-mechanism/references/05-技能库盘点规程.md index 5ce8a02..fed6f1a 100644 --- a/session-mechanism/references/05-技能库盘点规程.md +++ b/session-mechanism/references/05-技能库盘点规程.md @@ -8,7 +8,7 @@ ## 为什么要有这篇(2026-10-06 ~ 10-15 的实证) 近 10 天里,「把技能库盘一遍」这件事被零散地做过至少 6 次,每次都要重新摸一遍判据 —— -结果每次都踩同一个坑,或漏同一类东西。以下 11 项是**从那些实际发生过的动作里归纳出来的**, +结果每次都踩同一个坑,或漏同一类东西。以下 7 项是**从那些实际发生过的动作里归纳出来的**, 不是凭空设计的清单。两个已证的坑先摆在前面: - 🔴 **零值必须先自证**:2026-10-07 测"技能被加载过几次",指纹写错(技能名被**转义引号**包着,按普通引号匹配) @@ -42,40 +42,21 @@ **④ 查功能重叠** 把"做同一件事"的技能成对列出来,注明**合并后落点**。重叠项在删/并时要一起看,别单删一个。 -## 第三段 · 查隐患(这一段的每一项都对应过一次真实事故) +## 第三段 · 查隐患 -🔴 **判据正本 = `references/06-技能优化规程.md` 的 A/B 两层**。本段只管**采集读数**, -不重复写判据 —— 某项查出问题,按 06 的对应项修。 +🔴 **环境配置合规性不属本规程** —— 入仓白名单、本机生成契约、写死本机、路径形态这四项, +判据在**技能环境配置规范**(见 `01-文档索引.md` 同名行),由机制类包自己的体检挂载,**盘点时不重复查**。 -**⑤ 白名单对不对** -读数:列出仓内已跟踪的目录 + 技能根下未被放行的技能目录,两边对照。 -🔴 判据 ⇒ **技能环境配置规范**(正本 仓根 `.gitignore` 的注释块;06 的 A 段只给指针)。漏放行的实证: -2026-10-11 `video-capture` 独立了但白名单没加,仓里只剩一份指向仓外的交接说明。 - -**⑥ 本机生成的契约有没有被误入库** -读数:在 `git ls-files` 里搜 `env/roots.env`、`references/manifest.md` 这类候选。 -🔴 判据 ⇒ 同规范(`SKILL.md §0`「包内目录怎么分」)。 - -**⑦ 入库代码里有没有"写死这台机器"** -读数:对已入仓文件扫三样 —— 盘符字面量 / 绝对机器路径 / 工作区清单,逐条记位置。 -🔴 判据 ⇒ 同规范(`SKILL.md §0`「路径一律用相对」+ 十一条禁令第 11 条);修法 ⇒ 配置外置,推不出来就如实报错留痕。 - -**⑧ 路径形态对不对** -读数:逐个引用点记下它引的是包内还是跨根。 -🔴 判据 ⇒ 同规范(`SKILL.md §0`「例外只有一类:跨根引用」)。 - -**⑨ 正文有没有自相矛盾** +**⑤ 正文有没有自相矛盾** 读数:同一概念在各篇出现的位置与写法,成对列出。 -🔴 判据 ⇒ 06 的 **#9**;同一件事散在多处的,收敛口径见 06 的 **#6**。 +🔴 判据 ⇒ 06 的 **#4**;同一件事散在多处的,收敛口径见 06 的 **#1**。 -**⑩ 有没有多份副本** +**⑥ 有没有多份副本** 同一技能存在 ≥2 份 ⇒ 定"唯一形态",其余归档(留取回路径,⛔ 不直删)。 -**⑪ 待提交清单** +**⑦ 待提交清单** 技能库相对 HEAD 有哪些改动(已跟踪 + 未跟踪分开列),逐条注明"谁在什么时候改的、为什么"。 ---- - ## 第四段 · 输出 **产物落 `交付物/技能清单-<日期>.md`**,按上面 11 项分段写,每段带上**读数**(不是结论)。 @@ -90,6 +71,6 @@ ## 一句话调用 -用户点名范围(如"只盘 X 区""只看白名单")⇒ 只跑对应那几项,触发词清单见文首。 +用户点名范围(如"只盘 X 区""只看分类")⇒ 只跑对应那几项,触发词清单见文首。 产物落 `交付物/技能清单-<日期>.md`。 📌 姊妹篇:**改技能描述**(一条规则写在哪、怎么表述、能不能换机器用)⇒ `references/06-技能优化规程.md`。 diff --git a/session-mechanism/references/06-技能优化规程.md b/session-mechanism/references/06-技能优化规程.md index 802cc1a..059ad84 100644 --- a/session-mechanism/references/06-技能优化规程.md +++ b/session-mechanism/references/06-技能优化规程.md @@ -1,6 +1,6 @@ # 06 · 技能优化规程 -> **什么时候用**(本规程只管**描述、结构、流程** —— 怎么写、怎么组织、边界清不清;**环境配置另有一份规范**):用户说 +> **什么时候用**(本规程**只收通用要求** —— 描述、结构、流程怎么写、怎么组织;**技能环境配置目录的专属规则不在本规程**):用户说 > 「**优化技能**」「**技能怎么改更好**」「**梳理技能**」「**梳理一下技能的要求和描述**」「**技能太长**」 > 「**这条规则写在哪**」「**这个技能能不能拷到别的机器用**」—— 任一句即触发;点名某一层 ⇒ 只跑那一层。 > **一句话判据**:**写技能时,假设读者是"另一台机器上的另一个会话"。** @@ -11,7 +11,8 @@ > 技能优化是为了让技能相关描述 —— **结构清晰 · 重点突出 · 描述简洁 · 高效 · 实用 · 无歧义 · > 流程顺畅 · 功能正常 · 规则边界清晰 · 无冲突**。 -这十项就是 B/C/D 三层的靶子。🔴 **不在本规程范围**:**技能环境配置**(每台机器各不同的东西怎么放、路径怎么写)—— 那是 A 层,只给指针。 +这十项就是 B/C/D 三层的靶子。🔴 **本规程只收通用要求**:`env/` 怎么放、路径怎么写、什么不入仓 +这类**某个技能包专有的配置规则**,归 `01-文档索引.md` 的「技能环境配置规范」一行所指的那份规范。 判据来源:近 10 天「技能怎么改」被反复提过,表面是六件不相关的事,**根因是同一个** —— 技能是「跨机器、跨会话共享的文本」,作者却按「本机、本会话」的假设写它。 ⚠️ **拿"另一台机器 + 另一个会话"回放一遍,毛病自己就浮出来**。 @@ -22,31 +23,21 @@ 优先级:**B 结构 > C 流程 > D 表述** —— 结构与流程出毛病会让**机制失效或断链**(别人照它做会做错事); 表述出毛病**只是效果差**。 -### A 技能环境配置(本规程不展开) - -🔴 这 5 条属**技能环境配置规范**,判据一律指回真源,⛔ 不复述(复述=第三处真源): - -- **1 配置外置** ⇒ `SKILL.md §0`「包内目录怎么分」(用户 2026-10-11 令:「脚本是脚本 配置是配置」) -- **2 不写死本机** ⇒ `SKILL.md §0`「路径一律用相对」+ 十一条禁令第 11 条(2026-10-14 用户令) -- **3 本机生成契约不入库** ⇒ 同「包内目录怎么分」 -- **4 路径形态统一** ⇒ `SKILL.md §0`「例外只有一类:跨根引用」 -- **5 入仓按白名单** ⇒ 仓根 `.gitignore` 的注释块(用户 2026-10-09 令) - ### B 结构层(→ 结构清晰 · 重点突出 · 规则边界清晰 · 无冲突) -**6 单一真源** +**1 单一真源** 同一件事**只留一处定义**,其余位置写指针。判据:**改它的时候,我需不需要改第二个地方** —— 需要 ⇒ 那是两处真源。 -**7 注入面与真源同源** +**2 注入面与真源同源** 每轮注入的那份与包内那份**逐字一致**(防漂移判据:`scripts/selftest.py::t_reply_core_same_source`)。 🔴 配套:**凡"每轮注入 / 有长度上限"的面,改文字必须量长度** ——"改完自测全绿"不等于"改的内容真进了上下文"。 ⚠️ 同源判据自己也要做**变异对照**(改一处应报红、复原应回绿)—— 判据只认一种文本形态就会**恒绿**。 -**8 命名一致** +**3 命名一致** 同一概念在全包用同一个叫法;改名前先列**伴随物清单**(只改主体必留隐患)。 📌 术语正式名与旧称映射的**唯一天条真源** ⇒ `references/architecture.md §7 术语`(⛔ 别另抄一张表)。 -**9 正文不自相矛盾** +**4 正文不自相矛盾** 同一件事在技能里出现两种写法(尤其"正文"与"规则段"之间)⇒ 逐条对,留一处。 ### C 流程层(→ 流程顺畅 · 功能正常) @@ -54,67 +45,62 @@ > 来路:2026-08-10 另一工作区对创作流程做全量审计归纳的 13 项里,9 项属这一层; > **多步流水线型技能**(如 `product-planning` 的四段)逐条对着查,单文件技能跳过本层。 -**10 步骤顺序正确** —— 全流程步骤顺序无错乱(反例:步骤排反) -**11 编号连续** —— 步骤内部编号不跳号(反例:第一步 → 第三步,缺第二步) -**12 无跳步** —— 不跳过中间步骤(反例:产物链 5→6→7 跳了一步) -**13 步骤间职责不越界** —— 各步骤各管一段(反例:后一棒把前一棒的场次表+情绪卡全塞进去) -**14 字段归属正确** —— 字段由哪个步骤产出就标哪个(反例:情绪设计卡标成后一棒,实际是前一棒) -**15 上下游不断裂** —— 上游输出的字段,下游输入列表要引用(反例:「目标体感」字段后两棒都没引用) -**16 引用路径正确** —— 引用走对层级(流程 → 知识库 → 素材库) -**17 字段不缺失** —— 每步的输入列表字段完整(反例:某步输入缺「框架方案」) -**18 产物链完整** —— 中间产物必须落盘;**P0:只出最终产物 = 断链** +**5 步骤顺序正确** —— 全流程步骤顺序无错乱(反例:步骤排反) +**6 编号连续** —— 步骤内部编号不跳号(反例:第一步 → 第三步,缺第二步) +**7 无跳步** —— 不跳过中间步骤(反例:产物链 5→6→7 跳了一步) +**8 步骤间职责不越界** —— 各步骤各管一段(反例:后一棒把前一棒的场次表+情绪卡全塞进去) +**9 字段归属正确** —— 字段由哪个步骤产出就标哪个(反例:情绪设计卡标成后一棒,实际是前一棒) +**10 上下游不断裂** —— 上游输出的字段,下游输入列表要引用(反例:「目标体感」字段后两棒都没引用) +**11 引用路径正确** —— 引用走对层级(流程 → 知识库 → 素材库) +**12 字段不缺失** —— 每步的输入列表字段完整(反例:某步输入缺「框架方案」) +**13 产物链完整** —— 中间产物必须落盘;**P0:只出最终产物 = 断链** ### D 表述层(→ 描述简洁 · 高效 · 实用 · 无歧义) -**19 肯定表述** +**14 肯定表述** 写「要什么、怎么做」。⛔ 不写「不要 A/B/C」—— 负向词进匹配面/注入面,**反而把 X 拉高命中**。 例外:**以「经验沉淀」或「红线/避坑」为目的**的文档可以写负向,写法=**正向目标 + 括号里的踩坑依据**。 -⚠️ 两条边界:「配置里不含本工作区」是在**描述事实**;「三禁」这类**硬禁令**是约束本体,强度要留住。 +⚠️ 两条边界:「配置里不含本工作区」是**描述事实**;「三禁」这类**硬禁令**是约束本体,强度要留住。 (正本 ⇒ `references/rules.md §9`) -**20 说人话** +**15 说人话** 落盘文字先过"像不像人写的"这一关(禁四种 AI 味:三段式排比连用 / "…着"结尾的肤浅分析 / 模糊归因 / 拆成加粗小标题 + 竖排碎句)。 -**21 一页纸** +**16 一页纸** 单份产出默认 ≤120 行,超长就拆。 --- -## 怎么验(验法按层不同,⛔ 别拿一种套四层) +## 怎么验(验法按层不同,⛔ 别拿一种套三层) -- **A 环境配置** ⇒ 把这台机器上的包**拷到没有 `env/` 的位置跑一遍**,看它如实报错还是静默扫空 —— 最硬的一条。 - **B 结构层** ⇒ 同源比对 / md5 / 判据(有机器可查的部分)。 - **C 流程层** ⇒ 画数据流,看断点与跳号。 - **D 表述层** ⇒ 人读;⛔ 这层**验不出自动结论**,别假装它通过了。 --- -## 技能优化描述 · 总表(21 条,四层) +## 技能优化描述 · 总表(16 条,三层) > **怎么来的**:① B/C/D 三层判据(=本规程正文);② 另一工作区的 `技能审计检查清单.md`(`E:/ProgramData/AIProject/mcn-short-video/技能审计检查清单.md`,2026-08-10 创作流程全量审计的 13 项;跨根引用,仅作来路说明)。 -> **用法**:按 **1 → 21** 逐条过。**分级**:**P0 = 会让人出事或断链**(#2、#18)/**P1 = 不一致或冗余**(B 层 + C 层其余)/**P2 = 效果差**(D 层)。 -> 🔴 **判据正本不在本表**:#1–#5 在 `SKILL.md §0` 与仓根规则;#6–#21 在本规程的 B/C/D 三层。表里只给锚点与反例。 +> **用法**:按 **1 → 16** 逐条过。**分级**:**P0 = 会让人出事或断链**(#13 产物链)/**P1 = 不一致或冗余**(B 层 + C 层其余)/**P2 = 效果差**(D 层)。 +> 🔴 **判据正本 = 本规程正文的对应项**,表里只给锚点与反例;⛔ **本表只收通用要求** —— `env/` 怎么放、 +> 路径怎么写、什么不入仓这类**专有配置规则不在本表**,见 `01-文档索引.md` 的「技能环境配置规范」。 | # | 层 | 检查点 | 判据 | 典型反例(实测过的) | |---|---|---|---|---| -| 1 | A 环境配置 | 配置外置 | 见 A 段 | 本机路径写进入库代码 | -| 2 | A 环境配置 | 不写死本机 | 见 A 段 | `or r"D:\..."` 兜底;工作区清单写死 | -| 3 | A 环境配置 | 本机生成契约不入库 | 见 A 段 | 入仓后换机器"同名覆盖"改掉对方配置 | -| 4 | A 环境配置 | 路径形态统一 | 见 A 段 | 同一件事三处三说地写文档库路径 | -| 5 | A 环境配置 | 入仓按白名单 | 见 A 段 | 新技能独立了但白名单没加 ⇒ 仓里只剩指向仓外的引用 | -| 6 | B 结构 | 单一真源 | 见 §B #6 | 同一条判据散在 6 处,改一处漏一处 | -| 7 | B 结构 | 注入面与真源同源 | 见 §B #7 | 加条文顶破上限 ⇒ 尾部规则静默消失,下游只看到"已截断" | -| 8 | B 结构 | 命名一致 | 见 §B #8 | 「任务会话 31 处 / 执行会话 29 处」混用 | -| 9 | B 结构 | 正文不自相矛盾 | 见 §B #9 | 技能正文缺起实例命令、与另一处说法冲突 | -| 10 | C 流程 | 步骤顺序正确 | 见 §C #10 | 步骤排反 | -| 11 | C 流程 | 编号连续 | 见 §C #11 | 第一步→第三步缺第二步 | -| 12 | C 流程 | 无跳步 | 见 §C #12 | 产物链 5→6→7 跳了一步 | -| 13 | C 流程 | 步骤间职责不越界 | 见 §C #13 | 后一棒把前一棒的场次表+情绪卡全塞进去 | -| 14 | C 流程 | 字段归属正确 | 见 §C #14 | 情绪设计卡标成后一棒,实际是前一棒 | -| 15 | C 流程 | 上下游不断裂 | 见 §C #15 | 「目标体感」字段后两棒都没引用 | -| 16 | C 流程 | 引用路径正确 | 见 §C #16 | 素材库误走直接路径,应走知识库间接引用 | -| 17 | C 流程 | 字段不缺失 | 见 §C #17 | 某步输入缺「框架方案」 | -| 18 | C 流程 | 产物链完整 | 见 §C #18(**P0**) | 只在对话里输出、没落盘 | -| 19 | D 表述 | 肯定表述 | 见 §D #19 | 描述里写「不用于海报」⇒ 匹配面反而把"海报"拉高 | -| 20 | D 表述 | 说人话 | 见 §D #20 | 四种 AI 味:三段式排比连用/"…着"结尾的肤浅分析/模糊归因/拆成加粗小标题+竖排碎句 | -| 21 | D 表述 | 一页纸 | 见 §D #21 | 一份 300 行的"速查" | +| 1 | B 结构 | 单一真源 | 见 §B #1 | 同一条判据散在 6 处,改一处漏一处 | +| 2 | B 结构 | 注入面与真源同源 | 见 §B #2 | 加条文顶破上限 ⇒ 尾部规则静默消失,下游只看到"已截断" | +| 3 | B 结构 | 命名一致 | 见 §B #3 | 「任务会话 31 处 / 执行会话 29 处」混用 | +| 4 | B 结构 | 正文不自相矛盾 | 见 §B #4 | 技能正文缺起实例命令、与另一处说法冲突 | +| 5 | C 流程 | 步骤顺序正确 | 见 §C #5 | 步骤排反 | +| 6 | C 流程 | 编号连续 | 见 §C #6 | 第一步→第三步缺第二步 | +| 7 | C 流程 | 无跳步 | 见 §C #7 | 产物链 5→6→7 跳了一步 | +| 8 | C 流程 | 步骤间职责不越界 | 见 §C #8 | 后一棒把前一棒的场次表+情绪卡全塞进去 | +| 9 | C 流程 | 字段归属正确 | 见 §C #9 | 情绪设计卡标成后一棒,实际是前一棒 | +| 10 | C 流程 | 上下游不断裂 | 见 §C #10 | 「目标体感」字段后两棒都没引用 | +| 11 | C 流程 | 引用路径正确 | 见 §C #11 | 素材库误走直接路径,应走知识库间接引用 | +| 12 | C 流程 | 字段不缺失 | 见 §C #12 | 某步输入缺「框架方案」 | +| 13 | C 流程 | 产物链完整 | 见 §C #13(**P0**) | 只在对话里输出、没落盘 | +| 14 | D 表述 | 肯定表述 | 见 §D #14 | 描述里写「不用于海报」⇒ 匹配面反而把"海报"拉高 | +| 15 | D 表述 | 说人话 | 见 §D #15 | 四种 AI 味:三段式排比连用/"…着"结尾的肤浅分析/模糊归因/拆成加粗小标题+竖排碎句 | +| 16 | D 表述 | 一页纸 | 见 §D #16 | 一份 300 行的"速查" | diff --git a/session-mechanism/scripts/selftest.py b/session-mechanism/scripts/selftest.py index e302a30..18f5388 100644 --- a/session-mechanism/scripts/selftest.py +++ b/session-mechanism/scripts/selftest.py @@ -7920,14 +7920,14 @@ def t_term_table_single_source(): return rows -@case("🔴 06 的 21 条条目名:SKILL.md §0 ⑨ 与 06 正文/总表三方逐条同名(⛔ 写成简写=对不上)") +@case("🔴 06 的 16 条条目名:SKILL.md §0 ⑨ 与 06 正文/总表三方逐条同名(⛔ 写成简写=对不上)") def t_skill06_entries_same_source(): """🔴 2026-10-15 立(当日实测踩到)。 `SKILL.md §0 ⑨` 是**匹配面**(点开技能就读到),`06` 正文与总表是**真源**。 实测:§0 把 C 层写成简写「职责不越界」,而正文是「步骤间职责不越界」—— 两边都不报错,读者按简写去正文里搜就搜不到。 - ⇒ 判据落在**21 条逐条同名**上(数字 + 名字都要对上)。 + ⇒ 判据落在**16 条逐条同名**上(数字 + 名字都要对上)。 """ import re as _re SK = (HERE.parent / "SKILL.md").read_text(encoding="utf-8", errors="replace") @@ -7949,16 +7949,16 @@ def t_skill06_entries_same_source(): a, b, c = _clean(a), _clean(b), _clean(c) - rows = [("§0 ⑨ 读到条目名 %d 条(应 21)" % len(a), len(a) == 21), - ("06 正文读到条目名 %d 条(应 21)" % len(b), len(b) == 21), - ("06 总表读到条目名 %d 条(应 21)" % len(c), len(c) == 21)] + rows = [("§0 ⑨ 读到条目名 %d 条(应 16)" % len(a), len(a) == 16), + ("06 正文读到条目名 %d 条(应 16)" % len(b), len(b) == 16), + ("06 总表读到条目名 %d 条(应 16)" % len(c), len(c) == 16)] for tag, other in (("06 正文", b), ("06 总表", c)): bad = sorted(k for k in set(a) | set(other) if a.get(k) != other.get(k)) detail = "" if bad: k0 = bad[0] detail = "(⛔ 首处不一致 #%d:§0=%r/%s=%r)" % (k0, a.get(k0), tag, other.get(k0)) - rows.append(("§0 ⑨ 与 %s **21 条逐条同名**%s" % (tag, detail), not bad)) + rows.append(("§0 ⑨ 与 %s **16 条逐条同名**%s" % (tag, detail), not bad)) return rows