Skip to content

Commit 15a75a5

Browse files
committed
fix: enforce Grok SkillRoute before tool use
1 parent e877e54 commit 15a75a5

46 files changed

Lines changed: 814 additions & 201 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎CHANGELOG.md‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
# 变更日志 (CHANGELOG)
22

33
> **说明**: 版本概览摘要;历史版本见对应详细变更文件。
4-
> **最新版本详细变更文档**: [`changelogs/releases/v1.16.6.md`](./changelogs/releases/v1.16.6.md)
5-
> **最后更新**: 2026-08-10
6-
> **当前未发布**: v1.16.6 已形成发布候选并归档到版本详情;远端发布事实仍以 tag、npm registry 与最终回读为准,后续实现继续记录到 [`changelogs/unreleased.md`](./changelogs/unreleased.md)。
4+
> **最新版本详细变更文档**: [`changelogs/releases/v1.16.7.md`](./changelogs/releases/v1.16.7.md)
5+
> **最后更新**: 2026-08-11
6+
> **当前未发布**: v1.16.7 已形成发布候选并归档到版本详情;远端发布事实仍以 tag、npm registry 与最终回读为准,后续实现继续记录到 [`changelogs/unreleased.md`](./changelogs/unreleased.md)。
77
88
---
99

1010
## 版本概览
1111

1212
| 版本 | 日期 | 变更摘要 | 详细 |
1313
|------|------|---------|------|
14+
| [v1.16.7](./changelogs/releases/v1.16.7.md) | 2026-08-11 | 🔧 **Grok 渐进式 Skill 路由与正文证据修复**:未提交路由在首次工具调用前 fail closed,ContextRead 保持可完成;Full 启动器固定 Grok 限定 MCP 名、首 catalog 与条件 commit 契约,并以真实三阶段 S15 晋级 Grok capability PASS | [查看](./changelogs/releases/v1.16.7.md) |
1415
| [v1.16.6](./changelogs/releases/v1.16.6.md) | 2026-08-10 | 🔧 **Windows 审批沙箱与 SkillRoute 恢复修复**:逐宿主隔离只读权限拒绝,新增 Node launcher readiness;可见恢复卡仅保留当前精确动作,语义漂移进入不可重试的持久退役终态 | [查看](./changelogs/releases/v1.16.6.md) |
1516
| [v1.16.5](./changelogs/releases/v1.16.5.md) | 2026-08-09 | 🔧 **SkillRoute 累计预算与有限退休修复**:持久化正文计费账本、全计划预算预留、原子计费和 cache 去重;预算不足时零写入、无 `nextCall` 有限退役;npm 包内完整路由验证与 Mermaid/DOMPurify/React Router 安全下限同步收敛 | [查看](./changelogs/releases/v1.16.5.md) |
1617
| [v1.16.4](./changelogs/releases/v1.16.4.md) | 2026-08-05 | 🔧 **审计缺陷收敛与上下文恢复修复**:修复 ProjectKnowledge 越界、SkillRoute/ContextRead 三次无进展循环、Memory 与 Profile 边界;增加 MCP/宿主有界 I/O、关键风险映射、验证 DAG 分层和安全审计证据闭环 | [查看](./changelogs/releases/v1.16.4.md) |

‎README.md‎

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,15 @@ devcodex init
150150

151151
安装和初始化完成后,重新打开 Codex、Claude Code、GitHub Copilot、Gemini CLI 或 Grok 的新会话。
152152

153+
Grok 用户建议从目标项目目录通过 DevCodex 启动:
154+
155+
```bash
156+
cd <你的项目或 workspace 根目录>
157+
devcodex grok
158+
```
159+
160+
`devcodex grok` 是 Grok Full 入口:它会加载用户级控制内核、项目绑定、MCP 与渐进式 SkillRoute。直接运行普通 `grok` 是 Partial 兼容入口;它仍可使用用户级规则、MCP 和可用 Hook,但 UserPromptSubmit 属于被动提示面,不能据此宣称与 Full 启动注入完全等价。
161+
153162
## 项目 Profile
154163

155164
普通单项目只需执行 `devcodex init`,无需再运行 Profile 命令。多项目 workspace 中,如果某个子项目需要独立于 workspace 基线的 Profile,可在 workspace 根目录按项目名初始化:
@@ -200,6 +209,8 @@ devcodex init --profile api --dry-run
200209

201210
DevCodex 会按任务意图选择流程和 Skill。普通使用者不需要手动配置内置 Skill。
202211

212+
如果当前宿主是 Grok,请在项目目录用 `devcodex grok` 打开该会话;不要把普通 `grok` 的 Partial 行为误判为内置 Skill 未安装。
213+
203214
### 自动推进:`@rocky`
204215

