session-mechanism:05 改名消歧 + 新增 06「技能优化规程」(含 21 条总表)

- 05-技能梳理规程.md → 05-技能库盘点规程.md:本规程只管「库」(有哪些技能、在用没用、该不该入仓)
- 新增 06-技能优化规程.md:一句话判据「写技能时,假设读者是另一台机器上的另一个会话」;
  三层 12 项(工程/结构/表述)+ 末尾「技能优化描述 · 总表」21 条四层
  (合并 mcn-short-video/技能审计检查清单.md 的 13 项流程维度并去重)
- SKILL.md §0 增第 ⑧⑨ 项;01-文档索引.md 增两行;两篇入口触发词划清边界
This commit is contained in:
admin committed 2026-10-15 23:14:25 +08:00
1 parent 68b56a0720
commit d8be643ec7
4 files changed
+155 -9

No files matched your search

+11 -2
View File
@@ -459,8 +459,8 @@ python .workbuddy/collab/collabd.py --set-life 进行中 --by "主会话"
 ✅ **判据实体就在本档正文里**(2026-10-04 改,原文写「权威在 `agent-operating-rules §1.6`」——现已改为**本档即权威**)⇒ 🔴 **只复制这一个技能到别的机器,这些功能全部可用,⛔ 不依赖任何其他技能**。📌 来路:2026-10-04 从 `dsh-decision/references/01` 逐行搬入;⛔ `dsh-decision` 那份视为副本,**改判据以本档为准**。  ✅ **判据实体就在本档正文里**(2026-10-04 改,原文写「权威在 `agent-operating-rules §1.6`」——现已改为**本档即权威**)⇒ 🔴 **只复制这一个技能到别的机器,这些功能全部可用,⛔ 不依赖任何其他技能**。📌 来路:2026-10-04 从 `dsh-decision/references/01` 逐行搬入;⛔ `dsh-decision` 那份视为副本,**改判据以本档为准**。
 🔴 **配合任务会话的六阶段一起用**(见 `references/collab.md` §5):**需求识别 → 调研 → 规划 → 执行 → 验证 → 归档**——每个阶段都能撞上"该自己定还是该问用户",本档就是那一刻的判据。  🔴 **配合任务会话的六阶段一起用**(见 `references/collab.md` §5):**需求识别 → 调研 → 规划 → 执行 → 验证 → 归档**——每个阶段都能撞上"该自己定还是该问用户",本档就是那一刻的判据。
**⑧ 我要梳理/盘点技能库**(用户说「**梳理技能**」「**盘点技能库**」「**技能库体检**」「**技能清理**」「**梳理一下技能的要求和描述**」——任一句即触发)⇒ 读 **`references/05-技能梳理规程.md`**(2026-10-15 立)。 **⑧ 我要盘点技能库**(用户说「**盘点技能库**」「**技能库体检**」「**技能清单**」「**技能已无作用**」——任一句即触发)⇒ 读 **`references/05-技能库盘点规程.md`**(2026-10-15 立)。
 它把 2026-10-06 ~ 10-15 里**零散做过的 6 次"技能梳理"**归纳成 **11 项可执行的检查**,分四段走:  它把 2026-10-06 ~ 10-15 里**零散做过的 6 次"技能盘点"**归纳成 **11 项可执行的检查**,分四段走:
 · **先测再判** —— ① 盘点技能根下每一层(含**非技能散件**)② 判"在用/没用"(判据=**实际被加载过几次**,扫会话转录)。  · **先测再判** —— ① 盘点技能根下每一层(含**非技能散件**)② 判"在用/没用"(判据=**实际被加载过几次**,扫会话转录)。
 · **分类** —— ③ 按"**删了会丢什么**"分四档(能力型/知识方法型/散件/绝不能动)④ 查功能重叠(列出合并落点)。  · **分类** —— ③ 按"**删了会丢什么**"分四档(能力型/知识方法型/散件/绝不能动)④ 查功能重叠(列出合并落点)。
 · **查隐患** —— ⑤ 白名单对不对 ⑥ 本机生成的契约有没有被误入库 ⑦ 入库代码里有没有"写死这台机器" ⑧ 路径形态对不对 ⑨ 正文有没有自相矛盾 ⑩ 有没有多份副本 ⑪ 待提交清单。  · **查隐患** —— ⑤ 白名单对不对 ⑥ 本机生成的契约有没有被误入库 ⑦ 入库代码里有没有"写死这台机器" ⑧ 路径形态对不对 ⑨ 正文有没有自相矛盾 ⑩ 有没有多份副本 ⑪ 待提交清单。
