提问规则审计 + 撤出本机生成的两份契约 + 「一律用肯定表述」落进注入面
用户 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,不截断,含「一律用肯定表述」「决定对象要点名到具体」 「新建、生成时同样适用」。
This commit is contained in:
1 parent
0204001a1b
commit
5004909267
12 files changed
+164
-219
No files matched your search
@@ -13,7 +13,10 @@
|
||||
- **提报用户标准 = 存在真取舍**:候选**只有优点或只有缺点 ⇒ 自己拍掉**;各有优劣才提报用户,且**逐项写优点 + 缺点**。
|
||||
- ⛔ **不许捆包**:要问红线**只问那一句**;技术方案自己定好、当**已定项**陈述。
|
||||
- ⛔ **禁用征询句收尾**(「要我…吗 / 请确认 / 你看怎么办」)⇒ 按三问重判,没命中就**删掉、自己做完**。
|
||||
- 🔴 **提报用户内容必须自包含**:① 一句话说清要决定什么(⛔ 不用指代)② 为什么要你定(影响谁 / 断多久 / 花多少钱)③ 每候选写优点 + 缺点,末行给倾向 ④ 一轮一问 ⑤ ⛔ 不出现包名 / 路径 / 变量名。
|
||||
- 🔴 **提报用户内容必须自包含**:① 一句话说清要决定什么(⛔ 不用指代;🔴 **决定对象必须点名**)② 为什么要你定(影响谁 / 断多久 / 花多少钱)③ 每候选写优点 + 缺点,末行给倾向 ④ 一轮一问 ⑤ ⛔ **只服务实现**的内部细节(函数名 / 变量名 / 行号 / sha / 表名字段名 / 内部编号)下沉「技术附录」。
|
||||
- 🔑 **⑤ 与 ① 的同一句判据**:**少了这个标识,用户还能不能决定?** 不能 ⇒ 必须写进正文;能 ⇒ 必须删。
|
||||
⚠️ 旧措辞是「⛔ 不出现包名 / 路径 / 变量名 / 类名」——按**词性**一刀切 ⇒ 把"决定对象"也删了
|
||||
(2026-10-09 实测:把要撤的两份文件写成「那两份」⇒ 用户回「不说具体 我怎么知道」)⇒ **已改成按功能判**。
|
||||
|
||||
## 2 回复排版(🔴 用户 2026-10-01 定稿,照抄即可)
|
||||
|
||||
@@ -81,18 +84,26 @@
|
||||
✅ 正解:结论**同时**落三处 —— `SKILL.md` 第一屏(会被读)+ `pitfalls.md` 一条(有来龙去脉)+ 本档一条规矩(约束以后怎么写)。
|
||||
- 🔴 **配套**:凡"换会话容易忘、忘了就会重来"的结论,**优先放第一屏**,⛔ 不要塞进长文档。
|
||||
|
||||
## 9 🔴 只写正向范围,⛔ 不写「不用于 XXXX」(2026-10-07 用户令)
|
||||
## 9 🔴 一律用肯定表述("要什么"优先)(2026-10-07 + 2026-10-09 用户令)
|
||||
|
||||
**技能与文档的「用途/范围」段一律写"用于什么"**,⛔ 不列"不用于 A/B/C"。
|
||||
**写或改技能与规则文件时,一律写"要什么、怎么做"** —— **新建、生成时同样适用**(⛔ 不只管"修改")。
|
||||
落点(都是「自动匹配面 / 每轮注入面」):技能的 `description` 与首屏 · **每轮注入的排版块与钩子文案** ·
|
||||
技能与文档的「用途/范围」段 · 其它规则正文。⛔ 不写「不要 A/B/C」这类负向描述。
|
||||
|
||||
- **为什么(机制性,不只"占地方")**:技能的 `description` 与首屏是**自动匹配面**(技能靠描述匹配被加载)
|
||||
⇒ 在里面列"不用于 X",等于**把 X 这些词喂进匹配面** ⇒ **反而更容易被不该命中的请求选中**
|
||||
(实测形态:`draw-ui` 描述里列了「不用于普通插画/海报/故事板」⇒ 用户说"做个海报"时它更可能被选上)。
|
||||
- **例外(用户 2026-10-07 明确给出)**:**经验沉淀可以写"如何避免踩坑"** ——
|
||||
禁令**不删**,但写成「**正向目标 + 依据(曾栽过什么)**」的形态
|
||||
(例:「本方法只出产品视角」+「曾因照英文商业框架产出而跑偏」)。
|
||||
- **为什么(机制性,不只"占地方")**:负向词进匹配面 = **把 X 这些词喂进去** ⇒ 反而更容易命中 X
|
||||
(实测形态:`draw-ui` 描述里列「不用于普通插画/海报/故事板」⇒ 用户说"做个海报"时它更可能被选上);
|
||||
进**注入面**是同一回事 —— 同样的反向拉高。
|
||||
- **例外(按文档性质定,⛔ 不按句子定)**:**以「经验沉淀」或「红线/避坑」为目的**的技能与规则
|
||||
(踩坑记录 · 红线清单 · 反例库 · `pitfalls.md` 这类)**可以写负向** ——
|
||||
写法=「**正向目标 + 依据(曾栽过什么)**」,⛔ 不把禁令单独摆在那儿。
|
||||
- 🔴 **落地(2026-10-09)**:这条口径已写进**每轮注入块**(工作区规则文件的 `REPLY-CORE` 段
|
||||
+ 包内 `03-回复排版-核心块.md`,两份逐字一致),并在 `改包纪律.md` 立为第 5 条硬纪律。
|
||||
此前它**只在本文里**、且只覆盖"用途/范围 段" ⇒ 注入面看不到 ⇒ 我又在注入块里写了一整段负向表述
|
||||
(用户 2026-10-09 点破)。防漂移判据=`selftest.py::t_reply_core_same_source`。
|
||||
- ⛔ **别与"事实陈述"混**:「配置里不含本工作区」「该目录不含 `board.py`」是在**描述事实**,
|
||||
不在本条管辖内 —— 一刀切会把它们误删。
|
||||
- ⚠️ **硬禁令(「三禁」这类)不在本条改写范围** —— 它们是约束本体,强度要留住;
|
||||
本条管的是**描述性文字**与**可选的举例**。
|
||||
|
||||
## 10 🔴 遇阻碍 ⇒ 把目标状态改成「阻碍」⇒ 机制暂停 ⇒ 让用户决策(2026-10-09 用户令)
|
||||
|
||||
|
||||
Reference in new issue
Block a user