205216
如果你希望 DevCodex 在明确任务范围内自动继续执行,可以在请求里带上 `@rocky`:
@@ -358,6 +369,30 @@ Get-Command devcodex
358369
npm root -g
359370
```
360371

372+
### Grok 能看到 Skill 或 MCP,但为什么没有加载 Skill 正文?
373+
374+
先确认入口。Grok Full 入口是:
375+
376+
```bash
377+
cd <你的项目或 workspace 根目录>
378+
devcodex grok
379+
```
380+
381+
普通 `grok` 是 Partial 兼容入口。新版本会在 PreToolUse 阶段阻止“路由尚未决策就执行无关工具”,但普通入口的被动 UserPromptSubmit 仍不等价于 `devcodex grok` 的完整 `--rules` 启动内核。
382+
383+
正文加载的权威成功回执是 `StageLoadReceiptV1`,项目中没有 `SkillLoadSuccessV1`。只看到 catalog 或 `SkillRouteCommitReceiptV1`,表示候选目录或路由决策已完成,不表示 entry/execution/closeout 正文已经全部加载。
384+
385+
按下面顺序恢复:
386+
387+
```bash
388+
devcodex status
389+
devcodex doctor --json
390+
devcodex global-adapters apply
391+
devcodex grok
392+
```
393+
394+
在目标项目目录中新建 Grok 会话后再验证。若 `status` 显示 `Grok parity full-capable — use: devcodex grok`,这正是在提示应走 Full 入口;它不是权限不足,也不要求永久开启完全访问。
395+
361396
### “帮我审批”时反复重新连接,是否必须开启完全访问?
362397

363398
不需要永久开启 Full access。“帮我审批”仍受 workspace 沙箱约束;它只决定符合条件的越界动作如何审批,不会自动扩大文件系统或可执行文件范围。先运行:
@@ -454,7 +489,7 @@ DevCodex 分两层生效:
454489

455490
如果你希望为某个项目增加自己的流程、检查清单或团队约定,可以创建 DevCodex 工作区 Skill。
456491

457-
这里的 Skill 属于 DevCodex 工作区层,不是某个宿主的原生 Skill。新会话开始后,DevCodex 会读取它,并可在 Codex、Claude Code、GitHub Copilot、Gemini CLI 和 Grok 中按意图触发。
492+
这里的 Skill 属于 DevCodex 工作区层,不是某个宿主的原生 Skill。新会话开始后,DevCodex 会读取它,并可在 Codex、Claude Code、GitHub Copilot、Gemini CLI 和 Grok 中按意图触发;Grok 请优先使用 `devcodex grok` Full 入口。
458493

459494
单项目时,可以放在项目根目录:
460495

‎RULES.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# DevCodex v1.16.6 — 使用入口
1+
# DevCodex v1.16.7 — 使用入口
22

3-
> AI workflow injector for Copilot / Claude Code / Codex / Gemini / Grok · publisher: Rocky · version: 1.16.6
3+
> AI workflow injector for Copilot / Claude Code / Codex / Gemini / Grok · publisher: Rocky · version: 1.16.7
44
55
## 正式主支持客户端
66

‎changelogs/releases/v1.16.7.md‎

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# v1.16.7
2+
3+
> 发布日期:2026-08-11
4+
> 类型:Patch
5+
6+
## 摘要
7+
8+
本版本修复 Grok 宿主可看到 MCP/Skill 目录却未可靠加载正文的问题:未提交的渐进式路由现在会在首次工具调用前阻止无关工作,同时保留 ContextRead 的合法完成路径;Grok Full 启动器固定实际可调用的限定 MCP 名与路由 schema,并用真实 entry/execution/closeout 证据晋级 capability PASS。
9+
10+
## 主要修复
11+
12+
- 非显式 `PLAN_NOT_COMMITTED` 仅在 PreToolUse 阶段强制;无工具的 Stop 不进入路由恢复循环,显式 Skill 请求仍在全部生命周期阶段 fail closed。
13+
- 预提交路由只允许 `profile_load`、`memory_status`、`memory_session_query` 与 `memory_summary_query` 等精确只读工具通过,且 `ContextReadBindingV1` 必须匹配当前 project 与 context epoch;缺 binding、跨项目、跨 epoch 和无关工具均被拒绝。
14+
- 首个 catalog 恢复调用不再携带 `cursor:null`;只有上一页返回非空 `nextCursor` 时才发送 cursor。
15+
- `devcodex grok` 启动器与 Grok bootstrap 固定 `devcodex-profile__profile_context_plan`、`devcodex-profile__profile_load`、`devcodex-profile__skill_route`、`devcodex-memory__memory_status` 四个 server-qualified 名称,禁止误用未限定名或其他宿主别名。
16+
- 条件阶段通过携带 `previousPlanDigest`、`lateConditionId` 与 fresh binding 的第二次 `commit` 激活;提示与 S15 不再调用不存在的 `replan` 操作。
17+
- Grok S15 不再要求 npm 安装目录含 Git checkout;production probe 可直接从真实 tarball/registry 包验证 runtime 与 adapter identity。
18+
- Host capability 证据增加 Grok 1.0.0 PASS,完整校验 runtime digest、launcher digest、package-relative evidence、entry/execution/closeout stages、local-stdio transport 与六项 retirement anomalies。
19+
20+
## 用户排障
21+
22+
- Grok Full 入口为目标项目目录中的 `devcodex grok`;普通 `grok` 是 Partial 兼容入口,不能用其被动 UserPromptSubmit 行为证明 Full 启动注入等价。
23+
- `SkillRouteCommitReceiptV1` 只证明已完成路由决策;正文加载的权威成功回执是 `StageLoadReceiptV1`,项目中不存在 `SkillLoadSuccessV1`。
24+
- 更新后执行 `devcodex global-adapters apply`,完全关闭旧任务并通过 `devcodex grok` 新建会话,才能加载新的用户级 runtime 与 launcher 规则。
25+
- 该问题不是“必须开启完全访问权限”;权限与路由契约是两条独立诊断轴。
26+
27+
## 测试与证据
28+
29+
- targeted SkillRoute、host adapter、host installation、client contract、README 与 host parity 均通过。
30+
- `npm run test:full`:93/93 PASS;`npm run test:package-release`:72 selected、62 executed、10 cache hits,PASS。
31+
- Profile 全工作区检查:32 个目标、0 error;现有 11 条配置建议不构成发布阻断。
32+
- 最终候选的 runtime contract digest=`ab24083a63b13e622715ca1eeaf31f307f46185e93829ce3f54f7a9f4d47669a`;tarball SHA-256 由包外发布报告/Profile 持有,避免把制品自身摘要写回包内形成自引用身份漂移。
33+
- 无 probe authority 的候选生产探针:Codex 与 Grok 均以 capability-pass 完成 entry、execution:test-validation、closeout,六项异常计数全 0。
34+
- 普通 Grok 负向探针在首次无关 `git status` 前被 `progressive-skill-route` 拒绝,未修改文件。
35+
- 不新增第三方依赖、网络监听、后台服务或自动 mutation replay。
36+
37+
## 发布说明
38+
39+
- npm 包名:`devcodex`
40+
- registry:`https://registry.npmjs.org/`
41+
- 发布分支:`main`
42+
- 发布路径:候选通过 R4/ECR、main CI 与 package release 后创建 annotated tag `v1.16.7`;tag workflow 发布带 provenance 的 npm 包,registry 验证通过后创建 GitHub Release。

