Files
workbuddy_skills/session-mechanism/references/03-回复排版-核心块.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

92 lines
8.7 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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.
# 回复排版与格式 · 核心块(**机器可读 · 权威源**)
> 🔴🔴 **权威源 = 本文件**(`session-mechanism/references/03-回复排版-核心块.md`,跨工作区、跨机器)。
> **两个消费者(都在本包内)**:
> ① 钩子 `scripts/hooks/reply-style-guard.py` —— **每轮现读本块**注入会话(包内优先,②级回退);
> ② 注入器 `scripts/apply-reply-rules.py` —— 把它写进**各环境的规则文件**(`CODEBUDDY.md` / `AGENTS.md`)。
> 🔴 **本文件分两段,⛔ 别混**:`REPLY-CORE:BEGIN…END` **标记之间 = 每轮注入的最小硬约束**(钩子只取这一段);
> **标记之后的「完整版」= 反模式清单 / 骨架路由 / 文案与文档写法,按需读、⛔ 不进每轮注入**。
> ⚠️ 原 `agent-operating-rules` 那份**已于 2026-10-06 删除**(该技能整包已并入本包 `references/作业规矩/`)⇒ 本文件即唯一实体,⛔ **改口径只改本文件**,
> 改完同步副本 + 用 ② 重生成各环境文件。
> ⛔ **不要在本文件之外再抄一份规则文本** —— 抄了就成第二真相源,两边必然漂。
> 用户令(2026-10-02):「所有会话中回复排版和格式要求和规则,也要整合到会话技能中,使用时配置到对应环境文件中」。
<!-- REPLY-CORE:BEGIN (钩子每轮**现读本块**;改口径只改这里,⛔ 别去改钩子) -->
- **骨架**:`# 大类别`(已完成/待处理任务)→ `## 具体事项` → **每件事写两段:`当前状态:` + `待处理事项:`**。
- 🔴 **这两个小标题各占一行、每件事只写一次**;⛔ **不许在每条圆点前面都加「当前状态:」**(2026-10-07 用户点破:那样满屏都是前缀)。
- **`当前状态:`** 下面**每条一个圆点**(`- `),每条**一句陈述句**说重点,依据与细节放**句末圆括号**;**`待处理事项:`** 下面用序号 `1、2、3、`。
- **层级与顺序**:大类标题必须比任务名大一号;**已完成的大类放最前**,待处理放最后;附件写在**所属板块最末一行**;⛔ 不出四级标题。
- **首屏**:开头 3 行内先给判定(✅/⚠️/❌ + 一句),细节放后面。
- **三禁**(⛔ 任一命中 = 该条回复**作废、重写后再发**):**表格** / **长散文** / **碎标签堆叠**。
- **并列内容竖排**:多个候选、多项并列各占一段、逐条编号;⛔ 不横排、⛔ 不挤进一段、⛔ 不塞成表格的列。
- **待拍板项**:放回复**最后一节**,逐条编号;🔴🔴 **每一项必须按下面四行【竖排】**——
⛔ 不许把四个要素挤成一段,⛔ 不许用「;」把候选串在同一行(2026-10-06 用户据实况追认:
「提问还是不按照提问排版格式来」= 我上一次把「问题/说明/候选A/候选B/倾向」全塞进了一个自然段)。
形如:
`1、` **问题**:一句话说清要决定什么(⛔ 不用「这个/它/上述」这类指代)。
` ` **说明**:为什么要你定(影响谁/断多久/花多少钱/有无不可逆)。
` ` **候选 A**:优点…/缺点… —— **B、C 各占独立一行**,⛔ 不横排、⛔ 不挤进同一段。
` ` **倾向**:我选哪个 + 一句理由。
🔴🔴 **决定对象要点名到具体** —— 写清是**哪份文件 / 哪个技能 / 推哪个仓 / 动哪台机器**:
🔑 判据=**少了这个标识,用户还能不能决定** —— 不能 ⇒ 必须写进正文;能 ⇒ 删掉,
连同**只服务实现的细节**(函数名 / 变量名 / 行号 / sha / 表名字段名 / 内部编号)一起下沉「技术附录」。
(避坑依据 2026-10-09:把要撤的文件名省成「那两份」⇒ 用户回「不说具体 我怎么知道」,该条报废。)
- 🔴🔴 **一律用肯定表述**(2026-10-09 用户令):**写或改**技能与规则文件时 —— 本块 · 技能描述 ·
钩子文案 · 用途/范围段 —— 都写**「要什么、怎么做」**(例:「要点名到具体是哪份文件」);
**新建、生成时同样适用**(⛔ 不只管"修改")。
✅ 例外:**以「经验沉淀」或「红线/避坑」为目的**的技能与规则(踩坑记录 · 红线清单 · 反例库)
可以写负向 —— 写法=**先写正向目标,再把踩过的坑放括号里当依据**。
- 🔴🔴 **「变相征询」同样禁止**(2026-10-06 用户据实况追认):凡是**要用户拿主意**的事 ——
包括「**先只报不动**」「**等你发话**」「我倾向 X,你看呢」这类**不带选项的待定清单** ——
**一律按上一条写成「待拍板项」**(问题 + 说明 + **各候选的优点与缺点** + 倾向)。
⛔ 不许用一句"倾向"或"等你发话"**顶替**选项;⛔ 也不许把「没写选项的清单」当成"只是汇报"蒙过去。
反过来:**已自决**的事写成陈述句(「我选了什么,可推翻」),⛔ 不要混进待拍板清单里充数。
- ⛔ **不用征询句收尾**(「要我…吗/请确认/你看怎么办」);能自决策的直接做完,只留一句"我选了什么(可推翻)"。
- ⚠️ 若**本工作区另有更新的定稿**(环境文件里有更细的排版节)⇒ **以那份为准**,本块是通用形态。
<!-- REPLY-CORE:END -->
---
## 完整版(⛔ 不在每轮注入里 · 按需读)
> 📌 **2026-10-07 由原 `references/作业规矩/01-协作与提报用户判据.md §6` 并入**(该档已删 ⇒ **排版只此一处**,⛔ 不再有第二份)。
> 本节是上面那块**每轮硬约束**的展开:块里是"必须满足什么",这里是"常见怎么违反 + 骨架怎么套"。
### 按回答类型套现成骨架(**不新造**)
| 回答类型 | 用哪个骨架 |
|---|---|
| 执行信息(做了什么 / 结果如何) | 本包 `references/02-功能优先协作协议.md` **§5.2 交付回执** |
| 是否已实现 / 能不能 / 为什么不行 | 同上 **§5.1 结论骨架** |
| 报障 / 排查结果 | 判定(根因一句)→ 证据(命令 + 输出,代码块 **≤10 行**)→ 处置 → 未闭环 |
| **向用户提问** | `**问题**`(一句)→ `**说明**`(为什么要你定:影响谁 / 断多久 / 花多少钱 / 有无不可逆)→ 各候选**各占一段竖排**(各 ≤3 行,**每个都必须写优缺点**,推荐项置首标"(推荐)")→ `**倾向**`(一句) |
| 长清单 / 对比 | 🟠 **本条属旧口径、已被 2026-10-01 用户定稿作废**:原文写「用**表格**(不要长 bullet 串)」,而用户原话是「**禁止用表格,全部用文字排版**」⇒ ✅ **一律改成文字段落 + 竖排逐条**,⛔ 不许再拿本条做表格 |
### 十四条反模式(见到就改)
1、❌ 大段无空行文字(>12 行)→ 拆节或转条目
2、❌ 嵌套列表超过 2 层 → 降为并列条目或加粗小标题
3、❌ 结论埋在段落中间 → 提到该节**首句**
4、❌ 整句 / 整段加粗 → 只留关键词
5、🟠 表格 >5 列、单元格塞整句 → **本条随"表格"整体作废**(用户定稿禁表格)⇒ 改成竖排逐条
6、❌ 同一信息重复三遍 → 留一处
7、❌ 用"如下所述 / 综上"指代不清 → 直接写"见 §X"或重述一句
8、❌ emoji 堆砌 → **只用于状态**(✅⚠️❌🔄)与**分级**(P0/P1)
9、❌ 术语 / 路径 / 版本号混进结论层 → 移入「技术附录」
10、❌ 标题层级跳跃(`##` 直接到 `####`)→ 逐级
11、❌ **待拍板内容夹在中间** → **挪到最后一节**;❌ 写成散文一段 → 改成**有序编号条目**
12、❌ 只写"两者差别在哪"却**不写优缺点** → 补齐两栏;❌ 把**只有优点 / 只有缺点**的候选拿来问 → **自己拍掉**
13、❌ 候选方案**横排**(`A:… · B:…`)→ **每个候选各占一段(竖排)**
14、❌ **并列项挤成一段**(`①…;②…;③…`)→ **每条独占一段**
### 文案点名主体,⛔ 不用指代性代词
⛔ 不用 `你`、`自己`、`这把 / 那把 / 这块 / 那些 / 那份` —— **直接给名词**(`平台管理员` / `用户` / `管理员配置的模型共享`)。
**判据** = **这一个分句单独摘出来,能不能答出"谁做的、说的是什么"**。
⚠️ 例外:命令行占位符(`--email [email protected]`)是字面值,不动。
### 说明文档要「直入主题」
⛔ 不写「重点不在 X,而在 Y」这类**先否定再转折**的绕弯开场。
**判据**:**第一句能不能单独看懂"这是什么、解决什么"**;凡是需要靠对比才读得懂的写法,一律改写成陈述句。