Files
dsh_ai1net_server/.workbuddy/评审-索引与文档规模化改造-20260914.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

6.8 KiB
Raw Blame History

评审:索引与文档的「规模化改造」是否合理(2026-09-14 实施)

  • 评审时间:2026-09-14 21:50 | 评审人:会话 15ee0d4f | 方式:只读实测(未改库;当时全局锁被 补流程-94/95归档-20260914 持有)
  • 评审对象:scripts/docs-{manifest,archive-index,search,shrink-guard,dedupe}.py + 项目根 CODEBUDDY.md 的「规模化约定」7 条 + tier 四档判据 + 档案 82 去重视图
  • 目标(用户口径):支持项目长期迭代 → 文档会到大量

一、总判定:方向合理、机制基本对;但有 3 个会随规模放大的硬缺口,且第 1 条与目标直接矛盾

维度 判定
架构方向(人工一份 → 其余派生;查阅靠检索 + 指针) ✅ 合理(实测支持,见 §二)
判据有效性(tier 四档、单篇 ≤30KB、体检只报不改) ⚠️ 半对:tier 已修好;另两条缺执行者/触发点
工具持久化(脚本是否在版本库里) 🔴 不合理:4 个新脚本全部未跟踪
派生链健壮性 ⚠️ 有隐式顺序,且此刻已落后(工具自己报了)
我自己的那一件(技能 v2.x 拆分) ✅ 合理,但依赖"触发词表"维护纪律(§五)

二、合理的部分(都有实测支撑)

# 设计 实测证据
1 人工只维护 archive-summaries.json,INDEX.md §二 与 docs-manifest.json 全派生(原地替换、不搬家;摘要优先级 summaries → manifest.tldr → 标题) INDEX.md 的 04-* 行 = 95 篇,与 archive-summaries.json 条目 = 95 完全对齐(此前"手写漏 7 篇 + 81 号重复行 + 格式坏行"已被机制消除)
2 检索带「层/域/tier」标注 + --current 排除历史层 ★最有效的一件:查「配额」——--current 首条 = skills/dsh-instance-diagnose(L3 现行口径:"2026-09-13 起按插件集合动态算");不加 --current 首条 = archive/…VoxEMW 全云 api 化修订方案(L5 历史草案,14 次命中)⇒ 直接治住 09-12 那类"搜到历史值当事实用"
3 体检只报不改(约定 #7) docs-audit rc=0(无 P0)· docs-consistency rc=0 —— 全绿且不改任何正文
4 存量烂账用「只增不改 + 库外视图」(A20) 档案 82(89.1 KB / 85% 冗余块)原文一字未改,靠 .workbuddy/cache/dedupe-view/ 视图降到 59.0 KB 可读 ⇒ 零风险
5 机器兜底补"纪律"的短板 docs-shrink-guard.py 只读跑通并正确列出本日新增 8 篇;基线放库外不与文档库混在一起

三、硬缺口(按严重度;每条都可执行)

🔴 G1 · 工具链没进版本库 —— 与"支持长期迭代"直接矛盾

  • 实测:scripts/ 下 docs-archive-index.py / docs-dedupe.py / docs-search.py / docs-shrink-guard.py 全是 ?? 未跟踪;docs-manifest.py 是 M 未提交。
  • 而 CODEBUDDY.md「改完必跑」已列 7 条命令(其中 5 条靠这几个脚本)⇒ 别人 clone 下来跑不了必跑清单;换机、协作、回滚都拿不到工具。
  • 修法(成本极低):一次定向 commit 只 add 这 5 个文件(+ 本次派生件)。

🟡 G2 · 派生链有隐式顺序,且当前已落后

  • 依赖:docs-manifest.json → docs-archive-index.py(它读 manifest)→ INDEX.md §二。顺序错 ⇒ 静默产出新旧混合,无任何报错。
  • 实测此刻:docs-archive-index.py(只读)自己报 「表内容与 INDEX.md 不一致」 ⇒ 有人跑了 manifest 没跑 archive-index,库里处于"派生半步"状态。
  • 修法:在 docs-archive-index.py 开头加新鲜度断言(manifest mtime < 库内最新文档 mtime 时警告/拒绝);并在必跑清单里显式标注顺序不可换。

🟡 G3 · 两条约定没有执行者/触发点(会随规模放大)

约定 缺什么 实测证据
#2 单篇 ≤30 KB 与「档案只增不改」冲突:超限只能"拆子页",但没人规定拆分怎么做 档案 82 只做到"视图止血",根治仍是"待立项"
#3 日志分片 ≤50 KB append-only + 多会话并行 ⇒ 没人会在"正好 50 KB"时切 09-13 日志 349.5 KB、09-14 已 61.5 KB+
  • 修法:#2 补"新增子页 + 原页留指针"的标准拆法(= 我在 dsh-decision-method v2.0.0 用的同一模式);#3 定"按月切 + 原文件留指针",并点明由当月第一次触到阈值的人切。

🟢 G4 · 四处小缺陷(不影响判断,顺手可改)

  1. CODEBUDDY.md 标题写「四件套」,其下实际 7 条命令 ⇒ 命名与内容不符;
  2. 状态缺失(❓)14 处无门槛、无告警("可见即压力"但没有"缺失率"指标);
  3. shrink-guard 基线放库外 ⇒ 换机/协作者首跑无基线(要么误报、要么静默);
  4. shrink-guard 的判据「行数骤降 >30% 且 >20 行」会误伤合法重构 —— 今天我把 dsh-decision-method/SKILL.md 从 492 行拆到 ~250 行(46.4→23.2 KB)就是这种合法骤降,它必然报警 ⇒ 建议加 --allow-shrink <path> 白名单或"结构变更"标记。

四、建议(按优先级,含"不做")

优先 动作 归属
P0 5 个脚本 + manifest 改动一次定向 commit(G1) 库内(需锁)
P0 docs-archive-index.py --write 刷新派生 + 补 14 处 ❓ 状态(G2/G4-2) 库内(需锁)
P1 派生链顺序断言(G2) 库内(需锁)
P1 给 #2 / #3 两条约定补执行者与触发点(G3) 库内(需锁)
P2 标题改「必跑清单(7 件)」;基线入 git 或首跑自动建;加 --allow-shrink(G4) 库内(需锁)
不做 ⛔ 不要把体检做成自动化定时任务 —— 约定 #7 + 本项目"无自动化"(用户删过两条自动化任务)都已定性;体检手跑或外部 cron即可 —

五、附:我自己那一件的自评(诚实计入)

dsh-decision-method v1.6.0 → v2.0.0 → v2.1.0:素材库(U/A/X 共 55% 篇幅)拆到 references/,SKILL.md 只留判定核心 + 触发词索引(46.4 KB → 23.2 KB,−49%)。

  • ✅ 合理:符合本库分层判据("不看会出事 → 实体;看了更准 → 指针"),且索引绑定可识别动作("你正在判断什么 → 去查哪条"),不是死目录。
  • ⚠️ 代价:references/ 是按需读,存在"该读没读"的风险 ⇒ 缓解 = SKILL.md 里的触发词表 + description 里点明"素材库在 references/"。维护纪律:新增 U/A/X 必须同时补索引行(已写进技能)。