‎changelogs/unreleased.md‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
# 未发布变更(Unreleased)
22

33
> **用途**: 记录尚未正式发版的实现级变更。
4-
> **当前**: v1.16.6 已形成发布候选并归档到 `changelogs/releases/v1.16.6.md`;本文件保留候选索引与历史镜像供 validate 探针消费,远端发布事实仍以 tag、npm registry 和最终回读为准。v1.16.5 已发布事实保持历史不变。
4+
> **当前**: v1.16.7 已形成发布候选并归档到 `changelogs/releases/v1.16.7.md`;本文件保留候选索引与历史镜像供 validate 探针消费,远端发布事实仍以 tag、npm registry 和最终回读为准。v1.16.6 及更早版本的已发布事实保持历史不变。
55
66
## 当前未发布实现候选
77

8+
- **v1.16.7 Grok 渐进式 Skill 路由与正文证据修复候选**:非显式 `PLAN_NOT_COMMITTED` 在 PreToolUse 首次无关工具调用前 fail closed,但工具自由的 Stop 保持非强制,避免无工作对话进入恢复循环;预提交阶段只放行带同项目、同 context epoch 的结构化 Profile/Memory 读取,使 ContextRead 可先完成再提交路由。`devcodex grok` Full 启动器和注入提示固定 `devcodex-profile__profile_context_plan/profile_load/skill_route` 与 `devcodex-memory__memory_status` 限定名,首个 catalog 省略 cursor,并以第二次 `commit` 激活 late condition,不再发出不存在的 `replan`。Grok S15 移除 npm 安装目录必须为 Git checkout 的假设,新增六项 retirement anomaly 零值证据;candidate 与无 probe authority 的 production Codex/Grok 三阶段 entry/execution/closeout 均通过,Grok capability 晋级 PASS。README 明确 Full/Partial 入口及 `StageLoadReceiptV1` 正文成功回执。当前为发布候选,远端事实仍待 R5~R7。
89
- **v1.16.6 Windows 审批沙箱与 Skill Route 恢复候选**:只读 `status/doctor` 对单宿主 `realpath EPERM/EACCES` 隔离为 `GLOBAL_HOST_TARGET_UNVERIFIED/sandbox-read-denied`,其余宿主继续检查,安装/写入路径仍保持物理边界 fail closed;新增 `NodeRuntimeReadinessV1`,无 shell 地解析 ambient Node、版本管理器 provider/launcher 与有界启动烟测,区分 `sandbox-exec-denied`、PATH 缺失和不可验证;Skill Route 可见恢复卡仅显示当前精确 `nextCall` 或 typed status/error,完整 envelope 改由结构化 `devcodexNextAction` 承载,Codex/Claude Stop 与 PostToolUse/PreCompact carrier 不再静默丢失;`REBIND_SEMANTIC_DRIFT` 继续拒绝原地迁移,同时持久化有限退役终态,使 status/Stop 不再回放同一个 rebind。README 同步说明“帮我审批”不等于 Full access,并给出一次性 launcher 审批、稳定系统 Node、宿主目录读取、新任务重载与 semantic-drift 新路由恢复路线。当前为未发布候选,远端发布事实仍待 R4~R7。
910
- **新电脑工作流未激活 FAQ 与防回归合同**:公共 README 新增“安装最新版后没有需求概况、PC0~PC7 或 CP 流程”的状态分流,区分用户级 adapter contract、当前 cwd 的 workspace/Profile、Codex 新任务指令加载、Desktop 可接受的 `native=unverified` 与 GlobalOnly 下非故障的 `host kernel not installed`;提供 `global-adapters apply`、`init`、`status`、`doctor --json` 及 Windows 多 Node 根核对命令。公共 README 合同和负向测试同步要求 FAQ 与适配器修复入口不可回退。
1011
- **v1.16.5 发布候选已归档**:SkillRoute 累计正文预算循环修复已进入 `changelogs/releases/v1.16.5.md`。新增 `SkillRouteBodyChargeLedgerV1`、`SkillRouteBudgetProjectionV1` 与结构化预算 recovery;commit/rebind 全计划预留,load_stage 首次交付原子计费,跨 generation/cache reopen 去重;预算不足、预留不足或账本不一致时 fail closed、零写入并投影 `nextCall=null` 的有限退役终态。在线发布审计另将维护者本地站点 Mermaid、DOMPurify 与 React Router 安全下限分别提升至 10.9.8、3.4.13 与 7.18.2,移除旧 RSC 临时例外并恢复零 advisory;npm 包资格验证同步修复 SkillRoute 测试、intent/registry 生成器与 closure owner 的 source/package 布局闭环,隔离安装包内完整七段路由链已通过;最终 tarball production S15、远端 CI、tag/Release、npm publish 与 fresh-install R7 仍待发布阶段完成。

