Skip to content

Commit 601469d

Browse files
authored
feat: grok-bot host driver (driver-synthesized lifecycle for Grok Bot) (#7)
* feat(grok-bot): register driver-synthesized grok-bot host and add devcodex grok-bot CLI * feat(grok-bot): observe-tool file flags, grok-bot hostVariant in bootstrap, DevCodex source profile truth - observe-tool: --args-file, --response-file (strips Grok Bot untrusted-data fence, rebuilds CallToolResult), required --project-dir - driver host sets DEVCODEX_HOST_VARIANT=grok-bot/driver-synthesized-local-stdio - profile init for the DevCodex source repo emits ProfileCurrentTruthV1 from observed evidence only - refresh skill portfolio; tests + changelog * feat(grok-bot): grok-bot-aware entry check (PC4/PC5/PC6), admission ingressWarnings, native tool passthrough, Grok skill section * chore: regenerate workflow root registry and skill portfolio * feat(grok-bot): pinned runtime copy helper and driver-synthesized-host-event provenance * feat(grok-bot): memory_turn_closeout_v1, structured session writes, aligned PC labels + prompt-language entry check, profile freshness warnings * fix(admission): ignore and drop task recovery bindings whose task folder no longer exists * docs(changelog): note orphaned task recovery binding fix * fix(capability): demote stale Codex CLI skill-route PASS evidence to UNVERIFIED * fix(inventory): register memory_turn_closeout_v1 in docs surface inventory and reserved mutation tools * feat(closeout): memory_turn_closeout_v1 terminal step produces ECR/completion evidence and runs the fenced terminal * chore: regenerate skill portfolio * feat(grok-bot): per-session lifecycle partition and per-call hostSession for concurrent conversations * fix(grok-bot): default session keeps the pre-isolation partition * chore: regenerate skill portfolio
1 parent 7d888ef commit 601469d

38 files changed

Lines changed: 2025 additions & 100 deletions

‎changelogs/unreleased.md‎

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,32 @@ TaskLifecycle 规范能力吸纳、源码操作状态恢复及本次入口/CP/
1111

1212
修复和边界见 [v1.20.5候选说明](releases/v1.20.5.md)。当前仅准备本地候选,不表示已发布或最终资格通过。下方既有历史条目保留,不批量移入新版本。
1313

14+
## Grok Bot 宿主驱动(grok-bot)
15+
16+
- 会话隔离:Grok Bot 多会话共用连接器与 `grok-bot-session` 时会互相覆盖同一项目的 lifecycle-state。现驱动 `turn-begin`/`observe-tool` 支持 `--session-id`,连接器每次调用可携带 `hostSession`(校验格式与 contextBinding 归属,逐调用切换会话);仅对 grok-bot 驱动宿主,lifecycle/恢复/准入/路由状态按 `.memory/hooks/<project>/.sessions/<id>/` 分区,其他宿主不变。新增 `hooks/_runtime/host-session-partition.cjs` 与双会话交错/任务恢复不越界测试。
17+
- 新增 `grok-bot` hostVariant(`grok-bot/driver-synthesized-local-stdio`,UNVERIFIED、非默认):`host-adapter-identity.cjs` 注册变体/别名,`DEVCODEX_AGENT=grok-bot` 归一为 `grok` agent,不再落入 `unknown-agent`。
18+
- `lifecycle-host-adapters.cjs grok-bot` 复用 Grok 事件映射,事件与输出均标记 `devcodexEventProvenance=driver-synthesized`,不冒充原生宿主事件。
19+
- 新增 `devcodex grok-bot turn-begin|observe-tool|run`(`scripts/lib/grok-bot-driver.js`),供无原生生命周期 Hook 的 Grok Bot 合成 SessionStart/UserPromptSubmit 并为每次 MCP 调用补发 Pre/PostToolUse,打通 profile_context_plan → skill_route → memory_task_admit_v2。
20+
- `observe-tool` 新增 `--args-file`、`--response-file`(自动剥离 Grok Bot 不可信数据围栏并还原 MCP CallToolResult 形状)并强制 `--project-dir`;每次 MCP 调用前后各一条命令。
21+
- 入口检查感知 grok-bot:`profile_compose_entry_check` 的 PC5 在 `DEVCODEX_AGENT=grok-bot` 时如实报告 Grok Bot 驱动档(`WARN`,Partial 类,不可判 Full);PC6 读取项目 Git 分支与未提交改动数(有改动为 `WARN`);PC4 读取 Profile `config.mode`,dev 模式在调用方提供 `entry.specRadar` 时判 `PASS`。其他宿主无证据时仍为 `UNVERIFIED`。
22+
- `memory_task_admit_v2` 回执新增 `ingressWarnings`:调用方传入的 ingressRef 无效而回退到服务端入口投影时不再静默。
23+
- `observe-tool --tool` 仅为裸 DevCodex 工具名补命名空间,原生工具名(Write/Edit/Bash)原样透传。
24+
- Grok 插件 Skill 增加「Grok Bot (no native hooks)」小节与 HostParity 驱动档行。
25+
- 新增 `scripts/grok-bot-runtime.sh update|restart|status`:Grok Bot 连接器与驱动固定运行在独立干净副本(默认 `/workspace/devcodex-runtime`),只做 fast-forward 更新,并按副本路径重启 profile/memory 服务。
26+
- 新增来源级别 `driver-synthesized-host-event`:驱动合成事件不再记为原生 `trusted-host-event`;仅 `grok-bot/driver-synthesized-local-stdio` 变体可获得等同的入口授权(语义决策、准入、恢复判定),其他宿主不变,伪造到其他变体会被校验拒绝。
27+
- 新增 `memory_turn_closeout_v1`:一次调用完成 S05——可选新建报告(与 operational 写租约同等授权校验,仅限 `reports/` 下新文件)、会话分配/复用、📨 对话行与状态行更新、SUMMARY 追加。
28+
- `memory_session_write` 新增 `turn`(自动编号写入 📨 表格行)与 `sessionStatus`(更新「状态」行,不再停留在「已分配,待补充内容」);自由 Markdown 紧跟表格时自动空行分隔,不再拼进表格。`content` 改为可选(至少提供 content/turn/sessionStatus/artifacts 之一)。
29+
- 入口检查表 PC 标签与内容对齐(PC0 版本与运行、PC2 会话、PC3 执行准备、PC5 宿主、PC6 工作区、PC7 续接、PC8 流程与方案;英文同步),模板 `precheck-status.prompt.md` 同步;`profile_compose_entry_check` 未提供 `languageDecision` 时按用户提示语言渲染(中文提示 → 中文)。
30+
- `devcodex grok-bot turn-begin` 输出 `profileFreshness` 与 `warnings`:Profile current-truth `gitHead` 与项目 HEAD 不一致(`PROFILE_TRUTH_DRIFT`)或 Profile 更新后已有 ≥20 次提交(`PROFILE_POSSIBLY_STALE`)时告警。
31+
- Grok 插件 Skill 的 Grok Bot 小节补充:S04 在该路径不可强制、Profile 新鲜度告警、`memory_turn_closeout_v1` 收尾。
32+
- 任务目录被删除后遗留的 TaskRecoveryBinding 不再污染后续准入:PreToolUse 重放前清除孤立绑定(`lastResumeIngressRehydrate.reasonCode=task-root-missing`),`memory_task_admit_v2` 的 bounded-resume 回退忽略孤立绑定,省略 `ingressRef` 的准入恢复正常。
33+
- Codex CLI Skill 路由能力由 `PASS` 降为 `UNVERIFIED`(`defaultEligible=false`):`task-recovery-store-v5.cjs` 等运行时契约文件变更后,旧 S15 证据的 `runtimeContractDigest`/`hostAdapterDigest` 已过期;在 codex-cli 0.155.1 上用 `probe-skill-route-s15-host.js --host codex`(隔离与 production 模式)重放均因宿主恢复指令要求提交后立即 load_stage 而无法完成条件重规划,未取得可提升的新鲜证据。旧证据文件保留作历史,待真实宿主重放通过后用 `refresh-host-skill-route-capability.js` 重新提升。
34+
- `memory_turn_closeout_v1` 新增 `terminal`:用本轮真实数据(ECR 复审项、完成项)在 `<taskRoot>/evidence/closeout/` 生成 ECR 与完成清单,引用同一调用写入的报告与会话记忆摘要,读取 owner CAS 后执行受围栏的 `memory_task_terminal_v1`;`completed` 仍要求已验证 CP1。补齐此前 terminal 四类证据缺少生产者的缺口。
35+
- 驱动宿主写入 `DEVCODEX_HOST_VARIANT`,turn-begin 的 SkillRouteBootstrap 报告 `grok-bot/driver-synthesized-local-stdio`。
36+
- `devcodex profile init` 对 DevCodex 源码仓库自身生成 ProfileCurrentTruthV1 与 currentTruthRef:仅取 package.json、本地 git/候选身份、CI 矩阵与公开 GitHub Release/workflow 回执;证据缺失保持 UNVERIFIED,由未改动的 ProfileCurrentTruthGate 拒绝。
37+
- 使用前提:在父级工作区(如 `/workspace`)执行 `devcodex init`,不要在仓库内初始化;各项目再执行 `devcodex profile init`。
38+
- 限制:事件由驱动合成,PreToolUse 仅观测不强制拦截;回归见 `npm run test:grok-bot-host`。
39+
1440
## 全项目审查问题修复
1541

1642
- MCP supervisor 固定客户端已协商的 tools/prompts 契约;worker 崩溃后先复核候选,schema 漂移返回明确的重启错误。外层 stdin 使用共享有界 JSONL reader,超大帧拒绝后仍能处理合法请求。

‎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": "dbb6e63c39ced5100c50a8deddd47427a170bb59594b249ecc2afb3f661f2466",
3+
"sourceBundleDigest": "034cda1c943f913bfcb24cc58203d4256e35e0d0e797193206d3cfde6f2bb785",
44
"thresholds": {
55
"minParagraphChars": 100,
66
"sectionThreshold": 0.94,

‎content/prompts/precheck-status.prompt.md‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@ applyTo: "**"
1515

1616
| 检查项 | 状态 | 结论(人话;禁止进度缩写) |
1717
|----|----|----------------------------|
18-
| PC0 中断处理 | `PASS` | 版本:已安装 package version · 活动 runtime generation · 当前配置 runtime generation · 是否需要重启 · 可选源码候选 `{packageVersion, shortHead, dirty}` · alignment |
18+
| PC0 版本与运行 | `PASS` | 版本:已安装 package version · 活动 runtime generation · 当前配置 runtime generation · 是否需要重启 · 可选源码候选 `{packageVersion, shortHead, dirty}` · alignment |
1919
| PC1 当前意图 | `PASS` | 意图:语义初判 → 项目现实扩展后的最终路由/工作流 |
20-
| PC2 项目绑定 | `PASS` | 会话:轮次/Token · 待跟进 |
21-
| PC3 确认边界 | `PASS` | 执行准备:唯一项目 · 连续性 · 产物落点(禁止「写报告 02」式施工日志) |
20+
| PC2 会话 | `PASS` | 会话:轮次/Token · 待跟进 |
21+
| PC3 执行准备 | `PASS` | 执行准备:唯一项目 · 连续性 · 产物落点(禁止「写报告 02」式施工日志) |
2222
| PC4 规范雷达 | `N/A` | 规范雷达:dev 完整;非 dev=`N/A` + skipReason |
23-
| PC5 本轮范围 | `UNVERIFIED` | 宿主:名称 + Full/Partial · 部署/同步证据(legacy 诊断可覆盖 `.github/`、`.claude/`、根 `AGENTS.md`、`.agents/`、`.codex/`;GlobalOnly 以 doctor/receipt 为准) |
24-
| PC6 Dirty 边界 | `PASS` | 工作区:git dirty 范围 · 任务目录 |
25-
| PC7 上下文 | `PASS` | 续接:新会话/resume 有界检测 |
26-
| PC8 风险等级 | `PASS` | 流程与方案:初判/二次判断的 ceremonyTier、designDepth 及差异原因 |
23+
| PC5 宿主 | `UNVERIFIED` | 宿主:名称 + Full/Partial · 部署/同步证据(legacy 诊断可覆盖 `.github/`、`.claude/`、根 `AGENTS.md`、`.agents/`、`.codex/`;GlobalOnly 以 doctor/receipt 为准) |
24+
| PC6 工作区 | `PASS` | 工作区:git dirty 范围 · 任务目录 |
25+
| PC7 续接 | `PASS` | 续接:新会话/resume 有界检测 |
26+
| PC8 流程与方案 | `PASS` | 流程与方案:初判/二次判断的 ceremonyTier、designDepth 及差异原因 |
2727
| PC9 验证 | `PASS` | 验证计划:assuranceLevel · targeted/affected/full 数量 · CI/package/install/release · 预计时长 |
2828
| PC10 下一步 | `PASS` | 后续动作:下一阶段 · 是否自动继续 · 用户当前动作 · 如何修正判断 |
2929

‎content/skills/portfolio.json‎

Lines changed: 71 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,17 @@
66
"skillsPattern": "content/skills/*/SKILL.md",
77
"optionalSidecar": "content/skills/*/devcodex.skill.json",
88
"registry": "plugin.json",
9-
"sourceDigest": "67c010bb3feae21da186da62f59250aee200c90aa17ab34b36690759f40810eb",
9+
"sourceDigest": "551b528e53b10b866a48cc8cb3f4b858a85de28930fb88f88ecfc03de34b760c",
1010
"sidecarDigest": "774105d7947b340d15d17115fcb8e37b62ae545cf553f06126d529184fd74872",
1111
"pluginDigest": "16cf44508be1000903d8d9f5ebf7b1a97a32a3806646dd4af2f2f1aed4a68e7c",
1212
"publicTaxonomy": "content/skills/public-taxonomy.json",
1313
"publicTaxonomyDigest": "7f6ee8c30f5484b8881e27099af72c69625b73a7cf3b53fe51c8c0c147d4f124",
1414
"portfolioEvidence": "content/skills/portfolio-evidence.json",
1515
"portfolioEvidenceDigest": "cfd709b1248855c06c56373d1bcfe4798acefd7f1e0c11555b26cfd8caa1e8a6",
16-
"consumerInventoryFileCount": 731,
17-
"consumerInventoryDigest": "54a64aa98ede8816cdccee8a821adf8a75bfd30921b90deb1b631f8a7d260508",
18-
"consumerProjectionDigest": "abdd741feaa9bda23d8a7b02944ed8fc7baa3d966b60d8f649e20e15f21175c8",
19-
"portfolioInputDigest": "5ba18148cfefc6a2e95544b4a20ea6650d747d905817288d03207759b6a1a94c"
16+
"consumerInventoryFileCount": 735,
17+
"consumerInventoryDigest": "c2f71f2924d163753b5dab8146ddefb15d1d343d2ff8201957fe4e5aba513231",
18+
"consumerProjectionDigest": "2b09ec9588ad0e960884aaf0cf16520f87e8844840f281d36d0d1d53ce747fd9",
19+
"portfolioInputDigest": "07007518e994791b588a490b63403b8b1bd46c99857ca3c37d55a8b78973e184"
2020
},
2121
"ordering": "skills.id asc; graph edges from/to asc",
2222
"summary": {
@@ -9378,6 +9378,10 @@
93789378
"path": "scripts/lib/validate-rework-trust-controls.js",
93799379
"role": "current"
93809380
},
9381+
{
9382+
"path": "scripts/test-grok-bot-host.js",
9383+
"role": "current"
9384+
},
93819385
{
93829386
"path": "scripts/test-host-parity-scorecard.js",
93839387
"role": "current"
@@ -9400,6 +9404,7 @@
94009404
}
94019405
],
94029406
"validationProfile": [
9407+
"scripts/test-grok-bot-host.js",
94039408
"scripts/test-host-parity-scorecard.js",
94049409
"scripts/test-repair-prevention-assessment.js",
94059410
"scripts/test-requirement-parallel-orchestration.js",
@@ -9452,6 +9457,7 @@
94529457
],
94539458
"evolvableUnitRef": "skill:fix-default",
94549459
"probeSuiteRefs": [
9460+
"scripts/test-grok-bot-host.js",
94559461
"scripts/test-host-parity-scorecard.js",
94569462
"scripts/test-repair-prevention-assessment.js",
94579463
"scripts/test-requirement-parallel-orchestration.js",
@@ -11125,6 +11131,10 @@
1112511131
"path": "scripts/lib/global-host-config.js",
1112611132
"role": "current"
1112711133
},
11134+
{
11135+
"path": "scripts/lib/grok-bot-driver.js",
11136+
"role": "current"
11137+
},
1112811138
{
1112911139
"path": "scripts/lib/host-capability-routing.js",
1113011140
"role": "current"
@@ -11317,6 +11327,10 @@
1131711327
"path": "scripts/test-governance-intake.js",
1131811328
"role": "current"
1131911329
},
11330+
{
11331+
"path": "scripts/test-grok-bot-host.js",
11332+
"role": "current"
11333+
},
1132011334
{
1132111335
"path": "scripts/test-hooks-ingress-continuity.js",
1132211336
"role": "current"
@@ -11479,6 +11493,7 @@
1147911493
"scripts/test-feature-inventory-evidence.js",
1148011494
"scripts/test-global-skill-runtime-root.js",
1148111495
"scripts/test-governance-intake.js",
11496+
"scripts/test-grok-bot-host.js",
1148211497
"scripts/test-hooks-ingress-continuity.js",
1148311498
"scripts/test-hooks-runtime.js",
1148411499
"scripts/test-host-adapters.js",
@@ -11597,6 +11612,7 @@
1159711612
"scripts/test-feature-inventory-evidence.js",
1159811613
"scripts/test-global-skill-runtime-root.js",
1159911614
"scripts/test-governance-intake.js",
11615+
"scripts/test-grok-bot-host.js",
1160011616
"scripts/test-hooks-ingress-continuity.js",
1160111617
"scripts/test-hooks-runtime.js",
1160211618
"scripts/test-host-adapters.js",
@@ -12304,6 +12320,10 @@
1230412320
"path": "hooks/_runtime/evidence/grok-skill-route-pass.v1.json",
1230512321
"role": "current"
1230612322
},
12323+
{
12324+
"path": "hooks/_runtime/host-session-partition.cjs",
12325+
"role": "current"
12326+
},
1230712327
{
1230812328
"path": "hooks/_runtime/host-tool-mutation-adapters.cjs",
1230912329
"role": "current"
@@ -12612,6 +12632,10 @@
1261212632
"path": "scripts/lib/governance-ledger-resolver.js",
1261312633
"role": "current"
1261412634
},
12635+
{
12636+
"path": "scripts/lib/grok-bot-driver.js",
12637+
"role": "current"
12638+
},
1261512639
{
1261612640
"path": "scripts/lib/grok-workspace-launcher.js",
1261712641
"role": "current"
@@ -12816,6 +12840,10 @@
1281612840
"path": "scripts/test-governance-status-summary.js",
1281712841
"role": "current"
1281812842
},
12843+
{
12844+
"path": "scripts/test-grok-bot-host.js",
12845+
"role": "current"
12846+
},
1281912847
{
1282012848
"path": "scripts/test-hooks-ingress-continuity.js",
1282112849
"role": "current"
@@ -13016,6 +13044,7 @@
1301613044
"scripts/test-global-install-smoke.js",
1301713045
"scripts/test-governance-intake.js",
1301813046
"scripts/test-governance-status-summary.js",
13047+
"scripts/test-grok-bot-host.js",
1301913048
"scripts/test-hooks-ingress-continuity.js",
1302013049
"scripts/test-hooks-runtime.js",
1302113050
"scripts/test-host-adapters.js",
@@ -13119,6 +13148,7 @@
1311913148
"scripts/test-global-install-smoke.js",
1312013149
"scripts/test-governance-intake.js",
1312113150
"scripts/test-governance-status-summary.js",
13151+
"scripts/test-grok-bot-host.js",
1312213152
"scripts/test-hooks-ingress-continuity.js",
1312313153
"scripts/test-hooks-runtime.js",
1312413154
"scripts/test-host-adapters.js",
@@ -14063,6 +14093,10 @@
1406314093
"path": "scripts/lib/governance-ledger-migration.js",
1406414094
"role": "current"
1406514095
},
14096+
{
14097+
"path": "scripts/lib/grok-bot-driver.js",
14098+
"role": "current"
14099+
},
1406614100
{
1406714101
"path": "scripts/lib/grok-workspace-launcher.js",
1406814102
"role": "current"
@@ -14439,6 +14473,10 @@
1443914473
"path": "scripts/test-governance-status-summary.js",
1444014474
"role": "current"
1444114475
},
14476+
{
14477+
"path": "scripts/test-grok-bot-host.js",
14478+
"role": "current"
14479+
},
1444214480
{
1444314481
"path": "scripts/test-hooks-ingress-continuity.js",
1444414482
"role": "current"
@@ -14721,6 +14759,7 @@
1472114759
"scripts/test-governance-intake.js",
1472214760
"scripts/test-governance-ledger-resolver.js",
1472314761
"scripts/test-governance-status-summary.js",
14762+
"scripts/test-grok-bot-host.js",
1472414763
"scripts/test-hooks-ingress-continuity.js",
1472514764
"scripts/test-hooks-runtime.js",
1472614765
"scripts/test-host-adapters.js",
@@ -14858,6 +14897,7 @@
1485814897
"scripts/test-governance-intake.js",
1485914898
"scripts/test-governance-ledger-resolver.js",
1486014899
"scripts/test-governance-status-summary.js",
14900+
"scripts/test-grok-bot-host.js",
1486114901
"scripts/test-hooks-ingress-continuity.js",
1486214902
"scripts/test-hooks-runtime.js",
1486314903
"scripts/test-host-adapters.js",
@@ -17054,6 +17094,10 @@
1705417094
"path": "scripts/lib/global-adapters-cli.js",
1705517095
"role": "current"
1705617096
},
17097+
{
17098+
"path": "scripts/lib/grok-bot-driver.js",
17099+
"role": "current"
17100+
},
1705717101
{
1705817102
"path": "scripts/lib/host-parity-scorecard.js",
1705917103
"role": "current"
@@ -17286,6 +17330,10 @@
1728617330
"path": "scripts/test-global-runtime-continuity.js",
1728717331
"role": "current"
1728817332
},
17333+
{
17334+
"path": "scripts/test-grok-bot-host.js",
17335+
"role": "current"
17336+
},
1728917337
{
1729017338
"path": "scripts/test-hooks-runtime.js",
1729117339
"role": "current"
@@ -17461,6 +17509,7 @@
1746117509
"scripts/test-global-host-removal.js",
1746217510
"scripts/test-global-install-smoke.js",
1746317511
"scripts/test-global-runtime-continuity.js",
17512+
"scripts/test-grok-bot-host.js",
1746417513
"scripts/test-hooks-runtime.js",
1746517514
"scripts/test-host-adapters.js",
1746617515
"scripts/test-host-capability-routing.js",
@@ -17567,6 +17616,7 @@
1756717616
"scripts/test-global-host-removal.js",
1756817617
"scripts/test-global-install-smoke.js",
1756917618
"scripts/test-global-runtime-continuity.js",
17619+
"scripts/test-grok-bot-host.js",
1757017620
"scripts/test-hooks-runtime.js",
1757117621
"scripts/test-host-adapters.js",
1757217622
"scripts/test-host-capability-routing.js",
@@ -20364,6 +20414,10 @@
2036420414
"path": "changelogs/unreleased.md",
2036520415
"role": "current"
2036620416
},
20417+
{
20418+
"path": "grok/plugins/devcodex-workspace/skills/devcodex-workspace/SKILL.md",
20419+
"role": "current"
20420+
},
2036720421
{
2036820422
"path": "hooks/_runtime/artifact-template-contract.cjs",
2036920423
"role": "current"
@@ -20528,6 +20582,10 @@
2052820582
"path": "scripts/lib/governance-status-summary.js",
2052920583
"role": "current"
2053020584
},
20585+
{
20586+
"path": "scripts/lib/grok-bot-driver.js",
20587+
"role": "current"
20588+
},
2053120589
{
2053220590
"path": "scripts/lib/memory-index.js",
2053320591
"role": "current"
@@ -20688,6 +20746,10 @@
2068820746
"path": "scripts/test-governance-status-summary.js",
2068920747
"role": "current"
2069020748
},
20749+
{
20750+
"path": "scripts/test-grok-bot-host.js",
20751+
"role": "current"
20752+
},
2069120753
{
2069220754
"path": "scripts/test-hooks-runtime.js",
2069320755
"role": "current"
@@ -20801,6 +20863,7 @@
2080120863
"scripts/test-global-install-smoke.js",
2080220864
"scripts/test-governance-intake.js",
2080320865
"scripts/test-governance-status-summary.js",
20866+
"scripts/test-grok-bot-host.js",
2080420867
"scripts/test-hooks-runtime.js",
2080520868
"scripts/test-host-capability-routing.js",
2080620869
"scripts/test-lifecycle-stop-gate.js",
@@ -20882,6 +20945,7 @@
2088220945
"scripts/test-global-install-smoke.js",
2088320946
"scripts/test-governance-intake.js",
2088420947
"scripts/test-governance-status-summary.js",
20948+
"scripts/test-grok-bot-host.js",
2088520949
"scripts/test-hooks-runtime.js",
2088620950
"scripts/test-host-capability-routing.js",
2088720951
"scripts/test-lifecycle-stop-gate.js",
@@ -21690,8 +21754,8 @@
2169021754
"content/skills/user-visible-output-contract/SKILL.md"
2169121755
],
2169221756
"source": "content/skills/user-visible-output-contract/SKILL.md",
21693-
"hash": "2877ea53f4e7b53ef6ac14b95b42f555dc3fa78d722b4fbb4d95fcb60f413b0f",
21694-
"sourceBytes": 26296,
21757+
"hash": "ba9afc969c8e7092fde8bcf441c631099d465e4d71df921ae0938eb88a69b166",
21758+
"sourceBytes": 26299,
2169521759
"version": "1.20.7",
2169621760
"lifecycleState": "active",
2169721761
"publicCategory": "runtime-governance",

0 commit comments

Comments
 (0)