@skillcap/gdh 1.0.0 → 2.0.1
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 +109 -0
- package/node_modules/@gdh/adapters/dist/index.d.ts +1 -5
- package/node_modules/@gdh/adapters/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/adapters/dist/index.js +113 -28
- package/node_modules/@gdh/adapters/dist/index.js.map +1 -1
- package/node_modules/@gdh/adapters/dist/skill-rendering.d.ts +2 -4
- package/node_modules/@gdh/adapters/dist/skill-rendering.d.ts.map +1 -1
- package/node_modules/@gdh/adapters/dist/skill-rendering.js +16 -49
- package/node_modules/@gdh/adapters/dist/skill-rendering.js.map +1 -1
- 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 +8 -7
- package/node_modules/@gdh/cli/dist/index.js.map +1 -1
- package/node_modules/@gdh/cli/package.json +10 -10
- package/node_modules/@gdh/core/dist/index.d.ts +13 -3
- package/node_modules/@gdh/core/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/core/dist/index.js +13 -3
- package/node_modules/@gdh/core/dist/index.js.map +1 -1
- package/node_modules/@gdh/core/dist/migrations/managed-surface-classes.d.ts +3 -3
- package/node_modules/@gdh/core/dist/migrations/managed-surface-classes.js +3 -3
- 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 +5 -5
- package/node_modules/@gdh/core/dist/migrations/managed-target-surface-inventory.d.ts.map +1 -1
- package/node_modules/@gdh/core/dist/migrations/managed-target-surface-inventory.js +33 -19
- package/node_modules/@gdh/core/dist/migrations/managed-target-surface-inventory.js.map +1 -1
- package/node_modules/@gdh/core/package.json +1 -1
- package/node_modules/@gdh/docs/dist/rules.js +1 -1
- package/node_modules/@gdh/docs/dist/rules.js.map +1 -1
- package/node_modules/@gdh/docs/dist/templates/guidance/authoring-and-validation.md.tpl +2 -1
- 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
package/INSTALL-BUNDLE.json
CHANGED
|
@@ -3602,6 +3602,115 @@
|
|
|
3602
3602
|
}
|
|
3603
3603
|
]
|
|
3604
3604
|
}
|
|
3605
|
+
},
|
|
3606
|
+
{
|
|
3607
|
+
"version": "2.0.0",
|
|
3608
|
+
"releaseTag": "v2.0.0",
|
|
3609
|
+
"migrationStatus": "required",
|
|
3610
|
+
"summary": "v2.0.0 contracts the agent-facing skill surface further along the human/agent boundary. Two scope changes drive the bump: (1) gdh-scan is dropped as a managed agent skill (the `gdh scan` CLI verb stays); the agent-facing skill at .claude/skills/gdh-scan/SKILL.md and .agents/skills/gdh-scan/SKILL.md, plus the legacy command shim at .claude/commands/gdh/scan.md, are retired and swept by the cleanup planner. (2) gdh-prepare becomes agent-invoked-only (user-invocable: false on Claude; equivalent on Codex), called internally by gdh-onboard or gdh-status. GDH_AGENT_CONTRACT_VERSION moves 20 -> 21 to drive a managed-target rebake covering gdh-scan retirement, the gdh-prepare agent-only switch, and the new prepareApprovalInstruction() per-agent approval narrative. The retired-managed-surface cleanup planner enumerates content-checked deletions so user-authored content at the same paths is preserved verbatim. No new class-2 or class-3 migration registry entry is introduced.",
|
|
3611
|
+
"releaseHighlights": {
|
|
3612
|
+
"summary": "v2.0.0 contracts the agent-facing skill surface further along the human/agent boundary established in v1.0.0. Two breaking changes drive the major bump (per Conventional Commits + product-only SemVer; user-facing slash commands going away is breaking): - **`gdh-scan` is dropped as a managed agent skill.** The `gdh scan` CLI verb stays, but the agent-facing skill is hard-deleted. Onboard and status now invoke the CLI directly when an inventory probe is needed; existing managed targets that still carry `.claude/skills/gdh-scan/SKILL.md`, `.agents/skills/gdh-scan/SKILL.md`, or `.claude/commands/gdh/scan.md` files have them swept on the next `gdh self-update` / `gdh migrate --apply`. - **`gdh-prepare` becomes agent-invoked-only.** It is hidden from the user slash-menu (`user-invocable: false` for Claude, equivalent for Codex) and called internally by `gdh-onboard` or `gdh-status` when worktree/import readiness is needed. The skill body re-bakes with the new `prepareApprovalInstruction()` helper that narrates per-agent approval (Claude `AskUserQuestion`, Codex `request_user_input`). Together these changes continue the contraction the v1.0.0 work started: fewer human-facing surfaces, more agent-driven internal sub-skills, and explicit per-agent approval mechanics for any operation that mutates managed surfaces or triggers non-trivial side effects.",
|
|
3613
|
+
"operatorChanges": [
|
|
3614
|
+
"**`gdh-scan` skill removed (breaking).** The `gdh scan` CLI verb is unaffected — operators who shell out directly continue to work as before. The agent-facing managed skill at `.claude/skills/gdh-scan/SKILL.md` and `.agents/skills/gdh-scan/SKILL.md`, plus the legacy command shim at `.claude/commands/gdh/scan.md`, are retired. Agents now invoke the CLI verb directly from inside `gdh-onboard` / `gdh-status` when they need an inventory probe. Existing managed targets pick up the cleanup automatically.",
|
|
3615
|
+
"**`/gdh-prepare` slash command is hidden (breaking).** The skill remains in the managed surface set (the agent calls it under the hood for cold-worktree hydration and import refresh during onboarding/status flows), but it is no longer invocable from the user slash-menu. Operators run `/gdh-onboard` or `/gdh-status`; those skills drive prepare as needed.",
|
|
3616
|
+
"**Per-agent approval narrative for `/gdh-prepare`.** Like `/gdh-update` and `/gdh-migrate`, prepare now describes the provider-specific user-question tool the agent should use when asking for approval — Claude `AskUserQuestion`, Codex `request_user_input` — rather than a generic \"ask the user\" hint. The cross-provider body equality test for managed skills explicitly exempts prepare alongside update and migrate.",
|
|
3617
|
+
"**Retired-managed-surface cleanup covers gdh-scan.** The cleanup planner now enumerates `.claude/skills/gdh-scan/SKILL.md`, `.agents/skills/gdh-scan/SKILL.md`, and `.claude/commands/gdh/scan.md` as content-checked deletions. User-authored content at the same paths is preserved verbatim.",
|
|
3618
|
+
"**Managed adapter contract version 20 → 21.** `GDH_AGENT_CONTRACT_VERSION` bumps to drive a managed-target rebake on the next `gdh self-update` / `gdh migrate --apply`, refreshing skill bodies after gdh-scan retirement and the gdh-prepare agent-only switch."
|
|
3619
|
+
]
|
|
3620
|
+
},
|
|
3621
|
+
"updateContract": {
|
|
3622
|
+
"summary": "Existing managed targets must re-bake managed adapter surfaces at GDH_AGENT_CONTRACT_VERSION 21. The `gdh scan` CLI verb is unchanged; only the agent-facing managed skill is dropped.",
|
|
3623
|
+
"steps": [
|
|
3624
|
+
{
|
|
3625
|
+
"id": "install_v1_1_0",
|
|
3626
|
+
"kind": "mechanical",
|
|
3627
|
+
"summary": "Install the v2.0.0 GDH package.",
|
|
3628
|
+
"detail": "Run gdh self-update so the target uses the v2.0.0 package with the contracted skill surface (no gdh-scan skill, agent-only gdh-prepare) and the new agent contract version.",
|
|
3629
|
+
"commands": [
|
|
3630
|
+
"gdh self-update --apply"
|
|
3631
|
+
],
|
|
3632
|
+
"validationCommands": [
|
|
3633
|
+
"gdh status",
|
|
3634
|
+
"gdh adapters status"
|
|
3635
|
+
]
|
|
3636
|
+
},
|
|
3637
|
+
{
|
|
3638
|
+
"id": "rebake_managed_surfaces_and_sweep_scan",
|
|
3639
|
+
"kind": "mechanical",
|
|
3640
|
+
"summary": "Re-bake managed surfaces at GDH_AGENT_CONTRACT_VERSION 21 and sweep retired gdh-scan surfaces.",
|
|
3641
|
+
"detail": "Run gdh migrate --apply (or invoke /gdh-update on the agent side, which calls migrate as needed). The deterministic re-bake refreshes managed skill bodies for the gdh-prepare agent-only switch and per-agent approval narrative; the retired-managed-surface cleanup planner removes any .claude/skills/gdh-scan/SKILL.md, .agents/skills/gdh-scan/SKILL.md, and .claude/commands/gdh/scan.md files that still carry GDH managed markers.",
|
|
3642
|
+
"commands": [
|
|
3643
|
+
"gdh migrate --apply"
|
|
3644
|
+
],
|
|
3645
|
+
"validationCommands": [
|
|
3646
|
+
"gdh adapters status",
|
|
3647
|
+
"gdh status"
|
|
3648
|
+
]
|
|
3649
|
+
},
|
|
3650
|
+
{
|
|
3651
|
+
"id": "switch_human_invocations_from_prepare_to_onboard_or_status",
|
|
3652
|
+
"kind": "manual_review",
|
|
3653
|
+
"summary": "Use /gdh-onboard or /gdh-status instead of /gdh-prepare from the human slash-menu.",
|
|
3654
|
+
"detail": "/gdh-prepare is now hidden from the user slash-menu (user-invocable: false on Claude; equivalent on Codex). The agent calls prepare under the hood as part of /gdh-onboard or /gdh-status when worktree/import readiness is needed; humans interact with the parent skills only. No on-disk action is required — this is a workflow change. Validate by attempting /gdh-onboard or /gdh-status on a fresh agent session.",
|
|
3655
|
+
"commands": [],
|
|
3656
|
+
"validationCommands": []
|
|
3657
|
+
}
|
|
3658
|
+
]
|
|
3659
|
+
}
|
|
3660
|
+
},
|
|
3661
|
+
{
|
|
3662
|
+
"version": "2.0.1",
|
|
3663
|
+
"releaseTag": "v2.0.1",
|
|
3664
|
+
"migrationStatus": "required",
|
|
3665
|
+
"summary": "v2.0.1 pivots the highest-impact agent-facing managed-target wording away from a CLI-as-edit-loop framing for `.gd` authoring validation. Dogfood Session 18 (TheBeacon, GDH 2.0.0) showed an agent inferring a `gdh` CLI-shellout requirement from `validation_expectation: authoring-check` in `.gdh/rules.yaml` and the lead paragraph of `.gdh/guidance/authoring-and-validation.md`, even though the canonical edit-loop validator is the managed PostToolUse / PostToolBatch / Stop hook surface. The pivot rewrites the validation_expectation summary in rules.yaml and the lead paragraph plus a new scoped-feedback bullet in authoring-and-validation.md so PostToolUse / PostToolBatch / Stop hooks are named explicitly, `gdh authoring check --mode final` is positioned as handoff-only, and absence of a global `gdh` binary on PATH is framed as expected state. The change drives `GDH_RULES_SCHEMA_VERSION` 4 -> 5 and `GDH_GUIDANCE_UNIT_VERSION` 25 -> 26 so existing managed targets re-bake on the next `gdh self-update` / `gdh migrate --apply`. Both bumps are class-1 deterministic re-bake (exempt from `MIGRATION_REGISTRY_ENTRIES` per `CLASS_ONE_REBAKE_EXEMPT`). `isPriorDefaultRulesBoilerplate` recognizes both the v0.18-v0.26.7 wording (locked s2c2->s2c3 transform output) and the v0.26.8-v2.0.0 wording so chain runs from every supported corpus version land on `migration_needed` (auto-applicable) rather than `compatibility_degraded`. No project-config schema bump (`GDH_PROJECT_CONFIG_VERSION` stays at 3). No new class-2 or class-3 migration registry entry.",
|
|
3666
|
+
"releaseHighlights": {
|
|
3667
|
+
"summary": "v2.0.1 is a patch release that pivots the highest-impact agent-facing managed-target wording away from a CLI-as-edit-loop framing for `.gd` authoring validation. Dogfood Session 18 (TheBeacon, GDH 2.0.0) showed an agent inferring a `gdh` CLI-shellout requirement from `validation_expectation: authoring-check` in `.gdh/rules.yaml` and the lead paragraph of `.gdh/guidance/authoring-and-validation.md` — even though the canonical edit-loop validator is the managed PostToolUse / PostToolBatch / Stop hook surface, and the agent's target had hooks installed and well-formed. The agent recorded \"could not run gdh\" as a validation gap inside its ExecPlan and the operator had to redirect twice. The pivot rewrites: - the `validation_expectation: authoring-check` summary in `.gdh/rules.yaml` so PostToolUse / PostToolBatch / Stop hooks are named as the edit-loop validator, `gdh authoring check --mode final` is positioned as handoff-only, and absence of a global `gdh` binary on PATH is explicitly framed as expected state, and - the lead paragraph and scoped-feedback bullet list in `.gdh/guidance/authoring-and-validation.md` so the same three hook events are named explicitly, and a new bullet states that absence of a global `gdh` binary on PATH is not a validation gap and that the pinned `npx -y @skillcap/gdh@<pinned-version>` form is the right path when explicit handoff evidence is genuinely needed. The change drives `GDH_RULES_SCHEMA_VERSION` 4 → 5 and `GDH_GUIDANCE_UNIT_VERSION` 25 → 26 so existing managed targets re-bake on the next `gdh self-update` / `gdh migrate --apply`. Both bumps are class-1 deterministic re-bake (exempt from `MIGRATION_REGISTRY_ENTRIES` per Phase 72 D-09 / D-03 and `CLASS_ONE_REBAKE_EXEMPT` in `scripts/release-lib/registry-completeness.mjs`).",
|
|
3668
|
+
"operatorChanges": [
|
|
3669
|
+
"**`.gdh/rules.yaml` validation expectation summary refreshed.** The `authoring-files` path-scope's `authoring_check` validation expectation now reads \"Managed authoring validation runs through PostToolUse, PostToolBatch, and Stop hooks during normal edits; do not rerun validation commands manually. Collect explicit final-mode evidence only for handoff, unsupported file types, missing hooks, or recovery. Absence of a global `gdh` binary on PATH is expected and is not a validation gap.\" Existing managed targets that have not customized `.gdh/rules.yaml` are migrated automatically.",
|
|
3670
|
+
"**`.gdh/guidance/authoring-and-validation.md` lead paragraph + new scoped-feedback bullet.** The lead paragraph now names the three hook events explicitly. A new scoped-feedback bullet covers the PATH-not-found contract and the pinned `npx -y @skillcap/gdh@<pinned-version>` form for genuine handoff.",
|
|
3671
|
+
"**`isPriorDefaultRulesBoilerplate` recognizes both prior wordings.** The lifecycle inspector now recognizes both the v0.18 – v0.26.7 default body (locked s2c2→s2c3 transform output) and the v0.26.8 – v2.0.0 default body, so chain runs from any supported corpus version land on `migration_needed` (auto-applicable) rather than `compatibility_degraded`.",
|
|
3672
|
+
"**Greenfield fixture refreshed.** `fixtures/greenfield-minimal/.gdh/rules.yaml` regenerates to the new rendered default so fixture-based tests don't see stale wording.",
|
|
3673
|
+
"**Test refactor: `guidance-glossary.test.ts` adopts snapshot + contract pins.** Drift detection moves to `toMatchSnapshot()`; positive assertions are scoped to product-decision invariants (`.gd`-only edit-loop scope, `gdh` PATH absence, `.godot/` generated state, every-shipped-unit linked) plus the existing forbidden-content negatives. Drops ~10 wording-pin assertions that duplicated the .tpl content.",
|
|
3674
|
+
"**Bundled test fix: `managed-target-surface-inventory.test.ts`.** The Codex-skill-disposition test mirrored the inventory's `RETIRED_SKILL_IDS` set incorrectly — only `skill.codex.check` was treated as retired, even though the inventory source has retired both `check` and `scan`. The test now asserts conditional retirement plus the matching staleBehavior copy."
|
|
3675
|
+
]
|
|
3676
|
+
},
|
|
3677
|
+
"updateContract": {
|
|
3678
|
+
"summary": "Existing managed targets must re-bake managed `.gdh/rules.yaml` and `.gdh/guidance/authoring-and-validation.md` at GDH_RULES_SCHEMA_VERSION 5 and GDH_GUIDANCE_UNIT_VERSION 26. The `gdh authoring check --mode final` CLI verb is unchanged; only the in-target-guidance framing changes.",
|
|
3679
|
+
"steps": [
|
|
3680
|
+
{
|
|
3681
|
+
"id": "install_v2_0_1",
|
|
3682
|
+
"kind": "mechanical",
|
|
3683
|
+
"summary": "Install the v2.0.1 GDH package.",
|
|
3684
|
+
"detail": "Run gdh self-update so the target uses the v2.0.1 package with the pivoted authoring guidance and the new schema/guidance version markers.",
|
|
3685
|
+
"commands": [
|
|
3686
|
+
"gdh self-update --apply"
|
|
3687
|
+
],
|
|
3688
|
+
"validationCommands": [
|
|
3689
|
+
"gdh status"
|
|
3690
|
+
]
|
|
3691
|
+
},
|
|
3692
|
+
{
|
|
3693
|
+
"id": "rebake_rules_and_guidance",
|
|
3694
|
+
"kind": "mechanical",
|
|
3695
|
+
"summary": "Re-bake .gdh/rules.yaml at GDH_RULES_SCHEMA_VERSION 5 and .gdh/guidance/authoring-and-validation.md at GDH_GUIDANCE_UNIT_VERSION 26.",
|
|
3696
|
+
"detail": "Run gdh migrate --apply (or invoke /gdh-update on the agent side, which calls migrate as needed). The deterministic re-bake refreshes the validation_expectation summary in .gdh/rules.yaml and the lead paragraph plus the new scoped-feedback bullet in .gdh/guidance/authoring-and-validation.md. Targets whose rules.yaml carries genuine project-specific customizations stay at compatibility_degraded with manual_review so GDH does not silently overwrite operator content.",
|
|
3697
|
+
"commands": [
|
|
3698
|
+
"gdh migrate --apply"
|
|
3699
|
+
],
|
|
3700
|
+
"validationCommands": [
|
|
3701
|
+
"gdh status"
|
|
3702
|
+
]
|
|
3703
|
+
},
|
|
3704
|
+
{
|
|
3705
|
+
"id": "drop_cli_shellout_for_normal_edit_loop",
|
|
3706
|
+
"kind": "agent_reasoning",
|
|
3707
|
+
"summary": "Treat absence of a global `gdh` binary on PATH as expected state during normal edit-loop work.",
|
|
3708
|
+
"detail": "Managed validation runs through PostToolUse / PostToolBatch / Stop hooks; the hook surface resolves its own pinned binary internally. Do not flag `gdh not on PATH` as a validation gap and do not shell out to `gdh authoring check` during normal edits. If a project explicitly requires final-mode handoff evidence beyond hook output, run the pinned `npx -y @skillcap/gdh@<pinned-version> authoring check --mode final` form rather than assuming a global binary exists. No on-disk action is required — this is a framing change for agents reading the refreshed guidance.",
|
|
3709
|
+
"commands": [],
|
|
3710
|
+
"validationCommands": []
|
|
3711
|
+
}
|
|
3712
|
+
]
|
|
3713
|
+
}
|
|
3605
3714
|
}
|
|
3606
3715
|
]
|
|
3607
3716
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type GdhAgentAdaptersInstallResult, type GdhAgentAdaptersStatusResult, type GdhGsdSnapshot, type GdhProjectLifecycleCompatibilityResult, type GdhProjectLifecycleSurfaceStatus, type GdhStatusResult, type GdhSupportedAgent } from "@gdh/core";
|
|
2
2
|
import { type GdhStatusBuildAdapters } from "./deferred-actions-advisory.js";
|
|
3
|
-
export { GDH_MANAGED_AGENT_SKILL_MARKER, GDH_SKILL_DEFINITIONS, GDH_SKILL_IDS, renderGdhSkill, renderManagedSkillMarker, renderClaudeMigrateSkill, renderClaudeOnboardSkill, renderClaudePrepareSkill, renderClaudeRunGameSkill,
|
|
3
|
+
export { GDH_MANAGED_AGENT_SKILL_MARKER, GDH_SKILL_DEFINITIONS, GDH_SKILL_IDS, renderGdhSkill, renderManagedSkillMarker, renderClaudeMigrateSkill, renderClaudeOnboardSkill, renderClaudePrepareSkill, renderClaudeRunGameSkill, renderClaudeStatusSkill, renderClaudeUpdateSkill, renderCodexMigrateSkill, renderCodexOnboardSkill, renderCodexPrepareSkill, renderCodexRunGameSkill, renderCodexStatusSkill, renderCodexUpdateSkill, } from "./skill-rendering.js";
|
|
4
4
|
export declare const adaptersPackage: import("@gdh/core").GdhPackageBoundary;
|
|
5
5
|
export declare const SUPPORTED_AGENTS: readonly ["codex", "claude"];
|
|
6
6
|
export declare const CLAUDE_SHIM_RELATIVE_PATH = "CLAUDE.md";
|
|
@@ -19,8 +19,6 @@ export declare const CODEX_PREPARE_SKILL_RELATIVE_PATH = ".agents/skills/gdh-pre
|
|
|
19
19
|
export declare const CODEX_RUN_GAME_SKILL_RELATIVE_PATH = ".agents/skills/gdh-run-game/SKILL.md";
|
|
20
20
|
export declare const CLAUDE_UPDATE_SKILL_RELATIVE_PATH = ".claude/skills/gdh-update/SKILL.md";
|
|
21
21
|
export declare const CODEX_UPDATE_SKILL_RELATIVE_PATH = ".agents/skills/gdh-update/SKILL.md";
|
|
22
|
-
export declare const CLAUDE_SCAN_SKILL_RELATIVE_PATH = ".claude/skills/gdh-scan/SKILL.md";
|
|
23
|
-
export declare const CODEX_SCAN_SKILL_RELATIVE_PATH = ".agents/skills/gdh-scan/SKILL.md";
|
|
24
22
|
export declare const CLAUDE_ONBOARD_COMMAND_RELATIVE_PATH = ".claude/skills/gdh-onboard/SKILL.md";
|
|
25
23
|
export declare const CLAUDE_STATUS_COMMAND_RELATIVE_PATH = ".claude/skills/gdh-status/SKILL.md";
|
|
26
24
|
export declare const CLAUDE_MIGRATE_COMMAND_RELATIVE_PATH = ".claude/skills/gdh-migrate/SKILL.md";
|
|
@@ -28,7 +26,6 @@ export declare const CLAUDE_CHECK_COMMAND_RELATIVE_PATH = ".claude/skills/gdh-ch
|
|
|
28
26
|
export declare const CLAUDE_PREPARE_COMMAND_RELATIVE_PATH = ".claude/skills/gdh-prepare/SKILL.md";
|
|
29
27
|
export declare const CLAUDE_RUN_GAME_COMMAND_RELATIVE_PATH = ".claude/skills/gdh-run-game/SKILL.md";
|
|
30
28
|
export declare const CLAUDE_UPDATE_COMMAND_RELATIVE_PATH = ".claude/skills/gdh-update/SKILL.md";
|
|
31
|
-
export declare const CLAUDE_SCAN_COMMAND_RELATIVE_PATH = ".claude/skills/gdh-scan/SKILL.md";
|
|
32
29
|
export declare const LOCAL_PATH_HINTS_RELATIVE_PATH = ".gdh-state/local-paths.json";
|
|
33
30
|
export declare const CODEX_PROJECT_CONFIG_RELATIVE_PATH = ".codex/config.toml";
|
|
34
31
|
export declare const GDH_MCP_SERVER_NAME = "gdh";
|
|
@@ -51,7 +48,6 @@ export declare function createGsdSnapshot(targetPath: string, options?: {
|
|
|
51
48
|
}): Promise<GdhGsdSnapshot>;
|
|
52
49
|
export declare function renderClaudeOnboardCommand(pinnedVersion: string): string;
|
|
53
50
|
export declare function renderClaudeStatusCommand(pinnedVersion: string): string;
|
|
54
|
-
export declare function renderClaudeScanCommand(pinnedVersion: string): string;
|
|
55
51
|
export declare function renderClaudeMigrateCommand(pinnedVersion: string): string;
|
|
56
52
|
export declare function renderClaudeUpdateCommand(pinnedVersion: string): string;
|
|
57
53
|
export declare function renderClaudePrepareCommand(pinnedVersion: string): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EAcL,KAAK,6BAA6B,EAClC,KAAK,4BAA4B,EACjC,KAAK,cAAc,EAInB,KAAK,sCAAsC,EAE3C,KAAK,gCAAgC,EAKrC,KAAK,eAAe,EACpB,KAAK,iBAAiB,EAIvB,MAAM,WAAW,CAAC;AAyBnB,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EAcL,KAAK,6BAA6B,EAClC,KAAK,4BAA4B,EACjC,KAAK,cAAc,EAInB,KAAK,sCAAsC,EAE3C,KAAK,gCAAgC,EAKrC,KAAK,eAAe,EACpB,KAAK,iBAAiB,EAIvB,MAAM,WAAW,CAAC;AAyBnB,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,gCAAgC,CAAC;AAoCxC,OAAO,EACL,8BAA8B,EAC9B,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAe9B,eAAO,MAAM,eAAe,wCAa1B,CAAC;AAEH,eAAO,MAAM,gBAAgB,8BAGoB,CAAC;AAClD,eAAO,MAAM,yBAAyB,cAAc,CAAC;AACrD,eAAO,MAAM,kCAAkC,wCAAwC,CAAC;AACxF,eAAO,MAAM,yBAAyB,cAAc,CAAC;AACrD,eAAO,MAAM,iCAAiC,wCAAwC,CAAC;AACvF,eAAO,MAAM,iCAAiC,uCAAuC,CAAC;AACtF,eAAO,MAAM,kCAAkC,wCAAwC,CAAC;AACxF,eAAO,MAAM,gCAAgC,sCAAsC,CAAC;AACpF,eAAO,MAAM,kCAAkC,wCAAwC,CAAC;AACxF,eAAO,MAAM,mCAAmC,yCAAyC,CAAC;AAC1F,eAAO,MAAM,gCAAgC,uCAAuC,CAAC;AACrF,eAAO,MAAM,iCAAiC,wCAAwC,CAAC;AACvF,eAAO,MAAM,+BAA+B,sCAAsC,CAAC;AACnF,eAAO,MAAM,iCAAiC,wCAAwC,CAAC;AACvF,eAAO,MAAM,kCAAkC,yCAAyC,CAAC;AAOzF,eAAO,MAAM,iCAAiC,uCAAuC,CAAC;AACtF,eAAO,MAAM,gCAAgC,uCAAuC,CAAC;AACrF,eAAO,MAAM,oCAAoC,wCAAqC,CAAC;AACvF,eAAO,MAAM,mCAAmC,uCAAoC,CAAC;AACrF,eAAO,MAAM,oCAAoC,wCAAqC,CAAC;AACvF,eAAO,MAAM,kCAAkC,sCAAmC,CAAC;AACnF,eAAO,MAAM,oCAAoC,wCAAqC,CAAC;AACvF,eAAO,MAAM,qCAAqC,yCAAsC,CAAC;AACzF,eAAO,MAAM,mCAAmC,uCAAoC,CAAC;AAsCrF,eAAO,MAAM,8BAA8B,gCAAgC,CAAC;AAC5E,eAAO,MAAM,kCAAkC,uBAAuB,CAAC;AACvE,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AASzC,wBAAsB,+BAA+B,CACnD,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IACP,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC,GACL,OAAO,CAAC,4BAA4B,CAAC,CAsBvC;AAED,wBAAsB,6BAA6B,CACjD,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IACP,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC/C,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;CAC9B,GACL,OAAO,CAAC,6BAA6B,CAAC,CA8ExC;AAED,wBAAsB,oCAAoC,CACxD,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,sCAAsC,CAAC,CAiEjD;AAED,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,sBAAsB,GAChC,OAAO,CAAC,eAAe,CAAC,CAmC1B;AAgDD,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IACP,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B,GACL,OAAO,CAAC,cAAc,CAAC,CAsCzB;AAOD,wBAAgB,0BAA0B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAExE;AAED,wBAAgB,yBAAyB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED,wBAAgB,0BAA0B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAExE;AAED,wBAAgB,yBAAyB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED,wBAAgB,0BAA0B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAExE;AAED,wBAAgB,0BAA0B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAExE;AAo4ED,wBAAgB,gCAAgC,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAQ9E;AAED,wBAAgB,+BAA+B,CAC7C,eAAe,EAAE,MAAM,GAAG,IAAI,EAC9B,aAAa,EAAE,MAAM,GACpB,MAAM,CAOR;AAk0CD,iBAAS,sCAAsC,CAC7C,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,SAAS,gCAAgC,EAAE,GACpD,sCAAsC,CAmCxC;AAiPD,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,sCAAsC,EAAE,MAAM,gCAAgC,CAAC;AACxF,OAAO,EACL,6BAA6B,EAC7B,mCAAmC,EACnC,4BAA4B,EAC5B,kCAAkC,GACnC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,KAAK,sBAAsB,EAC3B,gBAAgB,GACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,6BAA6B,EAC7B,oBAAoB,EACpB,4BAA4B,EAC5B,uBAAuB,EACvB,8BAA8B,EAC9B,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,yBAAyB,EACzB,2BAA2B,EAC3B,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,EAC1B,iCAAiC,EACjC,0BAA0B,EAC1B,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,8BAA8B,GAC/B,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,iBAAiB,EACjB,4BAA4B,EAC5B,gCAAgC,EAChC,sBAAsB,GACvB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,gCAAgC,EAChC,gCAAgC,EAChC,oCAAoC,EACpC,sBAAsB,EACtB,sCAAsC,EACtC,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,+BAA+B,EAC/B,0BAA0B,EAC1B,uBAAuB,EACvB,kCAAkC,EAClC,+BAA+B,EAC/B,mBAAmB,EACnB,4BAA4B,EAC5B,eAAe,EACf,8BAA8B,EAC9B,+BAA+B,GAChC,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EAAE,sCAAsC,EAAE,CAAC"}
|
|
@@ -18,8 +18,8 @@ import { removeManagedCodexAuthoringHookBlock, renderManagedCodexAuthoringHookBl
|
|
|
18
18
|
import { CLAUDE_STATUSLINE_RELATIVE_PATH, renderClaudeUpdateStatusline, } from "./claude-statusline-render.js";
|
|
19
19
|
import { CLAUDE_CHECK_UPDATE_HOOK_RELATIVE_PATH, CLAUDE_CHECK_UPDATE_WORKER_RELATIVE_PATH, renderClaudeCheckUpdateHook, } from "./claude-update-hook-render.js";
|
|
20
20
|
import { renderClaudeCheckUpdateWorker } from "./claude-update-worker-render.js";
|
|
21
|
-
import { GDH_MANAGED_AGENT_SKILL_MARKER, renderClaudeMigrateSkill, renderClaudeOnboardSkill, renderClaudePrepareSkill, renderClaudeRunGameSkill,
|
|
22
|
-
export { GDH_MANAGED_AGENT_SKILL_MARKER, GDH_SKILL_DEFINITIONS, GDH_SKILL_IDS, renderGdhSkill, renderManagedSkillMarker, renderClaudeMigrateSkill, renderClaudeOnboardSkill, renderClaudePrepareSkill, renderClaudeRunGameSkill,
|
|
21
|
+
import { GDH_MANAGED_AGENT_SKILL_MARKER, renderClaudeMigrateSkill, renderClaudeOnboardSkill, renderClaudePrepareSkill, renderClaudeRunGameSkill, renderClaudeStatusSkill, renderClaudeUpdateSkill, renderCodexMigrateSkill, renderCodexOnboardSkill, renderCodexPrepareSkill, renderCodexRunGameSkill, renderCodexStatusSkill, renderCodexUpdateSkill, } from "./skill-rendering.js";
|
|
22
|
+
export { GDH_MANAGED_AGENT_SKILL_MARKER, GDH_SKILL_DEFINITIONS, GDH_SKILL_IDS, renderGdhSkill, renderManagedSkillMarker, renderClaudeMigrateSkill, renderClaudeOnboardSkill, renderClaudePrepareSkill, renderClaudeRunGameSkill, renderClaudeStatusSkill, renderClaudeUpdateSkill, renderCodexMigrateSkill, renderCodexOnboardSkill, renderCodexPrepareSkill, renderCodexRunGameSkill, renderCodexStatusSkill, renderCodexUpdateSkill, } from "./skill-rendering.js";
|
|
23
23
|
// Module-load drift guard. See packages/core/src/migrations/managed-surface-classes.ts.
|
|
24
24
|
assertClassRegistered("claude_onboard_command", "deterministic");
|
|
25
25
|
assertClassRegistered("claude_status_command", "deterministic");
|
|
@@ -71,8 +71,6 @@ export const CODEX_RUN_GAME_SKILL_RELATIVE_PATH = ".agents/skills/gdh-run-game/S
|
|
|
71
71
|
// rendered bodies are version-agnostic by design.
|
|
72
72
|
export const CLAUDE_UPDATE_SKILL_RELATIVE_PATH = ".claude/skills/gdh-update/SKILL.md";
|
|
73
73
|
export const CODEX_UPDATE_SKILL_RELATIVE_PATH = ".agents/skills/gdh-update/SKILL.md";
|
|
74
|
-
export const CLAUDE_SCAN_SKILL_RELATIVE_PATH = ".claude/skills/gdh-scan/SKILL.md";
|
|
75
|
-
export const CODEX_SCAN_SKILL_RELATIVE_PATH = ".agents/skills/gdh-scan/SKILL.md";
|
|
76
74
|
export const CLAUDE_ONBOARD_COMMAND_RELATIVE_PATH = CLAUDE_ONBOARD_SKILL_RELATIVE_PATH;
|
|
77
75
|
export const CLAUDE_STATUS_COMMAND_RELATIVE_PATH = CLAUDE_STATUS_SKILL_RELATIVE_PATH;
|
|
78
76
|
export const CLAUDE_MIGRATE_COMMAND_RELATIVE_PATH = CLAUDE_MIGRATE_SKILL_RELATIVE_PATH;
|
|
@@ -80,7 +78,6 @@ export const CLAUDE_CHECK_COMMAND_RELATIVE_PATH = CLAUDE_CHECK_SKILL_RELATIVE_PA
|
|
|
80
78
|
export const CLAUDE_PREPARE_COMMAND_RELATIVE_PATH = CLAUDE_PREPARE_SKILL_RELATIVE_PATH;
|
|
81
79
|
export const CLAUDE_RUN_GAME_COMMAND_RELATIVE_PATH = CLAUDE_RUN_GAME_SKILL_RELATIVE_PATH;
|
|
82
80
|
export const CLAUDE_UPDATE_COMMAND_RELATIVE_PATH = CLAUDE_UPDATE_SKILL_RELATIVE_PATH;
|
|
83
|
-
export const CLAUDE_SCAN_COMMAND_RELATIVE_PATH = CLAUDE_SCAN_SKILL_RELATIVE_PATH;
|
|
84
81
|
const LEGACY_CLAUDE_SKILL_COMMAND_RELATIVE_PATHS = [
|
|
85
82
|
[".claude/commands/gdh/onboard.md", "gdh-onboard"],
|
|
86
83
|
[".claude/commands/gdh/status.md", "gdh-status"],
|
|
@@ -109,7 +106,6 @@ const CODEX_SKILL_RELATIVE_PATHS = [
|
|
|
109
106
|
path.dirname(CODEX_UPDATE_SKILL_RELATIVE_PATH),
|
|
110
107
|
path.dirname(CODEX_PREPARE_SKILL_RELATIVE_PATH),
|
|
111
108
|
path.dirname(CODEX_RUN_GAME_SKILL_RELATIVE_PATH),
|
|
112
|
-
path.dirname(CODEX_SCAN_SKILL_RELATIVE_PATH),
|
|
113
109
|
];
|
|
114
110
|
const CLAUDE_SKILL_RELATIVE_PATHS = [
|
|
115
111
|
path.dirname(CLAUDE_ONBOARD_SKILL_RELATIVE_PATH),
|
|
@@ -118,7 +114,6 @@ const CLAUDE_SKILL_RELATIVE_PATHS = [
|
|
|
118
114
|
path.dirname(CLAUDE_UPDATE_SKILL_RELATIVE_PATH),
|
|
119
115
|
path.dirname(CLAUDE_PREPARE_SKILL_RELATIVE_PATH),
|
|
120
116
|
path.dirname(CLAUDE_RUN_GAME_SKILL_RELATIVE_PATH),
|
|
121
|
-
path.dirname(CLAUDE_SCAN_SKILL_RELATIVE_PATH),
|
|
122
117
|
];
|
|
123
118
|
export const LOCAL_PATH_HINTS_RELATIVE_PATH = ".gdh-state/local-paths.json";
|
|
124
119
|
export const CODEX_PROJECT_CONFIG_RELATIVE_PATH = ".codex/config.toml";
|
|
@@ -391,9 +386,6 @@ export function renderClaudeOnboardCommand(pinnedVersion) {
|
|
|
391
386
|
export function renderClaudeStatusCommand(pinnedVersion) {
|
|
392
387
|
return renderClaudeStatusSkill(pinnedVersion);
|
|
393
388
|
}
|
|
394
|
-
export function renderClaudeScanCommand(pinnedVersion) {
|
|
395
|
-
return renderClaudeScanSkill(pinnedVersion);
|
|
396
|
-
}
|
|
397
389
|
export function renderClaudeMigrateCommand(pinnedVersion) {
|
|
398
390
|
return renderClaudeMigrateSkill(pinnedVersion);
|
|
399
391
|
}
|
|
@@ -749,9 +741,6 @@ async function inspectCodexAdapter(targetPath, guidance, projectMcp, pinnedVersi
|
|
|
749
741
|
const codexRunGameContent = await fs
|
|
750
742
|
.readFile(path.resolve(targetPath, CODEX_RUN_GAME_SKILL_RELATIVE_PATH), "utf8")
|
|
751
743
|
.catch(() => null);
|
|
752
|
-
const codexScanContent = await fs
|
|
753
|
-
.readFile(path.join(targetPath, CODEX_SCAN_SKILL_RELATIVE_PATH), "utf8")
|
|
754
|
-
.catch(() => null);
|
|
755
744
|
const codexAuthoringHookContent = await fs
|
|
756
745
|
.readFile(path.join(projectMcp.integrationRootPath, CODEX_AUTHORING_HOOK_RELATIVE_PATH), "utf8")
|
|
757
746
|
.catch(() => null);
|
|
@@ -764,7 +753,6 @@ async function inspectCodexAdapter(targetPath, guidance, projectMcp, pinnedVersi
|
|
|
764
753
|
const expectedCodexUpdateSkill = pinnedVersion === null ? null : renderCodexUpdateSkill(pinnedVersion);
|
|
765
754
|
const expectedCodexPrepareSkill = pinnedVersion === null ? null : renderCodexPrepareSkill(pinnedVersion);
|
|
766
755
|
const expectedCodexRunGameSkill = pinnedVersion === null ? null : renderCodexRunGameSkill(pinnedVersion);
|
|
767
|
-
const expectedCodexScanSkill = pinnedVersion === null ? null : renderCodexScanSkill(pinnedVersion);
|
|
768
756
|
const expectedCodexAuthoringHook = pinnedVersion === null
|
|
769
757
|
? null
|
|
770
758
|
: renderGdhAuthoringHook({
|
|
@@ -819,7 +807,6 @@ async function inspectCodexAdapter(targetPath, guidance, projectMcp, pinnedVersi
|
|
|
819
807
|
...inspectCodexSkillSurface(targetPath, CODEX_UPDATE_SKILL_RELATIVE_PATH, codexUpdateContent, expectedCodexUpdateSkill, "gdh-update"),
|
|
820
808
|
...inspectCodexSkillSurface(targetPath, CODEX_PREPARE_SKILL_RELATIVE_PATH, codexPrepareContent, expectedCodexPrepareSkill, "gdh-prepare"),
|
|
821
809
|
...inspectCodexSkillSurface(targetPath, CODEX_RUN_GAME_SKILL_RELATIVE_PATH, codexRunGameContent, expectedCodexRunGameSkill, "gdh-run-game"),
|
|
822
|
-
...inspectCodexSkillSurface(targetPath, CODEX_SCAN_SKILL_RELATIVE_PATH, codexScanContent, expectedCodexScanSkill, "gdh-scan"),
|
|
823
810
|
inspectManagedHookSurface("codex", projectMcp.integrationRootPath, CODEX_AUTHORING_HOOK_RELATIVE_PATH, codexAuthoringHookContent, expectedCodexAuthoringHook, "authoring guard"),
|
|
824
811
|
inspectCodexAuthoringHookConfig(projectMcp.integrationRootPath, codexProjectConfigContent, projectMcp.enabled),
|
|
825
812
|
];
|
|
@@ -874,9 +861,6 @@ async function inspectClaudeAdapter(targetPath, guidance, projectMcp, pinnedVers
|
|
|
874
861
|
const claudeRunGameContent = await fs
|
|
875
862
|
.readFile(path.resolve(targetPath, CLAUDE_RUN_GAME_COMMAND_RELATIVE_PATH), "utf8")
|
|
876
863
|
.catch(() => null);
|
|
877
|
-
const claudeScanContent = await fs
|
|
878
|
-
.readFile(path.join(targetPath, CLAUDE_SCAN_COMMAND_RELATIVE_PATH), "utf8")
|
|
879
|
-
.catch(() => null);
|
|
880
864
|
const claudeCheckUpdateHookContent = await fs
|
|
881
865
|
.readFile(path.join(targetPath, CLAUDE_CHECK_UPDATE_HOOK_RELATIVE_PATH), "utf8")
|
|
882
866
|
.catch(() => null);
|
|
@@ -913,7 +897,6 @@ async function inspectClaudeAdapter(targetPath, guidance, projectMcp, pinnedVers
|
|
|
913
897
|
const expectedClaudeUpdateCommand = pinnedVersion === null ? null : renderClaudeUpdateCommand(pinnedVersion);
|
|
914
898
|
const expectedClaudePrepareCommand = pinnedVersion === null ? null : renderClaudePrepareCommand(pinnedVersion);
|
|
915
899
|
const expectedClaudeRunGameCommand = pinnedVersion === null ? null : renderClaudeRunGameCommand(pinnedVersion);
|
|
916
|
-
const expectedClaudeScanCommand = pinnedVersion === null ? null : renderClaudeScanCommand(pinnedVersion);
|
|
917
900
|
const surfaces = [
|
|
918
901
|
createSurfaceStatus({
|
|
919
902
|
kind: "symlink",
|
|
@@ -962,7 +945,6 @@ async function inspectClaudeAdapter(targetPath, guidance, projectMcp, pinnedVers
|
|
|
962
945
|
...inspectClaudeSkillSurface(targetPath, CLAUDE_UPDATE_COMMAND_RELATIVE_PATH, claudeUpdateContent, expectedClaudeUpdateCommand, "gdh-update"),
|
|
963
946
|
...inspectClaudeSkillSurface(targetPath, CLAUDE_PREPARE_COMMAND_RELATIVE_PATH, claudePrepareContent, expectedClaudePrepareCommand, "gdh-prepare"),
|
|
964
947
|
...inspectClaudeSkillSurface(targetPath, CLAUDE_RUN_GAME_COMMAND_RELATIVE_PATH, claudeRunGameContent, expectedClaudeRunGameCommand, "gdh-run-game"),
|
|
965
|
-
...inspectClaudeSkillSurface(targetPath, CLAUDE_SCAN_COMMAND_RELATIVE_PATH, claudeScanContent, expectedClaudeScanCommand, "gdh-scan"),
|
|
966
948
|
inspectManagedHookSurface("claude", targetPath, CLAUDE_CHECK_UPDATE_HOOK_RELATIVE_PATH, claudeCheckUpdateHookContent, expectedClaudeCheckUpdateHook, "gdh-check-update-hook"),
|
|
967
949
|
inspectManagedHookSurface("claude", targetPath, CLAUDE_CHECK_UPDATE_WORKER_RELATIVE_PATH, claudeCheckUpdateWorkerContent, expectedClaudeCheckUpdateWorker, "gdh-check-update-worker"),
|
|
968
950
|
inspectManagedHookSurface("claude", targetPath, CLAUDE_STATUSLINE_RELATIVE_PATH, claudeStatuslineContent, expectedClaudeStatusline, "gdh-statusline"),
|
|
@@ -1337,7 +1319,6 @@ function planCodexRepoInstallActions(targetPath, adapter, pinnedVersion, project
|
|
|
1337
1319
|
planSkillInstallAction("codex", targetPath, adapter, CODEX_UPDATE_SKILL_RELATIVE_PATH, renderCodexUpdateSkill, "gdh-update", pinnedVersion),
|
|
1338
1320
|
planSkillInstallAction("codex", targetPath, adapter, CODEX_PREPARE_SKILL_RELATIVE_PATH, renderCodexPrepareSkill, "gdh-prepare", pinnedVersion),
|
|
1339
1321
|
planSkillInstallAction("codex", targetPath, adapter, CODEX_RUN_GAME_SKILL_RELATIVE_PATH, renderCodexRunGameSkill, "gdh-run-game", pinnedVersion),
|
|
1340
|
-
planSkillInstallAction("codex", targetPath, adapter, CODEX_SCAN_SKILL_RELATIVE_PATH, renderCodexScanSkill, "gdh-scan", pinnedVersion),
|
|
1341
1322
|
planSkillInstallAction("codex", integrationRootPath, adapter, CODEX_AUTHORING_HOOK_RELATIVE_PATH, (version) => renderGdhAuthoringHook({
|
|
1342
1323
|
pinnedVersion: version,
|
|
1343
1324
|
targetRelativePath: path.relative(integrationRootPath, targetPath) || ".",
|
|
@@ -1439,6 +1420,34 @@ const RETIRED_MANAGED_SURFACE_RELATIVE_PATHS = [
|
|
|
1439
1420
|
(content.includes("@skillcap/gdh@") || content.includes("gdh verify recommend")),
|
|
1440
1421
|
replacementSummary: "Agents should use `gdh authoring check --mode final` for code-validity evidence.",
|
|
1441
1422
|
},
|
|
1423
|
+
// Retired generated discovery skill (v1.1.0). The `gdh scan` CLI verb
|
|
1424
|
+
// stays — only the agent-facing skill is dropped. Targets that ran a
|
|
1425
|
+
// pre-v1.1 GDH still carry GDH-rendered SKILL.md and command files at the
|
|
1426
|
+
// managed paths; the cleanup planner removes them content-checked so
|
|
1427
|
+
// user-authored content at the same paths is preserved verbatim. Agents
|
|
1428
|
+
// now invoke `gdh scan` directly from gdh-onboard or gdh-status when an
|
|
1429
|
+
// inventory probe is needed.
|
|
1430
|
+
{
|
|
1431
|
+
agent: "codex",
|
|
1432
|
+
relativePath: ".agents/skills/gdh-scan/SKILL.md",
|
|
1433
|
+
skillName: "gdh-scan",
|
|
1434
|
+
isManaged: isManagedAgentSkillContent,
|
|
1435
|
+
replacementSummary: "The gdh-scan skill is retired; the `gdh scan` CLI verb stays and agents invoke it directly from gdh-onboard or gdh-status when an inventory probe is needed.",
|
|
1436
|
+
},
|
|
1437
|
+
{
|
|
1438
|
+
agent: "claude",
|
|
1439
|
+
relativePath: ".claude/skills/gdh-scan/SKILL.md",
|
|
1440
|
+
skillName: "gdh-scan",
|
|
1441
|
+
isManaged: isManagedAgentSkillContent,
|
|
1442
|
+
replacementSummary: "The gdh-scan skill is retired; the `gdh scan` CLI verb stays and agents invoke it directly from gdh-onboard or gdh-status when an inventory probe is needed.",
|
|
1443
|
+
},
|
|
1444
|
+
{
|
|
1445
|
+
agent: "claude",
|
|
1446
|
+
relativePath: ".claude/commands/gdh/scan.md",
|
|
1447
|
+
skillName: "gdh-scan",
|
|
1448
|
+
isManaged: isManagedAgentSkillContent,
|
|
1449
|
+
replacementSummary: "The gdh-scan command shim is retired; the `gdh scan` CLI verb stays and agents invoke it directly from gdh-onboard or gdh-status when an inventory probe is needed.",
|
|
1450
|
+
},
|
|
1442
1451
|
// Retired cursor agent (commit 7f65b098, "feat(adapters)!: drop cursor
|
|
1443
1452
|
// agent from source"). Cursor was a hard delete — no deprecation shim — so
|
|
1444
1453
|
// legacy targets that ran a pre-removal GDH still carry GDH-rendered files
|
|
@@ -1646,7 +1655,7 @@ function planClaudeInstallActions(targetPath, adapter, pinnedVersion, integratio
|
|
|
1646
1655
|
expectedTarget: "AGENTS.md",
|
|
1647
1656
|
}));
|
|
1648
1657
|
}
|
|
1649
|
-
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_PREPARE_COMMAND_RELATIVE_PATH, renderClaudePrepareCommand, "gdh-prepare", pinnedVersion), planSkillInstallAction("claude", targetPath, adapter, CLAUDE_RUN_GAME_COMMAND_RELATIVE_PATH, renderClaudeRunGameCommand, "gdh-run-game", pinnedVersion),
|
|
1658
|
+
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_PREPARE_COMMAND_RELATIVE_PATH, renderClaudePrepareCommand, "gdh-prepare", pinnedVersion), planSkillInstallAction("claude", targetPath, adapter, CLAUDE_RUN_GAME_COMMAND_RELATIVE_PATH, renderClaudeRunGameCommand, "gdh-run-game", pinnedVersion),
|
|
1650
1659
|
// UPD-01 managed hook surfaces baked at the pinned version.
|
|
1651
1660
|
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),
|
|
1652
1661
|
// Optional statusline script baked at the pinned version. The .js file is
|
|
@@ -2425,10 +2434,21 @@ async function isDefaultRulesBoilerplate(targetPath, projectConfig) {
|
|
|
2425
2434
|
return actual === expected || isPriorDefaultRulesBoilerplate(actual);
|
|
2426
2435
|
}
|
|
2427
2436
|
function isPriorDefaultRulesBoilerplate(content) {
|
|
2428
|
-
//
|
|
2429
|
-
//
|
|
2430
|
-
//
|
|
2431
|
-
|
|
2437
|
+
// Each entry below is a prior-version GDH-owned default rules body that is
|
|
2438
|
+
// safe to refresh to the current default during `gdh migrate --apply`. The
|
|
2439
|
+
// `version:` line is interpolated to the CURRENT schema version because
|
|
2440
|
+
// `coerceRulesDocument` normalizes the on-disk header before this comparison.
|
|
2441
|
+
// Append a new entry here when the live default body changes; removing an
|
|
2442
|
+
// older entry drops chain support for targets last touched at that wording.
|
|
2443
|
+
//
|
|
2444
|
+
// - v0.18-v0.26.7 wording: "Run `gdh authoring check` after changing Godot
|
|
2445
|
+
// source or project configuration files." Also the locked s2c2→s2c3
|
|
2446
|
+
// transform output, so chain matrix runs from v0.18.0 land here.
|
|
2447
|
+
// - v0.26.8-v2.0.0 wording: "Do not rerun authoring checks during normal
|
|
2448
|
+
// hooked edits..." Stopped telling agents to rerun hook-owned checks but
|
|
2449
|
+
// still positioned `authoring-check` as a CLI-shaped verb.
|
|
2450
|
+
const priorRulesBoilerplateBodies = [
|
|
2451
|
+
`version: ${GDH_RULES_SCHEMA_VERSION}
|
|
2432
2452
|
hard_rules:
|
|
2433
2453
|
- id: "authoring-validation-evidence"
|
|
2434
2454
|
summary: "Use GDH authoring check evidence when judging Godot code validity."
|
|
@@ -2491,8 +2511,73 @@ path_scopes:
|
|
|
2491
2511
|
kind: "editor_validation"
|
|
2492
2512
|
required: true
|
|
2493
2513
|
summary: "Arrange editor-side validation for \`EditorPlugin\` and plugin configuration changes before claiming code validity."
|
|
2494
|
-
|
|
2495
|
-
|
|
2514
|
+
`,
|
|
2515
|
+
`version: ${GDH_RULES_SCHEMA_VERSION}
|
|
2516
|
+
hard_rules:
|
|
2517
|
+
- id: "authoring-validation-evidence"
|
|
2518
|
+
summary: "Use managed authoring validation evidence when judging Godot code validity."
|
|
2519
|
+
rationale: "Authoring validity should come from GDH diagnostics or final validation evidence, not readiness guesses."
|
|
2520
|
+
validation_expectations:
|
|
2521
|
+
[]
|
|
2522
|
+
soft_guidance:
|
|
2523
|
+
- id: "prefer-gdh-surfaces"
|
|
2524
|
+
summary: "Prefer GDH status, target-prepare, authoring, import-refresh, and guidance surfaces over ad hoc Godot-state guesses."
|
|
2525
|
+
rationale: "GDH exists to make Godot authoring and validation constraints inspectable instead of folklore-driven."
|
|
2526
|
+
validation_expectations:
|
|
2527
|
+
[]
|
|
2528
|
+
prohibited_patterns:
|
|
2529
|
+
- id: "generated-godot-state-is-not-truth"
|
|
2530
|
+
summary: "Do not treat \`.godot/\` generated state as durable project truth or hand-edit it unless a project-specific rule says otherwise."
|
|
2531
|
+
rationale: "Generated import/editor state is environment-sensitive and should not become the source of truth for agents."
|
|
2532
|
+
validation_expectations:
|
|
2533
|
+
[]
|
|
2534
|
+
- id: "dont-copy-project-local-env-files-by-default"
|
|
2535
|
+
summary: "Do not copy project-local env files such as \`.env.local\` as part of default GDH target preparation unless project-specific guidance explicitly says to do so."
|
|
2536
|
+
rationale: "Default GDH preparation should stay deterministic and should not silently inherit machine-local env behavior from another checkout."
|
|
2537
|
+
validation_expectations:
|
|
2538
|
+
[]
|
|
2539
|
+
path_scopes:
|
|
2540
|
+
- id: "authoring-files"
|
|
2541
|
+
summary: "Authoring-facing Godot source and project files rely on managed hook feedback during edits and explicit validation evidence at handoff."
|
|
2542
|
+
path_globs:
|
|
2543
|
+
- "**/*.gd"
|
|
2544
|
+
- "**/*.tscn"
|
|
2545
|
+
- "**/*.tres"
|
|
2546
|
+
- "project.godot"
|
|
2547
|
+
hard_rules:
|
|
2548
|
+
[]
|
|
2549
|
+
soft_guidance:
|
|
2550
|
+
[]
|
|
2551
|
+
prohibited_patterns:
|
|
2552
|
+
[]
|
|
2553
|
+
validation_expectations:
|
|
2554
|
+
- id: "authoring-check"
|
|
2555
|
+
kind: "authoring_check"
|
|
2556
|
+
required: true
|
|
2557
|
+
summary: "Do not rerun authoring checks during normal hooked edits; collect explicit authoring-check evidence only for handoff, unsupported file types, missing hooks, or recovery."
|
|
2558
|
+
- id: "editor-plugin-files"
|
|
2559
|
+
summary: "EditorPlugin and plugin configuration work requires editor-side validation, not only runtime confidence."
|
|
2560
|
+
path_globs:
|
|
2561
|
+
- "addons/**/plugin.gd"
|
|
2562
|
+
- "addons/**/plugin.cfg"
|
|
2563
|
+
hard_rules:
|
|
2564
|
+
[]
|
|
2565
|
+
soft_guidance:
|
|
2566
|
+
- id: "surface-editor-validation"
|
|
2567
|
+
summary: "Surface editor-side caveats explicitly when plugin or \`@tool\` work is involved."
|
|
2568
|
+
rationale: "Phase 3 already detects editor-side caveats at the point of use and Phase 4 should preserve that distinction."
|
|
2569
|
+
validation_expectations:
|
|
2570
|
+
[]
|
|
2571
|
+
prohibited_patterns:
|
|
2572
|
+
[]
|
|
2573
|
+
validation_expectations:
|
|
2574
|
+
- id: "editor-validation"
|
|
2575
|
+
kind: "editor_validation"
|
|
2576
|
+
required: true
|
|
2577
|
+
summary: "Arrange editor-side validation for \`EditorPlugin\` and plugin configuration changes before claiming code validity."
|
|
2578
|
+
`,
|
|
2579
|
+
];
|
|
2580
|
+
return priorRulesBoilerplateBodies.includes(content);
|
|
2496
2581
|
}
|
|
2497
2582
|
function inspectAgentContractLifecycleSurface(targetPath, guidanceStatus) {
|
|
2498
2583
|
const status = guidanceStatus.agentContract;
|