@@ -468,6 +468,15 @@ python .workbuddy/collab/collabd.py --set-life 进行中 --by "主会话"
 🔴 开头就摆着两条**已证过的坑**:**零值必须先自证**(拿一个已知非零的样本做对照,否则"全 0"分不清真没有与没测到)· **"在册" ≠ "在跑"**(判机制生效看**新鲜调用时间戳**,⛔ 不看配置文件里有没有)。  🔴 开头就摆着两条**已证过的坑**:**零值必须先自证**(拿一个已知非零的样本做对照,否则"全 0"分不清真没有与没测到)· **"在册" ≠ "在跑"**(判机制生效看**新鲜调用时间戳**,⛔ 不看配置文件里有没有)。
 ⛔ 本规程只交「清单 + 分档 + 读数」,**删/改/并的判据只有用户能给**;要动手另按 `references/00-动手前必过.md` 走。  ⛔ 本规程只交「清单 + 分档 + 读数」,**删/改/并的判据只有用户能给**;要动手另按 `references/00-动手前必过.md` 走。
**⑨ 我要优化技能本身**(用户说「**优化技能**」「**技能怎么改更好**」「**梳理技能**」「**梳理一下技能的要求和描述**」「**技能太长**」「**这条规则写在哪**」「**这个技能能不能拷到别的机器用**」——任一句即触发)⇒ 读 **`references/06-技能优化规程.md`**(2026-10-15 立)。
 **一句话判据**:**写技能时,假设读者是"另一台机器上的另一个会话"** —— 拿它回放一遍,毛病自己浮出来。
 **三层,按顺序做(⛔ 别从第三层开始)**:
 · **工程层**(换机器能不能活)—— ① 配置外置 ② 不写死本机 ③ 本机生成的契约不入库 ④ 路径形态统一 ⑤ 入仓按白名单。
 · **结构层**(后续会不会漂)—— ⑥ 单一真源 ⑦ 注入面与真源同源(🔴 每轮注入的面**改文字必须量长度**)⑧ 命名一致 ⑨ 正文不自相矛盾。
 · **表述层**(读起来对不对)—— ⑩ 肯定表述(正本 ⇒ `references/rules.md §9`)⑪ 说人话 ⑫ 一页纸。
 🔴 **优先级判断**:工程层会**让人出事**(搞坏别的机器)> 结构层会**让后续每次都漂**> 表述层**只是效果差**。
 🔴 **验法分三层**:工程层 ⇒ **拷到别处跑一遍**(能不能换机器跑通,是最硬的一条);结构层 ⇒ 同源比对/md5/判据;表述层 ⇒ 人读(⛔ 别假装它有自动结论)。
