@skillcap/gdh 0.21.1 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/INSTALL-BUNDLE.json +1 -1
  2. package/README.md +1 -1
  3. package/RELEASE-SPAN-UPDATE-CONTRACTS.json +76 -0
  4. package/node_modules/@gdh/adapters/dist/authoring-hook-render.d.ts.map +1 -1
  5. package/node_modules/@gdh/adapters/dist/authoring-hook-render.js +0 -49
  6. package/node_modules/@gdh/adapters/dist/authoring-hook-render.js.map +1 -1
  7. package/node_modules/@gdh/adapters/dist/claude-settings-patch.d.ts.map +1 -1
  8. package/node_modules/@gdh/adapters/dist/claude-settings-patch.js +16 -14
  9. package/node_modules/@gdh/adapters/dist/claude-settings-patch.js.map +1 -1
  10. package/node_modules/@gdh/adapters/dist/index.d.ts +6 -1
  11. package/node_modules/@gdh/adapters/dist/index.d.ts.map +1 -1
  12. package/node_modules/@gdh/adapters/dist/index.js +30 -11
  13. package/node_modules/@gdh/adapters/dist/index.js.map +1 -1
  14. package/node_modules/@gdh/adapters/dist/skill-rendering.d.ts +4 -1
  15. package/node_modules/@gdh/adapters/dist/skill-rendering.d.ts.map +1 -1
  16. package/node_modules/@gdh/adapters/dist/skill-rendering.js +52 -1
  17. package/node_modules/@gdh/adapters/dist/skill-rendering.js.map +1 -1
  18. package/node_modules/@gdh/adapters/package.json +8 -8
  19. package/node_modules/@gdh/authoring/package.json +2 -2
  20. package/node_modules/@gdh/cli/dist/setup.js +1 -1
  21. package/node_modules/@gdh/cli/package.json +10 -10
  22. package/node_modules/@gdh/core/dist/index.d.ts +3 -3
  23. package/node_modules/@gdh/core/dist/index.js +3 -3
  24. package/node_modules/@gdh/core/package.json +1 -1
  25. package/node_modules/@gdh/docs/dist/guidance.js +3 -3
  26. package/node_modules/@gdh/docs/dist/guidance.js.map +1 -1
  27. package/node_modules/@gdh/docs/package.json +2 -2
  28. package/node_modules/@gdh/mcp/dist/index.d.ts.map +1 -1
  29. package/node_modules/@gdh/mcp/dist/index.js +24 -18
  30. package/node_modules/@gdh/mcp/dist/index.js.map +1 -1
  31. package/node_modules/@gdh/mcp/package.json +8 -8
  32. package/node_modules/@gdh/observability/package.json +2 -2
  33. package/node_modules/@gdh/runtime/package.json +2 -2
  34. package/node_modules/@gdh/scan/package.json +3 -3
  35. package/node_modules/@gdh/verify/package.json +7 -7
  36. package/package.json +12 -12
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "product": "GDH",
3
- "version": "0.21.1",
3
+ "version": "0.22.0",
4
4
  "installMode": "packaged_install"
5
5
  }
package/README.md CHANGED
@@ -23,7 +23,7 @@ GDH writes the project guidance, agent skill surfaces, MCP config, and local sta
23
23
 
24
24
  ## Requirements
25
25
 
26
- - Node.js 20 or newer.
26
+ - Node.js 24 or newer.
27
27
  - A local Godot project, currently focused on Godot 4.4 through 4.6.
28
28
  - A supported AI coding agent: Codex, Claude, or Cursor.
29
29
  - Optional: `GDH_GODOT_EDITOR_BIN` for Godot import refresh or direct local runtime checks.
@@ -2351,6 +2351,82 @@
2351
2351
  }
2352
2352
  ]
2353
2353
  }
2354
+ },
2355
+ {
2356
+ "version": "0.22.0",
2357
+ "releaseTag": "v0.22.0",
2358
+ "migrationStatus": "required",
2359
+ "summary": "v0.22.0 adds the managed gdh-run-game skill, tightens its runtime run-configuration guidance, fixes MCP runtime target canonicalization for nested cwd launches, and simplifies managed authoring hooks to post-edit validation without dirty Stop state. Existing managed targets need `gdh migrate --apply` because GDH_AGENT_CONTRACT_VERSION moves 7 -> 8, GDH_GUIDANCE_UNIT_VERSION moves 15 -> 16, and GDH_UPDATE_HOOK_VERSION moves 3 -> 4.",
2360
+ "releaseHighlights": {
2361
+ "summary": "v0.22.0 adds a managed `gdh-run-game` skill for Claude, Codex, and Cursor, hardens runtime run-configuration discovery in nested workspaces, and simplifies managed authoring hooks so post-edit checks are decisive without a dirty-file Stop gate. Agents now have a task-shaped workflow for listing, checking, running, and interactively driving GDH run configurations without guessing launch commands or relying on the current working directory.",
2362
+ "operatorChanges": [
2363
+ "**New run-game skill.** Managed targets now receive `gdh-run-game`, which covers natural requests such as running, launching, smoke-testing, screenshotting, or starting a bridge session for the game, client, or server.",
2364
+ "**Run-config workflow guidance.** The skill routes agents through `run-config list`, `show`, `check`, `run`, and `bridge session ...` commands, and distinguishes bounded evidence runs from ongoing interactive bridge sessions.",
2365
+ "**Draft run-config handling.** Agents are told that `draft` is valid and must not be treated as failure; successful `statusPromotion: candidate_observed` evidence can be reported without silently editing project-owned YAML.",
2366
+ "**Nested target runtime fix.** MCP runtime tools now canonicalize nested working directories to the onboarded GDH target so repo-root `.gdh/run-configurations/` remains visible when an MCP session starts from a nested Godot app directory.",
2367
+ "**Post-edit-only authoring hooks.** Managed Codex and Claude authoring hooks now run focused `gdh authoring check --mode post-edit --changed <path> --format compact` after supported edit tools and no longer persist dirty-file state or register managed Stop hooks.",
2368
+ "**Node 24 maintainer floor.** GDH development and release tooling now requires Node 24 for this implementation repo."
2369
+ ]
2370
+ },
2371
+ "updateContract": {
2372
+ "summary": "Managed targets need release-specific migration for v0.22.0 because generated agent skill and hook surfaces changed. After self-update, run `gdh migrate --apply`, then validate adapter status and drift.",
2373
+ "steps": [
2374
+ {
2375
+ "id": "self_update_runtime_workflow_package",
2376
+ "kind": "mechanical",
2377
+ "summary": "Install the v0.22.0 GDH package.",
2378
+ "detail": "Run the normal GDH self-update or package update path. This updates host-side MCP runtime target canonicalization and makes the new managed skill and hook renderers available.",
2379
+ "commands": [
2380
+ "gdh self-update --apply"
2381
+ ],
2382
+ "validationCommands": [
2383
+ "gdh status"
2384
+ ]
2385
+ },
2386
+ {
2387
+ "id": "rebake_run_game_skill",
2388
+ "kind": "mechanical",
2389
+ "summary": "Re-bake managed agent skill and hook surfaces.",
2390
+ "detail": "Run `gdh migrate --apply` so managed agent contract version 8 writes the new `gdh-run-game` skill, refreshed instruction surfaces, and hook version 4 post-edit-only authoring hooks to the target.",
2391
+ "commands": [
2392
+ "gdh migrate --apply"
2393
+ ],
2394
+ "validationCommands": [
2395
+ "gdh adapters status",
2396
+ "gdh verify drift",
2397
+ "gdh status"
2398
+ ]
2399
+ },
2400
+ {
2401
+ "id": "verify_run_config_visibility",
2402
+ "kind": "agent_reasoning",
2403
+ "summary": "Confirm run configurations are visible from the agent launch context.",
2404
+ "detail": "If the agent is launched from a repo root, nested Godot app, or sibling workspace, use the managed target path as GDH's optional `[target]` argument. Confirm `run-config list` finds the expected project-owned run configurations before running the game.",
2405
+ "commands": [
2406
+ "gdh run-config list [target]",
2407
+ "gdh run-config check [target] <run-config-id>"
2408
+ ],
2409
+ "validationCommands": [
2410
+ "gdh run-config list [target]",
2411
+ "gdh run-config check [target] <run-config-id>"
2412
+ ]
2413
+ },
2414
+ {
2415
+ "id": "choose_runtime_execution_mode",
2416
+ "kind": "agent_reasoning",
2417
+ "summary": "Choose bounded run evidence or a bridge session based on user intent.",
2418
+ "detail": "Use `gdh run-config run` for bounded evidence. Use `gdh bridge session start` plus list/get/entries/invoke/screenshot/stop when the user asks for an ongoing interactive game session. Do not silently edit run-config YAML when GDH reports a draft promotion candidate.",
2419
+ "commands": [
2420
+ "gdh run-config run [target] <run-config-id>",
2421
+ "gdh bridge session start [target] <run-config-id>"
2422
+ ],
2423
+ "validationCommands": [
2424
+ "gdh status",
2425
+ "gdh adapters status"
2426
+ ]
2427
+ }
2428
+ ]
2429
+ }
2354
2430
  }
