派活触发句收工闸:说了就必须把执行会话拉起来(实测栽过,补机器抓手)
一、起因(用户令逐字) 「重点问题是 会话接收到 调用执行会话完成目标 没有去调用对应技能去执行」。 实测会话 b232218f(vibe-product):用户 01:32:00 / 01:33:46 两次说触发句, 到 01:36:27 才建出排期 —— 中间那一轮 AI 只在回复里解释口径,没拉起执行会话。 根因:机制里**只有 "注入提醒"**,⛔ 没有任何机器抓手检查"到底做没做"。 二、改法(发现 → 拦住,两步) 1. scripts/hooks/skill-load-guard.py:命中**派活族**触发句时写一条待办 <工作区>/.workbuddy/.dispatch-pending(会话 id / 时间戳 / 命中词)。 ⚠️ 写在**冷却判定之前** —— 实测 01:33:46 那条最明确的触发句正被 300 s 冷却吞掉, 写在冷却之后就等于"最该拦的那一条反而没有标记"。 ⚠️ 比对前**去掉空白**:用户写的是「应该使用 执行会话的技能去完成工作」(中间有空格)。 ⛔ 不把裸词「执行会话」算进派活族(太宽,讨论机制时也出现)⇒ 误报面保持最小。 2. scripts/hooks/stop-dialog-guard.py:新增收工前闸 —— 同会话 + 超 90 s 宽限 + 宿主库该区此后**没有**新建排期 ⇒ 返回 {"continue": false} 拦一次,逼它先建排期。 ⚠️ 必须放在**自作用域判定之前**(那条作用域只认本工作区,而栽的会话在 vibe-product)。 ⛔ 三条安全底线:① 全程 fail-open(读不到库/解析失败/任何异常 ⇒ 一律放行); ② 只拦一次(复用本文件 10 分钟限流);③ 待办 30 分钟过期,⛔ 不长期纠缠。 三、判据(新增自测用例,5 项) selftest.py::t_dispatch_gate —— 派活句留待办(含带空格写法)/非派活句不留/ 超宽限且未建排期则拦/宽限内放行。三条断言都确定性,⛔ 不依赖现网存量。 验收:selftest.py rc=0 PASS 100 / FAIL 0(改前 99); 两组外部变异对照(发现侧 3 项、收工闸 4 项)全过; 另实测"10 分钟限流"有效(同一会话重复构造不再重复拦)。
This commit is contained in:
1 parent
f2691e9368
commit
9a665039a9
4 files changed
+164
-4
No files matched your search
@@ -1,6 +1,6 @@
|
||||
# manifest · 包内文件清单
|
||||
|
||||
> 生成方式:逐文件 `compile()` / `json.loads` + md5 | **最近一次全量重算:2026-10-07 01:26 (移入随包子技能 karpathy-output-ladder(全局 skills 原件已移出)+ 索引登记)**
|
||||
> 生成方式:逐文件 `compile()` / `json.loads` + md5 | **最近一次全量重算:2026-10-07 01:47 (派活触发句收工闸:触发句留待办 + Stop 拦一次(含新判据))**
|
||||
> ⚠️ **2026-10-05 局部增量**:`references/pitfalls.md`(P0-77 拆条 + P0-73/P0-77 压缩)与
|
||||
> `scripts/goalctl.py`(`--switch-goal` 确认闸 + 旧目标归档)两行的 md5/大小已按当天实测值更新;**其余行仍是 10-04 基线**。
|
||||
> ⛔ 本表**不含** `install.log`(运行日志)与 `references/manifest.md`(自引用,写完即失真)。
|
||||
@@ -165,8 +165,8 @@
|
||||
| `scripts/hooks/prompt-guards.py` | 9332 | `0aa1d1fdd2bf5a40cda2e60d7a785534` | ok |
|
||||
| `scripts/hooks/reply-style-guard.py` | 11040 | `7e271b342f91e2e98cbc03631b7e68f3` | ok |
|
||||
| `scripts/hooks/session-log-guard.py` | 24636 | `4dd13b24d541d1afc7b4874dba6bb1eb` | ok |
|
||||
| `scripts/hooks/skill-load-guard.py` | 24390 | `942bf35a6b58a3634d1baa6717a06a5c` | ok |
|
||||
| `scripts/hooks/stop-dialog-guard.py` | 41513 | `50374b192b6eba2bdb257846f06fde90` | ok |
|
||||
| `scripts/hooks/skill-load-guard.py` | 26499 | `f04b4ffdcdbd7f292bad83cbd77e0a46` | ok |
|
||||
| `scripts/hooks/stop-dialog-guard.py` | 46083 | `fab654dfacfeb6253fc751707bebcac6` | ok |
|
||||
| `scripts/hooks/supervise-ensure-hook.py` | 14308 | `dc6f62584a8384baba0a1f2460828013` | ok |
|
||||
| `scripts/hooks/wb-result-hook.py` | 37199 | `2d4f694acd031222bf03b98a859b6e90` | ok |
|
||||
| `scripts/init_workspace.py` | 24042 | `dda53acd24bcc66d509bbdab3ebc0488` | ok |
|
||||
@@ -177,7 +177,7 @@
|
||||
| `scripts/lock/op-lock.sh` | 4690 | `1a31eda3642e23693a65e1519860c744` | — |
|
||||
| `scripts/lock/preflight-lock.sh` | 8673 | `e985ec1cb853fae4c351cd03b171355d` | — |
|
||||
| `scripts/mut_run.py` | 13323 | `3bffc12e1e57d5efc743bac55e584b62` | ok |
|
||||
| `scripts/selftest.py` | 481274 | `995f1ec20fb14bacb10a2c38f114d9e2` | ok |
|
||||
| `scripts/selftest.py` | 484110 | `f9125fcc8ba2751c41f1fe77afd51739` | ok |
|
||||
| `scripts/session-rules-check.py` | 44412 | `b2b468992d80421106316eaf451e2477` | ok |
|
||||
| `scripts/stop-collab.py` | 10462 | `d8043bedd23b52b6642aaf7ec8b8c980` | ok |
|
||||
| `scripts/supervise-launch.py` | 2503 | `f416a2f197e5524a8859c1d227ba1d05` | ok |
|
||||
|
||||
Reference in new issue
Block a user