session-mechanism:新增「技能梳理规程」(一句话可调用)

用户令:「找进10天所有 梳理技能的要求和描述,看能找出哪些,考虑在会话技能中加入
技能梳理规则,可以一句话调用」

一、梳理了近 10 天(10-06 ~ 10-15)所有「技能梳理」类要求,来源两处:
· 本地日志:10-07「技能"已无作用"梳理」(判据=实际被加载过几次,产物 交付物/技能清单-20261007.md)、
  10-11「技能库待提交清单盘点」「技能包脚本把机器路径写死」报障、10-14「包内代码一律相对路径」、
  10-15「技能根绝对路径清零」;
· 历史对话(8 条命中):技能库清理/browser-harness 重写、审计所有技能相关机制、
  按白名单收回误入库技能、撤出 roots.env/manifest.md 等本机契约、「把产品规划技能整理成唯一形态」、
  「全局技能文件只有一个地址 其余旧的都删除」等。

二、归纳出 11 项可执行检查,落成 `references/05-技能梳理规程.md`(编号接续 00~04):
· 先测再判:① 盘点技能根下每一层(含非技能散件)② 判在用/没用(判据=实际被加载次数,扫转录)
· 分类:③ 按"删了会丢什么"分四档 ④ 查功能重叠
· 查隐患:⑤ 白名单 ⑥ 本机生成契约误入库 ⑦ 入库代码写死本机 ⑧ 路径形态
  ⑨ 正文自相矛盾 ⑩ 多副本(唯一形态)⑪ 待提交清单
· 输出:产物落 `交付物/技能清单-<日期>.md`,必须含「这份读数能说明什么、不能说明什么」

三、开头摆两条已证的坑(都来自这 6 次实操):
· 零值必须先自证 —— 10-07 指纹写错(技能名被转义引号包着)⇒ 读数全 0,连当天刚加载过的
  session-mechanism 都是 0;拿已知非零样本做对照是本规程每一步统计的必备第一步。
· "在册" ≠ "在跑" —— 判机制生效看新鲜调用时间戳。

四、一句话调用:SKILL.md §0 新增第 ⑧ 项触发词(「梳理技能」「盘点技能库」「技能库体检」
「技能清理」「梳理一下技能的要求和描述」任一句即触发);`references/01-文档索引.md` 同步加行。

⛔ 规程只交「清单 + 分档 + 读数」,删/改/并的判据只有用户能给。
⛔ 全部用肯定表述(写「要什么、怎么做」)。

验收:manifest 重算 81 份、语法失败 0;全量自测 PASS 110 / FAIL 0。
This commit is contained in:
admin committed 2026-10-15 23:00:47 +08:00
1 parent 74b407ccba
commit 68b56a0720
3 files changed
+99

No files matched your search

+9
View File
@@ -459,6 +459,15 @@ 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 立)。
 它把 2026-10-06 ~ 10-15 里**零散做过的 6 次"技能梳理"**归纳成 **11 项可执行的检查**,分四段走:
 · **先测再判** —— ① 盘点技能根下每一层(含**非技能散件**)② 判"在用/没用"(判据=**实际被加载过几次**,扫会话转录)。
 · **分类** —— ③ 按"**删了会丢什么**"分四档(能力型/知识方法型/散件/绝不能动)④ 查功能重叠(列出合并落点)。
 · **查隐患** —— ⑤ 白名单对不对 ⑥ 本机生成的契约有没有被误入库 ⑦ 入库代码里有没有"写死这台机器" ⑧ 路径形态对不对 ⑨ 正文有没有自相矛盾 ⑩ 有没有多份副本 ⑪ 待提交清单。
 · **输出** —— 产物落 `交付物/技能清单-<日期>.md`,必须含「**这份读数能说明什么、不能说明什么**」一节。
 🔴 开头就摆着两条**已证过的坑**:**零值必须先自证**(拿一个已知非零的样本做对照,否则"全 0"分不清真没有与没测到)· **"在册" ≠ "在跑"**(判机制生效看**新鲜调用时间戳**,⛔ 不看配置文件里有没有)。
 ⛔ 本规程只交「清单 + 分档 + 读数」,**删/改/并的判据只有用户能给**;要动手另按 `references/00-动手前必过.md` 走。