2355
2431
  ]
2356
2432
  }
@@ -1 +1 @@
1
- {"version":3,"file":"authoring-hook-render.d.ts","sourceRoot":"","sources":["../src/authoring-hook-render.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mCAAmC,yCAAyC,CAAC;AAC1F,eAAO,MAAM,kCAAkC,wCAAwC,CAAC;AACxF,eAAO,MAAM,6BAA6B,uRAC4O,CAAC;AACvR,eAAO,MAAM,4BAA4B,qRAC2O,CAAC;AAErR,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAC;CACpC,GAAG,MAAM,CA8KT"}
1
+ {"version":3,"file":"authoring-hook-render.d.ts","sourceRoot":"","sources":["../src/authoring-hook-render.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mCAAmC,yCAAyC,CAAC;AAC1F,eAAO,MAAM,kCAAkC,wCAAwC,CAAC;AACxF,eAAO,MAAM,6BAA6B,uRAC4O,CAAC;AACvR,eAAO,MAAM,4BAA4B,qRAC2O,CAAC;AAErR,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAC;CACpC,GAAG,MAAM,CA6HT"}
@@ -14,7 +14,6 @@ export function renderGdhAuthoringHook(input) {
14
14
  "",
15
15
  "const fs = require('fs');",
16
16
  "const path = require('path');",
17
- "const crypto = require('crypto');",
18
17
  "const { spawnSync } = require('child_process');",
19
18
  "",
20
19
  "const AUTHORING_EXTENSIONS = new Set(['.gd', '.tscn', '.tres']);",
@@ -29,7 +28,6 @@ export function renderGdhAuthoringHook(input) {
29
28
  " CURRENT_EVENT = hookEvent;",
30
29
  " if (!targetRoot) return allow();",
31
30
  " if (hookEvent === 'PostToolUse' || hookEvent === 'FileChanged') return handlePostEdit(input, targetRoot);",
32
- " if (hookEvent === 'Stop') return handleStop(input, targetRoot);",
33
31
  " return allow();",
34
32
  "}",
35
33
  "",
@@ -37,10 +35,6 @@ export function renderGdhAuthoringHook(input) {
37
35
  " const changed = collectChangedFiles(input, targetRoot);",
38
36
  " const authoring = changed.filter(isAuthoringValidationPath);",
39
37
  " if (authoring.length === 0) return allow();",
40
- " const state = readDirtyState(targetRoot);",
41
- " const sessionState = readCurrentSessionDirtyState(state, input);",
42
- " const dirtyFiles = unique([...(sessionState.dirtyFiles || []), ...authoring]);",
43
- " writeCurrentSessionDirtyState(targetRoot, state, input, { dirtyFiles, updatedAt: new Date().toISOString(), lastBlockedHash: sessionState.lastBlockedHash || null });",
44
38
  " const result = runGdh(targetRoot, ['authoring', 'check', '--target', targetRoot, '--mode', 'post-edit', '--format', 'compact', ...authoring.flatMap((file) => ['--changed', file])]);",
45
39
  " if (!result.ok || !/Completion allowed\\./.test(result.output)) {",
46
40
  " return block(`GDH post-edit authoring check needs attention.\\n${result.output || result.error || 'No check output.'}`);",
@@ -48,22 +42,6 @@ export function renderGdhAuthoringHook(input) {
48
42
  " return allow();",
49
43
  "}",
50
44
  "",
51
- "function handleStop(input, targetRoot) {",
52
- " const state = readDirtyState(targetRoot);",
53
- " const sessionState = readCurrentSessionDirtyState(state, input);",
54
- " const dirtyFiles = sanitizeDirtyFiles(sessionState.dirtyFiles || []);",
55
- " if (dirtyFiles.length === 0) return allow();",
56
- " const result = runGdh(targetRoot, ['authoring', 'check', '--target', targetRoot, '--mode', 'final', '--format', 'compact']);",
57
- " if (result.ok && /Completion allowed\\./.test(result.output)) {",
58
- " clearCurrentSessionDirtyState(targetRoot, state, input);",
59
- " return allow();",
60
- " }",
61
- " const dirtyHash = hash(JSON.stringify(dirtyFiles));",
62
- " if (input.stop_hook_active === true && sessionState.lastBlockedHash === dirtyHash) return allow();",
63
- " writeCurrentSessionDirtyState(targetRoot, state, input, { dirtyFiles, updatedAt: new Date().toISOString(), lastBlockedHash: dirtyHash });",
64
- " return block(`GDH final authoring check is not clean for changed authoring files. Continue fixing before stopping.\\n${result.output || result.error || 'No check output.'}`);",
65
- "}",
66
- "",
67
45
  "function runGdh(targetRoot, args) {",
68
46
  " const result = spawnSync('npx', ['-y', `@skillcap/gdh@${PINNED_VERSION}`, ...args], {",
69
47
  " cwd: targetRoot,",
@@ -138,34 +116,7 @@ export function renderGdhAuthoringHook(input) {
138
116
  " return process.cwd();",
139
117
  "}",
140
118
  "",
141
- "function dirtyStatePath(targetRoot) { return path.join(targetRoot, '.gdh-state', 'agent-hooks', 'authoring-dirty.json'); }",
142
- "function readDirtyState(targetRoot) { try { return JSON.parse(fs.readFileSync(dirtyStatePath(targetRoot), 'utf8')); } catch { return { sessions: {} }; } }",
143
- "function writeDirtyState(targetRoot, state) { const file = dirtyStatePath(targetRoot); fs.mkdirSync(path.dirname(file), { recursive: true }); fs.writeFileSync(file, `${JSON.stringify(state, null, 2)}\\n`, 'utf8'); }",
144
- "function clearDirtyState(targetRoot) { try { fs.rmSync(dirtyStatePath(targetRoot), { force: true }); } catch {} }",
145
- "function readCurrentSessionDirtyState(state, input) {",
146
- " const sessions = state && typeof state === 'object' && state.sessions && typeof state.sessions === 'object' ? state.sessions : {};",
147
- " const current = sessions[currentSessionKey(input)];",
148
- " return current && typeof current === 'object' ? current : { dirtyFiles: [], lastBlockedHash: null };",
149
- "}",
150
- "function writeCurrentSessionDirtyState(targetRoot, state, input, sessionState) {",
151
- " const sessions = state && typeof state === 'object' && state.sessions && typeof state.sessions === 'object' ? { ...state.sessions } : {};",
152
- " sessions[currentSessionKey(input)] = sessionState;",
153
- " writeDirtyState(targetRoot, { sessions });",
154
- "}",
155
- "function clearCurrentSessionDirtyState(targetRoot, state, input) {",
156
- " const sessions = state && typeof state === 'object' && state.sessions && typeof state.sessions === 'object' ? { ...state.sessions } : {};",
157
- " delete sessions[currentSessionKey(input)];",
158
- " if (Object.keys(sessions).length === 0) return clearDirtyState(targetRoot);",
159
- " writeDirtyState(targetRoot, { sessions });",
160
- "}",
161
- "function currentSessionKey(input) { const id = hookSessionId(input); return `${AGENT}:${id || 'no-session'}`; }",
162
- "function hookSessionId(input) {",
163
- " const raw = input && (input.session_id || input.sessionId || input.conversation_id || input.conversationId);",
164
- " return typeof raw === 'string' && raw.trim() ? raw.trim() : '';",
165
- "}",
166
- "function sanitizeDirtyFiles(values) { return unique(values).filter((file) => typeof file === 'string' && file !== '' && !file.startsWith('../') && !path.isAbsolute(file) && isAuthoringValidationPath(file)); }",
167
119
  "function unique(values) { return [...new Set(values.filter(Boolean))].sort(); }",
168
- "function hash(value) { return crypto.createHash('sha256').update(value).digest('hex'); }",
169
120
  "function readHookInput() { try { return JSON.parse(fs.readFileSync(0, 'utf8') || '{}'); } catch { return {}; } }",
170
121
  "",
171
122
  "function allow() { process.exit(0); }",
@@ -1 +1 @@
1
- {"version":3,"file":"authoring-hook-render.js","sourceRoot":"","sources":["../src/authoring-hook-render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authoring-hook-render.js","sourceRoot":"","sources":["../src/authoring-hook-render.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAEpD,MAAM,CAAC,MAAM,mCAAmC,GAAG,sCAAsC,CAAC;AAC1F,MAAM,CAAC,MAAM,kCAAkC,GAAG,qCAAqC,CAAC;AACxF,MAAM,CAAC,MAAM,6BAA6B,GACxC,oRAAoR,CAAC;AACvR,MAAM,CAAC,MAAM,4BAA4B,GACvC,kRAAkR,CAAC;AAErR,MAAM,UAAU,sBAAsB,CAAC,KAItC;IACC,OAAO;QACL,qBAAqB;QACrB,wBAAwB,uBAAuB,EAAE;QACjD,8DAA8D;QAC9D,0BAA0B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG;QAChE,gCAAgC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG;QAC3E,iBAAiB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG;QAC/C,EAAE;QACF,2BAA2B;QAC3B,+BAA+B;QAC/B,iDAAiD;QACjD,EAAE;QACF,kEAAkE;QAClE,yBAAyB;QACzB,EAAE;QACF,SAAS;QACT,EAAE;QACF,mBAAmB;QACnB,kCAAkC;QAClC,gDAAgD;QAChD,0DAA0D;QAC1D,8BAA8B;QAC9B,oCAAoC;QACpC,6GAA6G;QAC7G,mBAAmB;QACnB,GAAG;QACH,EAAE;QACF,8CAA8C;QAC9C,2DAA2D;QAC3D,gEAAgE;QAChE,+CAA+C;QAC/C,yLAAyL;QACzL,qEAAqE;QACrE,8HAA8H;QAC9H,KAAK;QACL,mBAAmB;QACnB,GAAG;QACH,EAAE;QACF,qCAAqC;QACrC,yFAAyF;QACzF,sBAAsB;QACtB,uBAAuB;QACvB,wBAAwB;QACxB,sBAAsB;QACtB,OAAO;QACP,yEAAyE;QACzE,wHAAwH;QACxH,GAAG;QACH,EAAE;QACF,mDAAmD;QACnD,uFAAuF;QACvF,qBAAqB;QACrB,yDAAyD;QACzD,qEAAqE;QACrE,wEAAwE;QACxE,8HAA8H;QAC9H,+FAA+F;QAC/F,yBAAyB;QACzB,GAAG;QACH,EAAE;QACF,oEAAoE;QACpE,wDAAwD;QACxD,2DAA2D;QAC3D,0DAA0D;QAC1D,sDAAsD;QACtD,4HAA4H;QAC5H,kHAAkH;QAClH,GAAG;QACH,EAAE;QACF,yCAAyC;QACzC,qBAAqB;QACrB,qEAAqE;QACrE,cAAc;QACd,iFAAiF;QACjF,iBAAiB;QACjB,GAAG;QACH,EAAE;QACF,uDAAuD;QACvD,iEAAiE;QACjE,oFAAoF;QACpF,2CAA2C;QAC3C,GAAG;QACH,EAAE;QACF,kEAAkE;QAClE,wEAAwE;QACxE,0DAA0D;QAC1D,kEAAkE;QAClE,2GAA2G;QAC3G,kEAAkE;QAClE,iJAAiJ;QACjJ,4GAA4G;QAC5G,sIAAsI;QACtI,KAAK;QACL,4EAA4E;QAC5E,8CAA8C;QAC9C,GAAG;QACH,yKAAyK;QACzK,yKAAyK;QACzK,EAAE;QACF,4CAA4C;QAC5C,iFAAiF;QACjF,sEAAsE;QACtE,GAAG;QACH,EAAE;QACF,qCAAqC;QACrC,qDAAqD;QACrD,uEAAuE;QACvE,qDAAqD;QACrD,iEAAiE;QACjE,yBAAyB;QACzB,GAAG;QACH,EAAE;QACF,iFAAiF;QACjF,kHAAkH;QAClH,EAAE;QACF,uCAAuC;QACvC,0BAA0B;QAC1B,kDAAkD;QAClD,oHAAoH;QACpH,0DAA0D;QAC1D,oBAAoB;QACpB,GAAG;QACH,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"claude-settings-patch.d.ts","sourceRoot":"","sources":["../src/claude-settings-patch.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,eAAO,MAAM,6BAA6B,0BAA0B,CAAC;AAErE;;;;;;;GAOG;AACH,eAAO,MAAM,8BAA8B,2CAA2C,CAAC;AACvF,eAAO,MAAM,0BAA0B,uRAAgC,CAAC;AA+DxE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,qCAAqC,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAuCrF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,mCAAmC,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAQnF;AAeD,wBAAgB,uCAAuC,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAiDvF"}
1
+ {"version":3,"file":"claude-settings-patch.d.ts","sourceRoot":"","sources":["../src/claude-settings-patch.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,eAAO,MAAM,6BAA6B,0BAA0B,CAAC;AAErE;;;;;;;GAOG;AACH,eAAO,MAAM,8BAA8B,2CAA2C,CAAC;AACvF,eAAO,MAAM,0BAA0B,uRAAgC,CAAC;AA+DxE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,qCAAqC,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAuCrF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,mCAAmC,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAQnF;AAeD,wBAAgB,uCAAuC,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAwCvF"}
@@ -176,22 +176,14 @@ export function patchClaudeSettingsForGdhAuthoringHooks(existingContent) {
176
176
  ],
177
177
  });
178
178
  }
179
- const stop = normalizeGdhAuthoringHookGroups(Array.isArray(hooks.Stop) ? hooks.Stop : [], {
180
- timeout: 120,
181
- });
182
- if (!hasHookCommand(stop, GDH_AUTHORING_HOOK_COMMAND)) {
183
- stop.push({
184
- hooks: [
185
- {
186
- type: "command",
187
- command: GDH_AUTHORING_HOOK_COMMAND,
188
- timeout: 120,
189
- },
190
- ],
191
- });
179
+ const stop = removeGdhAuthoringHookGroups(Array.isArray(hooks.Stop) ? hooks.Stop : []);
180
+ if (stop.length > 0) {
181
+ hooks.Stop = stop;
182
+ }
183
+ else {
184
+ delete hooks.Stop;
192
185
  }
193
186
  hooks.PostToolUse = postToolUse;
194
- hooks.Stop = stop;
195
187
  settings.hooks = hooks;
196
188
  return `${JSON.stringify(settings, null, 2)}\n`;
197
189
  }
@@ -213,6 +205,16 @@ function normalizeGdhAuthoringHookGroups(groups, options) {
213
205
  : { ...group, matcher: options.matcher, hooks: normalizedHooks };
214
206
  });
215
207
  }
208
+ function removeGdhAuthoringHookGroups(groups) {
209
+ return groups.flatMap((group) => {
210
+ if (!group || !Array.isArray(group.hooks))
211
+ return [group];
212
+ if (!hasHookCommand([group], GDH_AUTHORING_HOOK_COMMAND))
213
+ return [group];
214
+ const hooks = group.hooks.filter((hook) => !(hook.type === "command" && hook.command === GDH_AUTHORING_HOOK_COMMAND));
215
+ return hooks.length > 0 ? [{ ...group, hooks }] : [];
216
+ });
217
+ }
216
218
  function parseClaudeSettings(existingContent) {
217
219
  try {
218
220
  const trimmed = existingContent.trim();
@@ -1 +1 @@
1
- {"version":3,"file":"claude-settings-patch.js","sourceRoot":"","sources":["../src/claude-settings-patch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-settings-patch.js","sourceRoot":"","sources":["../src/claude-settings-patch.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { type GdhAgentAdaptersInstallResult, type GdhAgentAdaptersStatusResult, type GdhGsdSnapshot, type GdhProjectLifecycleCompatibilityResult, type GdhProjectLifecycleSurfaceStatus, type GdhStatusResult, type GdhSupportedAgent } from "@gdh/core";
2
- export { GDH_MANAGED_AGENT_SKILL_MARKER, GDH_SKILL_DEFINITIONS, GDH_SKILL_IDS, renderGdhSkill, renderManagedSkillMarker, renderClaudeCheckSkill, renderClaudeMigrateSkill, renderClaudeOnboardSkill, renderClaudePrepareSkill, renderClaudeScanSkill, renderClaudeStatusSkill, renderClaudeUpdateSkill, renderCodexCheckSkill, renderCodexMigrateSkill, renderCodexOnboardSkill, renderCodexPrepareSkill, renderCodexScanSkill, renderCodexStatusSkill, renderCodexUpdateSkill, renderCursorCheckSkill, renderCursorMigrateSkill, renderCursorOnboardSkill, renderCursorPrepareSkill, renderCursorScanSkill, renderCursorStatusSkill, renderCursorUpdateSkill, } from "./skill-rendering.js";
2
+ export { GDH_MANAGED_AGENT_SKILL_MARKER, GDH_SKILL_DEFINITIONS, GDH_SKILL_IDS, renderGdhSkill, renderManagedSkillMarker, renderClaudeCheckSkill, renderClaudeMigrateSkill, renderClaudeOnboardSkill, renderClaudePrepareSkill, renderClaudeRunGameSkill, renderClaudeScanSkill, renderClaudeStatusSkill, renderClaudeUpdateSkill, renderCodexCheckSkill, renderCodexMigrateSkill, renderCodexOnboardSkill, renderCodexPrepareSkill, renderCodexRunGameSkill, renderCodexScanSkill, renderCodexStatusSkill, renderCodexUpdateSkill, renderCursorCheckSkill, renderCursorMigrateSkill, renderCursorOnboardSkill, renderCursorPrepareSkill, renderCursorRunGameSkill, renderCursorScanSkill, renderCursorStatusSkill, renderCursorUpdateSkill, } from "./skill-rendering.js";
3
3
  export declare const adaptersPackage: import("@gdh/core").GdhPackageBoundary;
4
4
  export declare const SUPPORTED_AGENTS: readonly ["codex", "claude", "cursor"];
5
5
  export declare const CLAUDE_SHIM_RELATIVE_PATH = "CLAUDE.md";
@@ -13,14 +13,17 @@ export declare const CLAUDE_STATUS_SKILL_RELATIVE_PATH = ".claude/skills/gdh-sta
13
13
  export declare const CLAUDE_MIGRATE_SKILL_RELATIVE_PATH = ".claude/skills/gdh-migrate/SKILL.md";
14
14
  export declare const CLAUDE_CHECK_SKILL_RELATIVE_PATH = ".claude/skills/gdh-check/SKILL.md";
15
15
  export declare const CLAUDE_PREPARE_SKILL_RELATIVE_PATH = ".claude/skills/gdh-prepare/SKILL.md";
16
+ export declare const CLAUDE_RUN_GAME_SKILL_RELATIVE_PATH = ".claude/skills/gdh-run-game/SKILL.md";
16
17
  export declare const CODEX_STATUS_SKILL_RELATIVE_PATH = ".agents/skills/gdh-status/SKILL.md";
17
18
  export declare const CODEX_MIGRATE_SKILL_RELATIVE_PATH = ".agents/skills/gdh-migrate/SKILL.md";
18
19
  export declare const CODEX_CHECK_SKILL_RELATIVE_PATH = ".agents/skills/gdh-check/SKILL.md";
19
20
  export declare const CODEX_PREPARE_SKILL_RELATIVE_PATH = ".agents/skills/gdh-prepare/SKILL.md";
21
+ export declare const CODEX_RUN_GAME_SKILL_RELATIVE_PATH = ".agents/skills/gdh-run-game/SKILL.md";
20
22
  export declare const CURSOR_STATUS_SKILL_RELATIVE_PATH = ".cursor/skills/gdh-status/SKILL.md";
21
23
  export declare const CURSOR_MIGRATE_SKILL_RELATIVE_PATH = ".cursor/skills/gdh-migrate/SKILL.md";
22
24
  export declare const CURSOR_CHECK_SKILL_RELATIVE_PATH = ".cursor/skills/gdh-check/SKILL.md";
23
25
  export declare const CURSOR_PREPARE_SKILL_RELATIVE_PATH = ".cursor/skills/gdh-prepare/SKILL.md";
26
+ export declare const CURSOR_RUN_GAME_SKILL_RELATIVE_PATH = ".cursor/skills/gdh-run-game/SKILL.md";
24
27
  export declare const CLAUDE_UPDATE_SKILL_RELATIVE_PATH = ".claude/skills/gdh-update/SKILL.md";
25
28
  export declare const CODEX_UPDATE_SKILL_RELATIVE_PATH = ".agents/skills/gdh-update/SKILL.md";
26
29
  export declare const CURSOR_UPDATE_SKILL_RELATIVE_PATH = ".cursor/skills/gdh-update/SKILL.md";
@@ -31,6 +34,7 @@ export declare const CLAUDE_STATUS_COMMAND_RELATIVE_PATH = ".claude/skills/gdh-s
31
34
  export declare const CLAUDE_MIGRATE_COMMAND_RELATIVE_PATH = ".claude/skills/gdh-migrate/SKILL.md";
32
35
  export declare const CLAUDE_CHECK_COMMAND_RELATIVE_PATH = ".claude/skills/gdh-check/SKILL.md";
33
36
  export declare const CLAUDE_PREPARE_COMMAND_RELATIVE_PATH = ".claude/skills/gdh-prepare/SKILL.md";
37
+ export declare const CLAUDE_RUN_GAME_COMMAND_RELATIVE_PATH = ".claude/skills/gdh-run-game/SKILL.md";
34
38
  export declare const CLAUDE_UPDATE_COMMAND_RELATIVE_PATH = ".claude/skills/gdh-update/SKILL.md";
35
39
  export declare const CLAUDE_SCAN_COMMAND_RELATIVE_PATH = ".claude/skills/gdh-scan/SKILL.md";
36
40
  export declare const CURSOR_SCAN_SKILL_RELATIVE_PATH = ".cursor/skills/gdh-scan/SKILL.md";
@@ -62,6 +66,7 @@ export declare function renderClaudeMigrateCommand(pinnedVersion: string): strin
62
66
  export declare function renderClaudeUpdateCommand(pinnedVersion: string): string;
63
67
  export declare function renderClaudeCheckCommand(pinnedVersion: string): string;
64
68
  export declare function renderClaudePrepareCommand(pinnedVersion: string): string;
69
+ export declare function renderClaudeRunGameCommand(pinnedVersion: string): string;
65
70
  export declare function renderManagedCodexProjectSection(pinnedVersion: string): string;
66
71
  export declare function renderManagedCodexProjectConfig(existingContent: string | null, pinnedVersion: string): string;
67
72
  declare function summarizeProjectLifecycleCompatibility(targetPath: string, surfaces: readonly GdhProjectLifecycleSurfaceStatus[]): GdhProjectLifecycleCompatibilityResult;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -15,8 +15,8 @@ import { CLAUDE_AUTHORING_HOOK_RELATIVE_PATH, CODEX_AUTHORING_HOOK_COMMAND, CODE
15
15
  import { CLAUDE_STATUSLINE_RELATIVE_PATH, renderClaudeUpdateStatusline, } from "./claude-statusline-render.js";
16
16
  import { CLAUDE_CHECK_UPDATE_HOOK_RELATIVE_PATH, CLAUDE_CHECK_UPDATE_WORKER_RELATIVE_PATH, renderClaudeCheckUpdateHook, } from "./claude-update-hook-render.js";
17
17
  import { renderClaudeCheckUpdateWorker } from "./claude-update-worker-render.js";
18
- import { GDH_MANAGED_AGENT_SKILL_MARKER, renderClaudeCheckSkill, renderClaudeMigrateSkill, renderClaudeOnboardSkill, renderClaudePrepareSkill, renderClaudeScanSkill, renderClaudeStatusSkill, renderClaudeUpdateSkill, renderCodexCheckSkill, renderCodexMigrateSkill, renderCodexOnboardSkill, renderCodexPrepareSkill, renderCodexScanSkill, renderCodexStatusSkill, renderCodexUpdateSkill, renderCursorCheckSkill, renderCursorMigrateSkill, renderCursorOnboardSkill, renderCursorPrepareSkill, renderCursorScanSkill, renderCursorStatusSkill, renderCursorUpdateSkill, } from "./skill-rendering.js";
19
- export { GDH_MANAGED_AGENT_SKILL_MARKER, GDH_SKILL_DEFINITIONS, GDH_SKILL_IDS, renderGdhSkill, renderManagedSkillMarker, renderClaudeCheckSkill, renderClaudeMigrateSkill, renderClaudeOnboardSkill, renderClaudePrepareSkill, renderClaudeScanSkill, renderClaudeStatusSkill, renderClaudeUpdateSkill, renderCodexCheckSkill, renderCodexMigrateSkill, renderCodexOnboardSkill, renderCodexPrepareSkill, renderCodexScanSkill, renderCodexStatusSkill, renderCodexUpdateSkill, renderCursorCheckSkill, renderCursorMigrateSkill, renderCursorOnboardSkill, renderCursorPrepareSkill, renderCursorScanSkill, renderCursorStatusSkill, renderCursorUpdateSkill, } from "./skill-rendering.js";
18
+ import { GDH_MANAGED_AGENT_SKILL_MARKER, renderClaudeCheckSkill, renderClaudeMigrateSkill, renderClaudeOnboardSkill, renderClaudePrepareSkill, renderClaudeRunGameSkill, renderClaudeScanSkill, renderClaudeStatusSkill, renderClaudeUpdateSkill, renderCodexCheckSkill, renderCodexMigrateSkill, renderCodexOnboardSkill, renderCodexPrepareSkill, renderCodexRunGameSkill, renderCodexScanSkill, renderCodexStatusSkill, renderCodexUpdateSkill, renderCursorCheckSkill, renderCursorMigrateSkill, renderCursorOnboardSkill, renderCursorPrepareSkill, renderCursorRunGameSkill, renderCursorScanSkill, renderCursorStatusSkill, renderCursorUpdateSkill, } from "./skill-rendering.js";
19
+ export { GDH_MANAGED_AGENT_SKILL_MARKER, GDH_SKILL_DEFINITIONS, GDH_SKILL_IDS, renderGdhSkill, renderManagedSkillMarker, renderClaudeCheckSkill, renderClaudeMigrateSkill, renderClaudeOnboardSkill, renderClaudePrepareSkill, renderClaudeRunGameSkill, renderClaudeScanSkill, renderClaudeStatusSkill, renderClaudeUpdateSkill, renderCodexCheckSkill, renderCodexMigrateSkill, renderCodexOnboardSkill, renderCodexPrepareSkill, renderCodexRunGameSkill, renderCodexScanSkill, renderCodexStatusSkill, renderCodexUpdateSkill, renderCursorCheckSkill, renderCursorMigrateSkill, renderCursorOnboardSkill, renderCursorPrepareSkill, renderCursorRunGameSkill, renderCursorScanSkill, renderCursorStatusSkill, renderCursorUpdateSkill, } from "./skill-rendering.js";
20
20
  export const adaptersPackage = definePackageBoundary({
21
21
  name: "@gdh/adapters",
22
22
  layer: "integration",
@@ -46,14 +46,17 @@ export const CLAUDE_STATUS_SKILL_RELATIVE_PATH = ".claude/skills/gdh-status/SKIL
46
46
  export const CLAUDE_MIGRATE_SKILL_RELATIVE_PATH = ".claude/skills/gdh-migrate/SKILL.md";
47
47
  export const CLAUDE_CHECK_SKILL_RELATIVE_PATH = ".claude/skills/gdh-check/SKILL.md";
48
48
  export const CLAUDE_PREPARE_SKILL_RELATIVE_PATH = ".claude/skills/gdh-prepare/SKILL.md";
49
+ export const CLAUDE_RUN_GAME_SKILL_RELATIVE_PATH = ".claude/skills/gdh-run-game/SKILL.md";
49
50
  export const CODEX_STATUS_SKILL_RELATIVE_PATH = ".agents/skills/gdh-status/SKILL.md";
50
51
  export const CODEX_MIGRATE_SKILL_RELATIVE_PATH = ".agents/skills/gdh-migrate/SKILL.md";
51
52
  export const CODEX_CHECK_SKILL_RELATIVE_PATH = ".agents/skills/gdh-check/SKILL.md";
52
53
  export const CODEX_PREPARE_SKILL_RELATIVE_PATH = ".agents/skills/gdh-prepare/SKILL.md";
54
+ export const CODEX_RUN_GAME_SKILL_RELATIVE_PATH = ".agents/skills/gdh-run-game/SKILL.md";
53
55
  export const CURSOR_STATUS_SKILL_RELATIVE_PATH = ".cursor/skills/gdh-status/SKILL.md";
54
56
  export const CURSOR_MIGRATE_SKILL_RELATIVE_PATH = ".cursor/skills/gdh-migrate/SKILL.md";
55
57
  export const CURSOR_CHECK_SKILL_RELATIVE_PATH = ".cursor/skills/gdh-check/SKILL.md";
56
58
  export const CURSOR_PREPARE_SKILL_RELATIVE_PATH = ".cursor/skills/gdh-prepare/SKILL.md";
59
+ export const CURSOR_RUN_GAME_SKILL_RELATIVE_PATH = ".cursor/skills/gdh-run-game/SKILL.md";
57
60
  // Phase 13 SELF-01: /gdh-update skill surface path constants. The rendered
58
61
  // bodies shell out to `npx -y @skillcap/gdh@latest self-update` (LITERAL
59
62
  // @latest, not the pinned version — D-10) so the NEW CLI performs the update,
@@ -70,6 +73,7 @@ export const CLAUDE_STATUS_COMMAND_RELATIVE_PATH = CLAUDE_STATUS_SKILL_RELATIVE_
70
73
  export const CLAUDE_MIGRATE_COMMAND_RELATIVE_PATH = CLAUDE_MIGRATE_SKILL_RELATIVE_PATH;
71
74
  export const CLAUDE_CHECK_COMMAND_RELATIVE_PATH = CLAUDE_CHECK_SKILL_RELATIVE_PATH;
72
75
  export const CLAUDE_PREPARE_COMMAND_RELATIVE_PATH = CLAUDE_PREPARE_SKILL_RELATIVE_PATH;
76
+ export const CLAUDE_RUN_GAME_COMMAND_RELATIVE_PATH = CLAUDE_RUN_GAME_SKILL_RELATIVE_PATH;
73
77
  export const CLAUDE_UPDATE_COMMAND_RELATIVE_PATH = CLAUDE_UPDATE_SKILL_RELATIVE_PATH;
74
78
  export const CLAUDE_SCAN_COMMAND_RELATIVE_PATH = CLAUDE_SCAN_SKILL_RELATIVE_PATH;
75
79
  const LEGACY_CLAUDE_SKILL_COMMAND_RELATIVE_PATHS = [
@@ -79,6 +83,7 @@ const LEGACY_CLAUDE_SKILL_COMMAND_RELATIVE_PATHS = [
79
83
  [".claude/commands/gdh/update.md", "gdh-update"],
80
84
  [".claude/commands/gdh/check.md", "gdh-check"],
81
85
  [".claude/commands/gdh/prepare.md", "gdh-prepare"],
86
+ [".claude/commands/gdh/run-game.md", "gdh-run-game"],
82
87
  [".claude/commands/gdh/scan.md", "gdh-scan"],
83
88
  ];
84
89
  const LEGACY_CODEX_SKILL_RELATIVE_PATHS = [
@@ -88,6 +93,7 @@ const LEGACY_CODEX_SKILL_RELATIVE_PATHS = [
88
93
  [".codex/skills/gdh-update/SKILL.md", "gdh-update"],
89
94
  [".codex/skills/gdh-check/SKILL.md", "gdh-check"],
90
95
  [".codex/skills/gdh-prepare/SKILL.md", "gdh-prepare"],
96
+ [".codex/skills/gdh-run-game/SKILL.md", "gdh-run-game"],
91
97
  [".codex/skills/gdh-verify/SKILL.md", "gdh-verify"],
92
98
  [".codex/skills/gdh-scan/SKILL.md", "gdh-scan"],
93
99
  ];
@@ -389,6 +395,9 @@ export function renderClaudeCheckCommand(pinnedVersion) {
389
395
  export function renderClaudePrepareCommand(pinnedVersion) {
390
396
  return renderClaudePrepareSkill(pinnedVersion);
391
397
  }
398
+ export function renderClaudeRunGameCommand(pinnedVersion) {
399
+ return renderClaudeRunGameSkill(pinnedVersion);
400
+ }
392
401
  async function inspectProjectMcpSupport(targetPath, options) {
393
402
  const projectConfig = await readProjectConfig(targetPath);
394
403
  const enabled = resolveProjectMcpEnabled(projectConfig);
@@ -642,7 +651,7 @@ function inspectCodexAuthoringHookConfig(targetPath, content, enabled) {
642
651
  summary: content === null
643
652
  ? "Codex project config is missing and should register GDH authoring hooks."
644
653
  : ready
645
- ? "Codex project config enables GDH PostToolUse and Stop authoring hooks."
654
+ ? "Codex project config enables GDH PostToolUse authoring hooks."
646
655
  : "Codex project config exists but is missing the managed GDH authoring hook block.",
647
656
  version: null,
648
657
  });
@@ -761,6 +770,9 @@ async function inspectCodexAdapter(targetPath, guidance, projectMcp, pinnedVersi
761
770
  const codexPrepareContent = await fs
762
771
  .readFile(path.join(targetPath, CODEX_PREPARE_SKILL_RELATIVE_PATH), "utf8")
763
772
  .catch(() => null);
773
+ const codexRunGameContent = await fs
774
+ .readFile(path.resolve(targetPath, CODEX_RUN_GAME_SKILL_RELATIVE_PATH), "utf8")
775
+ .catch(() => null);
764
776
  const codexScanContent = await fs
765
777
  .readFile(path.join(targetPath, CODEX_SCAN_SKILL_RELATIVE_PATH), "utf8")
766
778
  .catch(() => null);
@@ -776,6 +788,7 @@ async function inspectCodexAdapter(targetPath, guidance, projectMcp, pinnedVersi
776
788
  const expectedCodexUpdateSkill = pinnedVersion === null ? null : renderCodexUpdateSkill(pinnedVersion);
777
789
  const expectedCodexCheckSkill = pinnedVersion === null ? null : renderCodexCheckSkill(pinnedVersion);
778
790
  const expectedCodexPrepareSkill = pinnedVersion === null ? null : renderCodexPrepareSkill(pinnedVersion);
791
+ const expectedCodexRunGameSkill = pinnedVersion === null ? null : renderCodexRunGameSkill(pinnedVersion);
779
792
  const expectedCodexScanSkill = pinnedVersion === null ? null : renderCodexScanSkill(pinnedVersion);
780
793
  const expectedCodexAuthoringHook = pinnedVersion === null
781
794
  ? null
@@ -830,6 +843,7 @@ async function inspectCodexAdapter(targetPath, guidance, projectMcp, pinnedVersi
830
843
  ...inspectCodexSkillSurface(targetPath, CODEX_UPDATE_SKILL_RELATIVE_PATH, codexUpdateContent, expectedCodexUpdateSkill, "gdh-update"),
831
844
  ...inspectCodexSkillSurface(targetPath, CODEX_CHECK_SKILL_RELATIVE_PATH, codexCheckContent, expectedCodexCheckSkill, "gdh-check"),
832
845
  ...inspectCodexSkillSurface(targetPath, CODEX_PREPARE_SKILL_RELATIVE_PATH, codexPrepareContent, expectedCodexPrepareSkill, "gdh-prepare"),
846
+ ...inspectCodexSkillSurface(targetPath, CODEX_RUN_GAME_SKILL_RELATIVE_PATH, codexRunGameContent, expectedCodexRunGameSkill, "gdh-run-game"),
833
847
  ...inspectCodexSkillSurface(targetPath, CODEX_SCAN_SKILL_RELATIVE_PATH, codexScanContent, expectedCodexScanSkill, "gdh-scan"),
834
848
  inspectManagedHookSurface("codex", projectMcp.integrationRootPath, CODEX_AUTHORING_HOOK_RELATIVE_PATH, codexAuthoringHookContent, expectedCodexAuthoringHook, "authoring guard"),
835
849
  inspectCodexAuthoringHookConfig(projectMcp.integrationRootPath, codexProjectConfigContent, projectMcp.enabled),
@@ -885,6 +899,9 @@ async function inspectClaudeAdapter(targetPath, guidance, projectMcp, pinnedVers
885
899
  const claudePrepareContent = await fs
886
900
  .readFile(path.join(targetPath, CLAUDE_PREPARE_COMMAND_RELATIVE_PATH), "utf8")
887
901
  .catch(() => null);
902
+ const claudeRunGameContent = await fs
903
+ .readFile(path.resolve(targetPath, CLAUDE_RUN_GAME_COMMAND_RELATIVE_PATH), "utf8")
904
+ .catch(() => null);
888
905
  const claudeScanContent = await fs
889
906
  .readFile(path.join(targetPath, CLAUDE_SCAN_COMMAND_RELATIVE_PATH), "utf8")
890
907
  .catch(() => null);
@@ -920,6 +937,7 @@ async function inspectClaudeAdapter(targetPath, guidance, projectMcp, pinnedVers
920
937
  const expectedClaudeUpdateCommand = pinnedVersion === null ? null : renderClaudeUpdateCommand(pinnedVersion);
921
938
  const expectedClaudeCheckCommand = pinnedVersion === null ? null : renderClaudeCheckCommand(pinnedVersion);
922
939
  const expectedClaudePrepareCommand = pinnedVersion === null ? null : renderClaudePrepareCommand(pinnedVersion);
940
+ const expectedClaudeRunGameCommand = pinnedVersion === null ? null : renderClaudeRunGameCommand(pinnedVersion);
923
941
  const expectedClaudeScanCommand = pinnedVersion === null ? null : renderClaudeScanCommand(pinnedVersion);
924
942
  const surfaces = [
925
943
  createSurfaceStatus({
@@ -969,6 +987,7 @@ async function inspectClaudeAdapter(targetPath, guidance, projectMcp, pinnedVers
969
987
  ...inspectClaudeSkillSurface(targetPath, CLAUDE_UPDATE_COMMAND_RELATIVE_PATH, claudeUpdateContent, expectedClaudeUpdateCommand, "gdh-update"),
970
988
  ...inspectClaudeSkillSurface(targetPath, CLAUDE_CHECK_COMMAND_RELATIVE_PATH, claudeCheckContent, expectedClaudeCheckCommand, "gdh-check"),
971
989
  ...inspectClaudeSkillSurface(targetPath, CLAUDE_PREPARE_COMMAND_RELATIVE_PATH, claudePrepareContent, expectedClaudePrepareCommand, "gdh-prepare"),
990
+ ...inspectClaudeSkillSurface(targetPath, CLAUDE_RUN_GAME_COMMAND_RELATIVE_PATH, claudeRunGameContent, expectedClaudeRunGameCommand, "gdh-run-game"),
972
991
  ...inspectClaudeSkillSurface(targetPath, CLAUDE_SCAN_COMMAND_RELATIVE_PATH, claudeScanContent, expectedClaudeScanCommand, "gdh-scan"),
973
992
  inspectManagedHookSurface("claude", targetPath, CLAUDE_CHECK_UPDATE_HOOK_RELATIVE_PATH, claudeCheckUpdateHookContent, expectedClaudeCheckUpdateHook, "gdh-check-update-hook"),
974
993
  inspectManagedHookSurface("claude", targetPath, CLAUDE_CHECK_UPDATE_WORKER_RELATIVE_PATH, claudeCheckUpdateWorkerContent, expectedClaudeCheckUpdateWorker, "gdh-check-update-worker"),
@@ -1015,6 +1034,9 @@ async function inspectCursorAdapter(targetPath, guidance, projectMcp, pinnedVers
1015
1034
  const cursorPrepareContent = await fs
1016
1035
  .readFile(path.join(targetPath, CURSOR_PREPARE_SKILL_RELATIVE_PATH), "utf8")
1017
1036
  .catch(() => null);
1037
+ const cursorRunGameContent = await fs
1038
+ .readFile(path.resolve(targetPath, CURSOR_RUN_GAME_SKILL_RELATIVE_PATH), "utf8")
1039
+ .catch(() => null);
1018
1040
  const cursorScanContent = await fs
1019
1041
  .readFile(path.join(targetPath, CURSOR_SCAN_SKILL_RELATIVE_PATH), "utf8")
1020
1042
  .catch(() => null);
@@ -1026,6 +1048,7 @@ async function inspectCursorAdapter(targetPath, guidance, projectMcp, pinnedVers
1026
1048
  const expectedCursorUpdateSkill = pinnedVersion === null ? null : renderCursorUpdateSkill(pinnedVersion);
1027
1049
  const expectedCursorCheckSkill = pinnedVersion === null ? null : renderCursorCheckSkill(pinnedVersion);
1028
1050
  const expectedCursorPrepareSkill = pinnedVersion === null ? null : renderCursorPrepareSkill(pinnedVersion);
1051
+ const expectedCursorRunGameSkill = pinnedVersion === null ? null : renderCursorRunGameSkill(pinnedVersion);
1029
1052
  const expectedCursorScanSkill = pinnedVersion === null ? null : renderCursorScanSkill(pinnedVersion);
1030
1053
  const surfaces = [
1031
1054
  createSurfaceStatus({
@@ -1069,6 +1092,7 @@ async function inspectCursorAdapter(targetPath, guidance, projectMcp, pinnedVers
1069
1092
  ...inspectCursorSkillSurface(targetPath, CURSOR_UPDATE_SKILL_RELATIVE_PATH, cursorUpdateContent, expectedCursorUpdateSkill, "gdh-update"),
1070
1093
  ...inspectCursorSkillSurface(targetPath, CURSOR_CHECK_SKILL_RELATIVE_PATH, cursorCheckContent, expectedCursorCheckSkill, "gdh-check"),
1071
1094
  ...inspectCursorSkillSurface(targetPath, CURSOR_PREPARE_SKILL_RELATIVE_PATH, cursorPrepareContent, expectedCursorPrepareSkill, "gdh-prepare"),
1095
+ ...inspectCursorSkillSurface(targetPath, CURSOR_RUN_GAME_SKILL_RELATIVE_PATH, cursorRunGameContent, expectedCursorRunGameSkill, "gdh-run-game"),
1072
1096
  ...inspectCursorSkillSurface(targetPath, CURSOR_SCAN_SKILL_RELATIVE_PATH, cursorScanContent, expectedCursorScanSkill, "gdh-scan"),
1073
1097
  ];
1074
1098
  if (projectMcp.enabled) {
@@ -1319,6 +1343,7 @@ function planCodexRepoInstallActions(targetPath, adapter, pinnedVersion, project
1319
1343
  planSkillInstallAction("codex", targetPath, adapter, CODEX_UPDATE_SKILL_RELATIVE_PATH, renderCodexUpdateSkill, "gdh-update", pinnedVersion),
1320
1344
  planSkillInstallAction("codex", targetPath, adapter, CODEX_CHECK_SKILL_RELATIVE_PATH, renderCodexCheckSkill, "gdh-check", pinnedVersion),
1321
1345
  planSkillInstallAction("codex", targetPath, adapter, CODEX_PREPARE_SKILL_RELATIVE_PATH, renderCodexPrepareSkill, "gdh-prepare", pinnedVersion),
1346
+ planSkillInstallAction("codex", targetPath, adapter, CODEX_RUN_GAME_SKILL_RELATIVE_PATH, renderCodexRunGameSkill, "gdh-run-game", pinnedVersion),
1322
1347
  planSkillInstallAction("codex", targetPath, adapter, CODEX_SCAN_SKILL_RELATIVE_PATH, renderCodexScanSkill, "gdh-scan", pinnedVersion),
1323
1348
  planSkillInstallAction("codex", integrationRootPath, adapter, CODEX_AUTHORING_HOOK_RELATIVE_PATH, (version) => renderGdhAuthoringHook({
1324
1349
  pinnedVersion: version,
@@ -1546,7 +1571,7 @@ function planClaudeInstallActions(targetPath, adapter, pinnedVersion, integratio
1546
1571
  expectedTarget: "AGENTS.md",
1547
1572
  }));
1548
1573
  }
1549
- actions.push(planSkillInstallAction("claude", targetPath, adapter, CLAUDE_ONBOARD_COMMAND_RELATIVE_PATH, renderClaudeOnboardCommand, "gdh-onboard", pinnedVersion), planSkillInstallAction("claude", targetPath, adapter, CLAUDE_STATUS_COMMAND_RELATIVE_PATH, renderClaudeStatusCommand, "gdh-status", pinnedVersion), planSkillInstallAction("claude", targetPath, adapter, CLAUDE_MIGRATE_COMMAND_RELATIVE_PATH, renderClaudeMigrateCommand, "gdh-migrate", pinnedVersion), planSkillInstallAction("claude", targetPath, adapter, CLAUDE_UPDATE_COMMAND_RELATIVE_PATH, renderClaudeUpdateCommand, "gdh-update", pinnedVersion), planSkillInstallAction("claude", targetPath, adapter, CLAUDE_CHECK_COMMAND_RELATIVE_PATH, renderClaudeCheckCommand, "gdh-check", pinnedVersion), planSkillInstallAction("claude", targetPath, adapter, CLAUDE_PREPARE_COMMAND_RELATIVE_PATH, renderClaudePrepareCommand, "gdh-prepare", pinnedVersion), planSkillInstallAction("claude", targetPath, adapter, CLAUDE_SCAN_COMMAND_RELATIVE_PATH, renderClaudeScanCommand, "gdh-scan", pinnedVersion),
1574
+ actions.push(planSkillInstallAction("claude", targetPath, adapter, CLAUDE_ONBOARD_COMMAND_RELATIVE_PATH, renderClaudeOnboardCommand, "gdh-onboard", pinnedVersion), planSkillInstallAction("claude", targetPath, adapter, CLAUDE_STATUS_COMMAND_RELATIVE_PATH, renderClaudeStatusCommand, "gdh-status", pinnedVersion), planSkillInstallAction("claude", targetPath, adapter, CLAUDE_MIGRATE_COMMAND_RELATIVE_PATH, renderClaudeMigrateCommand, "gdh-migrate", pinnedVersion), planSkillInstallAction("claude", targetPath, adapter, CLAUDE_UPDATE_COMMAND_RELATIVE_PATH, renderClaudeUpdateCommand, "gdh-update", pinnedVersion), planSkillInstallAction("claude", targetPath, adapter, CLAUDE_CHECK_COMMAND_RELATIVE_PATH, renderClaudeCheckCommand, "gdh-check", pinnedVersion), planSkillInstallAction("claude", targetPath, adapter, CLAUDE_PREPARE_COMMAND_RELATIVE_PATH, renderClaudePrepareCommand, "gdh-prepare", pinnedVersion), planSkillInstallAction("claude", targetPath, adapter, CLAUDE_RUN_GAME_COMMAND_RELATIVE_PATH, renderClaudeRunGameCommand, "gdh-run-game", pinnedVersion), planSkillInstallAction("claude", targetPath, adapter, CLAUDE_SCAN_COMMAND_RELATIVE_PATH, renderClaudeScanCommand, "gdh-scan", pinnedVersion),
1550
1575
  // UPD-01 managed hook surfaces baked at the pinned version.
1551
1576
  planHookInstallAction("claude", targetPath, adapter, CLAUDE_CHECK_UPDATE_HOOK_RELATIVE_PATH, renderClaudeCheckUpdateHook, "gdh-check-update-hook", pinnedVersion), planHookInstallAction("claude", targetPath, adapter, CLAUDE_CHECK_UPDATE_WORKER_RELATIVE_PATH, renderClaudeCheckUpdateWorker, "gdh-check-update-worker", pinnedVersion),
1552
1577
  // Optional statusline script baked at the pinned version. The .js file is
@@ -1734,7 +1759,7 @@ function planCursorInstallActions(targetPath, adapter, pinnedVersion) {
1734
1759
  content: renderCursorRule(),
1735
1760
  }));
1736
1761
  }
1737
- actions.push(planSkillInstallAction("cursor", targetPath, adapter, CURSOR_ONBOARD_SKILL_RELATIVE_PATH, renderCursorOnboardSkill, "gdh-onboard", pinnedVersion), planSkillInstallAction("cursor", targetPath, adapter, CURSOR_STATUS_SKILL_RELATIVE_PATH, renderCursorStatusSkill, "gdh-status", pinnedVersion), planSkillInstallAction("cursor", targetPath, adapter, CURSOR_MIGRATE_SKILL_RELATIVE_PATH, renderCursorMigrateSkill, "gdh-migrate", pinnedVersion), planSkillInstallAction("cursor", targetPath, adapter, CURSOR_UPDATE_SKILL_RELATIVE_PATH, renderCursorUpdateSkill, "gdh-update", pinnedVersion), planSkillInstallAction("cursor", targetPath, adapter, CURSOR_CHECK_SKILL_RELATIVE_PATH, renderCursorCheckSkill, "gdh-check", pinnedVersion), planSkillInstallAction("cursor", targetPath, adapter, CURSOR_PREPARE_SKILL_RELATIVE_PATH, renderCursorPrepareSkill, "gdh-prepare", pinnedVersion), planSkillInstallAction("cursor", targetPath, adapter, CURSOR_SCAN_SKILL_RELATIVE_PATH, renderCursorScanSkill, "gdh-scan", pinnedVersion));
1762
+ actions.push(planSkillInstallAction("cursor", targetPath, adapter, CURSOR_ONBOARD_SKILL_RELATIVE_PATH, renderCursorOnboardSkill, "gdh-onboard", pinnedVersion), planSkillInstallAction("cursor", targetPath, adapter, CURSOR_STATUS_SKILL_RELATIVE_PATH, renderCursorStatusSkill, "gdh-status", pinnedVersion), planSkillInstallAction("cursor", targetPath, adapter, CURSOR_MIGRATE_SKILL_RELATIVE_PATH, renderCursorMigrateSkill, "gdh-migrate", pinnedVersion), planSkillInstallAction("cursor", targetPath, adapter, CURSOR_UPDATE_SKILL_RELATIVE_PATH, renderCursorUpdateSkill, "gdh-update", pinnedVersion), planSkillInstallAction("cursor", targetPath, adapter, CURSOR_CHECK_SKILL_RELATIVE_PATH, renderCursorCheckSkill, "gdh-check", pinnedVersion), planSkillInstallAction("cursor", targetPath, adapter, CURSOR_PREPARE_SKILL_RELATIVE_PATH, renderCursorPrepareSkill, "gdh-prepare", pinnedVersion), planSkillInstallAction("cursor", targetPath, adapter, CURSOR_RUN_GAME_SKILL_RELATIVE_PATH, renderCursorRunGameSkill, "gdh-run-game", pinnedVersion), planSkillInstallAction("cursor", targetPath, adapter, CURSOR_SCAN_SKILL_RELATIVE_PATH, renderCursorScanSkill, "gdh-scan", pinnedVersion));
1738
1763
  return actions;
1739
1764
  }
1740
1765
  function dedupeInstallActions(actions) {
@@ -1972,12 +1997,6 @@ function renderManagedCodexAuthoringHookBlock() {
1972
1997
  'type = "command"',
1973
1998
  `command = ${JSON.stringify(CODEX_AUTHORING_HOOK_COMMAND)}`,
1974
1999
  "timeout = 30",
1975
- "",
1976
- "[[hooks.Stop]]",
1977
- "[[hooks.Stop.hooks]]",
1978
- 'type = "command"',
1979
- `command = ${JSON.stringify(CODEX_AUTHORING_HOOK_COMMAND)}`,
1980
- "timeout = 120",
1981
2000
  "# END GDH managed authoring hooks",
1982
2001
  "",
1983
2002
  ].join("\n");