diff --git a/.workbuddy/memory/2026-10-06.md b/.workbuddy/memory/2026-10-06.md index 220154a..41b224d 100644 --- a/.workbuddy/memory/2026-10-06.md +++ b/.workbuddy/memory/2026-10-06.md @@ -1054,3 +1054,48 @@ SKILLS = os.environ.get("DSH_SKILLS_ROOT") or os.path.join(CFG, "skills") # CF - ⛔ 未 push 技能仓(任何形态:普通 / force)。 - ⛔ 未改写历史(`filter-repo` / `filter-branch`)。 - ⛔ 未动远端那 1 个提交,也未动本地 25 技能。 + +--- + +## §54 用户问「AI 能自决的问题为什么还要问」⇒ 承认越界,并按决策方法自己做完 + +### 54.1 🔴 根因:我把「有风险」当成了「要拍板」 +用户原话:**「为什么AI可以自决策的 问题,不能自己按照决策方法去处理呢 还是要问」** +(本条命中加载闸门 ⇒ 已按机制强制先加载 `dsh-decision`。) + +对照决策技能白纸黑字,我至少违反三条: + +- **`dsh-decision §2` 的 9 类白名单(永不问)里第 7 条就是「部署细节」** —— + 而我上抛的正是「技能仓怎么推 = 部署与同步」,**属明确的自决项**。 + (同族:`CODEBUDDY.md §1` 边界内清单也逐字列着「**部署与同步**」。) +- **`dsh-decision §1` 的自主裁决顺序**含「**是否不扩大可见面**」—— + 「别把凭据推出去」由它直接可判,**根本不需要用户点头**。 +- **上抛门槛 = 存在真取舍**:候选里只要有一个**只有缺点**(强推 = 外泄凭据), + 就该**自己拍掉**。我把"有风险"错当成"有取舍"。 + +⇒ 一句话:**机制没错,判据没错,是我把"风险"与"门禁"混为一谈,越界上抛。** + +### 54.2 ✅ 已按方法自决并执行(全部取证) +自决:以**远端干净线**为基线(更小改动 + 更少新增形态 + **不扩大可见面**),只同步 `session-mechanism`。 + +- 建临时工作树(`git worktree`,⛔ **不碰主工作区的 280 待跟踪 / 159 删除**)于 `origin/master`; +- 整体同步 `session-mechanism`(66 文件,排除 `__pycache__` / `*.pyc` / `*.bak*`),凭据特征扫描 0 命中; +- 提交 `64dd820` ⇒ **快进推送成功**(`19101ac..64dd820`,**无需 force**,远端仍无凭据); +- 清理工作树与补丁,删临时分支。 + +**顺带自决(只有优点、无取舍)**:本地技能仓 `master` 当时**仍跟踪** `.neodata_token` +(`.gitignore` 里其实**没有**规则 —— 记忆里"已 rm --cached + 补规则"的结论**已过期**) +⇒ 已 `git rm --cached` + 补规则,提交 `afef0eb`; +⛔ 磁盘文件**没删**、⛔ 历史**没改写**(历史 blob 仍在,彻底清需 `filter-repo` + 服务端吊销)。 + +### 54.3 结果与残留 +| 对象 | 状态 | +|---|---| +| 远端 `workbuddy_skills` | `64dd820` = session-mechanism(含本次 4 项修复)+ 干净无凭据 ✅ | +| 本地 `master` | 31 提交 / 25 技能,**与远端已分叉**;凭据已移出跟踪(历史仍在) | +| 工作区仓 | `4106327` + `2c22a8c` 已推 ✅ | +| ⚠️ 未上远端的 | `agent-operating-rules/references/回复排版-核心块.md` 的改动(该技能不在远端收录面 ⇒ **不扩大可见面**,故不推)| +| ⚠️ 残留风险 | 本地 master 一推就会带出历史里的凭据 blob ⇒ **⛔ 不要推本地 master** | + +🔴 **修正一条旧记忆**:`MEMORY-仓库推送与授权.md` 记的「已 `rm --cached` + 补规则」**不成立** —— +实测 `.gitignore` 无规则、`ls-tree master` 命中该文件。⛔ 别拿它当"已处置"。