@a9i5k4/dsh-auto-memory 2.2.6 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -10
- package/README.zh-CN.md +22 -10
- package/docs/CONTINUITY-FLOW.md +222 -0
- package/docs/HANDBOOK.md +354 -0
- package/docs/INTEGRATION-ANALYSIS.md +348 -0
- package/docs/M-CM7-HANDOFF-LAYERED-RETRIEVAL.md +311 -0
- package/docs/M8-MEMORY-HUB.md +1 -1
- package/docs/PROMPT-PACK-LAYERED-RECALL.md +474 -0
- package/docs/PROMPT-SET-STRICT.md +389 -0
- package/docs/RELEASE-GO-NOGO.md +82 -0
- package/docs/ROADMAP.md +162 -0
- package/docs/STATUS-BOARD.md +147 -0
- package/docs/USER-GUIDE.en.md +382 -0
- package/docs/USER-GUIDE.zh-CN.md +382 -289
- package/docs/prompts/EXEC-ORDER.md +77 -0
- package/docs/prompts/FEEDING-SCRIPT.md +174 -0
- package/docs/prompts/FEEDING-SEQUENCE.md +61 -0
- package/docs/prompts/FIX-AGENT-M8-2b.md +119 -0
- package/docs/prompts/FIX-AGENT-P11.md +97 -0
- package/docs/prompts/FIX-AGENT-P12-FULL-REGRESSION.md +135 -0
- package/docs/prompts/FIX-AGENT-P12.md +113 -0
- package/docs/prompts/FIX-AGENT-P13-PYTHON-RANK.md +100 -0
- package/docs/prompts/FIX-AGENT-P8.md +120 -0
- package/docs/prompts/FIX-AGENT-P9.md +110 -0
- package/docs/prompts/FIX-AGENT-P9a.md +94 -0
- package/docs/prompts/FIX-AGENT-P9d.md +114 -0
- package/docs/prompts/FIX-AGENT-TEMPORAL-ARM.md +148 -0
- package/docs/prompts/LIVE-VERIFY-ZCODE.md +105 -0
- package/docs/prompts/M8-1-fact-metadata.md +45 -0
- package/docs/prompts/M8-2-ADJUDICATION.md +98 -0
- package/docs/prompts/M8-2-importance-wiring.md +42 -0
- package/docs/prompts/M8-2b-evidence-pipeline.md +52 -0
- package/docs/prompts/M8-3-enable-verify.md +49 -0
- package/docs/prompts/M8-R-REPORT.md +156 -0
- package/docs/prompts/M8-R-research.md +67 -0
- package/docs/prompts/P1-l0-index.md +30 -0
- package/docs/prompts/P10-importance-calibration.md +45 -0
- package/docs/prompts/P11-silent-catch-observability.md +43 -0
- package/docs/prompts/P2-semantic-recall.md +30 -0
- package/docs/prompts/P3-fusion.md +28 -0
- package/docs/prompts/P4-l0-response.md +28 -0
- package/docs/prompts/P5-handoff-anchor.md +28 -0
- package/docs/prompts/P6-ledger-weight.md +27 -0
- package/docs/prompts/P7-write-fix.md +26 -0
- package/docs/prompts/P8-rrf-wiring.md +47 -0
- package/docs/prompts/P9-REVIEW-DECISION.md +95 -0
- package/docs/prompts/P9-evidence-write-coverage.md +113 -0
- package/docs/prompts/README.md +105 -0
- package/docs/prompts/ZCODE-DROPIN.md +229 -0
- package/docs/prompts/_COMMON.md +88 -0
- package/lib/client.js +36 -2
- package/lib/context-host.js +77 -2
- package/lib/evidence-agg.js +81 -0
- package/lib/fact-store.js +32 -0
- package/lib/handoff-anchor.js +114 -0
- package/lib/index.js +402 -43
- package/lib/l0-extract.js +149 -0
- package/lib/l0-index.js +239 -0
- package/lib/m7-wire.js +4 -3
- package/lib/memory-importance.js +70 -0
- package/lib/python-setup.js +16 -4
- package/lib/recall-fusion.js +99 -0
- package/lib/shadow-retrieval.js +2 -2
- package/lib/storage-manage.js +17 -0
- package/lib/subagent-gc.js +8 -1
- package/lib/temporal-parse.js +159 -0
- package/package.json +1 -1
- package/python/worker_semantic_v1.py +28 -1
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
## 附:执行顺序建议(v2,反映 M8-R 已执行完毕的现状)
|
|
2
|
+
|
|
3
|
+
```
|
|
4
|
+
批次 1(并行,互不干扰,可分给不同 Agent)
|
|
5
|
+
├─ P1 L0 索引 (新增 lib/l0-index-pre.js,不接线,删文件即回滚)
|
|
6
|
+
├─ P5 接续锚点表 (改 index.js 的 buildContinueCarry 单一函数)
|
|
7
|
+
├─ P7 写入侧修复 (改 index.js 写入函数:标题重复 / 白板老化)
|
|
8
|
+
└─ M8-1 Fact 元数据补强 (改 lib/fact-store-pre.js 增量,不动 M8 其他文件)
|
|
9
|
+
|
|
10
|
+
批次 2(依赖 P1)
|
|
11
|
+
└─ P2 语义臂接入 recall (改 index.js 的 recall())
|
|
12
|
+
|
|
13
|
+
批次 3(依赖 P2)
|
|
14
|
+
└─ P3 融合层改造 (改 lib/semantic-js-pre.js:rank-space + 绝对分数)
|
|
15
|
+
|
|
16
|
+
批次 4(依赖 P3)
|
|
17
|
+
└─ P4 返回 L0 + 按需展开 (改 index.js 的 recall() 返回结构)
|
|
18
|
+
|
|
19
|
+
批次 5(依赖 P5)
|
|
20
|
+
└─ P6 账本权重化截断 (新增 lib/handoff-anchor-pre.js + index.js 接线)
|
|
21
|
+
|
|
22
|
+
批次 6(建议 P3 之后,避免权重叠加冲突)
|
|
23
|
+
└─ M8-2 evidence → importance 接线
|
|
24
|
+
(新增 lib/memory-importance-pre.js;若 P3 未完成则只交付纯函数不接线)
|
|
25
|
+
|
|
26
|
+
批次 7(需用户书面确认后才投喂)
|
|
27
|
+
└─ M8-3 M8 启用 + live 验证(改 index.js 的 memoryHubEnabled 默认值一行)
|
|
28
|
+
|
|
29
|
+
── 以下为 2026-09-09 收官后补做段(M8-2 目标未达成,见 M8-2-ADJUDICATION.md)──
|
|
30
|
+
|
|
31
|
+
批次 8(依赖 P3 已交付 + P1/P2/P4;修复 P2 语义臂实效性)
|
|
32
|
+
└─ P8 RRF 接线进 recall(替换字典序排序,默认开启 + legacy 回退)
|
|
33
|
+
|
|
34
|
+
批次 9(依赖 P8)
|
|
35
|
+
└─ M8-2b evidence 聚合层 + importance 加权接入
|
|
36
|
+
|
|
37
|
+
批次 10(M8-2b 验收后数据源瓶颈,P9 已排查完)
|
|
38
|
+
└─ P9a correction 修复(唯一投喂项,重设计:单条归因到最近被 cite 记忆)
|
|
39
|
+
└─ P9d success 时间戳缺陷修复(**结构性断裂,立即做,优先于观察**)
|
|
40
|
+
├─ P9b success 观察(**P9d 之后**才观察:5/30 分钟窗口命中量级)
|
|
41
|
+
└─ P9c reuse 延后(与 success 合并为"有用性信号补全"段,之后定)
|
|
42
|
+
|
|
43
|
+
批次 11(低风险、可与 P9 并行,建议尽早做)
|
|
44
|
+
└─ P11 fail-soft 空 catch 统一可观测
|
|
45
|
+
|
|
46
|
+
批次 12(顺序后移:待 success/reuse/correction 有真实数据后再标定)
|
|
47
|
+
└─ P10 importance 效应定标(w 可配置 + 翻转率实测)
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## 冲突提示(务必遵守)
|
|
51
|
+
|
|
52
|
+
1. **P2/P3/P4 与 P5/P6 都会改 `lib/index.js`**。若并行执行,必须**串行投喂、逐段 `git diff` 验收**,避免同文件改动互相覆盖。
|
|
53
|
+
2. **M8-1 与 P 系列零文件交集**(M8-1 只碰 `lib/fact-store-pre.js`),可与批次 1 完全并行。
|
|
54
|
+
3. **M8-2 与 P3 有概念耦合**(importance 参与融合排序):P3 先做,M8-2 后做;顺序颠倒会导致两次改同一融合公式。
|
|
55
|
+
4. **M8-3 永远最后**:它是行为开关,必须等 M8-1/M8-2 落地且五套基线全绿之后再确认执行。
|
|
56
|
+
|
|
57
|
+
## M8-R 调研状态
|
|
58
|
+
|
|
59
|
+
**已执行完毕**(2026-09-09),报告见 `M8-R-REPORT.md`。选型 = **A+(保留三层 + 叠加 epistemicStatus 字段 + 补时间三价 + importance 接线)**。`M8-R-research.md` 任务书保留存档,无需再投喂。
|
|
60
|
+
|
|
61
|
+
## P8 / M8-2b 补做说明(2026-09-09 裁决)
|
|
62
|
+
|
|
63
|
+
M8-2 的排序目标**未达成**:纯函数已交付(`311e2e8`),但接线点在当时不存在。经实读代码核实后裁决为**不降级,拆两段补做**:
|
|
64
|
+
|
|
65
|
+
- **P8**:`recall()` 当前是**字典序排序**(`b.lex - a.lex || (b.sem||0) - (a.sem||0)`),语义臂仅在词法分相等时打破平局 → P2 的语义臂"接了但没用"。P3 交付的 `rankFusionRRFPre` 经 grep 确认**零引用**。本段把它接进去,**属缺陷修复,默认开启**。
|
|
66
|
+
- **M8-2b**:evidence 事件**确实落盘**(`~/.dsh/memory/evidence-pre/events/*.jsonl`,按日),只是无人读取(`evidenceFor` 零调用方)。本段补「聚合层 → importance → 接入 P8 融合」全链。
|
|
67
|
+
|
|
68
|
+
完整裁决依据(四条代码证据 + 三条规划缺口认领)见 **`M8-2-ADJUDICATION.md`**。
|
|
69
|
+
|
|
70
|
+
## 全程验收底线(每段完成后核对)
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
git status --short # 改动文件不得超过该段"允许修改"清单
|
|
74
|
+
git diff --stat # 最小 diff,无整文件重写
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
五套 smoke 基线不得下降:**l0-extract 18 / handoff 51 / continue-chain 58 / water-step 12 / autocont-host 29**(M8-1 追加 fact store ≥41 断言)。
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# 轮次投喂脚本(FEEDING-SCRIPT)
|
|
2
|
+
|
|
3
|
+
> 用法:每个轮次 = **新开一个干净会话**,把下方开场模板 + 两个材料文件**全文粘贴**给 Agent。
|
|
4
|
+
> 轮次 1–4 可分给 4 个不同 Agent 同时跑;只有一个 Agent 就按顺序 1→2→3→4。
|
|
5
|
+
> 每轮验收通过后 **git commit 一次**(便于回滚归因),再进下一轮。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 〇、每次投喂的固定开场模板(每次都要带)
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
你是本次任务的执行 Agent,工作目录 D:\dsh-auto-memory。
|
|
13
|
+
下面给你两份材料:【材料一】通用前置约束,必须全部遵守;【材料二】你的唯一任务。
|
|
14
|
+
执行顺序:先按材料二的「需先检索的仓库路径与符号关键词」用 Grep 定位真实符号与行号,
|
|
15
|
+
回报定位结果后再实施;完成后按材料二的「完成自检」逐项回报。
|
|
16
|
+
仓库实际代码与材料描述不符时,以实际代码为准并明确指出差异;
|
|
17
|
+
无法定位或信息不足立即停止回报,禁止猜测,禁止整文件重写。
|
|
18
|
+
|
|
19
|
+
======== 材料一 ========
|
|
20
|
+
(粘贴 _COMMON.md 全文)
|
|
21
|
+
|
|
22
|
+
======== 材料二 ========
|
|
23
|
+
(粘贴当轮任务文件全文)
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 一、每轮之后的固定验收(你来跑,约 1 分钟)
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
cd D:/dsh-auto-memory
|
|
32
|
+
git status --short # 改动文件不得超过该轮"允许"清单
|
|
33
|
+
git diff --stat # 最小 diff,无整文件重写
|
|
34
|
+
# —— 十三套基线(收官后实测值,数字不得下降)——
|
|
35
|
+
node tests/smoke/smoke-test-m73-pre.mjs 2>&1 | tail -1 # 59
|
|
36
|
+
node tests/smoke/smoke-test-handoff-anchor-pre.mjs 2>&1 | tail -1 # 42
|
|
37
|
+
node tests/smoke/smoke-test-m81-hub-pre.mjs 2>&1 | tail -1 # 39
|
|
38
|
+
node tests/smoke/smoke-test-p4-recall-l0-pre.mjs 2>&1 | tail -1 # 34
|
|
39
|
+
node tests/smoke/smoke-test-memory-importance-pre.mjs 2>&1 | tail -1 # 17
|
|
40
|
+
node tests/smoke/smoke-test-l0-extract-pre.mjs 2>&1 | tail -1 # 18
|
|
41
|
+
node tests/smoke/smoke-test-handoff-pre.mjs 2>&1 | tail -1 # 51
|
|
42
|
+
node tests/smoke/smoke-test-continue-chain-pre.mjs 2>&1 | tail -1 # 58
|
|
43
|
+
node tests/smoke/smoke-test-water-step-pre.mjs 2>&1 | tail -1 # 12
|
|
44
|
+
node tests/smoke/smoke-test-autocont-host-pre.mjs 2>&1 | tail -1 # 29
|
|
45
|
+
# 另有 l0-index / recall-fusion / fact-store 等新增套件,按各轮"应产出"核对
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
> 若某个 smoke 文件名与实际不符,先 `ls tests/smoke/` 确认真实文件名再跑——**文件名以仓库实际为准**。
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## 二、轮次表
|
|
53
|
+
|
|
54
|
+
### 批次 A(轮次 1–4,互相零冲突,可并行)
|
|
55
|
+
|
|
56
|
+
**轮次 1 · P1 L0 向量索引**(纯新增,删文件即回滚)
|
|
57
|
+
- 投喂:`_COMMON.md` + `P1-l0-index.md`
|
|
58
|
+
- Agent 要读的仓库文件:`lib/l0-extract-pre.js`、`lib/memory-index-pre.js`、`lib/semantic-js-pre.js`、`lib/m4-corpus-pre.js`
|
|
59
|
+
- 应产出:`lib/l0-index-pre.js`、`tests/smoke/smoke-test-l0-index-pre.mjs`
|
|
60
|
+
- 额外验收:新 smoke 全绿;`git status` 只新增这 2 个文件
|
|
61
|
+
|
|
62
|
+
**轮次 2 · P5 接续锚点表**
|
|
63
|
+
- 投喂:`_COMMON.md` + `P5-handoff-anchor.md`
|
|
64
|
+
- Agent 要读的仓库文件:`lib/index.js`(定位 `buildContinueCarry` / 三处 `slice`)
|
|
65
|
+
- 应产出:`lib/index.js` 最小 diff
|
|
66
|
+
- 额外验收:handoff 51 / continue-chain 58 不降;回报里必须有"相同输入两次注入 hash 一致"的断言证据
|
|
67
|
+
|
|
68
|
+
**轮次 3 · P7 写入侧修复**
|
|
69
|
+
- 投喂:`_COMMON.md` + `P7-write-fix.md`
|
|
70
|
+
- Agent 要读的仓库文件:`lib/index.js`(账本/白板写入函数)、`lib/memory-writer-pre.js`
|
|
71
|
+
- 应产出:`lib/index.js` 最小 diff
|
|
72
|
+
- ⚠️ 开工前先备份:`cp -r ~/.dsh/memory ~/.dsh/memory-backup-$(date +%m%d)`
|
|
73
|
+
- 额外验收:既有账本/白板文件内容零丢失
|
|
74
|
+
|
|
75
|
+
**轮次 4 · M8-1 Fact 元数据补强**
|
|
76
|
+
- 投喂:`_COMMON.md` + `M8-1-fact-metadata.md`
|
|
77
|
+
- Agent 要读的仓库文件:`lib/fact-store-pre.js`、`lib/index.js`(定位 `hubIo`)
|
|
78
|
+
- 应产出:`lib/fact-store-pre.js` 增量 diff + 新断言
|
|
79
|
+
- ⚠️ 内置硬停止:`hubIo()` 查不到 → Agent 必须停下回报,不许猜
|
|
80
|
+
|
|
81
|
+
### 批次 B(主链串行,P1 完成后开工)
|
|
82
|
+
|
|
83
|
+
**轮次 5 · P2 语义臂接入 recall**(前置:轮次 1 完成)
|
|
84
|
+
- 投喂:`_COMMON.md` + `P2-semantic-recall.md`
|
|
85
|
+
- Agent 要读的仓库文件:`lib/index.js`、`lib/semantic-js-pre.js`、`lib/shadow-retrieval-pre.js`、`lib/context-host-pre.js`
|
|
86
|
+
- 额外验收:`recall(query, limit, agent, scope)` 签名未变;语义引擎不可用时退回纯词法
|
|
87
|
+
|
|
88
|
+
**轮次 6 · P3 融合层改造**(前置:轮次 5)
|
|
89
|
+
- 投喂:`_COMMON.md` + `P3-fusion.md`
|
|
90
|
+
- Agent 要读的仓库文件:`lib/semantic-js-pre.js`、`lib/shadow-retrieval-pre.js`、`lib/context-bridge-pre.js`
|
|
91
|
+
- 额外验收:`fuseD6Pre` 既有行为未被删改(并存);无 score-space 加权 RRF
|
|
92
|
+
|
|
93
|
+
**轮次 7 · P4 返回 L0 + 按需展开**(前置:轮次 6)
|
|
94
|
+
- 投喂:`_COMMON.md` + `P4-l0-response.md`
|
|
95
|
+
- Agent 要读的仓库文件:`lib/index.js`、`lib/memory-index-pre.js`
|
|
96
|
+
- 额外验收:旧调用方式(不传新参数)行为不变
|
|
97
|
+
|
|
98
|
+
### 批次 C(接续链 + M8 后续)
|
|
99
|
+
|
|
100
|
+
**轮次 8 · P6 账本权重化截断**(前置:轮次 2 完成)
|
|
101
|
+
- 投喂:`_COMMON.md` + `P6-ledger-weight.md`
|
|
102
|
+
- Agent 要读的仓库文件:`lib/index.js`、`docs/M-CM7-HANDOFF-LAYERED-RETRIEVAL.md`
|
|
103
|
+
- 应产出:`lib/handoff-anchor-pre.js` + smoke + `buildContinueCarry` 接线
|
|
104
|
+
|
|
105
|
+
**轮次 9 · M8-2 importance 接线**(前置:轮次 6 完成;否则只交付纯函数不接线)
|
|
106
|
+
- 投喂:`_COMMON.md` + `M8-2-importance-wiring.md`
|
|
107
|
+
- Agent 要读的仓库文件:`lib/context-bridge-pre.js`、`lib/fact-store-pre.js`、`lib/procedure-store-pre.js`、`lib/shadow-retrieval-pre.js`、`lib/semantic-js-pre.js`
|
|
108
|
+
- ⚠️ 内置硬停止:`evidenceFor()` 返回结构与 `correctionRate` 口径无法确认 → 停下回报
|
|
109
|
+
|
|
110
|
+
**轮次 10 · M8-3 M8 启用与 live 验证**(⚠️ 最后;投喂前你必须先书面确认三问)
|
|
111
|
+
- 你先回答(在投喂材料开头附上):① 是否同意 `memoryHubEnabled` 默认改 true?② 是否保留回滚开关?③ live 验证由谁做?
|
|
112
|
+
- 投喂:`_COMMON.md` + `M8-3-enable-verify.md`
|
|
113
|
+
- Agent 要读的仓库文件:`lib/index.js`、`docs/M8-MEMORY-HUB.md`
|
|
114
|
+
- 额外验收:Agent 产出 live 验证清单(重启 dsh web / 三栏有内容 / facts.json 落盘 / restore 不丢),由你执行
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
### 批次 D(2026-09-09 收官后补做,修 M8-2 未达成的排序目标)
|
|
119
|
+
|
|
120
|
+
**轮次 11 · P8 RRF 接线进 recall**(前置:P3 已交付)
|
|
121
|
+
- ⭐ **复制即投喂**:直接复制 `docs/prompts/FIX-AGENT-P8.md` 全文(**自包含,硬约束已内联,无需再拼 `_COMMON.md`**)
|
|
122
|
+
- 或按公式投喂:`_COMMON.md` + `P8-rrf-wiring.md`
|
|
123
|
+
- Agent 要读的仓库文件:`lib/index.js`(`recall()` 的 L0 分支)、`lib/recall-fusion-pre.js`、`lib/semantic-js-pre.js`、`lib/shadow-retrieval-pre.js`
|
|
124
|
+
- 应产出:`lib/index.js` 最小 diff + 新断言
|
|
125
|
+
- 额外验收:必须有「lex 相同、sem 不同 → 排序随 sem 变化」的断言;回报须含 **legacy vs rrf 的 top-5 id 序列 diff**(≥3 条查询)
|
|
126
|
+
- 备注:本段是**缺陷修复**(P2 语义臂当前实效为零),默认开启 + `legacy` 回退
|
|
127
|
+
|
|
128
|
+
**轮次 12 · M8-2b evidence 管道 + importance 加权**(前置:轮次 11 完成)
|
|
129
|
+
- ⭐ **复制即投喂**:直接复制 `docs/prompts/FIX-AGENT-M8-2b.md` 全文(**自包含**,无需 `_COMMON.md`)
|
|
130
|
+
- 或按公式投喂:`_COMMON.md` + `M8-2b-evidence-pipeline.md`
|
|
131
|
+
- Agent 要读的仓库文件:`lib/index.js`(`6861-6876` 读取范式)、`lib/context-bridge-pre.js`、`lib/memory-importance-pre.js`、`lib/fact-store-pre.js`、`lib/procedure-store-pre.js`、`lib/recall-fusion-pre.js`
|
|
132
|
+
- ⚠️ Agent 必须**实读一个真实 events 文件**确认行结构(`~/.dsh/memory/evidence-pre/events/*.jsonl`)
|
|
133
|
+
- 应产出:`lib/evidence-agg-pre.js` + smoke + `recall()` 加权接线
|
|
134
|
+
- 额外验收:只读性断言(不写回 events)、空数据返回中性值、有界读取(默认 7 天/末 400 行)
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
**轮次 13 · P9 evidence 写入侧覆盖率排查**(前置:轮次 12 完成;**默认只排查,不改码**)
|
|
138
|
+
- ⭐ **复制即投喂**:`docs/prompts/FIX-AGENT-P9.md` 全文(自包含,硬约束已内联)
|
|
139
|
+
- Agent 要读:`lib/index.js`、`lib/context-bridge-pre.js`、`lib/procedure-store-pre.js` + 真实 events 目录
|
|
140
|
+
- 应产出:实测 kind 分布 + reuse/success/correction 各自根因((a) 未接线 / (b) 条件未满足 / (c) 分流)+ 修复方案(待你批准)
|
|
141
|
+
- 额外验收:`git status` 中 **lib/ 不得有任何改动**(排查段)
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
**轮次 14 · P11 静默 catch 可观测**(无依赖,**建议与轮次 13 并行**)
|
|
145
|
+
- ⭐ **复制即投喂**:`docs/prompts/FIX-AGENT-P11.md` 全文(自包含,可与轮次 13 并行)
|
|
146
|
+
- Agent 要读:`lib/index.js`(recall/接续链路的 catch)、`diag()` 定义处
|
|
147
|
+
- 额外验收:`git diff` **仅含 catch 行**(无控制流改动);给出全仓空 catch 清单与取舍理由
|
|
148
|
+
|
|
149
|
+
**轮次 15 · P10 importance 效应定标**(前置:轮次 13 的 P9 结论)
|
|
150
|
+
- 投喂:`_COMMON.md` + `P10-importance-calibration.md`
|
|
151
|
+
- Agent 要读:`lib/index.js`(dense 臂)、`lib/memory-importance-pre.js`、既有配置读取机制
|
|
152
|
+
- 应产出:`w` 可配置(默认 0.5,行为等价)+ **三档翻转率实测**(w=0/0.5/1,≥10 条真实查询)+ 至少 1 个翻转样例
|
|
153
|
+
- ⚠️ 若没有统一配置机制 → Agent 必须停止回报,不得自造配置文件
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## 三、依赖关系一图
|
|
158
|
+
|
|
159
|
+
```
|
|
160
|
+
轮次1(P1) ──→ 轮次5(P2) ──→ 轮次6(P3) ──→ 轮次7(P4)
|
|
161
|
+
轮次2(P5) ──→ 轮次8(P6) 轮次6 ──→ 轮次9(M8-2) ──→ 轮次10(M8-3,需你确认)
|
|
162
|
+
轮次3(P7)
|
|
163
|
+
轮次4(M8-1)
|
|
164
|
+
轮次6(P3) ──→ 轮次11(P8 RRF 接线) ──→ 轮次12(M8-2b evidence 管道)
|
|
165
|
+
轮次12 ──→ 轮次13(P9 排查) ──→ 轮次15(P10 定标);轮次14(P11) 无依赖可并行
|
|
166
|
+
(1–4 互不依赖,可并行;10 永远最后;11/12 为收官后补做)
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
## 四、常见翻车点
|
|
170
|
+
|
|
171
|
+
1. **只粘任务文件、忘粘 `_COMMON.md`** → Agent 会整文件重写。
|
|
172
|
+
2. **同一会话连喂多轮** → 上下文互相污染;每轮新开会话。
|
|
173
|
+
3. **并行 Agent 同改 `lib/index.js`** → 轮次 2/3 都改它,须串行验收(A 批次里这两轮错开跑);P2/P3/P4 与 P5/P6 同理。
|
|
174
|
+
4. **跳过验收直接下一轮** → 错误跨轮传播,最后归因不了。
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# 投喂顺序(3 段喂 AI + 1 步你做)
|
|
2
|
+
|
|
3
|
+
> 每段**新开一个会话**,复制该段整段文字喂给 AI。AI 完成后停下回报,你验收后再喂下一段。
|
|
4
|
+
> 第 4 段不是喂 AI 的,是你自己执行。
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 第 1 段 · 修 P12(主动联想词项截断)
|
|
9
|
+
|
|
10
|
+
请先阅读以下两个文件,然后严格按里面的 prompt 完成工作:
|
|
11
|
+
|
|
12
|
+
1. `D:\dsh-auto-memory\docs\prompts\_COMMON.md`
|
|
13
|
+
2. `D:\dsh-auto-memory\docs\prompts\FIX-AGENT-P12-FULL-REGRESSION.md`
|
|
14
|
+
|
|
15
|
+
本段目标:修复主动联想路径上「按字典序截断、丢高权重词」的缺陷,跑完九套静态回归,产出「重启后 live 验证清单」。完成后停下回报静态结论,等下一段。
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## 第 2 段 · 加时间检索臂
|
|
20
|
+
|
|
21
|
+
请先阅读以下两个文件,然后严格按里面的 prompt 完成工作:
|
|
22
|
+
|
|
23
|
+
1. `D:\dsh-auto-memory\docs\prompts\_COMMON.md`
|
|
24
|
+
2. `D:\dsh-auto-memory\docs\prompts\FIX-AGENT-TEMPORAL-ARM.md`
|
|
25
|
+
|
|
26
|
+
本段目标:新增中文时间表达解析(纯函数),作为软性第三臂接入记忆检索,查询无时间表达时零行为变更。跑完静态回归后停下回报,等下一段。
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 第 3 段 · 收尾(提交 + 全量回归 + 发版准备)
|
|
31
|
+
|
|
32
|
+
请先阅读以下三个文件,然后严格按里面的清单完成工作:
|
|
33
|
+
|
|
34
|
+
1. `D:\dsh-auto-memory\docs\prompts\_COMMON.md`
|
|
35
|
+
2. `D:\dsh-auto-memory\docs\RELEASE-GO-NOGO.md`
|
|
36
|
+
3. `D:\dsh-auto-memory\docs\STATUS-BOARD.md`
|
|
37
|
+
|
|
38
|
+
本段目标:
|
|
39
|
+
|
|
40
|
+
1. 报告当前工作区状态(含两个未提交文件 `lib/index.js`、`lib/python-setup-pre.js` 的 diff 摘要)
|
|
41
|
+
2. 跑一遍**全量静态回归**(P12 + 时间臂 落地后应新增两套,加上既有九套,共十一套)
|
|
42
|
+
3. 确认所有静态基线全绿后,**停下等你确认**是否把那两个未提交文件一起提交
|
|
43
|
+
4. 你确认后:提交本版本全部改动,并产出最终的「重启后 live 验证清单」
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 第 4 步 · 交给 Zcode 独立验收(推荐,非投喂给开发的 Agent)
|
|
48
|
+
|
|
49
|
+
> **为什么交给 Zcode**:它能**重启 dsh web**(DSH 自己的 Agent 做不到,重启会截断对话)、能**操作 UI**、能**读后台日志**,而且是**独立第三方**——不受"自己写的自己测"的盲区影响。
|
|
50
|
+
|
|
51
|
+
把 `D:\dsh-auto-memory\docs\prompts\LIVE-VERIFY-ZCODE.md` 整段喂给 Zcode(从"你是独立第三方验收 Agent"开始复制到末尾)。
|
|
52
|
+
|
|
53
|
+
它会:重启 → 逐项实测九项(L1 主动联想 / L2 语义检索 / L3 L0 返回 / **T1 时间臂** / L4 M8 / L5 证据落盘 / L6 接续 / L7 写入 restore / P 性能)→ 每项贴证据 → 给 Go/No-Go 结论。
|
|
54
|
+
|
|
55
|
+
**若你更想自己验**(Zcode 不可用时),按下面清单手测:
|
|
56
|
+
|
|
57
|
+
1. 重启 dsh web
|
|
58
|
+
2. 逐项验证(重点 L1 主动联想、L2 语义检索;另补时间臂:用一条含"上周"的查询实测召回按时间提升)
|
|
59
|
+
3. 全部通过后:`node tools/release.mjs <版本号>` 发版
|
|
60
|
+
|
|
61
|
+
> 判据:L2 语义检索失败且 `legacy` 下正常 = P8 回归;T1 中"无时间词查询排序也变了" = 违反零行为变更;任一成立即暂缓发版。
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
> **给使用者的说明**:**P8 验收通过后再投喂本段**。同样自包含(硬约束内联 + 绝对路径),复制时从 `你是一名严谨的修复 Agent` 开始复制到文件末尾。
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
你是一名严谨的修复 Agent。工作目录:`D:\dsh-auto-memory`(Node.js 项目,BSD-3-Clause,v2.2.6,零运行时依赖)。
|
|
6
|
+
|
|
7
|
+
# 任务:补上「evidence 事件 → 聚合 → importance → 参与检索排序」这条管道
|
|
8
|
+
|
|
9
|
+
## 0. 必读文件(绝对路径,先全部读完再动手)
|
|
10
|
+
|
|
11
|
+
- `D:\dsh-auto-memory\lib\memory-importance-pre.js` —— M8-2 已交付的纯函数(**未接线**,本任务消费它)
|
|
12
|
+
- `D:\dsh-auto-memory\lib\context-bridge-pre.js` —— 六类 evidence 写入侧(第 45 行 `ACCESS_KINDS_PRE_V1`)
|
|
13
|
+
- `D:\dsh-auto-memory\lib\procedure-store-pre.js` —— `correctionRate` 口径来源(**必须复用,不得另立一套**)
|
|
14
|
+
- `D:\dsh-auto-memory\lib\fact-store-pre.js` —— `evidenceFor()`(注释称消费侧聚合,**实际零调用方**)
|
|
15
|
+
- `D:\dsh-auto-memory\lib\index.js` —— 第 6861–6876 行附近已有 evidence 事件的**读取范式**(**直接复用,不要另造**);以及 P8 刚改好的 `recall()` 融合入口
|
|
16
|
+
- `D:\dsh-auto-memory\lib\recall-fusion-pre.js` —— P8 接线后的 RRF(**禁止修改**)
|
|
17
|
+
- 真实数据样本:`C:\Users\JH Z\.dsh\memory\evidence-pre\events\*.jsonl`(**必须实读至少 1 个文件确认行结构**)
|
|
18
|
+
|
|
19
|
+
## 1. 问题(已有代码证据,你必须先自行复现验证)
|
|
20
|
+
|
|
21
|
+
- **数据在盘上,只是没人读**:evidence 事件按日落盘为 JSONL,行结构含 `{ kind, memoryId, ts 或 event.ts, ... }`。
|
|
22
|
+
- `evidenceFor` 在 `lib/` 下 grep **仅命中注释**,`lib/index.js` 无 evidence store 实例 → **检索侧拿不到 evidence**。
|
|
23
|
+
- `lib\memory-importance-pre.js` 已交付 importance 纯函数,但**零引用**。
|
|
24
|
+
- 因此 M8-2 的原始目标「importance 参与候选排序」未达成。
|
|
25
|
+
|
|
26
|
+
**请用 grep + 实读一个 events 文件复现以上事实,并在回报中给出真实行号与一条真实事件样本(脱敏后)。**
|
|
27
|
+
|
|
28
|
+
## 2. 目标
|
|
29
|
+
|
|
30
|
+
新增只读聚合层 `lib\evidence-agg-pre.js`:按 `memoryId` 聚合六类计数与去重会话数 → 经 `memory-importance-pre.js` 转 importance → 作为**加权因子之一**接入 P8 已建好的 `recall()` 融合排序。
|
|
31
|
+
|
|
32
|
+
## 3. 硬约束(违反即打回)
|
|
33
|
+
|
|
34
|
+
1. **搜索优先**:每个符号先 grep 到定义处;**events 行结构必须实读真实文件确认,禁止假设字段名**。
|
|
35
|
+
2. **最小 diff**,禁止整文件重写。
|
|
36
|
+
3. **零新依赖**;新模块遵循 `lib\xxx-pre.js` 惯例:**纯函数 + IO 注入,零内置 IO**。
|
|
37
|
+
4. **只读**:聚合层**不得写入**任何文件,尤其不得修改 events 目录。
|
|
38
|
+
5. **fail-soft**:events 缺失/损坏/读取失败 → importance 取中性值,**绝不阻塞检索**。
|
|
39
|
+
6. **不得另立一套纠正口径**:`correction` 的负向处理必须复用 `procedure-store-pre.js` 的 `correctionRate` 口径。
|
|
40
|
+
7. **importance 只能是加权因子之一**,不得成为唯一排序依据。
|
|
41
|
+
|
|
42
|
+
## 4. 改动边界
|
|
43
|
+
|
|
44
|
+
**允许新增**
|
|
45
|
+
- `D:\dsh-auto-memory\lib\evidence-agg-pre.js`
|
|
46
|
+
- `D:\dsh-auto-memory\tests\smoke\smoke-test-evidence-agg-pre.mjs`
|
|
47
|
+
|
|
48
|
+
**允许修改**
|
|
49
|
+
- `D:\dsh-auto-memory\lib\index.js` —— 仅在 P8 建好的融合入口处**加一项加权**(最小 diff)
|
|
50
|
+
|
|
51
|
+
**禁止修改**(绝对路径)
|
|
52
|
+
- `D:\dsh-auto-memory\lib\memory-importance-pre.js`(M8-2 已锁定)
|
|
53
|
+
- `D:\dsh-auto-memory\lib\recall-fusion-pre.js`(P8 已锁定)
|
|
54
|
+
- `D:\dsh-auto-memory\lib\context-bridge-pre.js`(写入侧)
|
|
55
|
+
- `D:\dsh-auto-memory\lib\procedure-store-pre.js`
|
|
56
|
+
- `D:\dsh-auto-memory\lib\fact-store-pre.js`
|
|
57
|
+
- evidence 事件目录(只读,不得增删改)
|
|
58
|
+
|
|
59
|
+
## 5. 验收标准(逐条可验证)
|
|
60
|
+
|
|
61
|
+
1. `evidence-agg-pre.js` 为**纯函数 + IO 注入**,可用 fixture 锁定,结果**确定性**。
|
|
62
|
+
2. 按 `memoryId` 聚合六类计数 + `distinctSessions`,输出形状与 `memory-importance-pre.js` 的**输入契约一致**(以其源码为准)。
|
|
63
|
+
3. **有界读取**:默认最近 7 天 / 每文件末 400 行(沿用 `index.js:6861-6876` 范式),可配置;**不得全量扫描历史**。
|
|
64
|
+
4. **空数据返回中性值**:无 evidence 记录的记忆既不置顶也不沉底。
|
|
65
|
+
5. **只读性断言**:运行前后 events 目录文件哈希不变。
|
|
66
|
+
6. `correction` 为负向;importance **只作为加权因子之一**接入。
|
|
67
|
+
7. 既有基线不降:`memory-importance 17`、`p4 34` 及十三套基线。
|
|
68
|
+
8. 覆盖「读取失败 → 中性值」的 fail-soft 断言。
|
|
69
|
+
|
|
70
|
+
## 6. 停止条件(触发即停下回报,禁止猜测)
|
|
71
|
+
|
|
72
|
+
- 真实 events 文件结构不含 `kind` 或 `memoryId`;
|
|
73
|
+
- `memory-importance-pre.js` 的输入契约无法确认;
|
|
74
|
+
- P8 的融合入口不支持加入加权项(此时应回报"需先扩展 P8 接口",**不得自行改写 `recall-fusion-pre.js`**)。
|
|
75
|
+
|
|
76
|
+
回报格式:
|
|
77
|
+
```
|
|
78
|
+
停止原因:未能定位/确认 <符号/结构>
|
|
79
|
+
已尝试:<搜索词 1>、<搜索词 2>、<路径>
|
|
80
|
+
需要:<澄清问题>
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## 7. 完成后自检(逐项执行并把原始输出贴进回报)
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
cd /d/D/dsh-auto-memory || cd D:/dsh-auto-memory
|
|
87
|
+
|
|
88
|
+
node --check lib/evidence-agg-pre.js
|
|
89
|
+
node --check lib/index.js
|
|
90
|
+
|
|
91
|
+
node tests/smoke/smoke-test-evidence-agg-pre.mjs # 新增
|
|
92
|
+
node tests/smoke/smoke-test-memory-importance-pre.mjs # 17
|
|
93
|
+
node tests/smoke/smoke-test-p4-recall-l0-pre.mjs # 34
|
|
94
|
+
node tests/smoke/smoke-test-l0-extract-pre.mjs # 18
|
|
95
|
+
node tests/smoke/smoke-test-handoff-pre.mjs # 51
|
|
96
|
+
node tests/smoke/smoke-test-continue-chain-pre.mjs # 58
|
|
97
|
+
node tests/smoke/smoke-test-water-step-pre.mjs # 12
|
|
98
|
+
node tests/smoke/smoke-test-autocont-host-pre.mjs # 29
|
|
99
|
+
|
|
100
|
+
# 接口一致性:importance 现在应有调用方
|
|
101
|
+
grep -rn "memory-importance\|evidence-agg" lib/ | head -20
|
|
102
|
+
|
|
103
|
+
git status --short
|
|
104
|
+
git diff --stat
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## 8. 回报必须包含(缺一不可)
|
|
108
|
+
|
|
109
|
+
1. **一条真实 events 行样本**(脱敏)与你据此确认的字段结构
|
|
110
|
+
2. 每处改动写成 `文件路径:行号 — 原内容 → 新内容`
|
|
111
|
+
3. importance 加在融合公式的哪一项、为何不破坏 P8 的 rank-space 结构
|
|
112
|
+
4. 有界读取的具体参数与默认值
|
|
113
|
+
5. 只读性证据(events 目录前后哈希)
|
|
114
|
+
6. 回滚方式:删除新增文件 + `git checkout lib/index.js`
|
|
115
|
+
7. 上述自检的原始输出
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
> **投喂提示**:本段自包含,无需再附 `_COMMON.md`。原文依据见 `D:\dsh-auto-memory\docs\prompts\M8-2b-evidence-pipeline.md` 与 `M8-2-ADJUDICATION.md`。
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
> **给使用者的说明**:**可与 P9 并行**投喂给另一个 Agent(无依赖、风险低、建议尽早做)。复制时从 `你是一名严谨的修复 Agent` 开始到文件末尾(自包含,无需 `_COMMON.md`)。
|
|
2
|
+
> ⚠️ 本段会改 `lib\index.js` —— **与 P9 排查段不冲突**(P9 不改码),但**不要和其他改 index.js 的任务同时进行**。
|
|
3
|
+
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
你是一名严谨的修复 Agent。工作目录:`D:\dsh-auto-memory`(Node.js 项目,BSD-3-Clause,v2.2.6,零运行时依赖)。
|
|
7
|
+
|
|
8
|
+
# 任务:fail-soft 空 catch 统一可观测(只加日志,绝不改行为)
|
|
9
|
+
|
|
10
|
+
## 0. 背景(实读代码,2026-09-09 核实)
|
|
11
|
+
|
|
12
|
+
- M8-2b 曾出现 P0 缺陷:新增代码裸用未导入的 `readdirSync`,抛错后被 `catch (eImp) {}` **静默吞掉**,导致整条 importance 管道在生产中全程失效,而**四套冒烟全绿**——因为冒烟测的是纯函数,从不执行接线代码。
|
|
13
|
+
- 该缺陷已修(提交 `4d54664`),同提交给该 catch 补了 diag,写法如下(**沿用这个写法**):
|
|
14
|
+
|
|
15
|
+
```js
|
|
16
|
+
} catch (eImp) { try { diag('evidence-agg 降级为中性(impMap 空): ' + String((eImp && eImp.message) || eImp).slice(0, 140)) } catch (_) {} }
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
- 同一条 recall 融合链上**仍有同款静默空 catch**:`eRrf`、`eL0Sem`、`eAnchor`(名称以实际 grep 为准)。
|
|
20
|
+
|
|
21
|
+
**目标**:把**记忆 / 检索 / 接续链路**上的 fail-soft 空 catch 统一加上可辨识的 diag 日志。**只加日志,控制流一律不变。**
|
|
22
|
+
|
|
23
|
+
## 1. 必读文件(绝对路径)
|
|
24
|
+
|
|
25
|
+
- `D:\dsh-auto-memory\lib\index.js` —— 主要改动面(recall 融合、L0 语义、接续锚点链路)
|
|
26
|
+
- `D:\dsh-auto-memory\lib\client.js` —— 查是否有同款空 catch
|
|
27
|
+
- `diag()` 的定义处(在 `lib\index.js` 内,请自行 grep 定位,确认其输出目标文件)
|
|
28
|
+
- 参考写法:`git show 4d54664 -- lib/index.js`
|
|
29
|
+
|
|
30
|
+
## 2. 硬约束(违反即打回)
|
|
31
|
+
|
|
32
|
+
1. **搜索优先**:先 grep 定位 `diag()` 定义、空 catch 全清单,记下真实行号(prompt 中的行号可能漂移)。
|
|
33
|
+
2. **行为零变更**:异常仍被吞掉(保持 fail-soft,不向上抛),不得改控制流,不得加重试,不得改 `try` 内任何业务逻辑。
|
|
34
|
+
3. **最小 diff**:`git diff` 只能出现 catch 行。
|
|
35
|
+
4. **零新依赖**;不得引入日志库。
|
|
36
|
+
5. **日志不得进入提示词 / 注入内容 / 对外响应**——diag 只写日志文件。
|
|
37
|
+
6. 不得删除既有断言。
|
|
38
|
+
|
|
39
|
+
## 3. 改动边界
|
|
40
|
+
|
|
41
|
+
- ✅ 允许修改:`D:\dsh-auto-memory\lib\index.js` 中**记忆/检索/接续链路**的 catch 行
|
|
42
|
+
- ❌ **禁止修改**:任何 `try` 块内的业务逻辑;任何控制流
|
|
43
|
+
- ❌ 禁止:全仓无差别改造(只改记忆/检索/接续链路);给无关 catch 加日志
|
|
44
|
+
- ❌ 禁止修改:`lib\recall-fusion-pre.js`、`lib\evidence-agg-pre.js`、`lib\memory-importance-pre.js`、`lib\l0-extract-pre.js`
|
|
45
|
+
|
|
46
|
+
## 4. 验收标准
|
|
47
|
+
|
|
48
|
+
1. **先出清单**:grep 全仓 `catch` 后直接 `{}` 或仅注释的空捕获,按模块分组列 `文件:行号`;**明确标注本次改哪些、不改哪些及理由**
|
|
49
|
+
2. 每处补日志的 catch:
|
|
50
|
+
- 可辨识前缀(如 `recall-fusion 降级:` / `l0-sem 降级:` / `handoff-anchor 降级:`)
|
|
51
|
+
- 含异常摘要(`String((e && e.message) || e).slice(0, 140)`)
|
|
52
|
+
- **外层再包一层 try/catch**,确保 diag 自身抛错也不影响主流程
|
|
53
|
+
3. **行为不变**:可通过 `git diff` 证明只有 catch 行被改
|
|
54
|
+
4. 确认 `diag()` 输出目标**在 `~/.dsh/memory` 之外或不污染用户记忆文件**(隐私口径)
|
|
55
|
+
5. 基线不降:p8 14 / p4 34 / evidence-agg 14 / memory-importance 18 / handoff 51 / continue-chain 58
|
|
56
|
+
|
|
57
|
+
## 5. 停止条件
|
|
58
|
+
|
|
59
|
+
若 `diag()` 不存在,或其输出目标落在用户记忆目录内(可能污染记忆或外泄),**立即停止回报**,不得自行新建日志通道。
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
停止原因:未能定位 <符号> / 输出目标不合规
|
|
63
|
+
已尝试:<搜索词 1>、<搜索词 2>、<路径>
|
|
64
|
+
需要:<澄清问题>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## 6. 完成后自检(逐项执行并贴原始输出)
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
cd /d/D/dsh-auto-memory || cd D:/dsh-auto-memory
|
|
71
|
+
|
|
72
|
+
node --check lib/index.js
|
|
73
|
+
|
|
74
|
+
node tests/smoke/smoke-test-p8-rrf-wiring-pre.mjs # 14
|
|
75
|
+
node tests/smoke/smoke-test-p4-l0-response-pre.mjs # 34
|
|
76
|
+
node tests/smoke/smoke-test-evidence-agg-pre.mjs # 14
|
|
77
|
+
node tests/smoke/smoke-test-memory-importance-pre.mjs # 18
|
|
78
|
+
node tests/smoke/smoke-test-handoff-pre.mjs # 51
|
|
79
|
+
node tests/smoke/smoke-test-continue-chain-pre.mjs # 58
|
|
80
|
+
|
|
81
|
+
# 证明只有 catch 行被改
|
|
82
|
+
git diff --stat
|
|
83
|
+
git diff lib/index.js | grep -E "^[+-]" | grep -vE "^[+-]{3}"
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## 7. 回报必须包含
|
|
87
|
+
|
|
88
|
+
1. 全仓空 catch 清单(按模块分组)+ 本次取舍理由
|
|
89
|
+
2. 每处改动:`文件:行号 — 原内容 → 新内容`
|
|
90
|
+
3. `diag()` 定义位置与输出目标文件
|
|
91
|
+
4. 控制流未变的证明(diff 仅含 catch 行)
|
|
92
|
+
5. 自检原始输出
|
|
93
|
+
6. 回滚方式:`git checkout lib/index.js`
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
> 背景依据:`D:\dsh-auto-memory\docs\prompts\M8-2-ADJUDICATION.md` §6.2、§6.4。
|