--- ---
## 🔴🔴 T 表 · 状态 → 我该做什么(2026-10-04 用户口述,⛔ **唯一权威,不许 AI 推断**) ## 🔴🔴 T 表 · 状态 → 我该做什么(2026-10-04 用户口述,⛔ **唯一权威,不许 AI 推断**)
@@ -28,6 +28,7 @@
| 查某个历史会话干了啥 | `forensics.md` | — | | 查某个历史会话干了啥 | `forensics.md` | — |
| 任务图/多会话分工 | `taskgraph.md` + `collab.md` | — | | 任务图/多会话分工 | `taskgraph.md` + `collab.md` | — |
| 怎么回话/排版 | `03-回复排版-核心块.md` + `02-功能优先协作协议.md` | — | | 怎么回话/排版 | `03-回复排版-核心块.md` + `02-功能优先协作协议.md` | — |
| **梳理技能库/盘点技能**(「梳理技能」「盘点技能库」「技能库体检」) | `05-技能梳理规程.md` | 其余全部 |
| 对方甩来一句没头绪的话 | `02-功能优先协作协议.md` | — | | 对方甩来一句没头绪的话 | `02-功能优先协作协议.md` | — |
| 只想要速查 | `99-速查清单.md` | — | | 只想要速查 | `99-速查清单.md` | — |
| **问「这是什么、为什么这样」** | `architecture.md` | — | | **问「这是什么、为什么这样」** | `architecture.md` | — |
@@ -0,0 +1,89 @@
# 05 · 技能梳理规程
> **什么时候用**:用户说「**梳理技能**」「**盘点技能库**」「**技能库体检**」「**技能清理**」
> 「梳理一下技能的要求和描述」—— 任一句即触发本规程。
> **一句话判据**:**先把读数拿到手,再谈分类;分类之后只报"删了会丢什么",删不删由用户定。**
## 为什么要有这篇(2026-10-06 ~ 10-15 的实证)
近 10 天里,「技能梳理」这件事被零散地做过至少 6 次,每次都要重新摸一遍判据 ——
结果每次都踩同一个坑,或漏同一类东西。以下 11 项是**从那些实际发生过的动作里归纳出来的**,
不是凭空设计的清单。两个已证的坑先摆在前面:
- 🔴 **零值必须先自证**:2026-10-07 测"技能被加载过几次",指纹写错(技能名被**转义引号**包着,按普通引号匹配)
⇒ 一个都中不了,读数看着像"全都没用过",连 `session-mechanism`(当天我自己刚加载过)都是 0。
⇒ **拿一个已知一定非零的样本做对照**,是本规程每一步统计的必备第一步。
- 🔴 **"在册" ≠ "在跑"**:判某机制有没有生效,要看**新鲜的调用时间戳**,不能看"配置文件里有它"。
---
## 第一段 · 先测再判(⛔ 不许凭印象)
**① 盘点目录**
把技能根下的**每一层**列出来:`<技能根>/<名>/`(真技能)+ 那些**散件**(不是技能却也躺在里面的文件/目录)。
⛔ 别只列"看起来像技能"的 —— 散件正是"乱"的来源。
**② 判"在用 / 没用"**
判据=**实际被加载过几次**,数据来自会话转录(宿主库**没有**技能使用记录表)。
- 扫 `<配置根>/projects/**/*.jsonl`;指纹用**逐个技能名精确匹配**(注意转义形态)。
- 🔴 **先跑自证样本**(见上);再出读数。
- 分档给出:在用 / 从未加载且装得早 / 从未加载但装得晚(证据不足)。
- ⛔ 这份读数**只说明"有没有在用"**,它**不构成**任何删除建议。
## 第二段 · 分类
**③ 按"删了会丢什么"分四档**
- 第 1 档 **能力型**:删了就没这个功能了。
- 第 2 档 **知识 / 方法型**:删了丢经验,但内容**可以搬家**。
- 第 3 档 **非技能的散件**:与技能无关,却是"乱"之源。
- 第 4 档 **绝不能动**:机制依赖它活着。
**④ 查功能重叠**
把"做同一件事"的技能成对列出来,注明**合并后落点**。重叠项在删/并时要一起看,别单删一个。
## 第三段 · 查隐患(这一段的每一项都对应过一次真实事故)
**⑤ 白名单对不对**
技能仓用白名单收(`/*` 全挡 + 逐个放行)。逐条问:**在仓里的,是不是都该在**。
- 新增独立技能后,记得同步放行(2026-10-11:`video-capture` 独立了但白名单没加 ⇒ 仓里只剩一份指向仓外的交接说明)。
**⑥ 本机生成的契约有没有被误入库**
`env/roots.env`、`references/manifest.md` 这类**每台机器各不同**的产物,入仓即污染。
判据:**它是不是由本机某个脚本生成** —— 是 ⇒ ⛔ 不入库。
**⑦ 入库代码里有没有"写死这台机器"**
逐项查:盘符字面量 / 绝对机器路径 / 工作区清单。这些一旦入仓,同步到别的机器就搞坏对方环境
(2026-10-11 用户报障原话:「这个环境都是针对一台机器的,同步到别的机器把环境都搞坏了」)。
✅ 修法:**配置外置**(`env/roots.env`)+ **推不出来就如实报错留痕**。
**⑧ 路径形态对不对**
包内引用**本包自己或同根技能**的位置 ⇒ 写 `<技能根>/<技能名>/` 或包内相对路径。
**跨根引用**(工作区根 / 文档库根 / 本机软件安装位 / 宿主数据目录)⇒ 才落到具体位置,且优先读环境变量。
**⑨ 正文有没有自相矛盾**
同一件事在技能里出现两种写法(尤其是正文与规则段之间)。逐条对:**同一个概念只留一处定义**。
**⑩ 有没有多份副本**
同一技能存在 ≥2 份 ⇒ 定"唯一形态",其余归档(⛔ 不直删,留取回路径)。
**⑪ 待提交清单**
技能库相对 HEAD 有哪些改动(已跟踪 + 未跟踪分开列),逐条注明"谁在什么时候改的、为什么"。
---
## 第四段 · 输出
**产物落 `交付物/技能清单-<日期>.md`**,按上面 11 项分段写,每段带上**读数**(不是结论)。
必须写明的一节:**「这份读数能说明什么、不能说明什么」** ——
把"能判的"和"不能判的"分开放,避免下游把它当决策依据。
⛔ **删 / 改 / 并的判据只有用户能给**:本规程只交"清单 + 分档 + 读数",
不替用户决定删谁。要动手时另按 `references/00-动手前必过.md` 走。
---
## 一句话调用
用户说「**梳理技能**」「**盘点技能库**」「**技能库体检**」⇒ 按本文件跑一遍,产物落 `交付物/技能清单-<日期>.md`。
用户点名范围(如"只梳理 X 区""只看白名单")⇒ 只跑对应那几项。