Files
workbuddy_skills/session-mechanism/references/01-文档索引.md
T
admin 5004909267 提问规则审计 + 撤出本机生成的两份契约 + 「一律用肯定表述」落进注入面
用户 10-09 三条令:
①「那两份 不说具体 我怎么知道,看看会话提问的规则是否有缺陷」
②「A 方案」(撤出 session-mechanism/roots.env 与 references/manifest.md)
③「要用确定XXXX 这样的描述,避免 不要XXXXX 会导致上下文干扰的描述,除了经验沉淀和红线避坑外」
   +「不只是修改 创建生成时也需要遵守」

一、提问规则审计(三条缺陷,全部修掉)
1、判据用错了维度:旧措辞「⛔ 提问正文不许出现的:包名·环境变量·文件路径·commit/sha·表名/字段名·
   类名/函数名」是按**词性**一刀切,而同一段末尾又写「正文只留能决定下一步的内容」⇒ 两句自相矛盾。
   我按前半句执行、把要撤的文件名删成了「那两份」⇒ 待拍板项不可答。
   ✅ 改成按功能判:**少了这个标识,用户还能不能决定** —— 不能 ⇒ 写进正文;能 ⇒ 删、下沉技术附录。
2、同一判据散在 6 处、措辞各不同(违反本项目自己的「禁重复判定标准」):已收敛到同一句判据,
   并互相标注「改这里必须同批改」。
3、🔴 最隐蔽:**每轮注入的那份 ≠ 包内那份**。钩子 `_core()` 是三级回退,① **本工作区
   CODEBUDDY.md 的 `REPLY-CORE` 段**才是每轮注入的(包内那份只是换机器的兜底)。
   我先只改包内 ⇒ 注入的仍是旧条文,而"文件都改了、自测全绿",看不出来。
   ⇒ 两份都改 + 新增防漂移自测 `t_reply_core_same_source`(两份实质内容必须逐字一致)。

二、撤出两份「本机生成」的契约(用户选 A)
- `git rm --cached session-mechanism/roots.env` 与 `session-mechanism/references/manifest.md`
  —— **本地文件一律保留**(实测 624 B / 18 568 B 仍在)。
- 为什么必须撤:别的电脑取仓时「同名覆盖」会把它们换成**我们这台机器**的路径 ⇒ 那台机器的
  机制脚本去找不存在的目录。
- 新增入库样例 `session-mechanism/roots.env.example`(占位符,无本机路径)。
- `.gitignore`:加这两份的忽略行(⛔ 防 `git add -A` 捎回),并改掉原「刻意入库」那段注释。

三、「一律用肯定表述」写进注入面(原来只在 rules.md,注入面看不到)
- 口径:**写或改技能与规则文件时一律写"要什么、怎么做";新建、生成时同样适用**;
  例外=**以「经验沉淀」或「红线/避坑」为目的**的技能与规则(写法=正向目标 + 括号里的踩坑依据)。
- 落点:injected `REPLY-CORE` 段(工作区 + 包内,逐字一致)· `rules.md §9` ·
  `改包纪律.md` 新增第 5 条硬纪律(「二、四条」→「五条」)· `01-文档索引.md` 指针同步 ·
  把我在注入块里加的那段负向表述改成**正向主导**。

四、🔴 顺带抓到并修掉一个我自己造成的净变差
- 注入块有 **1400 字上限、且从开头截** ⇒ 我加条文把它顶过上限(1274 → 1414+)⇒
  尾部三条(变相征询禁止 / 不用征询句收尾 / 本工作区另有定稿)**静默消失**、不再注入。
- 修:上限 1400 → **2000**;并在 `t_reply_core_same_source` 里加断言 **块长 ≤ 上限** ——
  以后谁再顶破上限,自测直接报红,逼他"要么精简、要么显式抬上限"。
- 验证:`被截断=False`,尾部三条都回来了。

五、验证
- 全套自测 **PASS 109 / FAIL 0**;py 语法全绿;`install.py --manifest` 重算(78 份,语法失败 0)。
- 注入块实测:来源=工作区 CODEBUDDY.md,不截断,含「一律用肯定表述」「决定对象要点名到具体」
  「新建、生成时同样适用」。
2026-10-09 10:45:00 +08:00

