@skillcap/gdh 0.24.0 → 0.25.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.
- package/INSTALL-BUNDLE.json +1 -1
- package/RELEASE-SPAN-UPDATE-CONTRACTS.json +58 -0
- package/node_modules/@gdh/adapters/dist/authoring-hook-render.d.ts.map +1 -1
- package/node_modules/@gdh/adapters/dist/authoring-hook-render.js +7 -130
- package/node_modules/@gdh/adapters/dist/authoring-hook-render.js.map +1 -1
- package/node_modules/@gdh/adapters/dist/claude-statusline-render.d.ts.map +1 -1
- package/node_modules/@gdh/adapters/dist/claude-statusline-render.js +4 -27
- package/node_modules/@gdh/adapters/dist/claude-statusline-render.js.map +1 -1
- package/node_modules/@gdh/adapters/dist/claude-update-hook-render.d.ts.map +1 -1
- package/node_modules/@gdh/adapters/dist/claude-update-hook-render.js +5 -39
- package/node_modules/@gdh/adapters/dist/claude-update-hook-render.js.map +1 -1
- package/node_modules/@gdh/adapters/dist/claude-update-worker-render.d.ts.map +1 -1
- package/node_modules/@gdh/adapters/dist/claude-update-worker-render.js +5 -67
- package/node_modules/@gdh/adapters/dist/claude-update-worker-render.js.map +1 -1
- package/node_modules/@gdh/adapters/dist/index.d.ts +1 -2
- package/node_modules/@gdh/adapters/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/adapters/dist/index.js +55 -41
- package/node_modules/@gdh/adapters/dist/index.js.map +1 -1
- package/node_modules/@gdh/adapters/dist/skill-rendering.d.ts +2 -5
- package/node_modules/@gdh/adapters/dist/skill-rendering.d.ts.map +1 -1
- package/node_modules/@gdh/adapters/dist/skill-rendering.js +17 -59
- package/node_modules/@gdh/adapters/dist/skill-rendering.js.map +1 -1
- package/node_modules/@gdh/adapters/dist/template-assets.d.ts +2 -0
- package/node_modules/@gdh/adapters/dist/template-assets.d.ts.map +1 -0
- package/node_modules/@gdh/adapters/dist/template-assets.js +26 -0
- package/node_modules/@gdh/adapters/dist/template-assets.js.map +1 -0
- package/node_modules/@gdh/adapters/dist/templates/authoring-hook.js.tpl +128 -0
- package/node_modules/@gdh/adapters/dist/templates/claude-check-update-hook.js.tpl +37 -0
- package/node_modules/@gdh/adapters/dist/templates/claude-check-update-worker.js.tpl +65 -0
- package/node_modules/@gdh/adapters/dist/templates/claude-statusline.js.tpl +25 -0
- package/node_modules/@gdh/adapters/package.json +8 -8
- package/node_modules/@gdh/authoring/package.json +2 -2
- package/node_modules/@gdh/cli/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/cli/dist/index.js +5 -4
- package/node_modules/@gdh/cli/dist/index.js.map +1 -1
- package/node_modules/@gdh/cli/dist/migrate.d.ts.map +1 -1
- package/node_modules/@gdh/cli/dist/migrate.js +65 -2
- package/node_modules/@gdh/cli/dist/migrate.js.map +1 -1
- package/node_modules/@gdh/cli/dist/setup.d.ts +4 -0
- package/node_modules/@gdh/cli/dist/setup.d.ts.map +1 -1
- package/node_modules/@gdh/cli/dist/setup.js +8 -67
- package/node_modules/@gdh/cli/dist/setup.js.map +1 -1
- package/node_modules/@gdh/cli/package.json +10 -10
- package/node_modules/@gdh/core/dist/index.d.ts +6 -4
- package/node_modules/@gdh/core/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/core/dist/index.js +5 -4
- package/node_modules/@gdh/core/dist/index.js.map +1 -1
- package/node_modules/@gdh/core/dist/migrations/managed-surface-classes.d.ts +14 -14
- package/node_modules/@gdh/core/dist/migrations/managed-surface-classes.js +15 -15
- package/node_modules/@gdh/core/dist/migrations/managed-surface-classes.js.map +1 -1
- package/node_modules/@gdh/core/dist/migrations/managed-target-surface-inventory.d.ts +294 -0
- package/node_modules/@gdh/core/dist/migrations/managed-target-surface-inventory.d.ts.map +1 -0
- package/node_modules/@gdh/core/dist/migrations/managed-target-surface-inventory.js +365 -0
- package/node_modules/@gdh/core/dist/migrations/managed-target-surface-inventory.js.map +1 -0
- package/node_modules/@gdh/core/package.json +1 -1
- package/node_modules/@gdh/docs/dist/agent-contract.d.ts +2 -1
- package/node_modules/@gdh/docs/dist/agent-contract.d.ts.map +1 -1
- package/node_modules/@gdh/docs/dist/agent-contract.js +3 -2
- package/node_modules/@gdh/docs/dist/agent-contract.js.map +1 -1
- package/node_modules/@gdh/docs/dist/guidance.d.ts +2 -0
- package/node_modules/@gdh/docs/dist/guidance.d.ts.map +1 -1
- package/node_modules/@gdh/docs/dist/guidance.js +26 -254
- package/node_modules/@gdh/docs/dist/guidance.js.map +1 -1
- package/node_modules/@gdh/docs/dist/index.d.ts +1 -1
- package/node_modules/@gdh/docs/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/docs/dist/index.js +1 -1
- package/node_modules/@gdh/docs/dist/index.js.map +1 -1
- package/node_modules/@gdh/docs/dist/query.d.ts.map +1 -1
- package/node_modules/@gdh/docs/dist/query.js +4 -5
- package/node_modules/@gdh/docs/dist/query.js.map +1 -1
- package/node_modules/@gdh/docs/dist/recovery-hints.js +1 -1
- package/node_modules/@gdh/docs/dist/recovery-hints.js.map +1 -1
- package/node_modules/@gdh/docs/dist/template-assets.d.ts +2 -0
- package/node_modules/@gdh/docs/dist/template-assets.d.ts.map +1 -0
- package/node_modules/@gdh/docs/dist/template-assets.js +26 -0
- package/node_modules/@gdh/docs/dist/template-assets.js.map +1 -0
- package/node_modules/@gdh/docs/dist/templates/guidance/authoring-and-validation.md.tpl +111 -0
- package/node_modules/@gdh/docs/dist/templates/guidance/gdh-glossary.md.tpl +34 -0
- package/node_modules/@gdh/docs/dist/templates/guidance/persistence-semantics.md.tpl +24 -0
- package/node_modules/@gdh/docs/dist/templates/guidance/project-migration.md.tpl +19 -0
- package/node_modules/@gdh/docs/dist/templates/guidance/project-surfaces.md.tpl +14 -0
- package/node_modules/@gdh/docs/package.json +2 -2
- package/node_modules/@gdh/mcp/package.json +8 -8
- package/node_modules/@gdh/observability/package.json +2 -2
- package/node_modules/@gdh/runtime/package.json +2 -2
- package/node_modules/@gdh/scan/package.json +3 -3
- package/node_modules/@gdh/verify/package.json +7 -7
- package/package.json +11 -11
|
@@ -14,9 +14,6 @@ assertClassRegistered("skill.cursor.migrate", "deterministic");
|
|
|
14
14
|
assertClassRegistered("skill.claude.update", "deterministic");
|
|
15
15
|
assertClassRegistered("skill.codex.update", "deterministic");
|
|
16
16
|
assertClassRegistered("skill.cursor.update", "deterministic");
|
|
17
|
-
assertClassRegistered("skill.claude.check", "deterministic");
|
|
18
|
-
assertClassRegistered("skill.codex.check", "deterministic");
|
|
19
|
-
assertClassRegistered("skill.cursor.check", "deterministic");
|
|
20
17
|
assertClassRegistered("skill.claude.prepare", "deterministic");
|
|
21
18
|
assertClassRegistered("skill.codex.prepare", "deterministic");
|
|
22
19
|
assertClassRegistered("skill.cursor.prepare", "deterministic");
|
|
@@ -52,7 +49,7 @@ const ONBOARD_TERMS = [
|
|
|
52
49
|
"`readiness`: GDH's structured status for whether the target is detected, onboarded, authorable, blocked, degraded, or unavailable.",
|
|
53
50
|
"`inventory cache`: `.gdh-state/inventory.json`, derived machine-local project discovery data.",
|
|
54
51
|
"`target prepare`: GDH's worktree/import readiness check; it can report a cold worktree before validation is trustworthy.",
|
|
55
|
-
"`guidance status`: GDH's report for generated
|
|
52
|
+
"`guidance status`: GDH's report for generated `.gdh/guidance/` visibility and freshness.",
|
|
56
53
|
"`run config`: a project-owned GDH recipe for launching the game or related processes.",
|
|
57
54
|
"`verification scenario`: a project-owned runtime proof recipe that can be run after a run config launches.",
|
|
58
55
|
"`machine-local path`: a path valid only on this computer, such as the Godot editor binary path; keep it in `.gdh-state/`, not committed config.",
|
|
@@ -88,14 +85,6 @@ const UPDATE_TERMS = [
|
|
|
88
85
|
"`drift verification`: `gdh verify drift`, the baked managed-surface pin audit; it is not lifecycle, runtime, or bridge validation.",
|
|
89
86
|
"`terminal.state`: the structured apply outcome; use it instead of prose or action count guesses.",
|
|
90
87
|
];
|
|
91
|
-
const CHECK_TERMS = [
|
|
92
|
-
"`authoring`: editing or validating Godot-facing files such as `.gd`, `.tscn`, `.tres`, and `project.godot`.",
|
|
93
|
-
"`authoring check`: the GDH command that collects validator diagnostics and blocking summaries.",
|
|
94
|
-
"`validation evidence`: concrete diagnostics from validators; LSP lifecycle health alone is not evidence.",
|
|
95
|
-
"`LSP lifecycle`: whether GDH can launch, reuse, or clean up the editor-backed Godot LSP service.",
|
|
96
|
-
"`validator family`: the source of diagnostics, such as `gdscript_lsp` for `.gd` or `godot_scene_resource` for `.tscn`/`.tres`.",
|
|
97
|
-
"`blockingSummary`: the authoring-check decision about whether errors or configured warnings block completion.",
|
|
98
|
-
];
|
|
99
88
|
const PREPARE_TERMS = [
|
|
100
89
|
"`target`: the Godot project root GDH should prepare.",
|
|
101
90
|
"`authoring`: editing or validating Godot-facing files such as `.gd`, `.tscn`, `.tres`, and `project.godot`.",
|
|
@@ -129,7 +118,7 @@ export const GDH_SKILL_DEFINITIONS = {
|
|
|
129
118
|
],
|
|
130
119
|
process: (version) => [
|
|
131
120
|
`Confirm the selected target and current GDH state with \`${pin(version)} status\`.`,
|
|
132
|
-
"Read `.gdh/project.yaml
|
|
121
|
+
"Read `.gdh/project.yaml` and `.gdh/guidance/README.md` before asking for facts GDH already knows. This skill owns the onboarding procedure; there is no separate onboarding guidance document to load.",
|
|
133
122
|
`Check immediate readiness with \`${pin(version)} guidance status\` and \`${pin(version)} target prepare --dry-run\`.`,
|
|
134
123
|
"If `target prepare --dry-run` reports cold, missing, or stale generated Godot state, ask for a reusable sibling checkout before using `target prepare --source-target <path>`; do not guess a source target.",
|
|
135
124
|
"If `status` reports an incompatible lifecycle, missing project config, or blocking setup reason, stop broad probing and surface GDH recovery hints before running optional authoring/runtime inventory commands.",
|
|
@@ -144,7 +133,7 @@ export const GDH_SKILL_DEFINITIONS = {
|
|
|
144
133
|
"Do not start editing code during `/gdh-onboard` unless the human explicitly asks.",
|
|
145
134
|
"Prefer GDH structured surfaces over repo guesswork.",
|
|
146
135
|
"Keep output short, operational, and specific.",
|
|
147
|
-
"For cache/persistence behavior of scan, status, onboard: see
|
|
136
|
+
"For cache/persistence behavior of scan, status, onboard: see `.gdh/guidance/persistence-semantics.md`.",
|
|
148
137
|
],
|
|
149
138
|
},
|
|
150
139
|
status: {
|
|
@@ -168,14 +157,15 @@ export const GDH_SKILL_DEFINITIONS = {
|
|
|
168
157
|
`${PREVIEW_HEADER_LITERAL} — migrate output at this step describes planned actions ("would delete ...") not applied ones ("deleted").`,
|
|
169
158
|
"Surface degraded/unavailable capabilities, including operational/diagnostic capability fields when present.",
|
|
170
159
|
"When `runtimeBridgeBroker.state` is `stale` or `incompatible`, route recovery through `runtimeBridgeBroker.cleanupCommand` / gdh bridge session prune; do not recommend gdh bridge repair unless project lifecycle or bridge status reports runtime bridge surface drift.",
|
|
171
|
-
"
|
|
160
|
+
"For code-validity evidence, the canonical command family is gdh authoring check: `.gd` changes need `gdscript_lsp`, `.tscn`/`.tres` changes need `godot_scene_resource`, and LSP lifecycle/capability readiness is not diagnostic evidence.",
|
|
161
|
+
`Do not treat capability availability as validation evidence. If the user needs code-validity evidence, route to \`${pin(version)} authoring check --mode final\`, or use current hook output when a hook already ran.`,
|
|
172
162
|
"Suggest one most productive next step based on the structured fields; do not claim GDH emitted a top-level `nextStep` field.",
|
|
173
163
|
],
|
|
174
164
|
rules: () => [
|
|
175
165
|
"Do not start editing code.",
|
|
176
166
|
"Prefer structured GDH surfaces over repo guesswork.",
|
|
177
167
|
"Keep output short and operational.",
|
|
178
|
-
"For cache/persistence behavior of scan, status, onboard: see
|
|
168
|
+
"For cache/persistence behavior of scan, status, onboard: see `.gdh/guidance/persistence-semantics.md`.",
|
|
179
169
|
],
|
|
180
170
|
},
|
|
181
171
|
scan: {
|
|
@@ -202,7 +192,7 @@ export const GDH_SKILL_DEFINITIONS = {
|
|
|
202
192
|
"Do not edit the persisted inventory directly.",
|
|
203
193
|
"The scan command is discovery/cache evidence, not readiness or validation proof.",
|
|
204
194
|
"Do not run scan before status unless the user asked for fresh inventory, project files changed, setup/onboarding needs discovery, or cache freshness is in question.",
|
|
205
|
-
"For cache/persistence behavior of scan, status, onboard: see
|
|
195
|
+
"For cache/persistence behavior of scan, status, onboard: see `.gdh/guidance/persistence-semantics.md`.",
|
|
206
196
|
],
|
|
207
197
|
},
|
|
208
198
|
migrate: {
|
|
@@ -289,37 +279,6 @@ export const GDH_SKILL_DEFINITIONS = {
|
|
|
289
279
|
"If `self-update` returns `skipped_dev_mode`, explain that dev-from-source mode bypasses pinning; no action needed.",
|
|
290
280
|
],
|
|
291
281
|
},
|
|
292
|
-
check: {
|
|
293
|
-
id: "check",
|
|
294
|
-
name: "gdh-check",
|
|
295
|
-
description: "Run GDH authoring checks and explain diagnostics",
|
|
296
|
-
objective: "Run GDH authoring checks and explain diagnostics in human-readable terms.",
|
|
297
|
-
terms: CHECK_TERMS,
|
|
298
|
-
claudeTools: ["Read", "Grep", "Glob", "Bash"],
|
|
299
|
-
userQuestions: [
|
|
300
|
-
"Ask only narrow follow-up questions when GDH cannot infer the missing fact safely.",
|
|
301
|
-
"If structured user-input tooling is unavailable, ask concise plain-text questions instead.",
|
|
302
|
-
],
|
|
303
|
-
process: (version) => [
|
|
304
|
-
`Run \`${pin(version)} authoring check --mode final\` to collect validator evidence (the gdh authoring check).`,
|
|
305
|
-
`Run \`${pin(version)} lsp status\` only when authoring check reports LSP degraded/unavailable, changed files include \`.gd\`, or the user explicitly asks about LSP lifecycle.`,
|
|
306
|
-
"Explain each diagnostic finding with severity, provenance, and validator family (`gdscript_lsp` for `.gd`, `godot_scene_resource` for `.tscn`/`.tres`).",
|
|
307
|
-
"Report `blockingSummary`: errors block by default, warnings are informational unless project guidance or `--severity-policy all` says otherwise.",
|
|
308
|
-
"Surface any import-state caveats or editor-side warnings.",
|
|
309
|
-
`If stale managed LSP state is suspected, use bounded GDH cleanup such as \`${pin(version)} lsp doctor\`, \`${pin(version)} lsp restart\`, \`${pin(version)} lsp prune\`, or \`${pin(version)} lsp stop\`; do not hand-manage Godot LSP processes.`,
|
|
310
|
-
"If issues found, suggest concrete remediation steps.",
|
|
311
|
-
],
|
|
312
|
-
rules: () => [
|
|
313
|
-
"Do not fix issues automatically unless asked.",
|
|
314
|
-
"Do not hand-manage Godot LSP processes; use GDH lifecycle commands.",
|
|
315
|
-
"LSP lifecycle health is not diagnostic evidence; use authoring-check diagnostics for code-validity evidence.",
|
|
316
|
-
"The gdh lsp lifecycle commands are status, check, doctor, restart, prune, and stop.",
|
|
317
|
-
"Explain diagnostics in human-readable terms.",
|
|
318
|
-
"A ready `authoring.lsp` lifecycle is not proof that the authoring check collected diagnostics.",
|
|
319
|
-
"For agent hooks, post-edit checks should use `authoring check --mode post-edit --changed <path> --format compact`; final checks should use `authoring check --mode final` when task handoff, commit, or broad validation evidence is needed.",
|
|
320
|
-
"Report both hard failures and informational caveats.",
|
|
321
|
-
],
|
|
322
|
-
},
|
|
323
282
|
prepare: {
|
|
324
283
|
id: "prepare",
|
|
325
284
|
name: "gdh-prepare",
|
|
@@ -339,7 +298,7 @@ export const GDH_SKILL_DEFINITIONS = {
|
|
|
339
298
|
"If the only blocker is `godot_editor_not_configured`, explain that GDH checked `GDH_GODOT_EDITOR_BIN`, target-local `.gdh-state/local-paths.json`, `~/.gdh/config.json`, and safe common editor locations; ask for the local path and explicit permission before recording it only after those fail, and prefer reusable `~/.gdh/config.json` `godotEditorBinPath` over a target-local override when the path should apply across projects.",
|
|
340
299
|
"If a cold worktree has a reusable sibling checkout, explain `--source-target <path>` or `.gdh-state/local-paths.json` `sourceTargets`; GDH copies only `.godot/`, not project env files.",
|
|
341
300
|
`If the user approves and dry-run is not blocked, run \`${pin(version)} target prepare [target]\` with the same target/source options.`,
|
|
342
|
-
`Verify preparation state with \`${pin(version)} status [target]\`. If the user needs code-validity evidence, route to
|
|
301
|
+
`Verify preparation state with \`${pin(version)} status [target]\`. If the user needs code-validity evidence, route to \`${pin(version)} authoring check --mode final [target]\`.`,
|
|
343
302
|
],
|
|
344
303
|
rules: () => [
|
|
345
304
|
"Always show dry-run first.",
|
|
@@ -385,7 +344,15 @@ export const GDH_SKILL_DEFINITIONS = {
|
|
|
385
344
|
],
|
|
386
345
|
},
|
|
387
346
|
};
|
|
388
|
-
export const GDH_SKILL_IDS =
|
|
347
|
+
export const GDH_SKILL_IDS = [
|
|
348
|
+
"onboard",
|
|
349
|
+
"status",
|
|
350
|
+
"scan",
|
|
351
|
+
"migrate",
|
|
352
|
+
"update",
|
|
353
|
+
"prepare",
|
|
354
|
+
"run-game",
|
|
355
|
+
];
|
|
389
356
|
export const GDH_MANAGED_AGENT_SKILL_MARKER = "GDH_MANAGED_AGENT_SKILL";
|
|
390
357
|
export function renderGdhSkill(agent, skillId, pinnedVersion) {
|
|
391
358
|
const definition = GDH_SKILL_DEFINITIONS[skillId];
|
|
@@ -515,15 +482,6 @@ export function renderCodexUpdateSkill(pinnedVersion) {
|
|
|
515
482
|
export function renderCursorUpdateSkill(pinnedVersion) {
|
|
516
483
|
return renderGdhSkill("cursor", "update", pinnedVersion);
|
|
517
484
|
}
|
|
518
|
-
export function renderClaudeCheckSkill(pinnedVersion) {
|
|
519
|
-
return renderGdhSkill("claude", "check", pinnedVersion);
|
|
520
|
-
}
|
|
521
|
-
export function renderCodexCheckSkill(pinnedVersion) {
|
|
522
|
-
return renderGdhSkill("codex", "check", pinnedVersion);
|
|
523
|
-
}
|
|
524
|
-
export function renderCursorCheckSkill(pinnedVersion) {
|
|
525
|
-
return renderGdhSkill("cursor", "check", pinnedVersion);
|
|
526
|
-
}
|
|
527
485
|
export function renderClaudePrepareSkill(pinnedVersion) {
|
|
528
486
|
return renderGdhSkill("claude", "prepare", pinnedVersion);
|
|
529
487
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-rendering.js","sourceRoot":"","sources":["../src/skill-rendering.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skill-rendering.js","sourceRoot":"","sources":["../src/skill-rendering.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-assets.d.ts","sourceRoot":"","sources":["../src/template-assets.ts"],"names":[],"mappings":"AAIA,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACvC,MAAM,CAER"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
export function renderAdapterTemplate(relativePath, values) {
|
|
5
|
+
return renderStringTemplate(readAdapterTemplate(relativePath), values);
|
|
6
|
+
}
|
|
7
|
+
function readAdapterTemplate(relativePath) {
|
|
8
|
+
const moduleDir = path.dirname(fileURLToPath(import.meta.url));
|
|
9
|
+
const templatePath = path.join(moduleDir, "templates", relativePath);
|
|
10
|
+
return fs.readFileSync(templatePath, "utf8");
|
|
11
|
+
}
|
|
12
|
+
function renderStringTemplate(template, values) {
|
|
13
|
+
const rendered = template.replace(/\{\{([a-zA-Z0-9_]+)\}\}/gu, (match, key) => {
|
|
14
|
+
const value = values[key];
|
|
15
|
+
if (value === undefined) {
|
|
16
|
+
throw new Error(`Missing template value for ${match}.`);
|
|
17
|
+
}
|
|
18
|
+
return value;
|
|
19
|
+
});
|
|
20
|
+
const unresolved = rendered.match(/\{\{[a-zA-Z0-9_]+\}\}/u);
|
|
21
|
+
if (unresolved) {
|
|
22
|
+
throw new Error(`Unresolved template placeholder ${unresolved[0]}.`);
|
|
23
|
+
}
|
|
24
|
+
return rendered;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=template-assets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-assets.js","sourceRoot":"","sources":["../src/template-assets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,UAAU,qBAAqB,CACnC,YAAoB,EACpB,MAAwC;IAExC,OAAO,oBAAoB,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,mBAAmB,CAAC,YAAoB;IAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;IACrE,OAAO,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,oBAAoB,CAC3B,QAAgB,EAChB,MAAwC;IAExC,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,2BAA2B,EAAE,CAAC,KAAK,EAAE,GAAW,EAAE,EAAE;QACpF,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,GAAG,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5D,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,mCAAmC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// gdh-hook-version: {{hookVersion}}
|
|
3
|
+
// GDH authoring validation hook. Dependency-free by design.
|
|
4
|
+
const PINNED_VERSION = {{pinnedVersionJson}};
|
|
5
|
+
const TARGET_RELATIVE_PATH = {{targetRelativePathJson}};
|
|
6
|
+
const AGENT = {{agentJson}};
|
|
7
|
+
|
|
8
|
+
const fs = require('fs');
|
|
9
|
+
const path = require('path');
|
|
10
|
+
const { spawnSync } = require('child_process');
|
|
11
|
+
|
|
12
|
+
const AUTHORING_EXTENSIONS = new Set(['.gd', '.tscn', '.tres']);
|
|
13
|
+
let CURRENT_EVENT = '';
|
|
14
|
+
|
|
15
|
+
main();
|
|
16
|
+
|
|
17
|
+
function main() {
|
|
18
|
+
const input = readHookInput();
|
|
19
|
+
const targetRoot = resolveTargetRoot(input);
|
|
20
|
+
const hookEvent = String(input.hook_event_name || '');
|
|
21
|
+
CURRENT_EVENT = hookEvent;
|
|
22
|
+
if (!targetRoot) return allow();
|
|
23
|
+
if (hookEvent === 'PostToolUse' || hookEvent === 'FileChanged') return handlePostEdit(input, targetRoot);
|
|
24
|
+
return allow();
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function handlePostEdit(input, targetRoot) {
|
|
28
|
+
const changed = collectChangedFiles(input, targetRoot);
|
|
29
|
+
const authoring = changed.filter(isAuthoringValidationPath);
|
|
30
|
+
if (authoring.length === 0) return allow();
|
|
31
|
+
const changedArgs = authoring.flatMap((file) => ['--changed', file]);
|
|
32
|
+
// Attempt to refresh the diagnostics broker for changed files.
|
|
33
|
+
// Broker refresh failure is non-fatal: the authoring check falls back to direct LSP.
|
|
34
|
+
runGdh(targetRoot, ['authoring', 'diagnostics', 'refresh', '--target', targetRoot, ...changedArgs]);
|
|
35
|
+
// Run compact authoring check. When broker was refreshed, this uses the fresh snapshot.
|
|
36
|
+
// When broker is unavailable, this falls back to direct LSP post-edit collection.
|
|
37
|
+
const result = runGdh(targetRoot, ['authoring', 'check', '--target', targetRoot, '--mode', 'post-edit', '--format', 'compact', ...changedArgs]);
|
|
38
|
+
if (!result.ok || !/Completion allowed\./.test(result.output)) {
|
|
39
|
+
return block(`GDH post-edit authoring check needs attention.\n${result.output || result.error || 'No check output.'}`);
|
|
40
|
+
}
|
|
41
|
+
return allow();
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function runGdh(targetRoot, args) {
|
|
45
|
+
const result = spawnSync('npx', ['-y', `@skillcap/gdh@${PINNED_VERSION}`, ...args], {
|
|
46
|
+
cwd: targetRoot,
|
|
47
|
+
encoding: 'utf8',
|
|
48
|
+
windowsHide: true,
|
|
49
|
+
timeout: 120000,
|
|
50
|
+
});
|
|
51
|
+
const output = `${result.stdout || ''}${result.stderr || ''}`.trim();
|
|
52
|
+
return { ok: result.status === 0, output, error: result.error ? String(result.error.message || result.error) : '' };
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function collectChangedFiles(input, targetRoot) {
|
|
56
|
+
const baseCwd = input && typeof input.cwd === 'string' ? input.cwd : process.cwd();
|
|
57
|
+
const files = [];
|
|
58
|
+
addFile(files, input.file_path, targetRoot, baseCwd);
|
|
59
|
+
addFromToolPayload(files, input.tool_input, targetRoot, baseCwd);
|
|
60
|
+
addFromToolPayload(files, input.tool_response, targetRoot, baseCwd);
|
|
61
|
+
const command = input && input.tool_input && typeof input.tool_input.command === 'string' ? input.tool_input.command : '';
|
|
62
|
+
for (const file of parsePatchFileNames(command)) addFile(files, file, targetRoot, baseCwd);
|
|
63
|
+
return unique(files);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function addFromToolPayload(files, payload, targetRoot, baseCwd) {
|
|
67
|
+
if (!payload || typeof payload !== 'object') return;
|
|
68
|
+
addFile(files, payload.file_path, targetRoot, baseCwd);
|
|
69
|
+
addFile(files, payload.filePath, targetRoot, baseCwd);
|
|
70
|
+
addFile(files, payload.path, targetRoot, baseCwd);
|
|
71
|
+
if (Array.isArray(payload.file_paths)) for (const file of payload.file_paths) addFile(files, file, targetRoot, baseCwd);
|
|
72
|
+
if (Array.isArray(payload.files)) for (const file of payload.files) addFile(files, file, targetRoot, baseCwd);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
function parsePatchFileNames(command) {
|
|
76
|
+
const files = [];
|
|
77
|
+
const pattern = /^\*\*\* (?:Add|Update|Delete) File: (.+)$/gm;
|
|
78
|
+
let match;
|
|
79
|
+
while ((match = pattern.exec(command)) !== null) files.push(match[1].trim());
|
|
80
|
+
return files;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function addFile(files, value, targetRoot, baseCwd) {
|
|
84
|
+
if (typeof value !== 'string' || value.trim() === '') return;
|
|
85
|
+
const normalized = normalizeToTargetRelative(value.trim(), targetRoot, baseCwd);
|
|
86
|
+
if (normalized) files.push(normalized);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
function normalizeToTargetRelative(value, targetRoot, baseCwd) {
|
|
90
|
+
if (value.startsWith('res://')) return value.slice('res://'.length);
|
|
91
|
+
const canonicalTargetRoot = canonicalPath(targetRoot);
|
|
92
|
+
const canonicalBaseCwd = canonicalPath(baseCwd || targetRoot);
|
|
93
|
+
const absolute = path.isAbsolute(value) ? canonicalPath(value) : path.resolve(canonicalBaseCwd, value);
|
|
94
|
+
const relative = path.relative(canonicalTargetRoot, absolute);
|
|
95
|
+
if ((relative.startsWith('..') || path.isAbsolute(relative)) && !path.isAbsolute(value) && isInside(canonicalTargetRoot, canonicalBaseCwd)) {
|
|
96
|
+
const fallbackRelative = path.relative(canonicalTargetRoot, path.resolve(canonicalTargetRoot, value));
|
|
97
|
+
if (!fallbackRelative.startsWith('..') && !path.isAbsolute(fallbackRelative)) return fallbackRelative.split(path.sep).join('/');
|
|
98
|
+
}
|
|
99
|
+
if (relative.startsWith('..') || path.isAbsolute(relative)) return null;
|
|
100
|
+
return relative.split(path.sep).join('/');
|
|
101
|
+
}
|
|
102
|
+
function isInside(root, candidate) { const rel = path.relative(root, path.resolve(candidate)); return rel === '' || (!rel.startsWith('..') && !path.isAbsolute(rel)); }
|
|
103
|
+
function canonicalPath(value) { try { return fs.realpathSync.native ? fs.realpathSync.native(value) : fs.realpathSync(value); } catch { return path.resolve(value); } }
|
|
104
|
+
|
|
105
|
+
function isAuthoringValidationPath(file) {
|
|
106
|
+
if (file === 'project.godot' || file.endsWith('/project.godot')) return true;
|
|
107
|
+
return AUTHORING_EXTENSIONS.has(path.extname(file).toLowerCase());
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
function resolveTargetRoot(input) {
|
|
111
|
+
const base = path.resolve(__dirname, '..', '..');
|
|
112
|
+
const fromScript = path.resolve(base, TARGET_RELATIVE_PATH || '.');
|
|
113
|
+
if (fs.existsSync(fromScript)) return fromScript;
|
|
114
|
+
if (input && typeof input.cwd === 'string') return input.cwd;
|
|
115
|
+
return process.cwd();
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
function unique(values) { return [...new Set(values.filter(Boolean))].sort(); }
|
|
119
|
+
function readHookInput() { try { return JSON.parse(fs.readFileSync(0, 'utf8') || '{}'); } catch { return {}; } }
|
|
120
|
+
|
|
121
|
+
function allow() { process.exit(0); }
|
|
122
|
+
function block(reason) {
|
|
123
|
+
const payload = { decision: 'block', reason };
|
|
124
|
+
if (AGENT === 'codex') payload.hookSpecificOutput = { hookEventName: CURRENT_EVENT, additionalContext: reason };
|
|
125
|
+
process.stdout.write(`${JSON.stringify(payload)}\n`);
|
|
126
|
+
process.exit(0);
|
|
127
|
+
}
|
|
128
|
+
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// gdh-hook-version: {{hookVersion}}
|
|
3
|
+
// Check for GDH updates in background, write result to cache.
|
|
4
|
+
// Called by Claude Code SessionStart hook — runs once per session.
|
|
5
|
+
// Baked by @gdh/adapters at the pinned gdh_version — regenerated by gdh self-update.
|
|
6
|
+
|
|
7
|
+
const fs = require('fs');
|
|
8
|
+
const path = require('path');
|
|
9
|
+
const os = require('os');
|
|
10
|
+
const { spawn } = require('child_process');
|
|
11
|
+
|
|
12
|
+
(function () {
|
|
13
|
+
// Dev-mode short-circuit: contributors running from source must never see an update signal.
|
|
14
|
+
// (Baked script cannot read .gdh-state/local-paths.json without @gdh/core; env var covers the contributor case.)
|
|
15
|
+
if (process.env.GDH_DEV_REPO && process.env.GDH_DEV_REPO.trim()) return;
|
|
16
|
+
|
|
17
|
+
const homeDir = os.homedir();
|
|
18
|
+
const cacheDir = path.join(homeDir, '.cache', 'gdh');
|
|
19
|
+
const cacheFile = path.join(cacheDir, 'update-check.json');
|
|
20
|
+
|
|
21
|
+
try { fs.mkdirSync(cacheDir, { recursive: true }); } catch (e) {}
|
|
22
|
+
|
|
23
|
+
const workerPath = path.join(__dirname, 'gdh-check-update-worker.js');
|
|
24
|
+
const child = spawn(process.execPath, [workerPath], {
|
|
25
|
+
stdio: 'ignore',
|
|
26
|
+
windowsHide: true,
|
|
27
|
+
detached: true,
|
|
28
|
+
env: {
|
|
29
|
+
...process.env,
|
|
30
|
+
GDH_CACHE_FILE: cacheFile,
|
|
31
|
+
GDH_PINNED_VERSION: {{pinnedVersionJson}},
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
child.unref();
|
|
36
|
+
})();
|
|
37
|
+
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// gdh-hook-version: {{hookVersion}}
|
|
3
|
+
// Background worker spawned by the GDH SessionStart parent hook.
|
|
4
|
+
// Probes https://registry.npmjs.org/@skillcap/gdh/latest and writes the
|
|
5
|
+
// result to the per-user cache at ~/.cache/gdh/update-check.json.
|
|
6
|
+
// Exits silently on any failure — D-06 silent-failure contract.
|
|
7
|
+
|
|
8
|
+
'use strict';
|
|
9
|
+
|
|
10
|
+
const fs = require('fs');
|
|
11
|
+
|
|
12
|
+
// Compare semver: true if a is strictly newer than b.
|
|
13
|
+
// Strips pre-release suffixes (e.g. '3-beta.1' → '3') to avoid NaN from Number().
|
|
14
|
+
function isNewer(a, b) {
|
|
15
|
+
const pa = (a || '').split('.').map(s => Number(s.replace(/-.*/, '')) || 0);
|
|
16
|
+
const pb = (b || '').split('.').map(s => Number(s.replace(/-.*/, '')) || 0);
|
|
17
|
+
for (let i = 0; i < 3; i++) {
|
|
18
|
+
if (pa[i] > pb[i]) return true;
|
|
19
|
+
if (pa[i] < pb[i]) return false;
|
|
20
|
+
}
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
(async () => {
|
|
25
|
+
// Dev-mode short-circuit: contributors running from source must never see an update signal.
|
|
26
|
+
// (Baked worker checks ONLY the env var — cannot read local-paths.json without @gdh/core.)
|
|
27
|
+
if (process.env.GDH_DEV_REPO && process.env.GDH_DEV_REPO.trim()) return;
|
|
28
|
+
|
|
29
|
+
const pinned = process.env.GDH_PINNED_VERSION;
|
|
30
|
+
if (!pinned) return;
|
|
31
|
+
|
|
32
|
+
const cacheFile = process.env.GDH_CACHE_FILE;
|
|
33
|
+
if (!cacheFile) return;
|
|
34
|
+
|
|
35
|
+
let res = null;
|
|
36
|
+
try {
|
|
37
|
+
res = await fetch({{registryUrlJson}}, {
|
|
38
|
+
signal: AbortSignal.timeout(10000),
|
|
39
|
+
});
|
|
40
|
+
} catch (e) {}
|
|
41
|
+
|
|
42
|
+
let latest = null;
|
|
43
|
+
if (res && res.ok) {
|
|
44
|
+
try {
|
|
45
|
+
const body = await res.json();
|
|
46
|
+
if (typeof body.version === 'string') {
|
|
47
|
+
latest = body.version;
|
|
48
|
+
}
|
|
49
|
+
} catch (e) {}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// Offline / registry 5xx / parse error — write nothing per D-06.
|
|
53
|
+
if (latest === null) return;
|
|
54
|
+
|
|
55
|
+
const result = {
|
|
56
|
+
pinned,
|
|
57
|
+
latest,
|
|
58
|
+
checkedAt: new Date().toISOString(),
|
|
59
|
+
source: 'npm-registry-latest',
|
|
60
|
+
updateAvailable: isNewer(latest, pinned),
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
try { fs.writeFileSync(cacheFile, JSON.stringify(result, null, 2)); } catch (e) {}
|
|
64
|
+
})();
|
|
65
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// gdh-hook-version: {{hookVersion}}
|
|
3
|
+
// Claude statusline: emits an upgrade hint when ~/.cache/gdh/update-check.json reports stale.
|
|
4
|
+
// Cache written by .claude/hooks/gdh-check-update-worker.js on SessionStart (UPD-01).
|
|
5
|
+
// Silent offline degrade per D-06 — missing/corrupt cache writes the empty string.
|
|
6
|
+
|
|
7
|
+
const fs = require('fs');
|
|
8
|
+
const path = require('path');
|
|
9
|
+
const os = require('os');
|
|
10
|
+
|
|
11
|
+
const homeDir = os.homedir();
|
|
12
|
+
const cacheFile = path.join(homeDir, '.cache', 'gdh', 'update-check.json');
|
|
13
|
+
|
|
14
|
+
let gdhUpdate = '';
|
|
15
|
+
if (fs.existsSync(cacheFile)) {
|
|
16
|
+
try {
|
|
17
|
+
const cache = JSON.parse(fs.readFileSync(cacheFile, 'utf8'));
|
|
18
|
+
if (cache && cache.updateAvailable) {
|
|
19
|
+
gdhUpdate = '\x1b[33m⬆ /gdh-update\x1b[0m │ ';
|
|
20
|
+
}
|
|
21
|
+
} catch (e) {}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
process.stdout.write(gdhUpdate);
|
|
25
|
+
|
|
@@ -11,13 +11,13 @@
|
|
|
11
11
|
}
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@gdh/authoring": "0.
|
|
15
|
-
"@gdh/core": "0.
|
|
16
|
-
"@gdh/docs": "0.
|
|
17
|
-
"@gdh/observability": "0.
|
|
18
|
-
"@gdh/runtime": "0.
|
|
19
|
-
"@gdh/scan": "0.
|
|
20
|
-
"@gdh/verify": "0.
|
|
14
|
+
"@gdh/authoring": "0.25.0",
|
|
15
|
+
"@gdh/core": "0.25.0",
|
|
16
|
+
"@gdh/docs": "0.25.0",
|
|
17
|
+
"@gdh/observability": "0.25.0",
|
|
18
|
+
"@gdh/runtime": "0.25.0",
|
|
19
|
+
"@gdh/scan": "0.25.0",
|
|
20
|
+
"@gdh/verify": "0.25.0"
|
|
21
21
|
},
|
|
22
|
-
"version": "0.
|
|
22
|
+
"version": "0.25.0"
|
|
23
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAqFA,OAAO,EAIL,2BAA2B,EAC5B,MAAM,oBAAoB,CAAC;AA0C5B;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,EAAE,EAAE,KAAK,GACR,OAAO,CAAC,MAAM,CAAC,CAEjB;AAWD,eAAO,MAAM,UAAU,wCAerB,CAAC;AAEH,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;CACpD;AAED,wBAAsB,MAAM,CAC1B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,EAAE,GAAE,KAA0D,GAC7D,OAAO,CAAC,MAAM,CAAC,CAoIjB;AA+CD,wBAAgB,eAAe,CAC7B,EAAE,EAAE,KAAK,EACT,KAAK,EAAE,OAAO,EACd,OAAO,GAAE;IAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAAO,GACvD,IAAI,CAGN;AA2oED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,EAAE,EAAE,KAAK,GACR,OAAO,CAAC,MAAM,CAAC,CAoCjB;AAi5FD,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAErD;AAyDD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAchG;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,EAAE;IACP,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C,GACA,MAAM,GAAG,IAAI,CAYf;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,EAAE;IACP,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACtC,GACA;IACD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,CA2CA;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,EAAE;IACP,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,2BAA2B,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC5D,GACA;IACD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,CAeA;AAuBD,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAC,CAAC,CAAC,GAAG;IACzD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC,GACA,OAAO,CAAC,IAAI,CAAC,CAoBf;AAiED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,GACrC,SAAS,MAAM,EAAE,CAuBnB"}
|
|
@@ -4,7 +4,7 @@ import fs from "node:fs/promises";
|
|
|
4
4
|
import os from "node:os";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import { fileURLToPath } from "node:url";
|
|
7
|
-
import { buildGdhStatusResult,
|
|
7
|
+
import { buildGdhStatusResult, CLAUDE_CHECK_UPDATE_HOOK_RELATIVE_PATH, CLAUDE_MIGRATE_SKILL_RELATIVE_PATH, CLAUDE_ONBOARD_SKILL_RELATIVE_PATH, CLAUDE_PREPARE_SKILL_RELATIVE_PATH, CLAUDE_SCAN_SKILL_RELATIVE_PATH, CLAUDE_STATUS_SKILL_RELATIVE_PATH, CODEX_MIGRATE_SKILL_RELATIVE_PATH, CODEX_ONBOARD_SKILL_RELATIVE_PATH, CODEX_PREPARE_SKILL_RELATIVE_PATH, CODEX_SCAN_SKILL_RELATIVE_PATH, CODEX_STATUS_SKILL_RELATIVE_PATH, CURSOR_MIGRATE_SKILL_RELATIVE_PATH, CURSOR_ONBOARD_SKILL_RELATIVE_PATH, CURSOR_PREPARE_SKILL_RELATIVE_PATH, CURSOR_SCAN_SKILL_RELATIVE_PATH, CURSOR_STATUS_SKILL_RELATIVE_PATH, createGsdSnapshot, getSupportedAgentAdaptersStatus, installSupportedAgentAdapters, } from "@gdh/adapters";
|
|
8
8
|
import { checkManagedLsp, doctorAuthoringDiagnostics, doctorManagedLsp, getAuthoringDiagnosticsStatus, getCurrentAuthoringDiagnostics, getManagedLspStatus, hasCompleteOnboardingSurface, inspectCacheState, pruneCacheState, pruneAuthoringDiagnostics, pruneManagedLsp, readProjectConfig, readWorktreeState, refreshAuthoringDiagnostics, resolveAuthoringStatus, resolveEffectiveTargetPath, resolvePinnedVersion, resolveProjectRoot, resolveTargetGodotDocsVersion, restartManagedLsp, runAuthoringCheck, runImportRefresh, runTargetPrepare, runWarmup, stopManagedLsp, } from "@gdh/authoring";
|
|
9
9
|
import { definePackageBoundary, GDH_AUTHORING_DOGFOOD_VERSION, GDH_AUTHORING_SLICE_REPORT_VERSION, GDH_PRODUCT_NAME, resolveCurrentGdhInstall, resolveGdhProductMetadata, } from "@gdh/core";
|
|
10
10
|
import { fetchOfficialGodotDoc, getGuidanceStatus, resolveGuidanceQuery, searchOfficialGodotDocs, } from "@gdh/docs";
|
|
@@ -3231,21 +3231,22 @@ const VERIFY_DRIFT_SCANNED_FILES = [
|
|
|
3231
3231
|
{ relativePath: CODEX_ONBOARD_SKILL_RELATIVE_PATH, description: "Codex gdh-onboard skill" },
|
|
3232
3232
|
{ relativePath: CODEX_STATUS_SKILL_RELATIVE_PATH, description: "Codex gdh-status skill" },
|
|
3233
3233
|
{ relativePath: CODEX_MIGRATE_SKILL_RELATIVE_PATH, description: "Codex gdh-migrate skill" },
|
|
3234
|
-
{ relativePath: CODEX_CHECK_SKILL_RELATIVE_PATH, description: "Codex gdh-check skill" },
|
|
3235
3234
|
{ relativePath: CODEX_PREPARE_SKILL_RELATIVE_PATH, description: "Codex gdh-prepare skill" },
|
|
3236
3235
|
{ relativePath: CODEX_SCAN_SKILL_RELATIVE_PATH, description: "Codex gdh-scan skill" },
|
|
3237
3236
|
{ relativePath: CURSOR_ONBOARD_SKILL_RELATIVE_PATH, description: "Cursor gdh-onboard skill" },
|
|
3238
3237
|
{ relativePath: CURSOR_STATUS_SKILL_RELATIVE_PATH, description: "Cursor gdh-status skill" },
|
|
3239
3238
|
{ relativePath: CURSOR_MIGRATE_SKILL_RELATIVE_PATH, description: "Cursor gdh-migrate skill" },
|
|
3240
|
-
{ relativePath: CURSOR_CHECK_SKILL_RELATIVE_PATH, description: "Cursor gdh-check skill" },
|
|
3241
3239
|
{ relativePath: CURSOR_PREPARE_SKILL_RELATIVE_PATH, description: "Cursor gdh-prepare skill" },
|
|
3242
3240
|
{ relativePath: CURSOR_SCAN_SKILL_RELATIVE_PATH, description: "Cursor gdh-scan skill" },
|
|
3243
3241
|
{ relativePath: CLAUDE_ONBOARD_SKILL_RELATIVE_PATH, description: "Claude gdh-onboard skill" },
|
|
3244
3242
|
{ relativePath: CLAUDE_STATUS_SKILL_RELATIVE_PATH, description: "Claude gdh-status skill" },
|
|
3245
3243
|
{ relativePath: CLAUDE_MIGRATE_SKILL_RELATIVE_PATH, description: "Claude gdh-migrate skill" },
|
|
3246
|
-
{ relativePath: CLAUDE_CHECK_SKILL_RELATIVE_PATH, description: "Claude gdh-check skill" },
|
|
3247
3244
|
{ relativePath: CLAUDE_PREPARE_SKILL_RELATIVE_PATH, description: "Claude gdh-prepare skill" },
|
|
3248
3245
|
{ relativePath: CLAUDE_SCAN_SKILL_RELATIVE_PATH, description: "Claude gdh-scan skill" },
|
|
3246
|
+
// Intentionally excluded: generated gdh-check skills for Claude, Codex, and Cursor.
|
|
3247
|
+
// v0.25 retires the validation skill surface; validation evidence belongs to hooks,
|
|
3248
|
+
// MCP/CLI status, and explicit authoring-check commands. Scanning the retired paths
|
|
3249
|
+
// reports a false missing-file drift after a correct migration removes them.
|
|
3249
3250
|
// Phase 12 extension — close the Phase 11 coverage gap (research §Baked Version Surface Inventory rows 26-28).
|
|
3250
3251
|
// These files are re-baked at pin time and must be audited by MIG-02's post-condition invariant.
|
|
3251
3252
|
//
|