@skillcap/gdh 0.15.0 → 0.16.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 (48) hide show
  1. package/INSTALL-BUNDLE.json +1 -1
  2. package/README.md +37 -108
  3. package/RELEASE-SPAN-UPDATE-CONTRACTS.json +178 -0
  4. package/node_modules/@gdh/adapters/dist/index.d.ts.map +1 -1
  5. package/node_modules/@gdh/adapters/dist/index.js +11 -9
  6. package/node_modules/@gdh/adapters/dist/index.js.map +1 -1
  7. package/node_modules/@gdh/adapters/package.json +8 -8
  8. package/node_modules/@gdh/authoring/dist/project.d.ts.map +1 -1
  9. package/node_modules/@gdh/authoring/dist/project.js +28 -1
  10. package/node_modules/@gdh/authoring/dist/project.js.map +1 -1
  11. package/node_modules/@gdh/authoring/package.json +2 -2
  12. package/node_modules/@gdh/cli/dist/index.d.ts.map +1 -1
  13. package/node_modules/@gdh/cli/dist/index.js +5 -17
  14. package/node_modules/@gdh/cli/dist/index.js.map +1 -1
  15. package/node_modules/@gdh/cli/dist/migrate.d.ts +1 -0
  16. package/node_modules/@gdh/cli/dist/migrate.d.ts.map +1 -1
  17. package/node_modules/@gdh/cli/dist/migrate.js +144 -16
  18. package/node_modules/@gdh/cli/dist/migrate.js.map +1 -1
  19. package/node_modules/@gdh/cli/package.json +10 -10
  20. package/node_modules/@gdh/core/dist/index.d.ts +62 -2
  21. package/node_modules/@gdh/core/dist/index.d.ts.map +1 -1
  22. package/node_modules/@gdh/core/dist/index.js +3 -2
  23. package/node_modules/@gdh/core/dist/index.js.map +1 -1
  24. package/node_modules/@gdh/core/package.json +1 -1
  25. package/node_modules/@gdh/docs/dist/guidance.d.ts.map +1 -1
  26. package/node_modules/@gdh/docs/dist/guidance.js +22 -0
  27. package/node_modules/@gdh/docs/dist/guidance.js.map +1 -1
  28. package/node_modules/@gdh/docs/package.json +2 -2
  29. package/node_modules/@gdh/mcp/package.json +8 -8
  30. package/node_modules/@gdh/observability/package.json +2 -2
  31. package/node_modules/@gdh/runtime/dist/bridge-surface.d.ts.map +1 -1
  32. package/node_modules/@gdh/runtime/dist/bridge-surface.js +128 -18
  33. package/node_modules/@gdh/runtime/dist/bridge-surface.js.map +1 -1
  34. package/node_modules/@gdh/runtime/dist/index.d.ts +1 -0
  35. package/node_modules/@gdh/runtime/dist/index.d.ts.map +1 -1
  36. package/node_modules/@gdh/runtime/dist/index.js +189 -0
  37. package/node_modules/@gdh/runtime/dist/index.js.map +1 -1
  38. package/node_modules/@gdh/runtime/dist/knowledge-surface.d.ts +6 -0
  39. package/node_modules/@gdh/runtime/dist/knowledge-surface.d.ts.map +1 -0
  40. package/node_modules/@gdh/runtime/dist/knowledge-surface.js +216 -0
  41. package/node_modules/@gdh/runtime/dist/knowledge-surface.js.map +1 -0
  42. package/node_modules/@gdh/runtime/package.json +2 -2
  43. package/node_modules/@gdh/scan/dist/onboard.d.ts.map +1 -1
  44. package/node_modules/@gdh/scan/dist/onboard.js +13 -0
  45. package/node_modules/@gdh/scan/dist/onboard.js.map +1 -1
  46. package/node_modules/@gdh/scan/package.json +3 -3
  47. package/node_modules/@gdh/verify/package.json +7 -7
  48. package/package.json +11 -11
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "product": "GDH",
3
- "version": "0.15.0",
3
+ "version": "0.16.0",
4
4
  "installMode": "packaged_install"
5
5
  }
package/README.md CHANGED
@@ -1,131 +1,60 @@
1
1
  # GDH
2
2
 
