Files
dsh_ai1net_server/.workbuddy/session-sync/20260913-同步包-决策方法-6cd67b31.md
T
admin ce8e6ceed9 chore(工作区): 纳入版本控制基线(回收 411 MB 过程产物)
回收 411 MB(470 M → 58.8 M),全部经回收站,可恢复:
- 待清理/(146.2 M,含 relay 分片 128 M 与 42 项过程目录)
- tmp/(32.4 M,按接续棒命名的过程临时区)
- .workbuddy/tmp/(39.5 M)
- 4 份 workbuddy.db 冗余副本(101 M,09-23 事故的坏副本 / 抢救产物)
- tmp/im16/gw/centrifugo 二进制(63.9 M,可重下)+ 缓存残留

入库范围:常驻规则(CODEBUDDY.md / README.md / state.py)、在途接续入口与
接续包、docs/、交付物/、交接单/、归档/、scripts/、.codebuddy/、
.workbuddy/memory/;共 398 件,其中 >60 KB 的 26 件全为文档。

排除(.gitignore):tmp/、待清理/、运行态日志与缓存、*.db 与 DB 备份整目录、
打包二进制(*.tar.gz / *.tgz)、记忆修复前备份。
2026-09-24 07:51:03 +08:00

121 lines
10 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.
# 会话同步包 · 决策方法(`6cd67b31`)
- 生成:2026-09-13 07:35 | 生成会话:`15ee0d4f`(本会话)
- 用途:用户要求「把之前叫做 **决策方法** 的那个会话信息同步到这个会话,好继续执行」
- 结论先行:**目标会话已锁定,但它的原文在本机读不到**(见 §2 三条硬证据);下文是**可用证据复原**出的工作线与未闭环项,逐条标了置信度。
---
## 1. 身份卡(置信度:高)
| 项 | 值 | 证据 |
|---|---|---|
| 会话 id | `6cd67b31-78a5-48ea-ae31-5a16618844f4` | `edge-sync.log` |
| **标题** | **「决策方法」**(`isUserDefined=true` ← **用户亲手改的名**) | `§3.4 RENAME: cid=6cd67b31… title="决策方法" isUserDefined=true` |
| 自动标题(首条消息) | 「把本工作区中所有会话 关于如何改造dsh服务优化功能交互,UI界面的所有我的有效决策以及AI的有效决策,如何确认最优解,整一个思考决策的方法skill」 | `[EB_SYNC_ADDED] sid=6cd67b31…` |
| 创建 | 2026-09-12 **09:32:13** | `[CREATE_ENTER]` @ `2026-09-12T01:32:13.651Z`(UTC) |
| 最后活动 | 2026-09-12 **22:52:40**(生命周期约 13.3 小时) | `§3.4.1 ACTIVITY lastActivityAtMs=1789224760457` |
| 工作目录 | `D:\AI技能\aliyun-dsh-server`(**迁移前的 D 盘路径**) | `[CREATE_ENTER] cwd=…` |
| 交叉印证 | 「| `6cd67b31` | **决策方法** | 09-12 09:32 | 14:42 | **本会话** |」 | `.workbuddy/memory/2026-09-12.md:1110` |
> ⚠️ **易混会话(请确认没找错)**:另有一个**自动命名**含「决策方法」的会话 —— `b58f0293`(09-12 22:55 被自动改名「**参考决策方法逐条判断处理**」,最后活动 09-13 00:09)。它走的是**「逐条判断处理待办」**这条线,09-13 已由 `a2665dd3` 接手继续。**本包按用户「亲手命名过」的口径,锁定 `6cd67b31`。** 若你要的是 `b58f0293`,说一句我立刻换。
---
## 2. 「原文读不到」的三条硬证据(置信度:高)
1. **转录目录里没有它** —— `~/.workbuddy/projects/d-AI技能-aliyun-dsh-server/` 只有 5 份 jsonl,**最晚一份停在 09-12 07:00**(`b2817961`),`6cd67b31` 无文件。
2. **元数据库未收录** —— `~/.workbuddy/workbuddy.db` 的 `sessions` 表**最新行停在 09-12 07:00**(桌面版该库已静态化),`6cd67b31` 不在表里;其标题/改名/活动只能从 `edge-sync.log` 取。
3. **本机无任何内容副本** —— 全 `~/.workbuddy` 检索 `6cd67b31`:**除日志外 0 个文件命中**(会话正文只在云端 EdgeSync)。
⇒ **所以本包不能承诺「原文搬过来了」**;下面是**共享日志 + 文档库 + 实测**三条腿复原的结果。
---
## 3. 工作线复原(按活动时间对齐;每条标置信度)
### 3.1 它建了什么(全部仍在生效)
| # | 产物 | 时间 | 置信度 |
|---|---|---|---|
| 1 | **技能 `dsh-decision-method`**:U1–U19(用户有效决策)/ A1–A14(AI 有效推理)/ X1–X8(反例→规则)/ §4.1 判定矩阵 / §4.2 确认最优解十问 / §4.3 验收分级 L1–L5 / **§4.4 技术实现裁决顺序 8 条** | 09:32 起 | 高 |
| 2 | 用 `scripts/extract-user-voice.py` 抽出**180 条用户真实发言**回补核对 → **U1–U12 里 11 条找到原话**,补上 **U13–U19** | 12:00–12:25 | 高 |
| 3 | **技能 `dsh-feature-first`**(谁定什么 / 9 类白名单 / 只上抛 3 类)+ **§3.6 拆包上抛** | 11:16–11:35 / 14:40 诊断后 | 高 |
| 4 | **「提问闸门」设计**(`PreToolUse` + matcher `^AskUserQuestion$` + `type:prompt`)——今日实测**该条目仍在活动配置里** | 11:54–12:10 | 高 |
| 5 | **边界判据定稿**:「只问**超过现有判断方法边界**的问题」→ 落进**用户级 `MEMORY.md` / 工作区 `MEMORY.md` / `dsh-feature-first §3 头`三处**(md5 `24bbff24…`) | 11:58–12:10 | 高 |
| 6 | **整体评估报告**:必看规则文档分层 A/B/C/D + 并发**不支持自动不冲突** + 自动决策**不能保证**(量化 20 次提问:75% 该问 / 15% 不该问 / 10% 重复问) | 15:00–15:20 | 高 |
| 7 | **A14「删除前三问」**(用户原话:「这也是决策方法——删除东西前要先看看」) | 17:31–17:55 | 中高 |
| 8 | **`SOUL.md` 固定姿势第 5 条「一口气做完,不中途汇报」** + **40+ 回合实测基线(每回合 0–72 次调用、无固定上限)+ 三种已实证错误停法** | 22:26–23:05 | 高(现 SOUL 文本含该基线) |
### 3.2 它的关键结论(现在还在被引用)
- **主对话没有硬回合上限**(`maxTurns` 只作用于子代理)⇒「做一部分就停」是**行为问题**,不是机制限制。
- **工作区 `MEMORY.md` 是唯一「每会话必注入」的通道**(前 200 行自动加载)⇒ 体积必须受控(当时 11.5 KB ≈ 82% 上限,已报警)。
- **技能是「按需触发」,不能算送达** ⇒ 凡「动作前必须生效」的规则必须写进 `CODEBUDDY.md`(今天代码库里这条已成文)。
### 3.3 ⚠️ 它当时查错的一件事(今天是新证据)
它 15:19–15:45 得出的「WorkBuddy 项目指令文件 = `CODEBUDDY.md`、层级如何、改完需重启」**结论正确**;
但它 11:54 把「提问闸门」写进的是 **`E:\ProgramData\.workbuddy\settings.json`** —— 这个**才是活动配置**(`CODEBUDDY_CONFIG_DIR=E:\ProgramData\.workbuddy`)。
而 **2026-09-13 上午两个会话去「修 hooks 路径」时,改的却是 `C:\Users\Administrator\.workbuddy\settings.json`(迁移遗留副本,**不是**活动配置)⇒ 两次都白改**。详见 §4.3。
---
## 4. 它对当前状态的影响 / 本次同步时新查出的事实
### 4.1 它留的待办,现在的状态
| 它当时的待办 | 现状 | 判据 |
|---|---|---|
| ① 已有会话贴规则 | 已不再需要(规则已进 `CODEBUDDY.md` + 用户级 `MEMORY.md`,每会话自动注入) | ✅ |
| ② 消灭「重复问」(§3.6) | 已落 `dsh-feature-first §3.6` | ✅ |
| ③ 工作区 `MEMORY.md` 瘦身 | **75 行 / 11,062 B**(上限是 200 行)⇒ 行数安全 | ✅(字节仍偏大,观察项) |
| ④ 重启后走 `/hooks` 审核验证 hook | **桌面版没有 `/hooks` 面板**(用户 09-12 17:45 实测)⇒ 改走「宿主日志取证」 | 🔄 **见 §4.2** |
| ⑤ `docs-sync-check.sh` 排除 `.doing-*` | 已做(脚本第 47/48/81/89 行都有) | ✅ |
| 档案 77 §八 遗留①(崩溃熔断可无限重来 + 无告警) | 未开档 | ⏳ |
### 4.2 ★本次同步新查出:钩子「能调用,但拦不住」(未闭环)
**证据链(全部来自宿主日志,可复跑)**:
1. 配置在 `E:\ProgramData\.workbuddy\settings.json`(`CODEBUDDY_CONFIG_DIR` 指向它)—— 其中 `Write|Edit` 与 `SessionStart` 两条命令**原本指向 D 盘旧路径**。
2. 宿主日志里能看到它**确实在用那条命令**:
`[HookExecutor] spawn … timeout=10000ms cmd=python "D:/AI技能/…/lock-guard-hook.py"`
→ 紧跟 `[HookExecutor] abnormal exit pid=… code=2`(脚本不存在)⇒ **宿主 fail-closed 拒写**(这就是今天「所有 Write/Edit 被拒」的真根因)。
3. 已把**活动配置**的两条命令改成 E 绝对路径(含解释器),**未动结构、未动提问闸门条目**;备份 `settings.json.bak-20260913-lockpathfix-0725`;改后 **D: 残留 = 0**。
4. 07:30:01 应用重启后,宿主日志出现**新命令**:`[HookExecutor] spawn … cmd="E:/…python.exe" "E:/…lock-guard-hook.py"`,**无 abnormal exit**。
5. **但受保护路径 + 无锁的写入仍然成功了**(`dsh-server-docs/_gate_probe_A.md`),且 `.workbuddy/lock-hook.log` **没有 `PreToolUse-deny` 行**。
6. 同一命令 + 合成载荷手工跑**能正确 deny 并写日志**(07:31:26 有日志行)⇒ 脚本逻辑本身没问题。
7. 源码里载荷契约是 `{hook_event_name, tool_name, tool_input}`(`codebuddy.js` `convertToSdkInput`)——与脚本预期一致。
⇒ **判定**:钩子进程**跑通了但是走了「放行」分支**(脚本对读不懂/不匹配的载荷是 fail-open);**要定位就得采一次真实载荷**(给脚本加一行「原样落盘 stdin」的诊断,脚本改动即时生效、无需重启)。
### 4.3 ★另一处必须记下的事故:改错配置文件(白改两次)
- 今天 06:55 与 07:11 两次「修 hooks 绝对路径」,改的都是 `C:\Users\Administrator\.workbuddy\settings.json`;
- **活动配置是 `E:\ProgramData\.workbuddy\settings.json`**(09-12 18:03 之后**再没被改过**)⇒ 两次都不生效;
- 于是「06:47 会话改完仍报旧路径」被误读成「hook 是会话启动时快照、新开会话即生效」——**真实解释是改错文件**。(顺带解释了 06:53–07:05 的临时目录联接为什么"一建就好":它把 D 盘旧路径接上了。)
---
## 5. 并行会话(**单列,勿与本会话混淆**)
| 会话 | 名称 | 今天的角色 | 现状 |
|---|---|---|---|
| `a2665dd3` | 继续参考决策方法逐条判断处理 | 逐条处理「未闭环」项 | **07:32 起持有全局执行锁(锁名 `未闭环-0732`)**,07:33 在写 `_probe_after_restart.txt`(它也在验钩子) |
| `3c12a818` | 继续检测用户回到dsh页面 | 档案 77 浏览器实测(10/10 全绿) | 已收口 |
| `48a9c14c` | 同步方案规划到会话 | 承接 `ca58e09f`(方案规划) | 07:19 建 |
> 共享日志(`.workbuddy/memory/2026-09-12.md`,3474 行)是**多会话混写**的:本包 §3 的段落归属按「时间窗 + 内容主题」对齐,标了置信度;**未标高的请勿当事实引用**。
---
## 6. 若确要它的一手原文
| 路径 | 可行性 |
|---|---|
| `conversation_search` | 本机近期会话**命中率极低**(09-12 实测 2 次 0 命中) |
| 云端 EdgeSync | 本机**没有出口**(不是网络问题,是桌面版不落盘) |
| 间接源(已做) | 共享日志 + 文档库 + 只读实测 —— **本包即此路线** |
| 唯一真解法 | 会话还在跑时**手动导出/复制**;已结束的会话本机拿不到 |