‎content/duplication-inventory.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"schemaVersion": "ControlContentDuplicationInventoryV1",
3-
"sourceBundleDigest": "55d630785a4e25f68fd0d8ceb14c71fc98a3a08925d208a64bf1b0f9183f2c36",
3+
"sourceBundleDigest": "3f5dae61b3f1d1e0e0bf99fea1c81c045162716411d3d35f66331d15e65dd0db",
44
"thresholds": {
55
"minParagraphChars": 100,
66
"sectionThreshold": 0.94,

‎content/instructions/00-safety.instructions.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
applyTo: "**"
33
description: 安全底线与输出语言规则,定义 S01~S07、违规处理与不可豁免边界
44
priority: P2
5-
version: 1.16.6
5+
version: 1.16.7
66
---
77
# 安全底线规范(S01~S07)
88

‎content/instructions/01-common.instructions.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
applyTo: "**"
33
description: 通用规范总则,覆盖优先级、意图路由、Profile/active-root、宿主适配与治理总线
44
priority: P5
5-
version: 1.16.6
5+
version: 1.16.7
66
---
77
# 通用规范
88

‎content/instructions/01a-profile-loading.instructions.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
applyTo: "**"
33
description: 意图驱动的 Profile 加载、active-root 路径、目标项目识别与项目现实扩展规范
44
priority: P5
5-
version: 1.16.6
5+
version: 1.16.7
66
---
77
# Profile 加载与项目现实扩展
88

‎content/instructions/01b-record-router.instructions.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
applyTo: "**"
33
description: 任务切换边界、RecordRouter 分流、Improvement Intake 与提交发布边界的通用规范
44
priority: P5
5-
version: 1.16.6
5+
version: 1.16.7
66
---
77
# 任务边界与 RecordRouter
88

0 commit comments

Comments
 (0)