Files
dsh_ai1net_server/接续包_引用与技能纠偏_20260924.md
T
admin 17e209279f chore(接续包): 补「叙述旧名件不回改」口径 + 记体检日志
- 接续包 §3.1 增一行:本包与体检报告正文里的 AI技能 是旧名叙述,不是待执行路径
- 验收口径明确:用 §3.1 逐条清单统计,不用 grep -rl 全量计数
- 今日日志与 automation 记忆追加本棒执行摘要
- 接续包 md5 更新为 ab17bde7bb65782d10be7d122546a8c5(automation 8117f930 已同步)
2026-09-24 08:10:26 +08:00

194 lines
12 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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.
# 接续包 · 引用与技能纠偏
> **工作区**:`E:\ProgramData\AIProject\aliyun-dsh-server`
> **线名**:引用与技能纠偏线(承接「文档库结构治理」线的收官成果)
> **建包**:2026-09-24 08:2x **建包会话**:`整理收官1`
> **本包地位**:本线**唯一依据**。开工先读 §5(动作序列),§4 只读不动。
---
## §0 一页速览
| 项 | 内容 |
|---|---|
| **目标** | 把「引用 / 技能 / 规则」三类面修到**全部正常**;规则已绿,本棒只修**引用**与**技能**两类 |
| **病根 1** | 工作区 09-23 20:12 由 `AI技能\` 改名 `AIProject\` ⇒ **153 文件**仍写旧路径 |
| **病根 2** | 09-24 06:0x「文档库目录加序号前缀」批量改名**在 `08-skills/**` 内过度替换** ⇒ 库 ↔ 本机 **8 技能 / 16 文件**不一致 |
| **本棒范围** | 只改「必改」档(工作区 15 件 + 文档库 15 件);历史件一律不动 |
| **验收** | 文档库自检四件套 rc=0 + 双端对账 289/289 + 技能三处归一化 md5 **12/12 全同** + 「必改」档旧路径残留 **0** |
| **体检报告** | `交付物/引用技能规则-体检报告-20260924.md`(本包的证据来源,冲突以本包为准) |
---
## §1 开工四步(顺序不可换)
1. **跑状态**:`"E:/ProgramData/.workbuddy/binaries/python/versions/3.13.12/python.exe" "E:/ProgramData/AIProject/aliyun-dsh-server/state.py"`
⇒ 只读**本线**那段;跑完之前 ⛔ 不许 Glob/Grep 全库摸底。
2. **校验本包口径**:`md5sum 接续包_引用与技能纠偏_20260924.md` 必须 = **automation prompt 里给出的那个值**(本包**不自述 md5** —— 自述即自指,写进去就变;校验值一律放 prompt 与 automation 记忆)。
不符 ⇒ 停手报告「口径已更新,需重新接续」。
3. **抢锁**(先判定再抢):
```
bash D:/github/dsh_shenxian/dsh-server-docs/07-scripts/handoff-guard.sh --claim-exec "<你的会话名>" \
--domains "dsh-server-docs/08-skills" "dsh-server-docs/01-规范" "dsh-server-docs/07-scripts" "dsh-server-docs/INDEX.md"
```
⚠️ 动文档库**与走哪个工具无关** —— 即使只用 Edit / Write 也要先抢到锁。
💡 若判定当日已有会话在同域开工而抢不到 ⇒ **先做 §5-A(工作区侧,不占文档库锁)**,把不冲突的部分做完,最后一次性报告。
4. **读库内 `CODEBUDDY.md` 的「文档库结构与命名规则」章**(违反即返工)。
---
## §2 病根与判据(两条,必须分清)
### 判据 A —— 旧的**工作区根**路径
**旧**:`E:\ProgramData\AI技能\aliyun-dsh-server`(及兄弟 `_tools` / `dsh-ai1net-github` / `dsh-ai1net-capability` / `_skill_归档_去AI味_20260920`)
**新**:`E:\ProgramData\AIProject\…`(同名同级,仅顶层目录名变)
**实测**:`E:\ProgramData\AI技能` **GONE**;`E:\ProgramData\AIProject` **EXIST**(mtime 09-23 20:12)。
### 判据 B —— **过度替换**(本条最易误判)
09-24 06:0x 的批量改名是 **纯子串替换**,把**不属于文档库**的通用目录名也加了序号前缀:
| 目标属谁 | 正确写法 | 被误改成 |
|---|---|---|
| 文档库自己 | `07-scripts/` `08-skills/` `01-规范/` `05-交接单/` | ✅ 正确 |
| **平台代码仓** `D:\github\dsh_shenxian\` | `scripts/` | ❌ `07-scripts/` |
| **用户级技能目录** `E:\ProgramData\.workbuddy\` | `skills/` | ❌ `08-skills/` |
| **技能自身**(如 `短视频工作台/scripts/…`,第三方技能库) | `scripts/` | ❌ `07-scripts/` |
| **API / URL 路径** | `/api/skills/shared` | ❌ `/api/08-skills/shared` |
| 别的项目的约定目录名 | `规范/` `交接单/` | ❌ `01-规范/` `05-交接单/` |
**决定性证据(存档,勿重做)**:
| 库侧(错) | 本机侧(对) | 探针结果 |
|---|---|---|
| `bash 07-scripts/install-egress-guard.sh` | `bash scripts/install-egress-guard.sh` | 脚本实体在 `D:\github\dsh_shenxian\scripts\install-egress-guard.sh`;文档库 `07-scripts/` 下**无此文件** ⇒ 本机对 |
| `~/.workbuddy/08-skills/` | `~/.workbuddy/skills/` | 实测真实目录 = `E:\ProgramData\.workbuddy\skills\` ⇒ 本机对 |
| `/api/08-skills/shared` | `/api/skills/shared` | 09-24 06:4x 已修过同类 1 处(`src/host/skills/plugin.ts`)⇒ 同一 bug 的漏网 |
🔴 **判据 = 「这条路径的目标到底属谁」** —— **不是**看哪边"更新"。
---
## §3 现成证据(⛔ 别重做,直接用)
### 3.1 旧路径影响面(`grep -rl "AI技能"`)
| 位置 | 件数 | 处置 |
|---|---|---|
| 工作区 `.workbuddy/tools/**` | 4 | 🔴 改(脚本常量) |
| 工作区 `.workbuddy/待落地/**` | 2 | 🔴 改 |
| 工作区根 `CODEBUDDY.md` `README.md` 3 接续入口 1 接续包 | 6 | 🔴 改 |
| 工作区 `交付物/**` | 7 | 2 件改(`插件建库权限-一次性执行.sh` 等可执行件)/5 件档案不改 |
| 工作区 `docs/覆盖网络/**` | 2 | 🔴 改(活参数表 + 活跃方案) |
| 工作区 `docs/会话与接续|插件与平台|调研与审计/**` | 5 | ⛔ 不改(09-16/09-10 证据件,改了等于伪造证据) |
| 工作区 `.workbuddy/memory/**` | 45 | ⛔ 不改(append-only) |
| 工作区 `归档/**` `.workbuddy/session-sync/**` `*.log` `backups/*.db` | 34 | ⛔ 不改 |
| 文档库 `08-skills/**` | 8 | 🔴 改(命令模板 + 脚本常量) |
| 文档库 `01-规范/**` | 3 | 🔴 改(规范正文) |
| 文档库 `07-scripts/**` | 4 | 🔴 改(docstring / 注释,应对齐) |
| 文档库 `INDEX.md` `BRIEF.md` | 2 | 🔴 改 |
| 文档库 `05-交接单/**` | 21 | ⛔ 不改(正文不回改) |
| 文档库 `04-调整方案/**` | 8 | ⛔ 不改(过程档案不回改) |
| 本包 + `交付物/引用技能规则-体检报告-20260924.md` | 2 | ⛔ 不改(正文里 `AI技能` 是**旧名的叙述**,不是待执行路径) |
> 🔎 **验收口径**:§5-C 第 1 条「必改档残留 0」**不含**上表 ⛔ 档,也不含本包与体检报告这份「叙述旧名」的两件 —— 统计时请用 §3.1 的逐条清单,⛔ 别用 `grep -rl` 的全量计数(全量必然不是 0)。
### 3.2 技能库 ↔ 本机 差异(8 技能 / 16 文件,**库侧全部较新 = 09-24 06:0x**)
```
agent-operating-rules/SKILL.md, references/02-工作区纪律.md, references/03-多棒接力编排.md
dsh-auto-handoff-chain/SKILL.md
dsh-change-workflow/references/03-沙箱与技能机制.md, 05-插件与数据源口径.md,
06-实例可见面与共享边界.md, 08-浏览器验证栈详解.md
dsh-decision-method/references/素材库-A-AI推理.md, 素材库-U-用户决策.md
dsh-desktop-dev-shell/SKILL.md
dsh-env-bootstrap/SKILL.md, scripts/resident-rules.py
dsh-knowledge-upkeep/references/10-技能重组-千行技能拆分.md
dsh-opensource-release/references/01-保留移除与脱敏口径.md, 03-实测坑.md
```
✅ 全同(不动):`dsh-architecture-lifecycle` `dsh-feature-first` `dsh-instance-diagnose` `dsh-plugin-diagnose`
**复算命令**(一行,勿手写替代):
```bash
"E:/ProgramData/.workbuddy/binaries/python/versions/3.13.12/python.exe" - <<'PY'
import os,hashlib
L=r"D:/github/dsh_shenxian/dsh-server-docs/08-skills"; H=r"E:/ProgramData/.workbuddy/skills"
def t(r):
d={}
for dp,_,fs in os.walk(r):
for f in fs:
p=os.path.join(dp,f); d[os.path.relpath(p,r).replace('\\','/')]=hashlib.md5(open(p,'rb').read().replace(b'\r\n',b'\n')).hexdigest()
return d
for n in sorted(x for x in os.listdir(L) if os.path.isdir(os.path.join(L,x))):
a,b=t(os.path.join(L,n)),t(os.path.join(H,n))
bad=[k for k in set(a)&set(b) if a[k]!=b[k]]
print(("✅" if not bad and set(a)==set(b) else "⚠️"),n,len(bad))
PY
```
### 3.3 技能内容本身也过时 2 条(与改名无关,顺手一起收敛)
| 位置 | 现写 | 应为(判据 = 实测 `sessions.cwd`) |
|---|---|---|
| `dsh-auto-handoff-chain/SKILL.md` §⑤ | 「⛔ 只写**反斜杠+大写盘符**」 | 09-24 代码级实测:去重键 = `path.trim().toLowerCase()`(**只小写、不统一斜杠**)⇒ 正解 = `E:/ProgramData/AIProject/aliyun-dsh-server`(**正斜杠**) |
| 同文件 §⑤ 判据行 | `python "E:/ProgramData/AI技能/aliyun-dsh-server/state.py"` | 旧路径,且与本文件上一行「反斜杠」自相矛盾 ⇒ 一并改 |
⚠️ 本条与工作区 `MEMORY.md` 状态层已一致(MEMORY 已是新口径)⇒ **要改的是技能,不是 MEMORY**。
---
## §4 只报告不动(本棒不改)
- 工作区根 4 条接续入口 + 2 份接续包的**内容质量**(是否有过时结论)—— 只登记,不改。
- `05-交接单/**` `04-调整方案/**` 内旧路径 —— 按「正文不回改」纪律,只统计不回改。
- 服务器 `/opt/dsh/docs` 侧:本棒**不动服务器**(双端对账保持 289/289 即可);若 §5-B 改了库而需要推镜像,**只报不改**,另排一棒。
---
## §5 动作序列(本棒唯一要做的)
### A. 工作区侧(不占文档库锁,可先做)
1. **A1 旧路径** —— 对 §3.1 表中标 🔴 的**工作区**条目(约 15 件)做 `AI技能` → `AIProject`:
⚠️ 只替换**路径字面**;同文件里若出现「AI技能」是**目录名连字符化示例**(如 `extract-user-voice.py` 注释里的 `e-ProgramData-AI技能-…`)要**一并对齐**到新名(转录目录名会随工作区改名而变)。
⚠️ **逐文件落盘后立刻回读**(`grep -c "AI技能"` 应为 0)。
2. **A2 单点验证再推广** —— 先取 **1 个**对象(建议 `README.md`)改完 → 回读 → 确认无副作用,再批量。
3. **A3 收口回读** —— `grep -rl "AI技能" <工作区>` 应只剩 §3.1 标 ⛔ 的位置。
### B. 文档库侧(**先抢到锁**)
1. **B1 引用纠偏(必改档 15 件)** —— 用 §3.1 清单,同 A1 的替换与回读纪律。
⚠️ 改 `08-skills/dsh-opensource-release/**` 时注意:其工作根 `E:\ProgramData\AIProject\dsh-ai1net-github\` 被 **5 个工具脚本常量**引用(`_build_export.py:13` `OUT` / `_verify_tsc.mjs:5` `EX` / `_sop_check.mjs:5` `_upload_audit.mjs:5` `_verify_all.mjs:5` `W`)⇒ 改文档前**先核实这 5 处常量现状**,若它们仍指旧路径则一并对齐(那属于别的线,**只报不动**)。
2. **B2 过度替换回改(§2 判据 B)** —— 对 §3.2 的 16 个文件,**逐条**判定:
- 目标属文档库 ⇒ **库侧正确** ⇒ 记入「需同步到本机」清单
- 目标属平台仓 / 用户级技能目录 / 技能自身 / API ⇒ **库侧错** ⇒ **回改成原字面**
取证方式 = **存在性探针**(`ls` 目标路径)+ `git log -p` 看 09-24 06:0x 那次改动的原文:
```bash
cd D:/github/dsh_shenxian/dsh-server-docs && git log --oneline -8 -- 08-skills
```
3. **B3 技能三处同步** —— B2 定完方向后:库 → 本机(`E:\ProgramData\.workbuddy\skills`)→ 服务器(`/opt/dsh/docs/08-skills`)。
⚠️ 服务器侧**本棒只报不改**(见 §4);若要同步,先确认是否已有他线在推。
4. **B4 技能内容过时 2 条** —— 按 §3.3 改 `dsh-auto-handoff-chain/SKILL.md`。
### C. 收口(必做)
1. `grep -rc "AI技能"` 复核 → 必改档残留 **0**。
2. 技能复算(§3.2 命令)→ **12/12 且 0 差异**。
3. 文档库自检四件套 + 对账:
```bash
cd D:/github/dsh_shenxian/dsh-server-docs
for s in docs-consistency.py docs-audit.py docs-archive-index.py handoff-status.py; do
"E:/ProgramData/.workbuddy/binaries/python/versions/3.13.12/python.exe" "07-scripts/$s" >/dev/null 2>&1; echo "$s rc=$?"; done
bash 07-scripts/docs-sync-check.sh | tail -6
```
期望:四个 rc=0 + 双端 289/289。
4. **释放锁**:`handoff-guard.sh --release-exec`
5. 追加本包 §6 执行记录;工作区侧改动可 commit(**文档库侧 ⛔ 未获授权不 commit / 不 push**)。
---
## §6 执行记录(各棒追加)
- **2026-09-24 08:2x|建包棒(会话 `整理收官1`)** —— 只做体检与建包,不落修复。产出:`交付物/引用技能规则-体检报告-20260924.md` 本包。规则已绿(四件套 rc=0 + 对账 289/289);引用与技能各 1 类缺陷已定位到判据与逐文件清单。