chore(工作区): 全量入库 + 补齐 .gitignore(以工作区为准)

- 变更规模:新增 514 / 修改 62 / 重命名 155 / 删除 4(归档重组与文档轮次)
- .gitignore 修:`归档/**/db-cwd归一-备份-*/` —— 原规则写绝对层级(归档/db-cwd归一-…),
  目录搬进 归档/配置与备份/ 后**静默失效**,43 MB 的 DB 备份又变成未跟踪
- .gitignore 补:嵌套 git 内部数据(归档/内嵌git-20261008/、归档/skills-git-旧线-20261007/dotgit-原样移出/)
- .gitignore 补:运行态与部署副本(.workbuddy/collab/、.workbuddy/tools/、.workbuddy/.load-pending、.workbuddy/tmp-*)
- .gitignore 补:备份件(*.bak-*)
- 未跟踪文件从 2190 降到 890(其余为 归档/ 归档件与 .workbuddy/memory/ 知识文件,按口径入库)
This commit is contained in:
admin committed 2026-10-10 23:13:22 +08:00
1 parent 30b46dbd0c
commit c1b5e4d966
735 files changed
+153192 -2415

No files matched your search

+135
View File
@@ -1191,3 +1191,138 @@ SKILLS = os.environ.get("DSH_SKILLS_ROOT") or os.path.join(CFG, "skills") # CF
### 56.7 提交与推送
- 本地技能仓 `e9b7493`(**精确 15 个路径**,⛔ 不用 `git add <目录>` —— 那样会把无关旧改动一起带上,本轮已踩到并撤销)。
- 远端 `workbuddy_skills` 现为 `93cf1c2`(只含 session-mechanism 内容;本轮对 agent-operating-rules / dsh-decision 的删改**不在远端收录面**,属本机生效)。
---
## §57 「不需要的技能都删除」+用户说听不懂「远端」
### 57.1 🔴 我的错:上一条待拍板项用了行话
用户原话:**「什么远端要不要扩 看都看不懂 啥是远端嘛」**
⇒ 我写了「远端技能仓 / 25 技能总仓 / 凭据 blob / filter-repo」这些词,
违背 `dsh-decision` 明写的「**提报时把技术话翻成功能话**(影响谁 / 断多久 / 花多少钱),
⛔ 不写包名 / 环境变量 / 文件路径 / 代码标识符」。
**处置:该问题按"自己定"结案(它本来就属白名单里的"部署与同步")** ——
**自决:不动**(云上仍只存会话机制)。理由:扩它要先把本机历史里的密码文件清掉(不可逆),
收益只是"换电脑能带走",⛔ 不为此扩大可见面。可推翻。
### 57.2 「不需要的技能都删除」= 破坏且判据缺失 ⇒ 先只读盘点,⛔ 未删任何文件
盘点了 `E:/ProgramData/.workbuddy/skills/` 共 **25 个技能目录** + 4 个产品迁移 json + 1 个 `session-mechanism.7z`(762KB)。
🔴 **关键判据纠偏**:我用「被其他文件提到的次数」算了一遍,**但这个数不能当"不需要"的判据** ——
技能是靠**描述匹配**被自动加载的,⛔ 不是靠互相引用来调用的。
⇒ 「被引用=0」只说明"别的技能/钩子没提它的名字",**不等于它没在用**。
⛔ 结论:**"不需要"的判据只有用户能给**,不能由我推断。
唯一有硬证据的是「被钩子直接引用」的那一个:`session-mechanism`(settings.json 里钩子路径逐字指着它)⇒ **绝不能删**。
本机 25 个技能里,被引用=0 的有 9 个:AI HOT / Infographic Maker / content-source-governance /
design-system-tiaoyue / html-lint-false-positive-zero-visual-fix / karpathy-output-ladder /
skills-security-check / web-fetch-antibot / workbuddy-mcp-install。
---
## §58 用户问「整包回滚是啥时候的版本,今天下午改的是不是都没了」⇒ 逐项核验:**一项没丢**
### 58.1 回滚到的那个版本是什么
`origin/master` 当时 = **`93cf1c2`(2026-10-06 22:49)**,即**今天下午我自己推上去的那一版**,
⛔ 不是更早的版本。事实上它比"回滚前的工作区"**更新也更干净**:
它包含今天下午全部改动,只是把我在那一步**做坏的地方**(全库裸名替换把包内目录名与历史记录改坏)去掉了。
### 58.2 逐项实测(9 项全在)
① `stop-dialog-guard` 三元修复 ✅ ② `KEY_HOOKS` 一组名 ✅ ③ `snap_sync` 内容口径 ✅
④ `mem_ptr` 全局∪工作区 ✅ ⑤ `pitfalls` P0-95 ✅ ⑥ 排版四行竖排 ✅
⑦ 决策「两个停止点」✅ ⑧ 注入器已归位包内 ✅ ⑨ `dsh-decision-method/` 三份 ✅
时间戳全部为 **2026-10-06 22:48:12**(今天)。
### 58.3 🔴 差点误报的一条:`git diff origin/master` 报了"14 个文件被删"
实测那 14 个**磁盘上全在**(`04-决策方法论.md` 35566 B、`apply-reply-rules.py` 7176 B …),
它们在本机 git 里是 `??`(**未纳入本地索引**)。
⇒ **`git diff <commit>` 只看已跟踪文件**:未纳入索引的文件在它眼里等于"不存在" ⇒ 被误报成删除。
🔴 **判据**:本机这个技能仓长期有大量未纳入索引的文件(另有 280 未跟踪 / 159 删除),
⇒ **⛔ 不能用 `git diff --stat` 的删除行数判"文件有没有丢"**,必须 `ls` 磁盘复核。
---
## §59 用户令「已经整合到会话技能中的技能都删除 不要在外面留尾巴」⇒ 删 dsh-decision
### 59.1 判据(实测,⛔ 不是"看着像")
- **`dsh-decision` 整份删除** —— 实测它**只剩 `SKILL.md` 一个指针文件**(我上一轮改的),
实体(决策方法论 / 功能优先协作协议 / 三份素材库)已于 10-04~10-06 逐字搬入
`session-mechanism/references/`(02 / 04 / `dsh-decision-method/`)⇒ 它就是**尾巴**。
- ⛔ **`agent-operating-rules` 不删** —— 判据:它有 **4 篇 66 KB 独有内容**
(`01-协作与提报用户判据` / `02-工作区纪律` / `03-多棒接力编排` / `04-去AI味与说话方式`),
而会话机制里搜「**去AI味**」「**工作区纪律**」**命中 0** ⇒ 它不是"已整合",删了会真丢东西。
会话机制自己的 SKILL.md 也把它定性为「**可选增强**(不装也能跑)」,⛔ 不是依赖。
- 另外三个已退役名(`multi-session-collab` / `workbuddy-session-forensics` /
`dsh-decision-method` / `dsh-feature-first`)**本机已无目录** ⇒ 无需再删。
### 59.2 顺手修的活指针(⛔ 不留断链;**注释里的历史沿革一律不动**)
| 文件 | 改几处 | 内容 |
|---|---|---|
| `session-mechanism/scripts/hooks/skill-load-guard.py` | 3 | **注入文本**原写「加载 `dsh-decision`」⇒ 改指 `session-mechanism`(两处注入 + 一处当前行为的注释)|
| `session-mechanism/scripts/hooks/decision-rules-hook.py` | 3 | 注入文本里的"正本"口径改指本包 `04-决策方法论.md` |
| `session-mechanism/references/02-功能优先协作协议.md` | 5 | 活指针改指本包;provenance 段保留但补正"那份已删" |
| `dsh-workflow/SKILL.md` + `references/01-多棒自动接力.md` | 5 | 原叫"开工前加载 `dsh-decision`"⇒ 改指会话机制 |
**回归**:`skill-load-guard` rc=0/740 字 | `decision-rules-hook` rc=0/1920 字 | `reply-style-guard` rc=0/1183 字。
### 59.3 ⚠️ 又踩到同一个措辞坑(第 2 次)
写"补正 02 号措辞"的小脚本时,字符串里用了**半角 `"`** 包中文(`"两处都读"`)⇒ `SyntaxError`,
该处补正**没生效**(其余正常)。⇒ 只好改用 Edit 工具重做。
🔴 **判据(与 §45 那条同源,第 2 次复发)**:**中文内容一律用全角「」或 `\"`**;
`python -c` / heredoc 里的中文字符串**先落 `.py` 文件再跑**(memory 里早有这条,这次是图快没照做)。
### 59.4 🔴 仍存一处同类"尾巴"(**已上抛待拍板**)
`agent-operating-rules/references/01-协作与提报用户判据.md`(19664 B)与
`session-mechanism/references/02-功能优先协作协议.md`(30555 B)**讲的是同一件事** ——
实测章节对照:01 的「提报用户唯一判据(边界内自决策/边界外八类)· 红线门禁 · 提报用户格式 · 拆包 · 取舍筛三问」
≡ 02 的「§2 九类白名单 · §3 只准提报三类 · §3.6 拆包 · §3.5.4 三问」。
⇒ 两边都留 ⇒ **将来改一处忘一处 = 会话按旧的办**(正是用户这两轮在投诉的那类病)。
⚠️ 但 01 的**边界外"八类"与"三问"比 02 的表述更完整** ⇒ ⛔ 不能直接删,需先比对再决定。
---
## §60 用户令「agent-operating-rules 也应该都整合到会话技能中」⇒ 整包并入 + 删旧技能
### 60.1 判据与落法
用户原话:「**也应该都整合到 会话技能中 这些都是会话要遵守的规则**」
⇒ 执行:`agent-operating-rules/` **整包**搬进 `session-mechanism/references/作业规矩/`,**旧技能目录删除**。
| 原件 | 落点 |
|---|---|
| `SKILL.md`(69271 B)| `references/作业规矩/00-作业总规矩(原 agent-operating-rules).md` |
| `references/01-协作与提报用户判据.md` | `references/作业规矩/01-…md` |
| `references/02-工作区纪律.md` | `references/作业规矩/02-…md` |
| `references/03-多棒接力编排.md` | `references/作业规矩/03-…md` |
| `references/04-去AI味与说话方式.md` | `references/作业规矩/04-…md` |
git 把它们识别成 **R100/R096 改名** ⇒ **内容零改动**(不是"复制一份")。
### 60.2 接线(⛔ 不留断链)
| 位置 | 改什么 |
|---|---|
| `skill-load-guard.py` | **注入文本**原叫「加载 `agent-operating-rules`」⇒ 改指 `session-mechanism`(规则族触发后不再指向已删技能)|
| `_env.py` | `_SNIFFS` 由 `("session-mechanism","agent-operating-rules")` 收敛为 `("session-mechanism",)` |
| `session-mechanism/SKILL.md` | 首屏「必读三篇」表补第 4 行指向 `references/作业规矩/` |
| `03-回复排版-核心块.md` / `architecture.md` / `collab-detail.md` | 三处活指针改指本包 |
| `dsh-knowledge` ×2 / `dsh-local-env` 快照 / `workbuddy-extension-surface` | 引用改指本包 |
| `apply-reply-rules.py` 的 BANNER + 工作区 `CODEBUDDY.md` 三处指针 | 改指本包,并**重生成** REPLY-CORE 块与常驻规则快照 |
### 60.3 🔴 又踩一次"手改生成文件"(**第 3 类同源错误**)
批量替换 `agent-operating-rules` → `session-mechanism` 时,把
`dsh-local-env/references/dsh-env-bootstrap/常驻规则-快照.md`(**由 `resident-rules.py --snapshot` 生成,文件头写着"勿手改"**)也改了
⇒ `session-rules-check` 的 `snap_sync` **当场转 fail**("快照与权威内容不一致")。
✅ 正解:**改完重跑 `resident-rules.py --snapshot` 让它自己再生** ⇒ `snap_sync` 回 ok。
🔴 **判据(三类同源,合并记一条)**:
① **机械替换前先看文件头有没有"生成物 / 勿手改"字样**;
② **生成物只许由生成器重跑,⛔ 不许手改**(手改的下一轮必被对账判红);
③ 全库替换脚本**先列出命中清单再决定**(本轮若先列清单,就会看到快照与 `CODEBUDDY.md` 这两类)。
### 60.4 权威归属(防同题两处打架)
`作业规矩/01` 与 `session-mechanism/references/02-功能优先协作协议.md` **同题**(提报判据/边界内自决策/边界外八类/红线/提报格式/拆包/三问)。
⇒ 在 01 头部加横幅:**判据以 02 为准**,01 保留作**完整版参考**(其独有的:排版十四条反模式、结论骨架全文、语言转换表)。
⚠️ 这是"两处各一份"的**已知残留** ⇒ 见 §59.4 那条待拍板(用户尚未就"是否合并 01 与 02"给答复)。
### 60.5 回归与落库
- `_env.py` 定位 ✅ 通过(钩子 14 条、不存在 0)
- `skill-load-guard` rc=0 / 488 字,**不含旧技能名**
- `apply-reply-rules --check` **一致 ✅**
- `session-rules-check` **fail 0 / warn 2 / ok 12**(`snap_sync` 已转 ok)
- 远端 `workbuddy_skills` 已到 `9fd120f`(并发同步进程再次先行,结果一致);本机目录也已生效