3
- > Godot authoring and validation harness for AI agents
3
+ [![npm version](https://img.shields.io/npm/v/@skillcap/gdh.svg)](https://www.npmjs.com/package/@skillcap/gdh)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE)
4
5
 
5
- [![npm](https://img.shields.io/npm/v/@skillcap/gdh)](https://www.npmjs.com/package/@skillcap/gdh)
6
- [![license](https://img.shields.io/github/license/Skillcap-Studio/gdh)](LICENSE)
6
+ GDH helps AI coding agents work inside Godot projects without guessing the project shape, commands, runtime setup, or validation evidence.
7
7
 
8
- GDH detects your Godot project, configures your AI agents, and gives them the context they need to author, validate, and verify Godot work with real evidence instead of guesswork.
9
-
10
- ![GDH setup demo](demo.gif)
8
+ ## Quick Start
11
9
 
12
- ## Install
10
+ Run this from the Godot project or repo you want GDH to manage:
13
11
 
14
12
  ```sh
15
- npx -y @skillcap/gdh@0.15.0 setup
13
+ npx -y @skillcap/gdh@latest setup
16
14
  ```
17
15
 
18
- Replace `0.15.0` with the GDH version you want to pin this project to. `gdh setup` records the pinned version in `.gdh/project.yaml`; every managed surface generated from that config invokes GDH at that exact pinned version, so future sessions stay reproducible.
19
-
20
- From `0.9.0` onward, the shipped package also carries bounded release-span update metadata in `RELEASE-SPAN-UPDATE-CONTRACTS.json` so update flows can explain release-specific migration steps without reading repo-only `docs/releases/` files at target runtime.
21
-
22
- The current update flow is preview-first and sequential on apply: `gdh self-update --dry-run` emits machine-readable release-span preview data, and approved apply runs one ordered update -> migrate -> validate path. Apply now ends in an explicit terminal class: `healthy`, `follow_up_required`, `manual_review_required`, or `blocked`.
23
-
24
- Automatic backup and patch reapply for customized managed surfaces are not shipped yet; that preservation work remains future backlog, not part of the current update contract.
25
-
26
- The full install and update contract lives in [install-and-update.md](docs/development/install-and-update.md).
27
-
28
- ## Requirements
29
-
30
- - **Node.js** ≥ 20 (per `package.json` engines)
31
- - **Godot** 4.4 through 4.6 stable — see [runtime-support-matrix.md](docs/development/runtime-support-matrix.md) for the full bounded support contract
32
- - **Host OS** macOS for the currently supported development environment
33
- - **Yarn 4** via `corepack` (required only for contributors working on the GDH implementation repo itself; end users invoking `npx @skillcap/gdh` do not need Yarn)
34
-
35
- ## Quick Start
36
-
37
- ```sh
38
- # 1. Run setup in your Godot project
39
- npx -y @skillcap/gdh@0.15.0 setup
16
+ Then open your agent in that project and run:
40
17
 
41
- # 2. Open your AI agent (Claude, Cursor, Codex) in the repo
42
-
43
- # 3. Run the onboarding handoff
18
+ ```text
44
19
  /gdh-onboard
45
20
  ```
46
21
 
47
- That's it. GDH handles detection, scaffolding, and agent configuration. The agent takes over from `/gdh-onboard`.
48
-
49
- ## What GDH Does
50
-
51
- ### Detects your Godot target
52
-
53
- Finds the Godot project inside your repo or monorepo automatically. Handles nested targets, worktrees, and non-obvious layouts.
54
-
55
- ### Configures your AI agents
56
-
57
- Scaffolds a minimal `.gdh/` surface and wires up agent-specific guidance so Claude, Cursor, and Codex know how to work with your project from the first session — all pinned to one canonical guidance chain.
58
-
59
- ### Searches Godot docs with version awareness
22
+ GDH writes the project guidance, command surfaces, MCP config, and local state that supported agents use for future work. Setup records the resolved GDH version in the target project so later updates can migrate that project deliberately.
60
23
 
61
- Fetches and searches official Godot documentation through CLI and MCP surfaces, pinned to your project's engine version. Bounded machine-local cache, explicit provenance.
62
-
63
- ### Validates with evidence
64
-
65
- Runs authoring and runtime checks through inspectable surfaces. Agents get structured results they can reason about, not just pass/fail.
66
- The current line also ships one Docker-backed rendered runtime provider for compatible run configurations, plus bounded screenshot artifacts on rendered-capable paths when verification asks for them.
67
-
68
- ### Signals completion with evidence
69
-
70
- Evidence-backed "done" decisions replace confidence-based guessing. Run records capture what happened; verification scenarios define what must be true.
71
-
72
- ### What GDH does not do
73
-
74
- GDH is not a general project planner, PR/release orchestrator, or generic codebase knowledge system. It does not manage non-Godot runtimes. Use it for Godot-specific authoring, validation, worktree/import handling, and evidence-backed done decisions — and hand the rest to tools built for those jobs.
75
-
76
- ## Core Concepts
77
-
78
- | Concept | What it is |
79
- |---------|-----------|
80
- | **Target** | The Godot project root or subproject GDH operates on |
81
- | **Run configuration** | How GDH launches a target |
82
- | **Verification scenario** | What GDH verifies once a target is running |
83
- | **Run record** | Structured evidence from one execution or verification run |
84
-
85
- ## Daily Usage
86
-
87
- Normal usage happens through your AI agent, not by memorizing CLI commands.
88
-
89
- 1. Open your agent in the repo
90
- 2. The agent uses GDH surfaces to check readiness, pick validation, run checks
91
- 3. You intervene only for narrow decisions or missing environment input
92
-
93
- The CLI exists for advanced operators, debugging, and automation. Update preview now uses a structured `preview` payload instead of changelog scraping, and update apply surfaces exact terminal follow-up data in `migration` + `terminal`. See [Advanced CLI Usage](docs/development/advanced-cli-usage.md).
94
-
95
- ## Documentation
96
-
97
- - [Install and Update](docs/development/install-and-update.md) — alternative install modes, updating
98
- - [Advanced CLI Usage](docs/development/advanced-cli-usage.md) — raw CLI reference
99
- - [Runtime Support Matrix](docs/development/runtime-support-matrix.md) — what's supported today
100
- - [Runtime Release Readiness](docs/development/runtime-release-readiness.md) — current release stage
101
-
102
- ## Status
103
-
104
- GDH now ships the current `0.15.0` release line and remains ready for broader internal use within the documented support contract. The current release line is `0.15.0` at the `broader_internal_release` stage.
105
- That line includes one first-class Docker-backed rendered runtime provider and bounded screenshot evidence on rendered-capable paths.
106
-
107
- The release-stage label applies only to the documented support window in [runtime-support-matrix.md](docs/development/runtime-support-matrix.md) and [runtime-release-readiness.md](docs/development/runtime-release-readiness.md). It is not a blanket claim that every Godot project shape is supported or that this implementation checkout should behave like a GDH-managed target repo.
24
+ ## Requirements
108
25
 
109
- This repository is the GDH implementation repo. Treat `gdh setup`, `gdh status`, and `/gdh-onboard` here as product smoke-check paths, not as the primary way to learn the state of GDH itself — authoritative product truth lives in the source, tests, release artifacts, and `.planning/` surfaces in this checkout.
26
+ - Node.js 20 or newer.
27
+ - A local Godot project, currently focused on Godot 4.4 through 4.6.
28
+ - A supported AI coding agent: Codex, Claude, or Cursor.
29
+ - Optional: `GDH_GODOT_EDITOR_BIN` for Godot import refresh or direct local runtime checks.
30
+ - Optional: Docker for the Docker-backed rendered runtime path.
110
31
 
111
- ### Support
32
+ ## What It Does
112
33
 
113
- - **Issues:** [github.com/Skillcap-Studio/gdh/issues](https://github.com/Skillcap-Studio/gdh/issues) reproducible bugs, concrete feature requests, documentation problems
114
- - **Contributing:** see [CONTRIBUTING.md](CONTRIBUTING.md) for workflow and commit policy
34
+ - Finds Godot project roots and writes `.gdh/project.yaml` plus `.gdh-state/` derived state.
35
+ - Installs agent commands and skills such as `/gdh-status`, `/gdh-prepare`, `/gdh-check`, `/gdh-verify`, `/gdh-migrate`, and `/gdh-update`.
36
+ - Exposes MCP tools for project status, authoring checks, docs lookup, runtime bridge operations, and verification.
37
+ - Keeps generated target-project files inside the managed project, not in GDH's own implementation repo.
115
38
 
116
- This repo does not currently promise a dedicated public support channel for project-specific troubleshooting; keep issues focused and reproducible.
39
+ ## Common Commands
117
40
 
118
- ## Development
41
+ ```sh
42
+ npx -y @skillcap/gdh@latest setup
43
+ gdh status
44
+ gdh target prepare --dry-run
45
+ gdh authoring check
46
+ gdh verify recommend --since main
47
+ gdh self-update --dry-run --target .
48
+ ```
119
49
 
120
- If you are working on the GDH implementation repo itself, use these contributor surfaces instead of treating this checkout as a freshly managed target:
50
+ ## More Docs
121
51
 
122
- - [docs/development/install-and-update.md](docs/development/install-and-update.md)
123
- - [docs/development/release-workflow.md](docs/development/release-workflow.md)
124
- - [docs/development/conventions.md](docs/development/conventions.md)
125
- - [docs/development/open-source-maintainer-contract.md](docs/development/open-source-maintainer-contract.md)
126
- - [fixtures/README.md](fixtures/README.md)
52
+ - [Install and update](./docs/development/install-and-update.md)
53
+ - [Advanced CLI usage](./docs/development/advanced-cli-usage.md)
54
+ - [Runtime support matrix](./docs/development/runtime-support-matrix.md)
55
+ - [Runtime release readiness](./docs/development/runtime-release-readiness.md)
56
+ - [All docs](./docs/README.md)
127
57
 
128
- When cutting a GDH release in this repo with Claude, Codex, or Cursor, use `/gdh-release` so the agent loads the canonical release guidance and runs `corepack yarn check:public-release` before `release:apply`. Use `/gdh-migration-verify` for the dedicated migration-proof step before the final release gate. Use `/gdh-publish` only when you explicitly want an already-cut release published to npm.
58
+ ## License
129
59
 
130
- Release history lives in the generated root [CHANGELOG.md](CHANGELOG.md); curated release notes live under [docs/releases/](docs/releases/README.md).
131
- Each live release line also carries a machine-readable update contract in [docs/releases/migrations/](docs/releases/migrations/README.md), which is compiled into the packaged `RELEASE-SPAN-UPDATE-CONTRACTS.json` asset for runtime update guidance.
60
+ MIT
@@ -1091,6 +1091,184 @@
1091
1091
  }
1092
1092
  ]
1093
1093
  }
1094
+ },
1095
+ {
1096
+ "version": "0.15.1",
1097
+ "releaseTag": "v0.15.1",
1098
+ "migrationStatus": "required",
1099
+ "summary": "v0.15.1 fixes rendered bridge screenshot orientation and changes update follow-through so auto-applicable runtime bridge repair is agent-owned work instead of a user review gate. The release changes GDH_RUNTIME_BRIDGE_SURFACE_VERSION (5 -> 6), so bridge-enabled managed targets need release-specific bridge repair and plugin/autoload follow-through when required.",
1100
+ "releaseHighlights": {
1101
+ "summary": "v0.15.1 fixes the active bridge screenshot path shipped in v0.15.0. On-demand and startup-triggered rendered screenshots now save with the expected vertical orientation, and update/migration follow-through treats auto-applicable bridge repair as agent-owned work instead of a user review gate. Because the managed runtime bridge surface changed, bridge-enabled targets need the bounded bridge repair path.",
1102
+ "operatorChanges": [
1103
+ "**Rendered bridge screenshots keep the expected orientation.** The managed runtime bridge no longer flips the viewport image before saving PNG artifacts for `screenshot.capture` or startup screenshot capture.",
1104
+ "**Bridge repair is no longer presented as a manual review prompt.** Auto-applicable runtime bridge drift now surfaces as `follow_up_required`, so agents run the surfaced `gdh bridge repair` command and validation commands instead of asking the user to approve ordinary repair.",
1105
+ "**Update guidance owns stale MCP cleanup.** `/gdh-update` guidance now tells agents to stop stale GDH MCP server processes themselves when possible before trusting MCP follow-up output.",
1106
+ "**The managed bridge surface moves to the next contract version.** Bridge-enabled targets repair from runtime bridge surface `5` to `6` to receive the screenshot-orientation fix."
1107
+ ]
1108
+ },
1109
+ "updateContract": {
1110
+ "summary": "Bridge-enabled managed targets need a release-specific bridge repair path for v0.15.1 because the runtime bridge surface moves from version 5 to version 6. Agents should run surfaced follow-up commands directly for auto-applicable bridge repair, then validate with bridge status and project status.",
1111
+ "steps": [
1112
+ {
1113
+ "id": "verify_post_update_status",
1114
+ "kind": "mechanical",
1115
+ "summary": "Run the standard post-update lifecycle check.",
1116
+ "detail": "Start with `gdh status` so GDH can report whether the target entered the v0.15.1 runtime bridge repair branch.",
1117
+ "commands": [
1118
+ "gdh status"
1119
+ ],
1120
+ "validationCommands": [
1121
+ "gdh status"
1122
+ ]
1123
+ },
1124
+ {
1125
+ "id": "inspect_bridge_specific_branch",
1126
+ "kind": "agent_reasoning",
1127
+ "summary": "Decide whether bridge repair is active for this target.",
1128
+ "detail": "If `gdh status` surfaces runtime-bridge reasons, inspect `gdh bridge status` and treat the surfaced `terminal.commands` as the release-specific follow-up. If no runtime-bridge reasons appear, no release-specific bridge repair is needed.",
1129
+ "commands": [
1130
+ "gdh bridge status"
1131
+ ],
1132
+ "validationCommands": [
1133
+ "gdh status"
1134
+ ]
1135
+ },
1136
+ {
1137
+ "id": "repair_runtime_bridge_surface",
1138
+ "kind": "mechanical",
1139
+ "summary": "Repair the managed runtime bridge files when the bridge branch is active.",
1140
+ "detail": "Bridge-enabled `v0.15.0` targets drift from runtime bridge surface version 6. Run `gdh bridge repair` to rewrite the managed bridge files and remove the extra screenshot flip.",
1141
+ "commands": [
1142
+ "gdh bridge repair"
1143
+ ],
1144
+ "validationCommands": [
1145
+ "gdh bridge status"
1146
+ ]
1147
+ },
1148
+ {
1149
+ "id": "enable_plugin_and_finish_gdhbridge_registration",
1150
+ "kind": "manual_review",
1151
+ "summary": "Enable the GDH Runtime Bridge plugin so GDHBridge registers when required.",
1152
+ "detail": "GDH does not hand-edit `project.godot` for operators. After bridge repair, if bridge status still reports plugin/autoload follow-through, open the project in the Godot editor and enable the `GDH Runtime Bridge` plugin so it can register `GDHBridge`.",
1153
+ "commands": [],
1154
+ "validationCommands": [
1155
+ "gdh bridge status",
1156
+ "gdh status"
1157
+ ]
1158
+ },
1159
+ {
1160
+ "id": "validate_repaired_lifecycle",
1161
+ "kind": "mechanical",
1162
+ "summary": "Validate the repaired bridge and project lifecycle.",
1163
+ "detail": "After repair and any plugin follow-through, rerun `gdh bridge status` and `gdh status`. The target should return to the healthy lifecycle state for the repaired bridge surface.",
1164
+ "commands": [
1165
+ "gdh bridge status",
1166
+ "gdh status"
1167
+ ],
1168
+ "validationCommands": [
1169
+ "gdh bridge status",
1170
+ "gdh status"
1171
+ ]
1172
+ }
1173
+ ]
1174
+ }
1175
+ },
1176
+ {
1177
+ "version": "0.16.0",
1178
+ "releaseTag": "v0.16.0",
1179
+ "migrationStatus": "required",
1180
+ "summary": "v0.16.0 adds project-owned bridge entries, scene-scoped runtime reachability knowledge, navigation feasibility probes, and timed/sequenced runtime input. The release changes GDH_GUIDANCE_UNIT_VERSION (4 -> 6) and GDH_RUNTIME_BRIDGE_SURFACE_VERSION (6 -> 7), so managed targets need guidance migration and bridge repair before they are treated as current.",
1181
+ "releaseHighlights": {
1182
+ "summary": "v0.16.0 moves bridge extension and runtime-navigation knowledge into project-owned surfaces, adds a fixture-backed navigation lab for collision and route-probing experiments, and expands bounded runtime input with timed holds plus short action sequences. Agents can now create custom bridge entries outside the managed addon tree, reuse scene-scoped waypoint knowledge, and reduce latency-sensitive input failures without treating GDH as arbitrary gameplay automation.",
1183
+ "operatorChanges": [
1184
+ "**Project-owned bridge entries live outside `addons/gdh_bridge/`.** GDH scaffolds `.gdh/bridge/entries/` with a tracked `.gitkeep`, loads bounded project entries from that folder, and keeps the generated addon tree as GDH-owned output.",
1185
+ "**Runtime reachability knowledge is durable and scene-scoped.** GDH scaffolds `.gdh/runtime-knowledge/` and supports YAML scene records for waypoints, routes, transitions, dynamic blockers, trust, and stale-status notes.",
1186
+ "**Navigation exploration has fixture-backed probes.** The runtime bridge fixture now includes controlled-node/world-collider inspection plus segment and route probes so navigation approaches can be tested before GDH commits to a broad product API.",
1187
+ "**Timed input and bounded action sequences are supported.** The bridge exposes `input.action.hold` with `durationMs` or live `physicsFrames`, and the host exposes `input.sequence.run` for short ordered bridge action flows.",
1188
+ "**Generated guidance teaches the new boundaries.** Agent guidance covers project-owned bridge entries, runtime reachability knowledge, timed/sequenced input, and the line between live physics-frame holds and unsupported manual time-control."
1189
+ ]
1190
+ },
1191
+ "updateContract": {
1192
+ "summary": "Managed targets need release-specific migration for v0.16.0 because generated guidance and the runtime bridge surface changed. Agents should migrate guidance/scaffolded project-owned folders, repair the runtime bridge when GDH reports drift, complete plugin/autoload follow-through when required, and validate the target lifecycle.",
1193
+ "steps": [
1194
+ {
1195
+ "id": "verify_post_update_status",
1196
+ "kind": "mechanical",
1197
+ "summary": "Run the standard post-update lifecycle check.",
1198
+ "detail": "Start with `gdh status` so GDH can report whether the target needs guidance migration, runtime bridge repair, or plugin/autoload follow-through for v0.16.0.",
1199
+ "commands": [
1200
+ "gdh status"
1201
+ ],
1202
+ "validationCommands": [
1203
+ "gdh status"
1204
+ ]
1205
+ },
1206
+ {
1207
+ "id": "apply_guidance_and_project_surface_migration",
1208
+ "kind": "mechanical",
1209
+ "summary": "Apply managed guidance and project-owned surface migration.",
1210
+ "detail": "When `gdh status` or `gdh migrate` reports migration work, run `gdh migrate --apply` to refresh guidance units and scaffold `.gdh/bridge/entries/` plus `.gdh/runtime-knowledge/` without storing project extensions inside the managed addon tree.",
1211
+ "commands": [
1212
+ "gdh migrate --apply"
1213
+ ],
1214
+ "validationCommands": [
1215
+ "gdh guidance status",
1216
+ "gdh status"
1217
+ ]
1218
+ },
1219
+ {
1220
+ "id": "inspect_bridge_repair_branch",
1221
+ "kind": "agent_reasoning",
1222
+ "summary": "Decide whether runtime bridge repair is active for this target.",
1223
+ "detail": "If lifecycle output surfaces runtime-bridge reasons, inspect `gdh bridge status` and treat the surfaced terminal commands as release-specific follow-up. If no runtime-bridge reasons appear, no release-specific bridge repair is needed.",
1224
+ "commands": [
1225
+ "gdh bridge status"
1226
+ ],
1227
+ "validationCommands": [
1228
+ "gdh status"
1229
+ ]
1230
+ },
1231
+ {
1232
+ "id": "repair_runtime_bridge_surface",
1233
+ "kind": "mechanical",
1234
+ "summary": "Repair managed runtime bridge files when drift is active.",
1235
+ "detail": "Bridge-enabled targets on the previous surface drift from runtime bridge surface version 7. Run `gdh bridge repair` to rewrite the managed bridge addon with project-owned entry loading and timed hold support.",
1236
+ "commands": [
1237
+ "gdh bridge repair"
1238
+ ],
1239
+ "validationCommands": [
1240
+ "gdh bridge status"
1241
+ ]
1242
+ },
1243
+ {
1244
+ "id": "enable_plugin_and_finish_gdhbridge_registration",
1245
+ "kind": "manual_review",
1246
+ "summary": "Enable the GDH Runtime Bridge plugin so GDHBridge registers when required.",
1247
+ "detail": "GDH does not hand-edit `project.godot` for operators. After bridge repair, if bridge status still reports plugin/autoload follow-through, open the project in the Godot editor and enable the `GDH Runtime Bridge` plugin so it can register `GDHBridge`.",
1248
+ "commands": [],
1249
+ "validationCommands": [
1250
+ "gdh bridge status",
1251
+ "gdh status"
1252
+ ]
1253
+ },
1254
+ {
1255
+ "id": "validate_repaired_lifecycle",
1256
+ "kind": "mechanical",
1257
+ "summary": "Validate guidance, bridge, and project lifecycle after migration.",
1258
+ "detail": "After migration, bridge repair, and any plugin follow-through, rerun `gdh guidance status`, `gdh bridge status`, and `gdh status`. The target should return to the current lifecycle state for the refreshed guidance and bridge surfaces.",
1259
+ "commands": [
1260
+ "gdh guidance status",
1261
+ "gdh bridge status",
1262
+ "gdh status"
1263
+ ],
1264
+ "validationCommands": [
1265
+ "gdh guidance status",
1266
+ "gdh bridge status",
1267
+ "gdh status"
1268
+ ]
1269
+ }
1270
+ ]
1271
+ }
1094
1272
  }
1095
1273
  ]
1096
1274
  }
@@ -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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"}
@@ -12,7 +12,7 @@ import { CLAUDE_SETTINGS_RELATIVE_PATH, patchClaudeSettingsForGdhSessionStart, p
12
12
  import { GDH_AGENT_CONTRACT_VERSION, GDH_CURSOR_RULE_VERSION, GDH_GUIDANCE_INDEX_VERSION, GDH_GUIDANCE_UNIT_VERSION, GDH_PROJECT_CONFIG_VERSION, GDH_RECIPE_SCHEMA_VERSION, GDH_RULES_SCHEMA_VERSION, GDH_SCENARIO_SCHEMA_VERSION, assertProjectLifecycleCompatibilityInvariant, definePackageBoundary, resolveCurrentGdhInstall, resolveConfiguredGodotEditorBin, resolveGdhProductMetadata, } from "@gdh/core";
13
13
  import { createDefaultGuidanceUnits, getGuidanceStatus, resolveGuidanceQuery, resolveRecoveryHints, } from "@gdh/docs";
14
14
  import { inspectGuidanceAudit } from "@gdh/observability";
15
- import { inspectRuntimeBridgeSurface } from "@gdh/runtime";
15
+ import { inspectRuntimeBridgeSurface, inspectRuntimeKnowledgeSurface, } from "@gdh/runtime";
16
16
  import { readInventoryCacheOrScan } from "@gdh/scan";
17
17
  import { evaluateDonePolicy, recommendValidationForChange } from "@gdh/verify";
18
18
  export const adaptersPackage = definePackageBoundary({
@@ -227,6 +227,10 @@ export async function inspectProjectLifecycleCompatibility(targetPath) {
227
227
  export async function buildGdhStatusResult(targetPath) {
228
228
  const context = await buildAuthoringContext(targetPath);
229
229
  const projectLifecycle = await inspectProjectLifecycleCompatibility(targetPath);
230
+ const runtimeKnowledge = await inspectRuntimeKnowledgeSurface({
231
+ targetPath: context.status.targetPath,
232
+ runtimeKnowledgePath: context.projectConfig?.runtimeKnowledge.path ?? null,
233
+ });
230
234
  const recoveryHints = resolveRecoveryHints(projectLifecycle.reasons);
231
235
  const capabilities = await addOperationalCapabilityStatus(context.status.capabilities, context.status.targetPath);
232
236
  const detectedProjects = summarizeDetectedProjects(context.inventory.projects, context.status.primaryProjectPath);
@@ -236,6 +240,7 @@ export async function buildGdhStatusResult(targetPath) {
236
240
  detectedProjects,
237
241
  product: resolveGdhProductMetadata(),
238
242
  projectLifecycle,
243
+ runtimeKnowledge,
239
244
  recoveryHints,
240
245
  };
241
246
  }
@@ -868,7 +873,7 @@ export function renderClaudeUpdateCommand(_pinnedVersion) {
868
873
  "3. When `preview.state` is `ready`, summarize the current version, target version, intervening releases, bounded release highlights, ordered steps, and which work is `mechanical`, `agent_reasoning`, or `manual_review`.",
869
874
  "4. Ask for explicit approval before apply.",
870
875
  "5. Apply: run `npx -y @skillcap/gdh@latest self-update [version]` (omit `[version]` to apply against npm latest; forward whatever positional the user passed to `/gdh-update`).",
871
- "6. If this chat or editor keeps a long-lived GDH MCP session alive, restart or reconnect that MCP session before trusting MCP follow-up output. Self-update rebakes files on disk; an already-running MCP server can still be the old process or old env snapshot until it reconnects.",
876
+ "6. If this chat or editor keeps a long-lived GDH MCP session alive, do the MCP cleanup yourself before trusting MCP follow-up output: stop stale `gdh mcp serve` / `@skillcap/gdh ... mcp serve` processes for this target when possible, then let the next MCP connection restart from the updated config. If the client owns reconnection and the process cannot be controlled from Bash, report that limitation after attempting cleanup.",
872
877
  "7. Verify baked pinning: run `npx -y @skillcap/gdh@latest verify drift` to confirm every managed skill/command surface matches the new pin. This does not validate runtime bridge or other lifecycle surfaces.",
873
878
  "8. Read `terminal.state` in the apply stdout JSON and treat it as the lifecycle/runtime truth.",
874
879
  "9. If `terminal.state` is `healthy`, confirm the update completed and stop.",
@@ -915,7 +920,7 @@ export function renderCodexUpdateSkill(_pinnedVersion) {
915
920
  "3. When `preview.state` is `ready`, summarize the current version, target version, intervening releases, bounded release highlights, ordered steps, and which work is `mechanical`, `agent_reasoning`, or `manual_review`.",
916
921
  "4. Ask for explicit approval before apply.",
917
922
  "5. Apply: run `npx -y @skillcap/gdh@latest self-update [version]` (omit `[version]` to apply against npm latest; forward whatever positional the user passed to `/gdh-update`).",
918
- "6. If this chat or editor keeps a long-lived GDH MCP session alive, restart or reconnect that MCP session before trusting MCP follow-up output. Self-update rebakes files on disk; an already-running MCP server can still be the old process or old env snapshot until it reconnects.",
923
+ "6. If this chat or editor keeps a long-lived GDH MCP session alive, do the MCP cleanup yourself before trusting MCP follow-up output: stop stale `gdh mcp serve` / `@skillcap/gdh ... mcp serve` processes for this target when possible, then let the next MCP connection restart from the updated config. If the client owns reconnection and the process cannot be controlled from Bash, report that limitation after attempting cleanup.",
919
924
  "7. Verify baked pinning: run `npx -y @skillcap/gdh@latest verify drift` to confirm every managed skill/command surface matches the new pin. This does not validate runtime bridge or other lifecycle surfaces.",
920
925
  "8. Read `terminal.state` in the apply stdout JSON and treat it as the lifecycle/runtime truth.",
921
926
  "9. If `terminal.state` is `healthy`, confirm the update completed and stop.",
@@ -960,7 +965,7 @@ export function renderCursorUpdateSkill(_pinnedVersion) {
960
965
  "3. When `preview.state` is `ready`, summarize the current version, target version, intervening releases, bounded release highlights, ordered steps, and which work is `mechanical`, `agent_reasoning`, or `manual_review`.",
961
966
  "4. Ask for explicit approval before apply.",
962
967
  "5. Apply: run `npx -y @skillcap/gdh@latest self-update [version]` (omit `[version]` to apply against npm latest; forward whatever positional the user passed to `/gdh-update`).",
963
- "6. If this chat or editor keeps a long-lived GDH MCP session alive, restart or reconnect that MCP session before trusting MCP follow-up output. Self-update rebakes files on disk; an already-running MCP server can still be the old process or old env snapshot until it reconnects.",
968
+ "6. If this chat or editor keeps a long-lived GDH MCP session alive, do the MCP cleanup yourself before trusting MCP follow-up output: stop stale `gdh mcp serve` / `@skillcap/gdh ... mcp serve` processes for this target when possible, then let the next MCP connection restart from the updated config. If the client owns reconnection and the process cannot be controlled from Bash, report that limitation after attempting cleanup.",
964
969
  "7. Verify baked pinning: run `npx -y @skillcap/gdh@latest verify drift` to confirm every managed skill/command surface matches the new pin. This does not validate runtime bridge or other lifecycle surfaces.",
965
970
  "8. Read `terminal.state` in the apply stdout JSON and treat it as the lifecycle/runtime truth.",
966
971
  "9. If `terminal.state` is `healthy`, confirm the update completed and stop.",
@@ -3216,20 +3221,17 @@ function inspectRuntimeBridgeLifecycleSurface(targetPath, bridgeStatus) {
3216
3221
  surface: "runtime_bridge_surface",
3217
3222
  management: "managed",
3218
3223
  state: "compatibility_degraded",
3219
- summary: "Runtime bridge managed files are present but drifted from the current GDH surface and need review or repair.",
3224
+ summary: "Runtime bridge managed files are present but drifted from the current GDH surface and can be repaired automatically.",
3220
3225
  reasons: bridgeStatus.reasons,
3221
3226
  probes,
3222
3227
  action: {
3223
3228
  kind: "run_repair",
3224
- summary: "Run GDH bridge repair after reviewing the drifted runtime bridge files.",
3229
+ summary: "Run GDH bridge repair to rewrite the drifted runtime bridge files.",
3225
3230
  command: ["gdh", "bridge", "repair", targetPath],
3226
3231
  validationCommands: [
3227
3232
  ["gdh", "bridge", "status", targetPath],
3228
3233
  ["gdh", "status", targetPath],
3229
3234
  ],
3230
- manualSteps: [
3231
- "Review the drifted runtime bridge files before running automated repair.",
3232
- ],
3233
3235
  autoApplicable: true,
3234
3236
  },
3235
3237
  });