63 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 文档索引 · 干什么事该看哪一篇(★ 2026-10-04 建)
> 🔴 **本档只解决一件事**:**别通读文档。** 按下表跳,⛔ 不许「先都读一遍」。
> ⚠️ 落它的起因:文档已 14 篇 + `SKILL.md`,**改流程/改机制时不知道必看哪几篇**
> ⇒ 出现过「**昨天写好的红线,今天换个会话又踩一遍**」(2026-10-03 立的「⛔ 写会怎样前先取证」,
> 只躺在工作区日志里,换会话读不到 ⇒ 10-04 复发)。
## ⓿ 🔴 改流程/改机制前的**必读三篇**(顺序别换)
| 序 | 必读 | 读多久 | 为什么是它 |
|---|---|---|---|
| 1 | **`00-动手前必过.md`** | **3 分钟** | 六条动作红线。⛔ **开工前只读这一篇就够**,⛔ 别通读 pitfalls |
| 2 | **`rules.md`** | 5 分钟 | 现行规则本体(⛔ 不是过程记录;历史在 `pitfalls.md`) |
| 3 | **`manifest.md`** | 2 分钟 | 清单:哪些文件是什么、**哪个是权威**。⛔ 改之前先确认你改的那份是权威 |
**一句话**:⓿ 三篇加起来 **10 分钟**,能避开今天栽的每一类。
## 一、按「你要干什么」跳
| 你要干的事 | 必看 | ⛔ 不用看 |
|---|---|---|
| **改流程/改机制/改正则** | `00-动手前必过.md` + `rules.md` + `manifest.md` | `pitfalls.md` 全篇 |
| 说错了话、想找根因 | `pitfalls.md`(**按编号查**,⛔ 别通读) | — |
| 常驻挂了/要开机自启 | `supervise-persistence.md`(唯一权威) | `architecture.md` |
| 看板显示不对 | `collab-detail.md` | `architecture.md` |
| 换机器/装钩子 | `deploy.md` + `install.py` | 其余全部 |
| 会话卡住/日志爆了/抢锁 | `SKILL.md` §1 加载块 | `pitfalls.md` |
| 查某个历史会话干了啥 | `forensics.md` | — |
| 任务图/多会话分工 | `taskgraph.md` + `collab.md` | — |
| 怎么回话/排版 | `03-回复排版-核心块.md` + `02-功能优先协作协议.md` | — |
| 对方甩来一句没头绪的话 | `02-功能优先协作协议.md` | — |
| 只想要速查 | `99-速查清单.md` | — |
| **问「这是什么、为什么这样」** | `architecture.md` | — |
| **要把一个话题讲清楚(文字 → 图 → 互动页 三级递进)** | `karpathy-output-ladder/SKILL.md`(**随包子技能**) | — |
> 📌 **`karpathy-output-ladder/` 是随包子技能**(2026-10-07 按用户令从全局 skills 移入本包 `references/`,内容逐字未改)。
> ⚠️ **它的"用法"尚未接线**(用户原话「**后续再看如何使用**」)⇒ 现在只做到"**找得到**":
> 想用它时按上面那行跳过去读它自己的 `SKILL.md`;⛔ **不参与**本包的钩子/判据/自动加载。
## 二、🔴 文档四条规则(写文档/改文档时必守)
1. **分类索引** —— 新增文档必须在这张表里登记(⛔ 没登记 = 别人找不到 = 白写)。
2. **结论在最前,过程记录在后** —— 读者要的是「现在是什么样」,⛔ 不是「我改了几轮」。
3. **历史记录按时间倒排** —— **新的在前面,旧的在后面**(⛔ 追加只能往前插,⛔ 不许接在末尾)。
4. **简明扼要有效** —— **单条 ≤6 KB**;⛔ 论证过程/对比表格/逐条展开全删;
⚠️ 但**判据要点一个不许丢**(长度达标而判据被删 = **更坏**,那是假绿)。
5. 🔴 **一律用肯定表述(写 / 改技能与规则文件时,含新建与生成)**(2026-10-07 + 2026-10-09 用户令)
—— 规则正文在 **`rules.md §9`**(⛔ 只一处,本行只作指针)。一句话:写**"要什么、怎么做"**;
写"不要 A/B/C"会把 A/B/C **喂进自动匹配面 / 每轮注入面** ⇒ 反而更容易被误命中。
例外(按文件性质):**以「经验沉淀」或「红线/避坑」为目的**的技能与规则(写法=正向目标 + 括号里的踩坑依据)。
## 三、🔴 为什么「存档」不等于「读得到」(10-04 实证)
| 档位 | 装什么 | 跨会话可见 |
|---|---|---|
| `references/*.md` + `SKILL.md` | **规矩** | ✅ 技能会自动加载 |
| `.workbuddy/memory/<日期>.md` | **过程记录**(当天做了什么) | ❌ 只有那个工作区翻才看得到 |
| 源码注释 + git 历史 | 细节与来路 | ⛔ 没人会去看 |
⚠️ **10-04 的教训**:一条红线立在对的地方(工作区日志 197 KB),仍然等于没立
⇒ **凡是「下次必须做到」的事,必须落在 `references/` 或 `SKILL.md`,⛔ 不能只写日志。**
判据:`selftest.py::t_no_invented_consequence` 量的就是这个(红线在动手层**第一段**)。