@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.
Files changed (38) hide show
  1. package/INSTALL-BUNDLE.json +1 -1
  2. package/RELEASE-SPAN-UPDATE-CONTRACTS.json +109 -0
  3. package/node_modules/@gdh/adapters/dist/index.d.ts +1 -5
  4. package/node_modules/@gdh/adapters/dist/index.d.ts.map +1 -1
  5. package/node_modules/@gdh/adapters/dist/index.js +113 -28
  6. package/node_modules/@gdh/adapters/dist/index.js.map +1 -1
  7. package/node_modules/@gdh/adapters/dist/skill-rendering.d.ts +2 -4
  8. package/node_modules/@gdh/adapters/dist/skill-rendering.d.ts.map +1 -1
  9. package/node_modules/@gdh/adapters/dist/skill-rendering.js +16 -49
  10. package/node_modules/@gdh/adapters/dist/skill-rendering.js.map +1 -1
  11. package/node_modules/@gdh/adapters/package.json +8 -8
  12. package/node_modules/@gdh/authoring/package.json +2 -2
  13. package/node_modules/@gdh/cli/dist/index.d.ts.map +1 -1
  14. package/node_modules/@gdh/cli/dist/index.js +8 -7
  15. package/node_modules/@gdh/cli/dist/index.js.map +1 -1
  16. package/node_modules/@gdh/cli/package.json +10 -10
  17. package/node_modules/@gdh/core/dist/index.d.ts +13 -3
  18. package/node_modules/@gdh/core/dist/index.d.ts.map +1 -1
  19. package/node_modules/@gdh/core/dist/index.js +13 -3
  20. package/node_modules/@gdh/core/dist/index.js.map +1 -1
  21. package/node_modules/@gdh/core/dist/migrations/managed-surface-classes.d.ts +3 -3
  22. package/node_modules/@gdh/core/dist/migrations/managed-surface-classes.js +3 -3
  23. package/node_modules/@gdh/core/dist/migrations/managed-surface-classes.js.map +1 -1
  24. package/node_modules/@gdh/core/dist/migrations/managed-target-surface-inventory.d.ts +5 -5
  25. package/node_modules/@gdh/core/dist/migrations/managed-target-surface-inventory.d.ts.map +1 -1
  26. package/node_modules/@gdh/core/dist/migrations/managed-target-surface-inventory.js +33 -19
  27. package/node_modules/@gdh/core/dist/migrations/managed-target-surface-inventory.js.map +1 -1
  28. package/node_modules/@gdh/core/package.json +1 -1
  29. package/node_modules/@gdh/docs/dist/rules.js +1 -1
  30. package/node_modules/@gdh/docs/dist/rules.js.map +1 -1
  31. package/node_modules/@gdh/docs/dist/templates/guidance/authoring-and-validation.md.tpl +2 -1
  32. package/node_modules/@gdh/docs/package.json +2 -2
  33. package/node_modules/@gdh/mcp/package.json +8 -8
  34. package/node_modules/@gdh/observability/package.json +2 -2
  35. package/node_modules/@gdh/runtime/package.json +2 -2
  36. package/node_modules/@gdh/scan/package.json +3 -3
  37. package/node_modules/@gdh/verify/package.json +7 -7
  38. package/package.json +11 -11
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "product": "GDH",
3
- "version": "1.0.0",
3
+ "version": "2.0.1",
4
4
  "installMode": "packaged_install"
5
5
  }
@@ -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, renderClaudeScanSkill, renderClaudeStatusSkill, renderClaudeUpdateSkill, renderCodexMigrateSkill, renderCodexOnboardSkill, renderCodexPrepareSkill, renderCodexRunGameSkill, renderCodexScanSkill, renderCodexStatusSkill, renderCodexUpdateSkill, } from "./skill-rendering.js";
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":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -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, renderClaudeScanSkill, renderClaudeStatusSkill, renderClaudeUpdateSkill, renderCodexMigrateSkill, renderCodexOnboardSkill, renderCodexPrepareSkill, renderCodexRunGameSkill, renderCodexScanSkill, 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, renderClaudeScanSkill, renderClaudeStatusSkill, renderClaudeUpdateSkill, renderCodexMigrateSkill, renderCodexOnboardSkill, renderCodexPrepareSkill, renderCodexRunGameSkill, renderCodexScanSkill, renderCodexStatusSkill, renderCodexUpdateSkill, } from "./skill-rendering.js";
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), planSkillInstallAction("claude", targetPath, adapter, CLAUDE_SCAN_COMMAND_RELATIVE_PATH, renderClaudeScanCommand, "gdh-scan", 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
- // v0.26.8 changed only the default authoring-validation wording to stop
2429
- // telling agents to rerun hook-owned checks during edit loops. Prior v3
2430
- // boilerplate is still GDH-owned default content, so it is safe to refresh.
2431
- const priorV3Default = `version: ${GDH_RULES_SCHEMA_VERSION}
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
- return content === priorV3Default;
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;