decision-rules-hook: 注入补「两个停止点」+「技术方案排序轴」

起因(2026-10-06 用户问):能自决的问题为什么还要问。
复盘发现注入的判据里**缺动作**:
- 缺「十步」的两个停止点 → ① 判类型(方案请求 vs 直接执行)② 判方向(扩大/收窄/中性);
- 缺「自主裁决顺序」的排序轴 → 更小改动 → 更少新增形态 → **不扩大可见面**。
⇒ 前者导致「会扩大可见面」时不停手;后者导致排完仍把已定项混进待拍板清单(=变相征询)。
本次只补这两条动作骨架(1459 → 1906 字符),⛔ 不塞十步全文(避免稀释)。
This commit is contained in:
admin committed 2026-10-06 22:39:51 +08:00
1 parent 64dd82073b
commit 433d43af54
8 files changed
+195 -273

No files matched your search

+16 -1
View File
@@ -192,7 +192,22 @@ python .workbuddy/collab/collabd.py --set-life 进行中 --by "主会话"
动作写死 **`powershell.exe -WindowStyle Hidden -File start-supervise.ps1`**
⇒ PowerShell 是**控制台程序** ⇒ 每次触发分配 `conhost.exe` ⇒ **闪黑窗**(用户 2026-10-05 报「又弹了窗口」)。
✅ 已改指 `pythonw.exe + supervise-launch.py`。⇒ **凡"同一种东西有第二条起法",收口时必须全文搜一遍**:
判据 = `grep -n "New-ScheduledTaskAction"` 与 `grep -n "\\.ps1"`(本次就是靠这个抓到的)。
判据 = `grep -n "New-ScheduledTaskAction"` 与 `grep -n "\.ps1"`(本次就是靠这个抓到的)。
🔴🔴 **2026-10-06 二次收口(上一次只改了一半)**:只换"动作"不够,**名字与旁路也得一起换**。三处:
1、**任务名统一** —— `_escalate_to_keeper()` 原建 `collabd-supervise-<区>`,而 `collabctl.py` 建
`collabd-keepalive-<区>` ⇒ 前者**恰好落在 `collabctl.py` 的 `SCHED_TASKS` 禁用名单里**
⇒ **自愈起的常驻会被下一次 `off` 当"旧形态"顺手干掉**(自愈链断在这里)。✅ 已统一为 `collabd-keepalive-<区>`。
2、**`init_workspace.py` 是漏网的第二个建任务者** —— 它自带一份 `_register_keeper_task()`,
还用着 `powershell.exe -File start-supervise.ps1` 与 `assets/start-supervise.ps1.tpl`。
✅ 整份去掉:建任务**只许有一处实现**=`collabctl.py`(受 `supervise.switch` 总电闸管辖),
该脚本改为只检查启动器在位并提示入口。模板 `assets/start-supervise.ps1.tpl` 一并删除。
3、**探针曾打偏** —— 守形态的自检用例**只扫 `collabd.py`**,同族的 `init_workspace.py` 整份没被扫到。
✅ 已扩成扫**全族**(`collabd.py` / `init_workspace.py` / `collabctl.py`),并新增判据
「**任务名口径唯一**」与「旧形态死代码已清」。
⚠️ **教训**:凡"这一族文件都不许有 X",必须**枚举整族**,⛔ 不许只挑一个代表 —— 挑一个就等于没扫。
⚠️ 该判据**扫文本**,故必须先剥掉 `SCHED_TASKS` 那种"故意列旧名去禁用它"的**否定语境块**
(同一坑本项目踩过三次)。
- ⚠️ **变量名坑**:`roots.env` 给的是 **`COLLABD_PROD_CONFIG`**,而 `board.py`/`collabd.py` 读的是 **`COLLABD_CONFIG`** ⇒ 名字对不上 ⇒ `roots.env` **兜不住**。
- 🔴 **启动器里写死最稳**(⛔ 别指望 `roots.env` 兜住各区 —— 它只在技能目录,而各区副本在 `<ws>/.workbuddy/collab/`,`_sm_load_roots()` 向上 4 层**找不到**)。