--- ---
## 🔴🔴 T 表 · 状态 → 我该做什么(2026-10-04 用户口述,⛔ **唯一权威,不许 AI 推断**) ## 🔴🔴 T 表 · 状态 → 我该做什么(2026-10-04 用户口述,⛔ **唯一权威,不许 AI 推断**)
@@ -28,7 +28,8 @@
| 查某个历史会话干了啥 | `forensics.md` | — | | 查某个历史会话干了啥 | `forensics.md` | — |
| 任务图/多会话分工 | `taskgraph.md` + `collab.md` | — | | 任务图/多会话分工 | `taskgraph.md` + `collab.md` | — |
| 怎么回话/排版 | `03-回复排版-核心块.md` + `02-功能优先协作协议.md` | — | | 怎么回话/排版 | `03-回复排版-核心块.md` + `02-功能优先协作协议.md` | — |
| **梳理技能库/盘点技能**(「梳理技能」「盘点技能库」「技能库体检」) | `05-技能梳理规程.md` | 其余全部 | | **盘点技能库/技能已无作用**(「盘点技能库」「技能库体检」「技能清单」) | `05-技能库盘点规程.md` | 其余全部 |
| **优化技能本身/这条规则写在哪**(「优化技能」「技能怎么改更好」「梳理技能」「技能太长」) | `06-技能优化规程.md` | 其余全部 |
| 对方甩来一句没头绪的话 | `02-功能优先协作协议.md` | — | | 对方甩来一句没头绪的话 | `02-功能优先协作协议.md` | — |
| 只想要速查 | `99-速查清单.md` | — | | 只想要速查 | `99-速查清单.md` | — |
| **问「这是什么、为什么这样」** | `architecture.md` | — | | **问「这是什么、为什么这样」** | `architecture.md` | — |
@@ -1,12 +1,13 @@
# 05 · 技能梳理规程 # 05 · 技能库盘点规程
> **什么时候用**:用户说「**梳理技能**」「**盘点技能库**」「**技能库体检**」「**技能清理**」 > **什么时候用**(本规程只管**库**:有哪些技能、在用没用、该不该入仓):用户说「**盘点技能库**」
> 「梳理一下技能的要求和描述」—— 任一句即触发本规程。 > 「**技能库体检**」「**技能清理**」「**技能清单**」「**技能已无作用**」—— 任一句即触发本规程。
> 📌 用户说「**梳理技能**」「**梳理一下技能的要求和描述**」指的是**改描述**,走 `06-技能优化规程.md`。
> **一句话判据**:**先把读数拿到手,再谈分类;分类之后只报"删了会丢什么",删不删由用户定。** > **一句话判据**:**先把读数拿到手,再谈分类;分类之后只报"删了会丢什么",删不删由用户定。**
## 为什么要有这篇(2026-10-06 ~ 10-15 的实证) ## 为什么要有这篇(2026-10-06 ~ 10-15 的实证)
近 10 天里,「技能梳理」这件事被零散地做过至少 6 次,每次都要重新摸一遍判据 —— 近 10 天里,「把技能库盘一遍」这件事被零散地做过至少 6 次,每次都要重新摸一遍判据 ——
结果每次都踩同一个坑,或漏同一类东西。以下 11 项是**从那些实际发生过的动作里归纳出来的**, 结果每次都踩同一个坑,或漏同一类东西。以下 11 项是**从那些实际发生过的动作里归纳出来的**,
不是凭空设计的清单。两个已证的坑先摆在前面: 不是凭空设计的清单。两个已证的坑先摆在前面:
@@ -85,5 +86,6 @@
## 一句话调用 ## 一句话调用
用户说「**梳理技能**」「**盘点技能库**」「**技能库体检**」⇒ 按本文件跑一遍,产物落 `交付物/技能清单-<日期>.md`。 用户说「**盘点技能库**」「**技能库体检**」「**技能清单**」⇒ 按本文件跑一遍,产物落 `交付物/技能清单-<日期>.md`。
用户点名范围(如"只梳理 X 区""只看白名单")⇒ 只跑对应那几项。 用户点名范围(如"只盘 X 区""只看白名单")⇒ 只跑对应那几项。
📌 姊妹篇:**改技能描述**(一条规则写在哪、怎么表述、能不能换机器用)⇒ `references/06-技能优化规程.md`。
@@ -0,0 +1,134 @@
# 06 · 技能优化规程
> **什么时候用**(本规程只管**描述与结构**:这条规则写在哪、怎么表述、换台机器还灵不灵):用户说
> 「**优化技能**」「**技能怎么改更好**」「**梳理技能**」「**梳理一下技能的要求和描述**」「**技能太长了**」
> 「**这条规则写在哪**」「**这个技能能不能拷到别的机器用**」—— 任一句即触发。
> **一句话判据**:**写技能时,假设读者是"另一台机器上的另一个会话"。**
## 为什么是这一句(模型判断,依据=2026-10-05 ~ 10-15 的六次实操)
近 10 天里「技能怎么改」被反复提过,表面看是六件不相关的事 ——
写死盘符、肯定表述、规则散落、注入被截断、命名混用、旧稿覆盖新稿。
把它们摆在一起看,**根因是同一个**:**技能是「跨机器、跨会话共享的文本」,但作者在按「本机、本会话」的假设写它。**
- 按"本机"写 ⇒ 写死 `E:/...` ⇒ 换台机器就坏别人的环境(2026-10-11 用户报障原话:
「这个环境都是针对一台机器的,同步到别的机器把环境都搞坏了」)。
- 按"本会话"写 ⇒ 规则散在六处,改一处漏一处;注入面有长度上限,超了**静默丢**,
而下游只看到一句"已截断",看不出少了哪几条。
- 按"我读得懂"写 ⇒ 描述里写负向("不用于海报"),而描述是**自动匹配面** ⇒ 反而把"海报"喂进去。
⚠️ 反过来说:**任何一条技能优化,只要拿"另一台机器 + 另一个会话"回放一遍,毛病就自己浮出来。**
这就是本规程的判据来源,也是它比"清单"更该先看的那一条。
---
## 三层优化(🔴 按这个顺序做,⛔ 别从第三层开始)
**先看一条优先级判断**:工程层的毛病**会让人出事**(搞坏别的机器);结构层的毛病**会让后续每次都漂**;
表述层的毛病**只是效果差**。⇒ **工程 > 结构 > 表述。**
### 第一层 · 工程层(换机器能不能活)
**① 配置外置**
每台机器各不同的东西(工作区根 / 配置目录 / 文档库根 / 本机软件安装位)放包内 `env/`;
入仓的只有 `env/*.example`(占位符、无本机路径)。真文件由 `install.py --apply` 生成。
**② 不写死本机**
包内代码里留:盘符字面量 / 绝对机器路径 / 工作区清单 —— 都属"写死本机"。
✅ 写法:能从 `__file__` 推导的就推导;推不出来的读 `env/roots.env`;**推不出来又没有配置 ⇒ 如实报错 + 留痕**。
**③ 本机生成的契约不入库**
判据:**它是不是由本机某个脚本生成** —— 是(`env/roots.env`、`references/manifest.md` 这类)⇒ ⛔ 不入库。
**④ 路径形态统一**
引用**本包自己或同根技能** ⇒ 写 `<技能根>/<技能名>/` 或包内相对路径。
**跨根引用**(工作区根 / 文档库根 / 本机安装位 / 宿主数据目录)⇒ 才落到具体位置,且优先读环境变量。
**⑤ 入仓按白名单**
仓用 `/*` 全挡 + 逐个放行。**新增独立技能后要同步放行**(漏了 ⇒ 仓里只剩一份指向仓外的引用)。
### 第二层 · 结构层(后续会不会漂)
**⑥ 单一真源**
同一件事**只留一处定义**,其余位置写指针。判据:**改它的时候,我需不需要改第二个地方** ——
需要 ⇒ 那就是两处真源,该收敛。
**⑦ 注入面与真源同源**
每轮注入的那份与包内那份**逐字一致**(防漂移判据:`selftest.py::t_reply_core_same_source`)。
🔴 配套:**凡"每轮注入 / 有长度上限"的面,改文字必须量长度** ——
"改完自测全绿"不等于"改的内容真进了上下文"(已经栽过一次:加条文把尾部三条规则顶掉了)。
**⑧ 命名一致**
同一概念在全包用同一个叫法。改名前先列**伴随物清单**(只改主体必留隐患)。
**⑨ 正文不自相矛盾**
同一件事在技能里出现两种写法(尤其"正文"与"规则段"之间)⇒ 逐条对,留一处。
### 第三层 · 表述层(读起来对不对)
**⑩ 肯定表述**
写「要什么、怎么做」。⛔ 不写「不要 A/B/C」—— 负向词进匹配面/注入面,**反而把 X 拉高命中**。
例外:**以「经验沉淀」或「红线/避坑」为目的**的文档可以写负向,写法=**正向目标 + 括号里的踩坑依据**。
⚠️ 两条边界:「配置里不含本工作区」是在**描述事实**,不在本条管辖内;「三禁」这类**硬禁令**是约束本体,强度要留住。
(正本 ⇒ `references/rules.md §9`)
**⑪ 说人话**
落盘文字先过"像不像人写的"这一关(禁四种 AI 味:三段式排比连用 / "…着"结尾的肤浅分析 /
模糊归因 / 把一句话拆成加粗小标题 + 竖排碎句)。
**⑫ 一页纸**
单份产出默认 ≤120 行,超长就拆。
---
## 怎么验(三层验法不同,⛔ 别拿一种验法套三层)
- **工程层** ⇒ **拷到别处跑一遍**(把技能包复制到一个没有 `env/` 的位置,看它是如实报错还是静默扫空)。
这是最硬的一条:**能换机器跑通才算真的优化过。**
- **结构层** ⇒ 同源比对 / md5 / 判据(有机器可查的部分)。
- **表述层** ⇒ 人读。⛔ 这部分**验不出自动结论**,别假装它通过了。
---
## 一句话调用
用户说「**优化技能**」「**技能怎么改更好**」「**梳理技能**」「**这条规则写在哪**」⇒ 按本文件的三层顺序过一遍。
用户点名某一层(如"只看工程层")⇒ 只跑那一层。
📌 姊妹篇:**盘点技能库**(有哪些技能、在用没用、该不该入仓)⇒ `references/05-技能库盘点规程.md`。
---
## 技能优化描述 · 总表(21 条,四层)
> **怎么来的**:本表把两个来源合并去重 ——
> ① 本规程的三层 12 项;② 另一工作区的 `技能审计检查清单.md`
> (路径 `E:\ProgramData\AIProject\mcn-short-video\技能审计检查清单.md`,2026-08-10 创作流程全量审计归纳的 13 项,
> 覆盖**流程与数据流**维度)。
> **用法**:审计一个技能时按 **A → B → C → D** 顺序逐条过,⛔ 别从 D 开始。
> **发现的问题分级**:**P0 = 会让人出事或断链**(A 层 + C 层第 18 条)/**P1 = 不一致或冗余**(B 层 + C 层其余)/**P2 = 效果差**(D 层)。
| # | 层 | 检查点 | 判据(怎么算过) | 典型反例(实测过的) |
|---|---|---|---|---|
| 1 | A 工程 | 配置外置 | 每台机器各不同的值都在包内 `env/`;入仓的只有 `env/*.example` | 本机路径写进入库代码 |
| 2 | A 工程 | 不写死本机 | 包内代码无盘符字面量/绝对机器路径/工作区清单 | `or r"D:\github\..."` 兜底;工作区清单写死 |
| 3 | A 工程 | 本机生成契约不入库 | 由本机脚本生成的产物(`env/roots.env`、`manifest.md`)不进仓 | 入仓后换机器"同名覆盖"改掉对方配置 |
| 4 | A 工程 | 路径形态统一 | 本包/同根技能 ⇒ `<技能根>/<名>/` 或包内相对;跨根 ⇒ 读环境变量 | 同一件事三处三说地写文档库路径 |
| 5 | A 工程 | 入仓按白名单 | 仓用 `/*` 全挡 + 逐个放行;新增独立技能后已同步放行 | 新技能独立了但白名单没加 ⇒ 仓里只剩指向仓外的引用 |
| 6 | B 结构 | 单一真源 | 同一件事只有一处定义,其余写指针 | 同一条判据散在 6 处,改一处漏一处 |
| 7 | B 结构 | 注入面与真源同源 | 逐字一致 + **有长度上限的面改文字必须量长度** | 加条文顶破上限 ⇒ 尾部规则静默消失,下游只看到"已截断" |
| 8 | B 结构 | 命名一致 | 同一概念全包一个叫法;改名先列伴随物清单 | 「任务会话 31 处 / 执行会话 29 处」混用 |
| 9 | B 结构 | 正文不自相矛盾 | 同一件事不出现两种写法(尤其正文 vs 规则段) | 技能正文缺起实例命令、与另一处说法冲突 |
| 10 | C 流程 | 步骤顺序正确 | 全流程步骤顺序无错乱 | 步骤排反 |
| 11 | C 流程 | 编号连续 | 步骤内部编号不跳号 | 第一步→第三步缺第二步 |
| 12 | C 流程 | 无跳步 | 不跳过中间步骤 | 产物链 5→6→7 禁止跳 |
| 13 | C 流程 | 步骤间职责不越界 | 各步骤各管一段,不越界产出 | 后一棒把前一棒的场次表+情绪卡全塞进去 |
| 14 | C 流程 | 字段归属正确 | 字段由哪个步骤产出就标哪个 | 情绪设计卡标成后一棒,实际是前一棒 |
| 15 | C 流程 | 上游→下游不断裂 | 上游输出的字段,下游输入列表要引用 | 「目标体感」字段后两棒都没引用 |
| 16 | C 流程 | 引用路径正确 | 引用走对层级(流程→知识库→素材库) | 素材库误走直接路径,应走知识库间接引用 |
| 17 | C 流程 | 字段不缺失 | 每步的输入列表字段完整 | 某步输入缺「框架方案」 |
| 18 | C 流程 | 产物链完整 | 中间产物必须落盘,**P0**:禁止只出最终产物 | 只在对话里输出、没落盘 |
| 19 | D 表述 | 肯定表述 | 写「要什么、怎么做」;例外=经验沉淀/红线避坑类(正向目标 + 括号里的踩坑依据) | 描述里写「不用于海报」⇒ 匹配面反而把"海报"拉高 |
| 20 | D 表述 | 说人话 | 落盘文字过"像不像人写的"这一关 | 四种 AI 味:三段式排比连用/"…着"结尾的肤浅分析/模糊归因/拆成加粗小标题+竖排碎句 |
| 21 | D 表述 | 一页纸 | 单份产出 ≤120 行,超长就拆 | 一份 300 行的"速查" |
**验法按层不同**:A 层 ⇒ **拷到别处跑一遍**(最硬);B 层 ⇒ 同源比对/md5/判据;C 层 ⇒ 画数据流看断点;D 层 ⇒ 人读。