补入本地今日改动:session-mechanism + product-planning(按用户令改推本仓库)
背景:旧远端 work.alotbuy.com 今天一直连不上(222/22 端口都不通)⇒ 今天本地累积多条提交推不上去; 用户令改推本仓库 [email protected]:admin/workbuddy_skills.git(只推这 5 个技能: browser-harness / humanizer / humanizer-zh / product-planning / session-mechanism)。 本次改动(对照本机已安装的技能源逐文件 md5 比对得出,⛔ 是「补差异」不是「整体覆盖」): · session-mechanism:含今天两条钩子改动(派活收工闸、点名加载收工闸)、 rules.md §9「只写正向范围」、检查程序静默阈值 10→6、检查排期补 workspace_scope(修未分组)、 以及今天修的三处陈旧指针(旧技能名 dsh-decision / agent-operating-rules 与旧路径编号)。 · product-planning:第③段「随段样式风格库」并入 design-system-tiaoyue、竞品分析方法论重写等。 · humanizer / humanizer-zh:已一致,零改动。 · browser-harness:比对出的 7 个「本地独有」全是**它自己 .gitignore 里就排除的**构建产物 (src/*.egg-info/ 与 uv.lock)⇒ 按该技能自己的规矩不推(用户口径「不要环境」)。 仓库级配置(与旧仓一致):core.autocrlf=false;身份 maogeigei <[email protected]>。 ⚠️ 克隆时仓库默认 autocrlf=true(会把行尾转成 CRLF)⇒ 已改回 false 并重新暂存, 核对索引 blob 均为 LF、真实差异 23 个(⛔ 不是把几百个文件一起改掉)。
This commit is contained in:
1 parent
0abd33b3a0
commit
61962f1726
23 files changed
+741
-250
No files matched your search
@@ -797,7 +797,7 @@ def t_two_kinds_of_check_agent():
|
||||
用户原话两条:
|
||||
1、会话全结束(**还要加上 定时任务中没有本项目待执行的任务**)且**队列不为空** ⇒
|
||||
**结果检查会话**去跟进任务会话执行结果,判断是否创建对应任务会话继续完成目标;
|
||||
2、会话全结束(同上)且**队列为空 >10 分钟** ⇒ **目标检查会话**去核对目标完成状态,
|
||||
2、会话全结束(同上)且**队列为空 >6 分钟** ⇒ **目标检查会话**去核对目标完成状态,
|
||||
判断是建任务会话还是**修改目标状态**,并执行。
|
||||
|
||||
⇒ 改前**两套 prompt 完全共用一个模板** ⇒ 结果检查会话拿到了"改目标状态"的出口(越权),
|
||||
@@ -7358,12 +7358,38 @@ def t_skillguard_cooldown():
|
||||
src = (HERE / "hooks" / "skill-load-guard.py").read_text(encoding="utf-8", errors="replace")
|
||||
return [
|
||||
("有共用的 `_is_dispatch()`(⛔ 别在两处各写一遍判定)", "def _is_dispatch(" in src),
|
||||
("冷却旁路在:`_cooling(...) and not _is_dispatch(...)`",
|
||||
"_cooling(workdir, sid) and not _is_dispatch(prompt)" in src),
|
||||
("冷却旁路在:`_cooling(...) and not (_is_dispatch(...) or _is_load(...))`",
|
||||
"_cooling(workdir, sid) and not (_is_dispatch(prompt) or _is_load(prompt))" in src),
|
||||
("被跳过写 `COOL_SKIP`(⛔ 否则「没命中」与「被吞」分不出来)",
|
||||
"COOL_SKIP" in src),
|
||||
]
|
||||
|
||||
|
||||
@case("⛔ 点名了机制却没加载:注入之外还要有「收工前自检」抓手")
|
||||
def t_load_gate():
|
||||
"""🔴 2026-10-07 立(用户令逐字:「**问题是 会话没有加载决策方法,之前的优化改动无效**」)。
|
||||
|
||||
实测(`content_marketing_agent` 的闸门日志):`20:09:45 HIT … hits=决策方法` ⇒ **注入确实发出**,
|
||||
可会话**仍未去加载** ⇒ 根因=注入只是"劝",**没有任何东西核对 `Skill` 到底调没调**。
|
||||
两处处置:① 点名族命中即写 `<ws>/.workbuddy/.load-pending`;
|
||||
② `stop-dialog-guard.py` 收工前核「转录尾部里有没有**真的** Skill 加载过本技能」。
|
||||
⚠️ 源码级判据(跑真钩子会动到真工作区的状态,⛔ 不适合进回归套)。
|
||||
"""
|
||||
a = (HERE / "hooks" / "skill-load-guard.py").read_text(encoding="utf-8", errors="replace")
|
||||
b = (HERE / "hooks" / "stop-dialog-guard.py").read_text(encoding="utf-8", errors="replace")
|
||||
return [
|
||||
("点名族词表从 `TRIGGERS` **减**出来(⛔ 不另抄一份:`_LOAD_WORDS = tuple(...)`)",
|
||||
"_LOAD_WORDS = tuple(w for w in TRIGGERS" in a),
|
||||
("命中即写待办 `LOAD_PENDING`(⛔ 写在冷却之前)",
|
||||
"LOAD_PENDING" in a and "_mark_load(" in a),
|
||||
("收工闸在:`_load_gate(payload)` 已接进 main,且在自作用域判定之前",
|
||||
"def _load_gate(" in b and "if _load_gate(payload):" in b),
|
||||
("判据认**转义引号**那种编码(⛔ 普通引号匹配 = 恒假阴性)",
|
||||
'\\\\"skill\\\\":\\s*\\\\"session-mechanism' in b),
|
||||
("只读转录**尾部**(⛔ 不整读,有 200 MB 级转录)", "LOAD_TAIL_BYTES" in b),
|
||||
("读不到转录 ⇒ 判「不确定」放行(fail-open)", "got is None" in b),
|
||||
]
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
Reference in new issue
Block a user