发布:常驻文档按现行形态重写 + 作业规矩/01 先并后删

一、常驻机制文档 references/supervise-persistence.md(整份重写 410→469 行)
- 照抄段由废弃的 start-supervise.ps1 形态,改为现行形态:
  计划任务 collabd-keepalive-<区>(每 5 分钟)→ pythonw.exe → supervise-launch.py → collabd.py --supervise
- 旧 ps1 形态整体降级为「§四 旧形态留痕」(逐条标 🟠,内容一字未删,供读老日志/老进程用)
- 判据订正:LastTaskResult 在长驻运行中是 267009(旧口径「必须 0」属"跑一次就退"时代,已作废);
  BOM 那条随 ps1 形态一并降为历史;另两条仍有效(CODEBUDDY_CONFIG_DIR 空库 / WorkingDirectory 必须是工作区根)
- 删除 assets/start-supervise.ps1.tpl —— SKILL.md、manifest.md、collabd.py、selftest.py 四处早已按「该模板已删除」口径,本次把磁盘与文档对齐

二、references/作业规矩/01 先并后删(用户选定 A 方案:不丢内容 + 只剩一处)
- 判据类并入 references/02-功能优先协作协议.md:
  §3.2 补「规则冲突裁决顺序」「冲突 ≠ 门禁」;§3.3 补回完整语言转换表(原处"已收敛到通用技能"在并包后成了悬空指针);
  §5.3 铁律由五条补到六条 + 接上配套硬红线「只做正向迭代」;新增 §5.5「提报前必答三问 + 回话前自检」
- 排版类并入 references/03-回复排版-核心块.md 的「完整版」段(十四条反模式 / 骨架路由表 / 文案点名主体 / 文档直入主题)
  该段放在 REPLY-CORE 标记之外 ⇒ 每轮注入块逐字未变(实测仍 1172 字符)
- 删除 references/作业规矩/01-协作与提报用户判据.md,并跟改 6 处引用(SKILL.md 第一屏表、作业规矩/00 索引表与两处指针、
  作业规矩/03-多棒接力编排、00 的 frontmatter 变更记录)——含一处二级指针「见 §6 第 0 条」,已改指 03 完整版段

三、判据与卫生
- pitfalls.md:P0-74 去冗余(7107 → 5982 B,重复叙述合并),「沉淀纪律」由 FAIL 1 转绿
- install.py:manifest_files() 补排 logs/ —— 与它自己「运行日志不入表」的口径一致,否则跑一次钩子表就过期
- .gitignore:补 logs/;撤跟踪 logs/_dr_probe.json(钩子输出转储,全包零引用)
- references/manifest.md 用生成器重算:66 份文件,语法失败 0

验收读数:selftest.py rc=0 PASS 99 / FAIL 0(另 1 条报告型不计入);
session-rules-check.py fail 0 / warn 1("此刻无活会话",正常态)/ ok 13;改动文件行尾全 LF。
This commit is contained in:
admin committed 2026-10-07 00:32:47 +08:00
1 parent 9fd120f40b
commit e5dfb6e4ef
14 files changed
+456 -721

No files matched your search

