diff --git a/session-mechanism/SKILL.md b/session-mechanism/SKILL.md index d87c1f0..4fb2b36 100644 --- a/session-mechanism/SKILL.md +++ b/session-mechanism/SKILL.md @@ -78,6 +78,12 @@ agent_created: true `使用任务会话完成 X 目标` / `使用执行会话完成 X 目标` / `继续 X 目标` / `用执行会话完成 X` / `派任务会话` / `建任务会话` / 任何"让我去把某个目标做完/接着做"的表述。 +🔴🔴 **两句口令分流哪套机制(2026-10-19 用户令,逐字「完成复杂目标 走graph , 完成目标 走 loop」)**: + +- `完成复杂目标:XXXX` ⇒ **走 graph(图模式)**:`graph/graphctl.py` 建图 → `check` → `tick` 派活 → `report` 回报 → `progress`;看板 20100 的「图模式」块会显示。 +- `完成目标:XXXX`(含 `使用项目机制完成目标`)⇒ **走 loop(现有项目机制)**:`goalctl` 立目标 → `collabd` 建排期/拉执行会话 → 检查会话判据。 +- 两条互不覆盖:要图就明说「复杂目标」;只说「完成目标」按 loop 走,⛔ 不擅自改道。 + **⛔ 禁止的三种"跳过理由"**(都真实发生过): | 跳过理由 | 为什么不算数 | diff --git a/session-mechanism/scripts/hooks/skill-load-guard.py b/session-mechanism/scripts/hooks/skill-load-guard.py index 76d0d29..961297e 100644 --- a/session-mechanism/scripts/hooks/skill-load-guard.py +++ b/session-mechanism/scripts/hooks/skill-load-guard.py @@ -160,6 +160,11 @@ TRIGGERS = ( # 🔴 2026-10-19 用户令(逐字「把skill 改成 完成目标也能触发」):光写「项目机制完成目标」不够 —— # 用户口语里会把机制名字省掉,只说「完成目标」;词表里必须有**裸「完成目标」**这一条, # 否则那句同样是派活授权,却一条都命不中。 + # 🔴 2026-10-19 用户令(逐字「完成复杂目标 走graph , 完成目标 走 loop」): + # **两条口令分工** —— `完成复杂目标` ⇒ 图模式 graph;`完成目标` ⇒ 现有 loop 机制。 + # ⚠️ 两句不是包含关系("完成复杂目标"里没有连续的"完成目标"子串),所以两词都要进表, + # 分流按"先看复杂"判,⛔ 不许靠子串顺序碰运气。 + '完成复杂目标', '复杂目标', '完成目标', '使用任务会话', '使用执行会话', '使用协作会话', '任务会话完成', '执行会话完成', '继续完成目标', '继续目标', '继续完成之前', '继续之前的', @@ -182,7 +187,8 @@ _LOAD_RULES = ('按规则来', '按规则做', '按作业规则', '遵守规则' # 🔴 为什么单列一族:这三族**目标技能不同**,⛔ 不能混在一个 if 里 —— # 命中"使用任务会话完成目标"的人,要的是**会话机制本体**(怎么建排期/怎么派活/ # 自决策白名单在 `references/02-功能优先协作协议.md`),⛔ 不是决策方法论。 -_LOAD_SESSION = ('使用项目机制', '项目机制完成', '项目机制', '完成目标', +_LOAD_SESSION = ('使用项目机制', '项目机制完成', '项目机制', + '完成复杂目标', '复杂目标', '完成目标', '使用任务会话', '使用执行会话', '使用协作会话', '任务会话完成', '执行会话完成', '继续完成目标', '继续目标', '继续完成之前', '继续之前的', '会话技能', '会话机制', '创建任务会话', '建任务会话', @@ -407,7 +413,19 @@ def main(): hit_rules = [w for w in hits if w in _LOAD_RULES] if hit_session: head = '检测到用户本轮**点名了会话机制 / 派活**(命中:%s)。' % '、'.join(hit_session) - body = ( + # 🔴 2026-10-19 用户令(逐字「完成复杂目标 走graph , 完成目标 走 loop」): + # 两条口令分流。**先判"复杂"**("完成复杂目标"里没有连续的"完成目标"子串,但仍按先后判更稳)。 + mode = '' + if '复杂目标' in prompt: + mode = ('🔴 **本轮走 graph(图模式)**:用户说「完成复杂目标」⇒ 用本包 `graph/graphctl.py`:\n' + ' `init` 建图 → `check` 校验 → `tick`(算完就开)→ 执行方 `report` 回报 → `progress` 看进度;\n' + ' 看板 `http://127.0.0.1:20100/` 的「图模式」块会实时显示这张图。\n' + ' ⛔ 不走 loop 排期、⛔ 不写 `goal.json`/`tasks.json`;图只负责编排,节点上的活仍由会话去干。\n\n') + elif '完成目标' in prompt: + mode = ('🔴 **本轮走 loop(现有项目机制)**:用户说「完成目标」⇒ 按目标 + 台账 + 队列那套推进' + '(`goalctl`/`collabd`/检查会话)。\n' + ' ⛔ 不擅自改走 graph —— 要走图,用户会说「完成复杂目标」。\n\n') + body = mode + ( '⛔ **不要凭记忆代替、也不要以"我已经知道这套机制"为由跳过**:\n' ' **先调用 Skill 工具加载 `session-mechanism`**(会话机制 + 多会话执行总入口 · 含**首屏第 0 步加载门槛**' '/三类会话/派活线/自决策白名单指向),然后才开始作答。\n'