docs(skills,handoff): decision-method 2.7.5 / feature-first 1.7.1 / knowledge-upkeep 1.2.0(+8.6 注入预算);T08 归档
This commit is contained in:
1 parent
bda9b10161
commit
744ed98338
5 files changed
+141
-17
No files matched your search
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: dsh-decision-method
|
||||
description: dsh 多租户平台(alotbuy.com)「改造 / 优化功能交互 / UI 界面」的**决策方法论**。当用户提出一个新需求、问「这是不是最优方案 / 还有没有更好的做法」、要在多个方案里选型、要判断某个决策是否该做 / 该不该扩大范围、要**自主给技术实现选取最优解**、或者要复盘「为什么这么定」时使用。核心 = 决策素材库(用户有效决策 **U1-U28** / AI 有效决策 A1-A25 / 反例 X1-X14,**素材源含 180 条用户真实发言**)+ 「如何确认最优解」的十问与判定矩阵 + **技术实现的默认裁决顺序(8 条,AI 自主用、不问用户)** + 决策流程十步 + 交互 UI 改造专项清单 + 决策语言对照表 + **复跑脚本 `extract-user-voice.py`**。**v2.0.0(2026-09-14)结构变更:素材库(U/A/X)已拆到 `references/`,按需读;本文件只留判定核心 + 触发词索引**(索引绑定可识别动作)。**与 dsh-change-workflow 分工:本技能管「怎么想、怎么定」,那个管「怎么落地」。** 与 dsh-feature-first 分工:那个管「谁定什么」,本技能管「怎么定得对」。
|
||||
version: 2.7.4
|
||||
updated_at: 2026-09-15
|
||||
description: dsh 多租户平台(alotbuy.com)「改造 / 优化功能交互 / UI 界面」的**决策方法论**。当用户提出一个新需求、问「这是不是最优方案 / 还有没有更好的做法」、要在多个方案里选型、要判断某个决策是否该做 / 该不该扩大范围、要**自主给技术实现选取最优解**、或者要复盘「为什么这么定」时使用。⛔ **用户点名「决策方法」/「参考决策方法」/「按你的规划」/「别问我」/「自行决策」/「自主决策」⇒ 必须立即加载本技能,不得凭记忆代替**(机制层由钩子 `dsh-server-docs/scripts/skill-load-guard.py` 强制注入加载提醒;2026-09-16 实证:用户点名后 AI 全程 `Skill` 调用 **0 次**)。核心 = 决策素材库(用户有效决策 **U1-U28** / AI 有效决策 A1-A25 / 反例 X1-X14,**素材源含 180 条用户真实发言**)+ 「如何确认最优解」的十问与判定矩阵 + **技术实现的默认裁决顺序(8 条,AI 自主用、不问用户)** + 决策流程十步 + 交互 UI 改造专项清单 + 决策语言对照表 + **复跑脚本 `extract-user-voice.py`**。**v2.0.0(2026-09-14)结构变更:素材库(U/A/X)已拆到 `references/`,按需读;本文件只留判定核心 + 触发词索引**(索引绑定可识别动作)。**与 dsh-change-workflow 分工:本技能管「怎么想、怎么定」,那个管「怎么落地」。** 与 dsh-feature-first 分工:那个管「谁定什么」,本技能管「怎么定得对」。
|
||||
version: 2.7.5
|
||||
updated_at: 2026-09-16
|
||||
created_from: 本工作区 62 份改造档案 + 5 天工作日志(2026-09-08 ~ 09-12)全量提炼
|
||||
agent_created: true
|
||||
---
|
||||
@@ -165,9 +165,38 @@ python3 dsh-server-docs/scripts/extract-user-voice.py --needle 复用价值
|
||||
| **7** | 这个改动是**收窄**还是**扩大**可见面 / 权限? | 收窄可直接做;**扩大 → 回 R5 门禁,先取得确认** |
|
||||
| **8** | 与**官方契约的耦合面**有多大? | 耦合越小越好;**每一处耦合都要写进升级回归清单**(档案 26 六类) |
|
||||
|
||||
**两条硬约束**:
|
||||
**三条硬约束**:
|
||||
1. **第 3 条优先于第 2 条** —— "能配置就不改码":改码要走 build + 重启,而重启**会中断在线用户**(触及 R8);配置改动(尤其静态页)常常即时生效。
|
||||
2. **任一条与红线冲突 → 红线赢**。裁决顺序是在红线之内找最优,不是绕过红线。
|
||||
2. ⚠️ **2026-09-16 修正**:原表述「任一条与红线冲突 → 红线赢」**过宽**,是会话 `ddea70b7` 上抛的诱因 —— 把"平台级 / 全局 ⇒ 只报告不动手"(R7-边界②)当红线读,于是"红线赢"⇒ **该自己做的事被推给用户**。正确表述:**与「真门禁」冲突 → 门禁赢**(真门禁只有两类 ✓ 见 §4.5);**与表述重叠/打架的规则冲突 → 按 §4.5 裁决顺序**。
|
||||
3. 🔀 **规则冲突时按 `R8 → §1 边界内自决清单 → 其余红线` 取首个命中项**,⛔ **不许"自行取保守侧"**(详见 §4.5)。
|
||||
|
||||
### 4.5 规则冲突裁决顺序 + 上抛前三问(**2026-09-16 加,源自会话 `ddea70b7` 复盘**)
|
||||
|
||||
> **案例**:用户要求"完成 guest 迁移",AI 在结尾用「## 四、待你拍板」提了两问(① 106 旧控制面停/留 ② D1–D6 先做哪些)。用户 U6 回:「**D1–D6 先做哪些 按照你的规划执行,中间有问题参考决策方法**」,再两次(U5 / U7)自行给出"删除"的答案。
|
||||
> **代价**:AI 那两问**都不是真门禁** —— 用户不但没被"省事",还多花一轮把答案喂回来;且 AI 全程 `Skill` 调用 **0 次**(用户点名的方法没被取用)。
|
||||
|
||||
**A. 冲突裁决顺序(同一对象被多条规则给出相反结论时)**
|
||||
|
||||
| 序 | 取谁 | 命中即停 |
|
||||
|---|---|---|
|
||||
| 1 | **R8** | 开发环境服务器 ⇒ **该动就动**,只需动手前一句话说明;⛔ 不必等确认 |
|
||||
| 2 | **§1 边界内自决清单** | 部署 / 重启 / 改配置 / nginx·nft / drain / 技术选型 / 命名 / 调参 ⇒ **自决** |
|
||||
| 3 | **其余红线** | R5 权限扩大 / R7 批量写入 / R9 锁 / R10 uid —— **永远是硬约束**,不参与裁决 |
|
||||
|
||||
**B. "平台级" ≠ "别人的"**(本次误判根源)
|
||||
`dshs*`·`dsh-*` 单元、`/var/lib/dshs/**`、nginx·nft、端口,只要在**我们自己的 47 / 106 / 本工作区**上,就是**本平台自己的资源** ⇒ 按 §1 + R8 **直接做**。
|
||||
R7-边界② 的"只报告不动手"**只针对「别人的 / 归属不明」的对象**。**判据看"归属",不看"是不是平台组件"。**
|
||||
|
||||
**C. 上抛前三问 —— 任一条为"是"即自决(不必三问全过)**
|
||||
|
||||
| # | 自问 | 结论 |
|
||||
|---|---|---|
|
||||
| 1 | 对象是**我们自己的**平台资源吗? | 是 ⇒ **自决** |
|
||||
| 2 | 我**查证过**关键不确定点吗?(如"还有谁在用 / 有没有访问记录") | 没查 ⇒ **先查**,⛔ 不许把"我不确定"当上抛理由 |
|
||||
| 3 | 候选按优劣排序后,**第一名是否明显更优**? | 是 ⇒ **自决**(只有"各有优有劣、客观分不出高下"才算真取舍) |
|
||||
|
||||
⛔ **同时禁止**:把"我有倾向"降级成"建议 + 待你拍板" —— 有倾向 ⇒ 直接做完,写一句「我选了什么(可推翻)」。
|
||||
⛔ **冲突 ≠ 门禁**:两条规则打架**不构成**上抛理由。
|
||||
|
||||
**产出**:把 1–8 的答案写进档案的「技术选择」段(一行一条,**含被否决的选项与否决理由**)。
|
||||
→ 这样用户**事后可推翻**、但**事前不被打扰**(对应 `dsh-feature-first` §5 的"默认自主 + 事后可推翻")。
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: dsh-feature-first
|
||||
description: dsh 多租户平台(alotbuy.com)的「功能优先」协作协议 —— **用户只提功能需求,AI 自主完成全部技术决策**。当用户提出任何平台功能/交互需求、报障、或说「我要把精力放在功能搭建上」时使用;也用于 AI 自查「这件事该不该拿去问用户」。核心 = 复盘证据(技术类+报障类占 64%)+ 用户的「功能卡」4 问 + **AI 自主决策的 9 类白名单(永不问)** + **只准上抛的 3 类(功能语义分叉 / 红线门禁 / 超出方法边界)** + **决策方法边界定义(边界外必须问的 8 类)** + 上抛语言转换表 + 报障闭环前置 + 交付回执格式 + 方法本身演进不再上抛 + **§3.6 拆包上抛:红线问题不得与技术方案捆在一起问** · **§3.2 红线按「实际影响面」判、不按「动作名字」判** · **§5.1 结论骨架(答「是否已实现 / 为什么不行」)** + **§5.3 铁律 4–5 / §5.4 硬约束 7–9:待确认项 = 回复的最后一节、逐条编号;每个候选各占一段(竖排、不横排)且必须写「优点 / 缺点」;只有优点或只有缺点 ⇒ 自决、不上抛**(2026-09-15 用户明令)。**配套:`dsh-decision-method`(怎么想)· `dsh-change-workflow`(怎么落地)。**
|
||||
version: 1.7.0
|
||||
updated_at: 2026-09-15
|
||||
version: 1.7.1
|
||||
updated_at: 2026-09-16
|
||||
agent_created: true
|
||||
---
|
||||
|
||||
@@ -97,10 +97,13 @@ agent_created: true
|
||||
### 3.2 (b) 红线门禁 —— 必须用户点头
|
||||
|
||||
- **扩大**权限/可见面(R5)
|
||||
- 会**中断在线用户**(R8)
|
||||
- **批量 / 全仓写入**(R7,>10 文件)
|
||||
- **不可逆的破坏性操作**(删数据 / 迁 DB / 清目录 ⇒ 先出清单)
|
||||
- ⛔ **「中断在线用户」已不是门禁**(2026-09-13 用户明令 + 2026-09-16 收口):`R8` 原文 —— **47 是「开发环境服务器」,不用担心中断用户** ⇒ 重启服务 / 停实例 scope / drain / 改配额·env / 改 nginx·nft **均可直接做**,只需**动手前一句话说明**在动什么。
|
||||
⚠️ **原表述「只有真会中断的(重启服务 / 停实例 / drain / 改配额·env / 改 nginx·nft)才上抛」是会话 `ddea70b7` 上抛的直接依据** —— AI 据此把"106 旧控制面要不要停"拿去问用户,而**用户随后两次(U5 / U7)自己给出"删除"**。⛔ 别再拿"重启 / 停实例 / nginx"当上抛理由。
|
||||
- ⚠️ **判据:按「实际影响面」判,不按「动作名字」判**(2026-09-13 用户纠正)—— 看到「部署 / 上线 / 生产 / 铺包」就上抛是**过度套用**:
|
||||
**不中断在线用户的上线**(传产物 / 换 profile 包 / 改静态页 / 候选池投放)**属边界内的执行细节 ⇒ 做完即上线,不上抛**;只有**真会中断**的(重启服务 / 停实例 / drain / 改配额·env / 改 nginx·nft)才上抛。详见 `dsh-decision-method` **U20 / X9**。
|
||||
**不中断在线用户的上线**(传产物 / 换 profile 包 / 改静态页 / 候选池投放)**属边界内的执行细节 ⇒ 做完即上线,不上抛**。详见 `dsh-decision-method` **U20 / X9**。
|
||||
- 🔑 **"平台级" ≠ "别人的"**(2026-09-16 收口):`dshs*`·`dsh-*` systemd 单元、`/var/lib/dshs/**`、nginx·nft、端口,**在我们自己的 47 / 106 / 本工作区上 ⇒ 本平台自己的资源 ⇒ 直接做**。只有**别人的 / 归属不明**的才"只报告不动手"。**判据看"归属",不看"是不是平台组件"。**
|
||||
|
||||
### 3.3 上抛语言转换表(**强制**)
|
||||
|
||||
@@ -122,13 +125,13 @@ agent_created: true
|
||||
|
||||
| # | 边界外的类别 | 例子 | 为什么方法判不了 |
|
||||
|---|---|---|---|
|
||||
| 1 | **业务目标与优先级** | 先做哪个功能、这个功能要不要做、值不值得投入 | 方法只能判"**怎么做得最优**",判不了"**该不该做**" |
|
||||
| 1 | **业务目标与优先级** | 先做哪个功能、这个功能要不要做、值不值得投入 | 方法只能判"**怎么做得最优**",判不了"**该不该做**"。<br>⚠️ **出口(2026-09-16 加)**:**方向已定**(用户已说"要做这几个功能 / 该谁处理就开发对应功能")时,"**先做哪个**"若候选有**客观排序**(如"先做能闭环真实缺陷的那项"、"3 项 P0 阻塞真实场景")⇒ **属边界内,自决**。只有"几个都该做、用户对**节奏/取舍**有偏好"才上抛。<br>**实证**:会话 `ddea70b7` 把"D1–D6 先做哪些"归进本类 ⇒ 上抛 ⇒ 用户回「**按照你的规划执行**」(AI 自己其实已排出顺序并写了"我倾向先 D1+D2")|
|
||||
| 2 | **成本与资源承诺** | 买云资源 / 开第三方账号 / 花钱买额度 | 涉及用户的钱,不是技术优劣问题 |
|
||||
| 3 | **对外承诺与合规** | ICP 备案、资质、合同、对外 SLA、对外品牌文案 | 法律与商业后果,超出工程判断 |
|
||||
| 4 | **需要用户提供的第三方凭据 / 审批** | API Key、DNS 权限、企业审批、账号授权 | 只有用户有 |
|
||||
| 5 | **用户体验偏好(无客观优劣)** | 审美与文案语气、默认值取向、提示语措辞 | 没有"更优",只有用户"更喜欢" |
|
||||
| 6 | **影响面超出本平台** | 会波及其他系统 / 他人数据 / 不可逆的对外影响 | 影响半径超出我能判断的范围 |
|
||||
| 7 | **红线门禁**(R5 扩大 / R7 批量>10 / R8 中断在线用户) | — | 安全与影响面变更**必须**用户知情同意 |
|
||||
| 7 | **红线门禁**(R5 扩大 / R7 批量>10 / 不可逆破坏性操作) | — | 安全与影响面变更**必须**用户知情同意。⛔ **不含 R8** —— "中断在线用户"已于 2026-09-13 修正(开发环境服务器 ⇒ 直接做,只须动手前一句话说明) |
|
||||
| 8 | **方法确实判不准** | 两边都无依据、事实不足以判断 | **宁可问,不要卡死** |
|
||||
|
||||
**上抛方式**:这 8 类**照实说人话**说明「你为什么需要他决定」,不要包装成技术选项。
|
||||
@@ -277,7 +280,7 @@ AI 交付时**先说功能,技术细节折叠在后**:
|
||||
> 目标:**30 秒扫到结论,2 分钟看全细节**。适用范围 = **每一轮回复**(执行信息 / 报障答复 / 提问 / 交付回执都算)。
|
||||
> 判据:排版不是为了好看,是为了**能不能被扫** —— 所以下面每条都**可自检**(数得出来)。
|
||||
|
||||
**A. 九条硬约束**
|
||||
**A. 十条硬约束**
|
||||
|
||||
| # | 约束 | 自检怎么数 |
|
||||
|---|---|---|
|
||||
@@ -290,6 +293,7 @@ AI 交付时**先说功能,技术细节折叠在后**:
|
||||
| 7 | **能自决的继续做;不能自决的收进最后一节、逐条编号**(有序段落;埋在中间 = 用户漏看) | 翻到最后一节看是不是拍板项;数它有没有编号 |
|
||||
| 8 | **上抛项必须带「优点 / 缺点」两栏**(只有优点或只有缺点 ⇒ 本不该上抛) | 每个候选是否优缺点各至少一条 |
|
||||
| 9 | **候选竖排成段**(A / B / C **各占一行**)—— ⛔ 不横排、⛔ 不做成表格的列 | 有没有 `A:… · B:…` 一行塞多个候选 |
|
||||
| 10 | **并列内容逐条分段**(2026-09-16 用户明令)—— 凡 `①②③` / `1) 2) 3)` / `首先·其次·最后` 式的**并列项**,**每条独占一段**(一行一条);⛔ **不许用分号或顿号把多条挤在同一段**里(如"① 做A;② 做B;③ 做C")。**适用范围**:修复方向 / 处置步骤 / 原因清单 / 检查项 / 要点 —— 一切"多件事并列"的场合 | 有没有出现 `①…;②…;③…` 串成一段 |
|
||||
|
||||
**B. 按回答类型套现成骨架(**不新造**)**
|
||||
|
||||
@@ -316,6 +320,7 @@ AI 交付时**先说功能,技术细节折叠在后**:
|
||||
11. ❌ **待你拍板的内容夹在中间**(后面还有别的节)→ **挪到最后一节**;❌ 这些内容写成散文一段 → 改成**有序编号条目**(§5.3 铁律 4 · 2026-09-15 用户明令)
|
||||
12. ❌ 只写"两者差别在哪"却**不写优缺点** → 补齐「优点 / 缺点」两栏;❌ 把**只有优点**(或只有缺点)的候选拿来问 → **自己拍掉**(§5.3 铁律 5)
|
||||
13. ❌ 候选方案**横排**(`A:… · B:…` 一行并列,或把候选做成表格的列)→ **每个候选各占一段(竖排)**(§5.3 铁律 5 ④ · 2026-09-15 用户明令)
|
||||
14. ❌ **并列项挤成一段**:如「修复方向(按优先级):① 代理转发失败做短重试…;② 就绪判据从"拿到 token"加严到"端口可连"…;③ admin 属高频入口,可考虑不做空闲回收…」⇒ **每条独占一段**(§5.4 硬约束 10 · 2026-09-16 用户原话「**回复这类内容时,都要段落展示,方便阅读**」)
|
||||
|
||||
**D. "细节完整"≠"全塞正文"**:细节进「技术附录」/ 代码块 / 表格附列;**正文只留"能决定下一步"的信息**。
|
||||
|
||||
@@ -324,10 +329,12 @@ AI 交付时**先说功能,技术细节折叠在后**:
|
||||
## 6. AI 自检清单(每次动手前 / 交付前)
|
||||
|
||||
**动手前**
|
||||
0. **用户本轮点名了某个技能 / 方法吗**(如「参考决策方法」「按你的规划」「别问我」「自行决策」)?—— 点名了 ⇒ **必须先用 Skill 工具加载对应技能**,⛔ 不得以"我已经知道判据"为由跳过。
|
||||
(机制层有 `dsh-server-docs/scripts/skill-load-guard.py` 钩子强制注入提醒 · 2026-09-16 加;实证:会话 `ddea70b7` 用户点名后 AI 全程 `Skill` 调用 **0 次**,仍按旧判据上抛)
|
||||
1. 我手上有一张**功能卡**吗(谁/在哪/做什么/怎样算成功)?没有 → 先问这 4 条,**不要问技术**。
|
||||
2. 我准备上抛的每一件事,**用户能从功能视角判断吗**?不能 → 撤掉,自己定。
|
||||
3. 我上抛的文案里,有没有包名 / 环境变量 / 路径 / commit?有 → 翻译成"能感知的差别"。
|
||||
4. 有没有命中红线(R5 扩大 / R7 批量 / R8 中断)?**按实际影响面判,不按动作名字判**(X9)—— 命中 → 必须上抛,并说明**影响谁、断多久**;**没命中就别拿「这是生产操作」当理由停下**(不中断的上线直接做完)。
|
||||
4. 有没有命中红线(**R5 扩大 / R7 批量>10 / 不可逆破坏性操作**)?**按实际影响面判,不按动作名字判**(X9)—— 命中 → 必须上抛并说明影响面;⛔ **R8 不算门禁**(开发环境服务器 ⇒ 重启 / 停实例 / drain / nginx·nft **直接做**,动手前一句话说明即可);**没命中就别拿「这是生产操作 / 会中断用户」当理由停下**。
|
||||
|
||||
**交付前**
|
||||
5. 我有没有按 §5 的格式给"做了什么 / 你能看到什么"?还是又只给了技术清单?
|
||||
@@ -345,7 +352,8 @@ AI 交付时**先说功能,技术细节折叠在后**:
|
||||
|
||||
## 7. 与其他约定/技能的关系
|
||||
|
||||
- **红线优先级最高**:R1-R8 命中一律先停手 —— 本协议不构成豁免,只约束"该不该问"。
|
||||
- **红线优先级最高**:R1–R7 / R9–R11 命中一律先停手 —— 本协议不构成豁免,只约束"该不该问"。
|
||||
⛔ **唯一例外 = R8**:它已按用户 2026-09-13 明令**修正为"开发环境服务器 ⇒ 不必等确认"** ⇒ **不构成上抛理由**(只保留"动手前一句话说明")。把 R8 当门禁 = 本站最常见的过度上抛(`ddea70b7` 实证)。
|
||||
- **`dsh-decision-method`**:管"怎么想、怎么定"(判定矩阵、十问、验收分级)。本协议管"**谁定什么、用什么语言问**"。
|
||||
- **`dsh-change-workflow`**:管"怎么落地"(六阶段、档案模板、并行调度)。
|
||||
- **`06-工作台UI规范.md`**:前端强制基线,冲突以其实测 Token 为准。
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: dsh-knowledge-upkeep
|
||||
description: dsh 平台文档库 / 项目知识的**维护与纠偏方法**。当发现「文档与现状不符」「同一事实多处打架」「知识越积越碎」「AI 忘了某条规则」「要收敛或重构知识库结构」时使用;也用于定期体检。核心 = 六层知识结构(L0-L5)+ **分层判据(实体 vs 指针)** + Lint 四件套 + **漂移处理 SOP** + **自动化的边界(检测可自动,改写不可自动)** + 今天踩过的 5 个反例。**配套:`dsh-feature-first`(谁定什么)· `dsh-decision-method`(怎么定得对)· `dsh-change-workflow`(怎么落地)。**
|
||||
version: 1.0.0
|
||||
updated_at: 2026-09-12
|
||||
description: dsh 平台文档库 / 项目知识的**维护与纠偏方法**。当发现「文档与现状不符」「同一事实多处打架」「知识越积越碎」「AI 忘了某条规则」「要收敛或重构知识库结构」时使用;也用于定期体检。核心 = 六层知识结构(L0-L5)+ **分层判据(实体 vs 指针)** + Lint 四件套 + **漂移处理 SOP** + **自动化的边界(检测可自动,改写不可自动)** + 今天踩过的 5 个反例 + **§8.6「注入预算」维度**(每轮注入有上限 ⇒ 长文件后半段等于不存在;**先重排、后删减**)。**配套:`dsh-feature-first`(谁定什么)· `dsh-decision-method`(怎么定得对)· `dsh-change-workflow`(怎么落地)。**
|
||||
version: 1.2.0
|
||||
updated_at: 2026-09-16
|
||||
agent_created: true
|
||||
---
|
||||
|
||||
@@ -131,3 +131,70 @@ python3 scripts/docs-consistency.py # 事实:写死取值 + 跨页取值冲
|
||||
5. 两处技能副本 md5 一致吗?推服务器了吗?
|
||||
6. 临时/备份产物清了吗?
|
||||
7. 复数入口都改成"复跑取号"了吗?
|
||||
|
||||
---
|
||||
|
||||
## 8. 文档的「无效信息」分类与高价值写法(2026-09-16 加)
|
||||
|
||||
> **起因**:用户问「AI 会话生成的文档是否有无效信息?是否需要一套方法,写出**简单明了、高价值、且不影响模型阅读**的文档?」
|
||||
> §4 处理的是「漂移」**一类**;本节把它扩成 **六类无效信息** + **不能删的红线** + **写作形态**。
|
||||
|
||||
### 8.1 唯一判据(正反两面)
|
||||
|
||||
> **去掉这一行,下一个会话会不会「做错事」或「变慢」?**
|
||||
> **会 ⇒ 必须留**(还要让它落在首屏);**不会 ⇒ 可删 / 可降级到归档。**
|
||||
|
||||
正面用法(决定"值不值得写"):**这行会改变读者的下一步动作吗?** 不会 ⇒ 它只是背景装饰,压缩或删。
|
||||
|
||||
⛔ **别把"更简洁"当目标** —— 目标是**行为相关性**。把必要的「为什么」删掉,AI 会在同一处**反复摇摆**,那是负收益。
|
||||
|
||||
### 8.2 六类无效信息(2026-09-16 全部亲见,不是理论)
|
||||
|
||||
| # | 类型 | 当日实例 | 处置 |
|
||||
|---|---|---|---|
|
||||
| 1 | **与可执行体不符** | `stop-dialog-guard.py` 注释写「15 万/120」,代码是 `120000/80` | ⛔ 以**代码 / 实测**为准改注释,不是反过来 |
|
||||
| 2 | **过期结论仍占"生效位"** | 记忆里「hook 确实在生效(09-13 取证)」——当天已被推翻 | **不删**:标注「已推翻 + 新结论 + 日期」,保留纠偏轨迹 |
|
||||
| 3 | **同一事实多处重复** | 同一技能在本机 / 文档库 / 镜像三副本 | 收敛到**单一来源**,其余只留指针(§2) |
|
||||
| 4 | **过程流水挤掉结论** | 日志里「我做了什么」淹没了「现在是什么状态」 | **结论前置**;流水降级到日志 / 附录 |
|
||||
| 5 | **中间产物混进正式文档** | 项目根 `_tmp_*`、`_中间产物_待清理/`(239 文件) | 集中到归档区,永不进正式文档;收尾清 |
|
||||
| 6 | **只写"给人看的套话"** | 「这个很重要」「要注意」—— 不含任何判据 | 换成**可执行判据**:什么条件下、做什么动作 |
|
||||
|
||||
### 8.3 ⛔ 不能删的红线(「不影响模型阅读」的边界)
|
||||
|
||||
**删「结论的装饰」,留「判断的依据」。** 以下五类删了会直接坏事:
|
||||
|
||||
1. **判据与阈值**(数字 / 边界条件 / 优先级)
|
||||
2. **命令原文与路径** —— 删了 AI 得重新试错,这是**最贵的成本**
|
||||
3. **反例与踩坑**(现象 → 根因)
|
||||
4. **「为什么」(决策依据)** —— 删了会在同一处反复摇摆
|
||||
5. **失效 / 作废标注** —— 删了会让旧做法「复活」
|
||||
|
||||
### 8.4 高价值文档的形态(动笔前先定这五条)
|
||||
|
||||
1. **结论先行** —— 首屏 3 行给判定
|
||||
2. **状态与流水分离** —— 状态(现在是什么)= 常驻;流水(怎么变的)= 追加 ⇒ **分文件放**
|
||||
3. **一事实一处** —— 其余给指针
|
||||
4. **可执行** —— 给命令 / 判据 / 路径;⛔ 不给"建议注意"
|
||||
5. **排版** —— 按 `dsh-feature-first §5.4`(每节 ≤7 行 / 表格 ≤5 列 / **并列项各占一段**)
|
||||
|
||||
### 8.5 自检三问(贴出去之前过一遍)
|
||||
|
||||
1. **读者是「下一个会话」**(不是人)—— 它读完能**直接动手**吗?
|
||||
2. 这份里**有多少行会改变下一步动作**?占比低 ⇒ 该压缩。
|
||||
3. 我删掉的每一行,**有没有落在 §8.3 的红线**里?
|
||||
|
||||
### 8.6 「注入预算」维度 —— 长文件的后半段等于不存在(2026-09-16 加,实测)
|
||||
|
||||
> §8.1–§8.5 用「**行为相关性**」判该不该留。另有一条**独立于内容质量**的约束:
|
||||
> **每轮注入是有上限的** —— 超出上限的部分宿主不会给模型,**效果上等于这段不存在**。
|
||||
|
||||
- **实测(2026-09-16)**:用户级 `MEMORY.md` 20,977 B / 11,712 chars,宿主**注入上限 ≈ 4,000 chars**。原排序下窗口只覆盖「钩子配置 + 环境路径」,**整节 `Preferences`(全部行为规则)落在窗口外** ⇒ 规则没写错,是**排序错**。
|
||||
- **⇒ 判据升级**:一份「每轮都要生效」的文件要同时过 **两条** —— ① 每行都过 §8.1 的判据;② **体量 ≤ 注入上限**(或硬规则必须全部落在窗口内)。超限时**先重排、后删减**:重排零损失,删减有丢规则风险。
|
||||
- **⛔ 不要用「删内容」解决超限**,正确顺序是:
|
||||
1. **分类** —— 哪些是「每轮必须生效」(硬规则 / 事故级事实 / 禁令),哪些是「查阅型」(历史细节 / 取证过程 / 个别项目偏好)
|
||||
2. **把硬规则整体排到最前**,使注入窗口正好覆盖它们
|
||||
3. 查阅型内容留在窗口外**不算丢失**(本机仍可读),只需在其上方留一行指针
|
||||
4. 重排仍不够才压措辞 —— 且**受压的必须是查阅型,不得压判据与命令原文**(§8.3)
|
||||
- **📌 排序契约(防复发)**:文件头必须显式写明「**注入上限 ≈ N 字符;排序即重要性;新增内容按序插入对应小节,⛔ 不要追加到末尾**」。少了这一行,下一次追加就会把重要规则顶出窗口 —— 这是**慢性失效**,没有任何报错。
|
||||
- **适用面**:一切「每轮注入」的文件 —— `MEMORY.md`、`CODEBUDDY.md`、`.codebuddy/rules/*.md`、各技能的 `description`。
|
||||
- **可复跑自检**:`wc -c <file>` ÷ ~1.8 ≈ 字符数,与上限比;**更直接的判据 = 看注入块结尾有没有被截断**(结尾被截断 ⇒ 已有内容在静默失效)。
|
||||
@@ -0,0 +1,20 @@
|
||||
# T08 执行标记(已释放,2026-09-16 归档)
|
||||
|
||||
> 来源 = `交接单/.doing-T08/`。该标记自述 **「本轮结束已释放」**,T01–T08 已全完成归档 ⇒
|
||||
> 按 2026-09-16 用户「相关问题都修复」指示**整体移入归档区**(⛔ 未删内容;R9「禁删锁」指活跃锁,本标记已自述释放)。
|
||||
|
||||
### 原 `.doing-T08/OWNER` 全文
|
||||
|
||||
占用者: exec-cluster-1a(本轮结束已释放)
|
||||
状态: **T08 全部完成** —— 集群化 S0–S7 + 真跨机 + 生产整体切换(功能已验证)+ R4 文档库并入代码仓
|
||||
拓扑(**用户确认的口径,勿改**):
|
||||
· 47 = Manager(deployMode=cluster,控制面库 = 47 上的 PG13 /var/lib/dshs-pg,单元 dshs-pg)
|
||||
+ **Worker w-47(19100)** ← **有意设计**:要跑 admin 的实例;存量用户数据也在 47(零搬运)
|
||||
· 106 = Worker w-106(19000,经 SSH 反向隧道)← 承载新用户
|
||||
· 归属:admin/guest → w-47;新用户首次触达工作区即钉住并落 w-106
|
||||
已实测: admin 实例落在 w-47(w-47 instances=1 / w-106=0;47 scope=1;Host: admin.alotbuy.com 实例页 ✓)
|
||||
回滚: rm -f /etc/systemd/system/dshs.service.d/cluster.conf && systemctl daemon-reload && systemctl restart dshs
|
||||
lib 回滚: cp -a /opt/dsh/backups/lib-20260915-175116/lib /opt/dshs/lib
|
||||
残留小项(见 03-路线图 §二 🟡): join-worker.sh 一键装机 | 隧道服务化(心跳重建)| 集中日志/metrics | smoke-domain 定性
|
||||
称谓铁律: 「本机」= 跑 WorkBuddy 的开发机;47/106 一律写「远程服务器」
|
||||
锁: 已释放
|
||||
File renamed without changes.
Reference in new issue
Block a user