@@ -115,12 +115,34 @@
**不中断在线用户的上线**(传产物 / 换 profile 包 / 改静态页 / 候选池投放)**属边界内的执行细节 ⇒ 做完即上线,自决策**。详见本包 `references/04-决策方法论.md` **U20 / X9**。
- 🔑 **"平台级" ≠ "别人的"**(2026-09-16 收口):`dshs*`·`dsh-*` systemd 单元、`/var/lib/dshs/**`、nginx·nft、端口,**在我们自己的 47 / 106 / 本工作区上 ⇒ 本平台自己的资源 ⇒ 直接做**。只有**别人的 / 归属不明**的才"只报告不动手"。**判据看"归属",不看"是不是平台组件"。**
### 3.3 提报用户格式(**强制**) → **本档 §3.3 即权威**(下方即全表)
**🔀 规则冲突裁决顺序**(同一对象被多条规则给出相反结论时,取**首个命中项**,⛔ 不"自行取保守侧"):
① **开发 / 自用环境的放开条款** → ② **边界内自决策清单**(§2)→ ③ **其余红线**(扩大权限 / 批量写入 / 锁 / uid —— 这几条**永远是硬约束**,不参与裁决)。
> **完整对照表已收敛到通用技能**。**最小摘要**(3 条铁律):
> ① **提报给用户时不出现**包名 / 环境变量 / 文件路径 / commit / API 路径 / 代码标识符 —— 出现即是没转换。
> ② 翻译方向 = **从"技术选项"翻成"用户能感知的差别"**。例:不问「要不要启用 `enablePatch`」,而问「要让用户**自己装插件**,还是只由管理员统一装?」
> ③ **一轮最多一个问题**,且**同类不连问两次**。
⛔ **冲突 ≠ 门禁**:两条规则打架**不构成**提报用户理由;真门禁**只有** §3.2 那三类 + §3.4 八类。
> 📌 上面这段 2026-10-07 由原 `references/作业规矩/01-协作与提报用户判据.md §2` 并入(该档已删 ⇒ 判据只此一处)。
### 3.3 提报用户格式(**强制**) → **本档 §3.3 即权威**(下方含完整对照表)
**三条铁律**:
① **提报给用户时不出现**包名 / 环境变量 / 文件路径 / commit / API 路径 / 代码标识符 —— 出现即是没转换。
② 翻译方向 = **从"技术选项"翻成"用户能感知的差别"** —— 完整对照表见下。
③ **一轮最多一个问题**,且**同类不连问两次**。
**完整对照表**:
| ❌ 技术语言(禁止) | ✅ 用户能感知的语言(必须) |
|---|---|
| 「要不要启用 `enablePatch`?」 | 「要不要让用户**自己装插件**,还是只由管理员统一装?」 |
| 「某环境变量设成哪个档位?」 | 「AI 在你的会话里**能不能直接执行命令**,还是每次都问你一遍?」 |
| 「新会话 vs 改写存量会话事件」 | 「**新开一个会话**就好,还是要我去改你**已有的**会话设置(改完你正在用的会话会变)」 |
| 「限堆 / 内存上限降到 X」 | 「每个用户能用的内存**小一点更安全**,但用户跑大任务时余地也小一点」 |
| 「插件走内投技能还是平台共享技能层」 | 「技能**跟着插件一起装**,还是**单独管理**?」 |
> **规则**:提报用户时**不允许出现**包名、环境变量、文件路径、commit、API 路径、代码标识符。出现即是没转换。
> 📌 本表 2026-10-07 由原 `references/作业规矩/01 §3` 并入(原处写着"完整对照表已收敛到通用技能",
> 而那个技能已并包删除 ⇒ 该指针**曾悬空**;现已把表放回本档,⛔ 不再外指)。
### 3.4 (c) 超出决策方法边界的事 —— **必须问**(用户 2026-09-12 明确)
@@ -266,7 +288,7 @@ AI 交付时**先说功能,技术细节折叠在后**:
> 第 3 段是这条协议的关键:**把"事前请示"改成"事后可推翻"** —— 用户获得了知情权与推翻权,但不需要在读之前做判断。
---
### 5.3 五条铁律(都来自本工作区的真实失手)
### 5.3 六条铁律(都来自本工作区的真实失手)
| # | 铁律 | 反例(实证) |
|---|---|---|
@@ -276,6 +298,19 @@ AI 交付时**先说功能,技术细节折叠在后**:
| 4 | **能自决策的继续做;不能自决策的收到最后一节** —— 能按决策方法自决策 ⇒ **自决策 + 继续处理**(不为"要不要继续"而停);不能自决策(真门禁 / 需凭据·窗口)⇒ **收进整条回复的最后一节,按有序段落逐条编号**(每条 = 问题 + 选项**优缺点** + 我的倾向),⛔ 不许夹在中间,也不许散在正文里问 | 2026-09-15 用户原话:「**能根据决策方法 自行决策的就自决策继续处理,不能决策的问题和需确认内容放在回复的最后,按照有序段落展示**」—— 待拍板项夹在「进度 + 下一步」之间 ⇒ 用户扫不到、漏答 |
| 5 | **提报给用户前先过「取舍筛」**:把候选各写 **优点 + 缺点** —— ① 某个**只有优点**(明显更优)或**只有缺点** ⇒ **不需要用户判断**,自己拍掉再陈述;② 只有**各有优有劣、客观标准分不出高下**(真取舍)才提报用户;③ 提报给用户时**必须逐项列出优点与缺点**(只写"差别在哪"不算);④ 候选**竖排成段**(A / B / C 各占一行),⛔ 不横排、不做成表格的列 | 2026-09-15 用户原话两段:「**需要我确认的方案需要说明优点和缺点,现在没法判断,假如只有优点或只有缺点那不需要我判断**」+「**每个需要我决策的问题的潜在解决方案 A B C 也按照段落式排版,别横着排列**」—— 此前只写"可感知差别"且**横排**,用户**没法判断** |
| 6 | **要解决问题,不是将就妥协** —— 面对风险 / 缺陷**默认目标是解决**;**降级目标 / 延期 / 静默兜底**三种**都不算解决**。只有**客观不可逾越**(技术不可行 / 上游未支持 / 需用户给凭据或窗口)才允许"暂时接受",且必须写明 ① 卡在哪(证据)② 已做到哪一步 ③ **什么条件一出现必须回头解决**。⚠️ 与"最小代价路径"不矛盾:**目标不打折,路径取最小代价** | 用户原话:「**要的是解决问题,不是将就妥协 / 我不要得过且过**」—— 「先这样吧 / 后续再优化 / 我加个兜底」三种都是把目标打折(同族:P0-93「拿兜底当修复」) |
> 📌 第 6 条 2026-10-07 由原 `references/作业规矩/01 §8`(六条铁律)并入(该档已删)。
**铁律 6 的配套硬红线 —— 只做正向迭代**(原 `01 §8.1`):**判据=这个改动是否让项目「任一维度」净变差** —— 目标 / 方向 / 架构 / 功能 / 性能 / 安全 / 交互 / UI / 便利性 / 扩展性?
命中 ⇒ **立即停下复盘**(⛔ 不许"先做着看"、不许将就):
1、写清**劣化在哪一维、代价多大**(证据 / 量级);
2、找出**能保住正向收益的做法**(改小范围 / 换实现 / 分阶段);
3、**拿不出正向做法 ⇒ 立即停止、不再执行,只报告**。
⛔ **三种伪装禁止**:把劣化说成"必要代价"/用"后续再优化"掩盖已知劣化/把劣化项藏进交付不写。
> **自己失误的交代**:只在两种情况下写 —— ① 它**改变了结论**(例:某次改动引入了新问题);② 用户**问根因**。否则放最后一节一行,或先不提。
---
@@ -302,6 +337,27 @@ AI 交付时**先说功能,技术细节折叠在后**:
**待用户拍板项**:位置 = **最后一节**|形态 = **逐条编号**|语气 = **陈述句**。
**去 AI 味**(说话像人):**本档 §5.3** —— 删填充词、破公式、变节奏、信任读者、删金句。
### 5.5 提报前必答三问 + 回话前自检(2026-10-07 由原 `references/作业规矩/01 §4.1/§5` 并入)
**提报给用户前必答三问**(任一条足以自决策,**全答"否"才允许提报用户**):
1、对象是**我们自己的资源**吗?→ 是 ⇒ 自决策。
2、我**查证过**关键不确定点了吗(如"还有谁在用")?→ 没查 ⇒ **先查**,⛔ 不许把"不确定"当提报用户理由。
3、候选排完序,**第一名是否明显更优**?→ 是 ⇒ 自决策。
> ⛔ **禁止把"我有倾向"降级成"建议 + 待你拍板"**:候选能排出优劣 ⇒ **直接做完**,并写一句「我选了什么(可推翻)」。
**发出任何回复前,先查有没有征询句收尾**:「要我…吗 / 是否要我 / 需要我…吗 / 要不要我 / 请确认 / 你看怎么办」。
🔴 **这条自检不能省,钩子替不了它**:拦截类钩子通常只能拦「提问工具」调用,而**真实的提报用户大多发生在正文里**
(实测某工作区日志的提问工具调用数 `43 → 3 → 0 → 0`,因为大家改用正文提问了)⇒ **钩子拦不到正文里的征询句**。
命中征询句 ⇒ **重判三问**:
1、命中**真门禁**吗(不可逆破坏性操作 / §3.4 八类)?**没命中 ⇒ 删掉这句,自己做完,改成陈述句**。
2、我是不是在**把已经定下来的事再问一遍**?是 ⇒ 删。
3、要问的这件事,**候选之间是「真取舍」吗**?**只有优点 / 只有缺点 ⇒ 自己拍掉**;真取舍 ⇒ 才允许问,且**一轮只问这一句**、**逐项写优缺点**。
## 6. AI 自检清单(每次动手前 / 交付前)
**动手前**