@skillcap/gdh 0.17.1 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/INSTALL-BUNDLE.json +1 -1
- package/RELEASE-SPAN-UPDATE-CONTRACTS.json +170 -0
- package/node_modules/@gdh/adapters/dist/index.d.ts +8 -8
- package/node_modules/@gdh/adapters/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/adapters/dist/index.js +60 -13
- package/node_modules/@gdh/adapters/dist/index.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.js +1 -1
- package/node_modules/@gdh/cli/dist/index.js.map +1 -1
- package/node_modules/@gdh/cli/dist/migrate.d.ts.map +1 -1
- package/node_modules/@gdh/cli/dist/migrate.js +5 -1
- package/node_modules/@gdh/cli/dist/migrate.js.map +1 -1
- package/node_modules/@gdh/cli/dist/setup.d.ts +1 -1
- package/node_modules/@gdh/cli/dist/setup.d.ts.map +1 -1
- package/node_modules/@gdh/cli/dist/setup.js +9 -0
- package/node_modules/@gdh/cli/dist/setup.js.map +1 -1
- package/node_modules/@gdh/cli/package.json +10 -10
- package/node_modules/@gdh/core/dist/index.d.ts +6 -6
- package/node_modules/@gdh/core/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/core/dist/index.js +4 -4
- package/node_modules/@gdh/core/dist/index.js.map +1 -1
- package/node_modules/@gdh/core/package.json +1 -1
- package/node_modules/@gdh/docs/dist/agent-contract.d.ts.map +1 -1
- package/node_modules/@gdh/docs/dist/agent-contract.js +1 -0
- package/node_modules/@gdh/docs/dist/agent-contract.js.map +1 -1
- package/node_modules/@gdh/docs/dist/guidance.d.ts.map +1 -1
- package/node_modules/@gdh/docs/dist/guidance.js +2 -0
- package/node_modules/@gdh/docs/dist/guidance.js.map +1 -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/dist/bridge-surface.js +66 -17
- package/node_modules/@gdh/runtime/dist/bridge-surface.js.map +1 -1
- 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
|
@@ -1414,6 +1414,176 @@
|
|
|
1414
1414
|
}
|
|
1415
1415
|
]
|
|
1416
1416
|
}
|
|
1417
|
+
},
|
|
1418
|
+
{
|
|
1419
|
+
"version": "0.17.2",
|
|
1420
|
+
"releaseTag": "v0.17.2",
|
|
1421
|
+
"migrationStatus": "no_op",
|
|
1422
|
+
"summary": "v0.17.2 hardens Codex supported-agent skills and MCP recovery without changing managed project schema or lifecycle surface versions. Existing targets do not need release-scoped schema migration, but Codex targets should run ordinary self-update or adapter repair so skills move to .agents/skills and exact managed legacy .codex/skills copies are removed.",
|
|
1423
|
+
"releaseHighlights": {
|
|
1424
|
+
"summary": "v0.17.2 hardens supported-agent setup after dogfooding exposed Codex skill-location drift and stale MCP registration confusion. Codex target skills now use the documented `.agents/skills` location, exact managed legacy `.codex/skills` files are cleaned up during repair, and MCP recovery guidance now explains what GDH can repair versus what the host agent must reconnect.",
|
|
1425
|
+
"operatorChanges": [
|
|
1426
|
+
"**Codex target skills use the documented project-local location.** Generated GDH target skills now install under `.agents/skills/gdh-*/SKILL.md`.",
|
|
1427
|
+
"**Managed legacy Codex skill copies are cleaned safely.** `gdh adapters install` and migration translation remove exact managed `.codex/skills/gdh-*` files after the new `.agents/skills` copy exists; customized files are preserved.",
|
|
1428
|
+
"**Codex project MCP config is part of readiness.** GDH lifecycle checks now include `.codex/config.toml` alongside Claude `.mcp.json` and Cursor `.cursor/mcp.json`.",
|
|
1429
|
+
"**Codex MCP startup is less ambiguous.** Generated `.codex/config.toml` includes explicit startup and tool timeouts for the GDH MCP server.",
|
|
1430
|
+
"**MCP recovery docs are clearer.** Install/update docs now distinguish project-local repair, Codex user-local registration cleanup, and the host-owned restart needed after a stdio MCP transport closes."
|
|
1431
|
+
]
|
|
1432
|
+
},
|
|
1433
|
+
"updateContract": {
|
|
1434
|
+
"summary": "No release-scoped managed schema migration is required for v0.17.2. After self-update, Codex users should verify adapter surfaces so generated GDH skills live under `.agents/skills`, exact managed legacy `.codex/skills` copies are gone, and MCP config points at the current pinned GDH command. Closed host MCP transports still require the host agent to reconnect or restart.",
|
|
1435
|
+
"steps": [
|
|
1436
|
+
{
|
|
1437
|
+
"id": "rebake_agent_adapters",
|
|
1438
|
+
"kind": "mechanical",
|
|
1439
|
+
"summary": "Re-bake supported-agent surfaces at the new GDH pin.",
|
|
1440
|
+
"detail": "`gdh self-update` re-runs the adapter install path. If an agent needs to repair surfaces manually, run `gdh adapters install <target>` for repo-local agent surfaces.",
|
|
1441
|
+
"commands": [
|
|
1442
|
+
"gdh adapters install <target>"
|
|
1443
|
+
],
|
|
1444
|
+
"validationCommands": [
|
|
1445
|
+
"gdh adapters status <target>",
|
|
1446
|
+
"gdh verify drift <target>"
|
|
1447
|
+
]
|
|
1448
|
+
},
|
|
1449
|
+
{
|
|
1450
|
+
"id": "repair_codex_user_mcp",
|
|
1451
|
+
"kind": "mechanical",
|
|
1452
|
+
"summary": "Repair or remove stale Codex user-local MCP registrations when present.",
|
|
1453
|
+
"detail": "For user-local Codex registrations that point at an old package version or missing legacy launcher, run the GDH Codex user install flow for the expected project key or remove stale unrelated entries with `codex mcp remove <name>`.",
|
|
1454
|
+
"commands": [
|
|
1455
|
+
"gdh adapters install <target> --user --agent codex"
|
|
1456
|
+
],
|
|
1457
|
+
"validationCommands": [
|
|
1458
|
+
"codex mcp list --json",
|
|
1459
|
+
"gdh adapters status <target>"
|
|
1460
|
+
]
|
|
1461
|
+
},
|
|
1462
|
+
{
|
|
1463
|
+
"id": "restart_closed_mcp_transport",
|
|
1464
|
+
"kind": "manual_review",
|
|
1465
|
+
"summary": "Restart the host agent session if the live MCP transport is closed.",
|
|
1466
|
+
"detail": "GDH can repair configuration and prove command shape, but Codex, Claude, and Cursor own their live stdio MCP process. If the transport is already closed, refresh or restart the host agent session before trusting MCP tool availability.",
|
|
1467
|
+
"commands": [],
|
|
1468
|
+
"validationCommands": [
|
|
1469
|
+
"gdh adapters status <target>"
|
|
1470
|
+
]
|
|
1471
|
+
}
|
|
1472
|
+
]
|
|
1473
|
+
}
|
|
1474
|
+
},
|
|
1475
|
+
{
|
|
1476
|
+
"version": "0.18.0",
|
|
1477
|
+
"releaseTag": "v0.18.0",
|
|
1478
|
+
"migrationStatus": "required",
|
|
1479
|
+
"summary": "v0.18.0 adds current-scene, whole-tree, and arbitrary-subtree runtime bridge discovery, refreshes managed bridge guidance and agent entrypoints, and refactors generated bridge internals to native Godot APIs. The release changes GDH_AGENT_CONTRACT_VERSION (1 -> 2), GDH_GUIDANCE_UNIT_VERSION (7 -> 8), GDH_CURSOR_RULE_VERSION (1 -> 2), and GDH_RUNTIME_BRIDGE_SURFACE_VERSION (7 -> 10), so managed targets need adapter/guidance migration and bridge repair before they are treated as current.",
|
|
1480
|
+
"releaseHighlights": {
|
|
1481
|
+
"summary": "v0.18.0 improves runtime bridge discoverability for agents and tightens managed agent entrypoints. Agents can now ask the bridge for the current scene, search from the whole SceneTree, or search from an arbitrary node path when the target is outside the active scene. Managed guidance and Cursor/AGENTS entrypoints now point agents directly at the bridge usage guidance, and the generated bridge uses native Godot APIs for node search, inheritance-aware type checks, and indexed property reads.",
|
|
1482
|
+
"operatorChanges": [
|
|
1483
|
+
"**Runtime bridge node discovery is broader and clearer.** `scene.current.get` returns the current scene snapshot, `scene.tree.nodes.find` searches from `SceneTree.root`, and `scene.node.nodes.find` searches below one `rootNodePath`.",
|
|
1484
|
+
"**Existing active-scene search stays stable.** `scene.nodes.find` remains the active-scene scoped query for ordinary scene-local discovery.",
|
|
1485
|
+
"**Bridge guidance is easier to find.** Managed `AGENTS.md` and Cursor rule surfaces now direct agents to `docs/agent/authoring-and-validation.md` for runtime bridge usage.",
|
|
1486
|
+
"**Generated runtime guidance names the discovery boundary.** Agents are told when to use active-scene search, whole-tree search, or bounded arbitrary-subtree search.",
|
|
1487
|
+
"**Bridge internals now lean on native Godot APIs.** Generated bridge code uses `Node.find_children`, `Object.is_class`, GDScript property membership, and `Object.get_indexed` instead of manual tree walking, exact class-string matching, property-list scans, and flat property reads.",
|
|
1488
|
+
"**Maintainer release/publish skills are namespaced.** GDH repo maintainer-only adapters use the `gdh-dev-*` / `/gdh-dev:*` namespace to reduce confusion with target-project GDH skills."
|
|
1489
|
+
]
|
|
1490
|
+
},
|
|
1491
|
+
"updateContract": {
|
|
1492
|
+
"summary": "Managed targets need release-specific migration for v0.18.0 because agent contract, Cursor rule, guidance, and runtime bridge surfaces changed. Agents should inspect status, rebake adapter surfaces when drift is reported, migrate guidance, repair the runtime bridge when drift is active, complete plugin/autoload follow-through when required, and validate the target lifecycle.",
|
|
1493
|
+
"steps": [
|
|
1494
|
+
{
|
|
1495
|
+
"id": "verify_post_update_status",
|
|
1496
|
+
"kind": "mechanical",
|
|
1497
|
+
"summary": "Run the standard post-update lifecycle check.",
|
|
1498
|
+
"detail": "Start with `gdh status` so GDH can report whether the target needs guidance migration, adapter repair, runtime bridge repair, or plugin/autoload follow-through for v0.18.0.",
|
|
1499
|
+
"commands": [
|
|
1500
|
+
"gdh status"
|
|
1501
|
+
],
|
|
1502
|
+
"validationCommands": [
|
|
1503
|
+
"gdh status"
|
|
1504
|
+
]
|
|
1505
|
+
},
|
|
1506
|
+
{
|
|
1507
|
+
"id": "rebake_agent_adapters",
|
|
1508
|
+
"kind": "mechanical",
|
|
1509
|
+
"summary": "Re-bake supported-agent entrypoint surfaces when drift is active.",
|
|
1510
|
+
"detail": "When GDH reports adapter drift, run `gdh adapters install <target>` so managed AGENTS.md and Cursor rule surfaces carry the runtime bridge guidance pointer at the current surface versions.",
|
|
1511
|
+
"commands": [
|
|
1512
|
+
"gdh adapters install <target>"
|
|
1513
|
+
],
|
|
1514
|
+
"validationCommands": [
|
|
1515
|
+
"gdh adapters status <target>",
|
|
1516
|
+
"gdh verify drift <target>"
|
|
1517
|
+
]
|
|
1518
|
+
},
|
|
1519
|
+
{
|
|
1520
|
+
"id": "apply_guidance_migration",
|
|
1521
|
+
"kind": "mechanical",
|
|
1522
|
+
"summary": "Apply managed guidance migration.",
|
|
1523
|
+
"detail": "When `gdh status` or `gdh migrate` reports guidance migration work, run `gdh migrate --apply` to refresh guidance units with current-scene, whole-tree, and arbitrary-subtree bridge discovery instructions.",
|
|
1524
|
+
"commands": [
|
|
1525
|
+
"gdh migrate --apply"
|
|
1526
|
+
],
|
|
1527
|
+
"validationCommands": [
|
|
1528
|
+
"gdh guidance status",
|
|
1529
|
+
"gdh status"
|
|
1530
|
+
]
|
|
1531
|
+
},
|
|
1532
|
+
{
|
|
1533
|
+
"id": "inspect_bridge_repair_branch",
|
|
1534
|
+
"kind": "agent_reasoning",
|
|
1535
|
+
"summary": "Decide whether runtime bridge repair is active for this target.",
|
|
1536
|
+
"detail": "If lifecycle output surfaces runtime-bridge reasons, inspect `gdh bridge status` and treat the surfaced terminal commands as release-specific follow-up. If no runtime-bridge reasons appear, no release-specific bridge repair is needed.",
|
|
1537
|
+
"commands": [
|
|
1538
|
+
"gdh bridge status"
|
|
1539
|
+
],
|
|
1540
|
+
"validationCommands": [
|
|
1541
|
+
"gdh status"
|
|
1542
|
+
]
|
|
1543
|
+
},
|
|
1544
|
+
{
|
|
1545
|
+
"id": "repair_runtime_bridge_surface",
|
|
1546
|
+
"kind": "mechanical",
|
|
1547
|
+
"summary": "Repair managed runtime bridge files when drift is active.",
|
|
1548
|
+
"detail": "Bridge-enabled targets on older runtime bridge surfaces drift until they are repaired to runtime bridge surface version 10. Run `gdh bridge repair` to rewrite the managed bridge addon with `scene.current.get`, whole-tree node search, arbitrary-subtree node search, and native Godot API internals.",
|
|
1549
|
+
"commands": [
|
|
1550
|
+
"gdh bridge repair"
|
|
1551
|
+
],
|
|
1552
|
+
"validationCommands": [
|
|
1553
|
+
"gdh bridge status"
|
|
1554
|
+
]
|
|
1555
|
+
},
|
|
1556
|
+
{
|
|
1557
|
+
"id": "enable_plugin_and_finish_gdhbridge_registration",
|
|
1558
|
+
"kind": "manual_review",
|
|
1559
|
+
"summary": "Enable the GDH Runtime Bridge plugin so GDHBridge registers when required.",
|
|
1560
|
+
"detail": "GDH does not hand-edit `project.godot` for operators. After bridge repair, if bridge status still reports plugin/autoload follow-through, open the project in the Godot editor and enable the `GDH Runtime Bridge` plugin so it can register `GDHBridge`.",
|
|
1561
|
+
"commands": [],
|
|
1562
|
+
"validationCommands": [
|
|
1563
|
+
"gdh bridge status",
|
|
1564
|
+
"gdh status"
|
|
1565
|
+
]
|
|
1566
|
+
},
|
|
1567
|
+
{
|
|
1568
|
+
"id": "validate_repaired_lifecycle",
|
|
1569
|
+
"kind": "mechanical",
|
|
1570
|
+
"summary": "Validate guidance, adapter, bridge, and project lifecycle after migration.",
|
|
1571
|
+
"detail": "After migration, adapter rebake, bridge repair, and any plugin follow-through, rerun `gdh guidance status`, `gdh adapters status`, `gdh bridge status`, and `gdh status`. The target should return to the current lifecycle state for the refreshed surfaces.",
|
|
1572
|
+
"commands": [
|
|
1573
|
+
"gdh guidance status",
|
|
1574
|
+
"gdh adapters status <target>",
|
|
1575
|
+
"gdh bridge status",
|
|
1576
|
+
"gdh status"
|
|
1577
|
+
],
|
|
1578
|
+
"validationCommands": [
|
|
1579
|
+
"gdh guidance status",
|
|
1580
|
+
"gdh adapters status <target>",
|
|
1581
|
+
"gdh bridge status",
|
|
1582
|
+
"gdh status"
|
|
1583
|
+
]
|
|
1584
|
+
}
|
|
1585
|
+
]
|
|
1586
|
+
}
|
|
1417
1587
|
}
|
|
1418
1588
|
]
|
|
1419
1589
|
}
|
|
@@ -7,27 +7,27 @@ export declare const PROJECT_MCP_RELATIVE_PATH = ".mcp.json";
|
|
|
7
7
|
export declare const CURSOR_MCP_RELATIVE_PATH = ".cursor/mcp.json";
|
|
8
8
|
export declare const CURSOR_RULE_RELATIVE_PATH = ".cursor/rules/gdh-agent.mdc";
|
|
9
9
|
export declare const CURSOR_ONBOARD_SKILL_RELATIVE_PATH = ".cursor/skills/gdh-onboard/SKILL.md";
|
|
10
|
-
export declare const CODEX_ONBOARD_SKILL_RELATIVE_PATH = ".
|
|
10
|
+
export declare const CODEX_ONBOARD_SKILL_RELATIVE_PATH = ".agents/skills/gdh-onboard/SKILL.md";
|
|
11
11
|
export declare const CLAUDE_STATUS_COMMAND_RELATIVE_PATH = ".claude/commands/gdh/status.md";
|
|
12
12
|
export declare const CLAUDE_MIGRATE_COMMAND_RELATIVE_PATH = ".claude/commands/gdh/migrate.md";
|
|
13
13
|
export declare const CLAUDE_CHECK_COMMAND_RELATIVE_PATH = ".claude/commands/gdh/check.md";
|
|
14
14
|
export declare const CLAUDE_PREPARE_COMMAND_RELATIVE_PATH = ".claude/commands/gdh/prepare.md";
|
|
15
15
|
export declare const CLAUDE_VERIFY_COMMAND_RELATIVE_PATH = ".claude/commands/gdh/verify.md";
|
|
16
|
-
export declare const CODEX_STATUS_SKILL_RELATIVE_PATH = ".
|
|
17
|
-
export declare const CODEX_MIGRATE_SKILL_RELATIVE_PATH = ".
|
|
18
|
-
export declare const CODEX_CHECK_SKILL_RELATIVE_PATH = ".
|
|
19
|
-
export declare const CODEX_PREPARE_SKILL_RELATIVE_PATH = ".
|
|
20
|
-
export declare const CODEX_VERIFY_SKILL_RELATIVE_PATH = ".
|
|
16
|
+
export declare const CODEX_STATUS_SKILL_RELATIVE_PATH = ".agents/skills/gdh-status/SKILL.md";
|
|
17
|
+
export declare const CODEX_MIGRATE_SKILL_RELATIVE_PATH = ".agents/skills/gdh-migrate/SKILL.md";
|
|
18
|
+
export declare const CODEX_CHECK_SKILL_RELATIVE_PATH = ".agents/skills/gdh-check/SKILL.md";
|
|
19
|
+
export declare const CODEX_PREPARE_SKILL_RELATIVE_PATH = ".agents/skills/gdh-prepare/SKILL.md";
|
|
20
|
+
export declare const CODEX_VERIFY_SKILL_RELATIVE_PATH = ".agents/skills/gdh-verify/SKILL.md";
|
|
21
21
|
export declare const CURSOR_STATUS_SKILL_RELATIVE_PATH = ".cursor/skills/gdh-status/SKILL.md";
|
|
22
22
|
export declare const CURSOR_MIGRATE_SKILL_RELATIVE_PATH = ".cursor/skills/gdh-migrate/SKILL.md";
|
|
23
23
|
export declare const CURSOR_CHECK_SKILL_RELATIVE_PATH = ".cursor/skills/gdh-check/SKILL.md";
|
|
24
24
|
export declare const CURSOR_PREPARE_SKILL_RELATIVE_PATH = ".cursor/skills/gdh-prepare/SKILL.md";
|
|
25
25
|
export declare const CURSOR_VERIFY_SKILL_RELATIVE_PATH = ".cursor/skills/gdh-verify/SKILL.md";
|
|
26
26
|
export declare const CLAUDE_UPDATE_COMMAND_RELATIVE_PATH = ".claude/commands/gdh/update.md";
|
|
27
|
-
export declare const CODEX_UPDATE_SKILL_RELATIVE_PATH = ".
|
|
27
|
+
export declare const CODEX_UPDATE_SKILL_RELATIVE_PATH = ".agents/skills/gdh-update/SKILL.md";
|
|
28
28
|
export declare const CURSOR_UPDATE_SKILL_RELATIVE_PATH = ".cursor/skills/gdh-update/SKILL.md";
|
|
29
29
|
export declare const CLAUDE_SCAN_COMMAND_RELATIVE_PATH = ".claude/commands/gdh/scan.md";
|
|
30
|
-
export declare const CODEX_SCAN_SKILL_RELATIVE_PATH = ".
|
|
30
|
+
export declare const CODEX_SCAN_SKILL_RELATIVE_PATH = ".agents/skills/gdh-scan/SKILL.md";
|
|
31
31
|
export declare const CURSOR_SCAN_SKILL_RELATIVE_PATH = ".cursor/skills/gdh-scan/SKILL.md";
|
|
32
32
|
export declare const LOCAL_PATH_HINTS_RELATIVE_PATH = ".gdh-state/local-paths.json";
|
|
33
33
|
export declare const CODEX_PROJECT_CONFIG_RELATIVE_PATH = ".codex/config.toml";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAeA,OAAO,EAcL,KAAK,6BAA6B,EAClC,KAAK,4BAA4B,EACjC,KAAK,cAAc,EAGnB,KAAK,sCAAsC,EAE3C,KAAK,gCAAgC,EAIrC,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EAIvB,MAAM,WAAW,CAAC;AA2BnB,eAAO,MAAM,eAAe,wCAc1B,CAAC;AAEH,eAAO,MAAM,gBAAgB,wCAIoB,CAAC;AAClD,eAAO,MAAM,yBAAyB,cAAc,CAAC;AACrD,eAAO,MAAM,oCAAoC,oCAAoC,CAAC;AACtF,eAAO,MAAM,yBAAyB,cAAc,CAAC;AACrD,eAAO,MAAM,wBAAwB,qBAAqB,CAAC;AAC3D,eAAO,MAAM,yBAAyB,gCAAgC,CAAC;AACvE,eAAO,MAAM,kCAAkC,wCAAwC,CAAC;AACxF,eAAO,MAAM,iCAAiC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,17 +40,17 @@ export const PROJECT_MCP_RELATIVE_PATH = ".mcp.json";
|
|
|
40
40
|
export const CURSOR_MCP_RELATIVE_PATH = ".cursor/mcp.json";
|
|
41
41
|
export const CURSOR_RULE_RELATIVE_PATH = ".cursor/rules/gdh-agent.mdc";
|
|
42
42
|
export const CURSOR_ONBOARD_SKILL_RELATIVE_PATH = ".cursor/skills/gdh-onboard/SKILL.md";
|
|
43
|
-
export const CODEX_ONBOARD_SKILL_RELATIVE_PATH = ".
|
|
43
|
+
export const CODEX_ONBOARD_SKILL_RELATIVE_PATH = ".agents/skills/gdh-onboard/SKILL.md";
|
|
44
44
|
export const CLAUDE_STATUS_COMMAND_RELATIVE_PATH = ".claude/commands/gdh/status.md";
|
|
45
45
|
export const CLAUDE_MIGRATE_COMMAND_RELATIVE_PATH = ".claude/commands/gdh/migrate.md";
|
|
46
46
|
export const CLAUDE_CHECK_COMMAND_RELATIVE_PATH = ".claude/commands/gdh/check.md";
|
|
47
47
|
export const CLAUDE_PREPARE_COMMAND_RELATIVE_PATH = ".claude/commands/gdh/prepare.md";
|
|
48
48
|
export const CLAUDE_VERIFY_COMMAND_RELATIVE_PATH = ".claude/commands/gdh/verify.md";
|
|
49
|
-
export const CODEX_STATUS_SKILL_RELATIVE_PATH = ".
|
|
50
|
-
export const CODEX_MIGRATE_SKILL_RELATIVE_PATH = ".
|
|
51
|
-
export const CODEX_CHECK_SKILL_RELATIVE_PATH = ".
|
|
52
|
-
export const CODEX_PREPARE_SKILL_RELATIVE_PATH = ".
|
|
53
|
-
export const CODEX_VERIFY_SKILL_RELATIVE_PATH = ".
|
|
49
|
+
export const CODEX_STATUS_SKILL_RELATIVE_PATH = ".agents/skills/gdh-status/SKILL.md";
|
|
50
|
+
export const CODEX_MIGRATE_SKILL_RELATIVE_PATH = ".agents/skills/gdh-migrate/SKILL.md";
|
|
51
|
+
export const CODEX_CHECK_SKILL_RELATIVE_PATH = ".agents/skills/gdh-check/SKILL.md";
|
|
52
|
+
export const CODEX_PREPARE_SKILL_RELATIVE_PATH = ".agents/skills/gdh-prepare/SKILL.md";
|
|
53
|
+
export const CODEX_VERIFY_SKILL_RELATIVE_PATH = ".agents/skills/gdh-verify/SKILL.md";
|
|
54
54
|
export const CURSOR_STATUS_SKILL_RELATIVE_PATH = ".cursor/skills/gdh-status/SKILL.md";
|
|
55
55
|
export const CURSOR_MIGRATE_SKILL_RELATIVE_PATH = ".cursor/skills/gdh-migrate/SKILL.md";
|
|
56
56
|
export const CURSOR_CHECK_SKILL_RELATIVE_PATH = ".cursor/skills/gdh-check/SKILL.md";
|
|
@@ -63,10 +63,20 @@ export const CURSOR_VERIFY_SKILL_RELATIVE_PATH = ".cursor/skills/gdh-verify/SKIL
|
|
|
63
63
|
// INTENTIONALLY excluded from VERIFY_DRIFT_SCANNED_FILES (D-13) because the
|
|
64
64
|
// rendered bodies are version-agnostic by design.
|
|
65
65
|
export const CLAUDE_UPDATE_COMMAND_RELATIVE_PATH = ".claude/commands/gdh/update.md";
|
|
66
|
-
export const CODEX_UPDATE_SKILL_RELATIVE_PATH = ".
|
|
66
|
+
export const CODEX_UPDATE_SKILL_RELATIVE_PATH = ".agents/skills/gdh-update/SKILL.md";
|
|
67
67
|
export const CURSOR_UPDATE_SKILL_RELATIVE_PATH = ".cursor/skills/gdh-update/SKILL.md";
|
|
68
68
|
export const CLAUDE_SCAN_COMMAND_RELATIVE_PATH = ".claude/commands/gdh/scan.md";
|
|
69
|
-
export const CODEX_SCAN_SKILL_RELATIVE_PATH = ".
|
|
69
|
+
export const CODEX_SCAN_SKILL_RELATIVE_PATH = ".agents/skills/gdh-scan/SKILL.md";
|
|
70
|
+
const LEGACY_CODEX_SKILL_RELATIVE_PATHS = [
|
|
71
|
+
[".codex/skills/gdh-onboard/SKILL.md", renderCodexOnboardSkill, "gdh-onboard"],
|
|
72
|
+
[".codex/skills/gdh-status/SKILL.md", renderCodexStatusSkill, "gdh-status"],
|
|
73
|
+
[".codex/skills/gdh-migrate/SKILL.md", renderCodexMigrateSkill, "gdh-migrate"],
|
|
74
|
+
[".codex/skills/gdh-update/SKILL.md", renderCodexUpdateSkill, "gdh-update"],
|
|
75
|
+
[".codex/skills/gdh-check/SKILL.md", renderCodexCheckSkill, "gdh-check"],
|
|
76
|
+
[".codex/skills/gdh-prepare/SKILL.md", renderCodexPrepareSkill, "gdh-prepare"],
|
|
77
|
+
[".codex/skills/gdh-verify/SKILL.md", renderCodexVerifySkill, "gdh-verify"],
|
|
78
|
+
[".codex/skills/gdh-scan/SKILL.md", renderCodexScanSkill, "gdh-scan"],
|
|
79
|
+
];
|
|
70
80
|
export const CURSOR_SCAN_SKILL_RELATIVE_PATH = ".cursor/skills/gdh-scan/SKILL.md";
|
|
71
81
|
export const LOCAL_PATH_HINTS_RELATIVE_PATH = ".gdh-state/local-paths.json";
|
|
72
82
|
export const CODEX_PROJECT_CONFIG_RELATIVE_PATH = ".codex/config.toml";
|
|
@@ -138,6 +148,9 @@ export async function installSupportedAgentAdapters(targetPath, options = {}) {
|
|
|
138
148
|
if (action.kind === "ensure_symlink") {
|
|
139
149
|
await applySymlinkAction(action);
|
|
140
150
|
}
|
|
151
|
+
else if (action.kind === "remove_file") {
|
|
152
|
+
await applyRemoveFileAction(action);
|
|
153
|
+
}
|
|
141
154
|
else if (action.kind === "run_command") {
|
|
142
155
|
await applyRunCommandAction(action);
|
|
143
156
|
}
|
|
@@ -332,6 +345,7 @@ export function renderCursorRule() {
|
|
|
332
345
|
"",
|
|
333
346
|
"This repository uses GDH.",
|
|
334
347
|
"Follow the canonical repo-local entrypoint in [AGENTS.md](../../AGENTS.md), then load the canonical guidance index at [docs/agent/README.md](../../docs/agent/README.md) before substantive work.",
|
|
348
|
+
"For runtime bridge usage, load [docs/agent/authoring-and-validation.md](../../docs/agent/authoring-and-validation.md) and follow its runtime bridge section.",
|
|
335
349
|
"Do not duplicate or override the canonical GDH guidance chain here.",
|
|
336
350
|
"",
|
|
337
351
|
].join("\n");
|
|
@@ -1566,7 +1580,7 @@ function inspectCodexSkillSurface(targetPath, relativePath, content, expectedCon
|
|
|
1566
1580
|
present: content !== null,
|
|
1567
1581
|
state: content === null ? "missing" : content === expectedContent ? "ready" : "misconfigured",
|
|
1568
1582
|
summary: content === null
|
|
1569
|
-
? `Codex \`/${skillName}\` skill is missing and should install under .
|
|
1583
|
+
? `Codex \`/${skillName}\` skill is missing and should install under .agents/skills/.`
|
|
1570
1584
|
: content === expectedContent
|
|
1571
1585
|
? `Codex can discover the managed \`/${skillName}\` skill.`
|
|
1572
1586
|
: `Codex \`/${skillName}\` skill exists but no longer matches the expected managed GDH skill.`,
|
|
@@ -1707,7 +1721,7 @@ async function inspectCodexAdapter(targetPath, guidance, projectMcp, pinnedVersi
|
|
|
1707
1721
|
? "ready"
|
|
1708
1722
|
: "misconfigured",
|
|
1709
1723
|
summary: codexSkillContent === null
|
|
1710
|
-
? "Codex onboarding handoff is missing and should install `/gdh-onboard` under .
|
|
1724
|
+
? "Codex onboarding handoff is missing and should install `/gdh-onboard` under .agents/skills/."
|
|
1711
1725
|
: expectedCodexOnboardSkill === null
|
|
1712
1726
|
? "Codex onboarding handoff cannot be validated yet: no `gdh_version` is pinned (run `gdh setup` or `gdh migrate --apply`)."
|
|
1713
1727
|
: codexSkillContent === expectedCodexOnboardSkill
|
|
@@ -2199,6 +2213,30 @@ function planCodexRepoInstallActions(targetPath, adapter, pinnedVersion, project
|
|
|
2199
2213
|
content: renderManagedCodexProjectConfig(existingContent, pinnedVersion),
|
|
2200
2214
|
}));
|
|
2201
2215
|
}
|
|
2216
|
+
actions.push(...planLegacyCodexSkillCleanupActions(targetPath, pinnedVersion));
|
|
2217
|
+
return actions;
|
|
2218
|
+
}
|
|
2219
|
+
function planLegacyCodexSkillCleanupActions(targetPath, pinnedVersion) {
|
|
2220
|
+
const actions = [];
|
|
2221
|
+
for (const [relativePath, renderFn, skillName] of LEGACY_CODEX_SKILL_RELATIVE_PATHS) {
|
|
2222
|
+
const absolutePath = path.join(targetPath, relativePath);
|
|
2223
|
+
const content = fsSync.existsSync(absolutePath)
|
|
2224
|
+
? fsSync.readFileSync(absolutePath, "utf8")
|
|
2225
|
+
: null;
|
|
2226
|
+
if (content === null || content !== renderFn(pinnedVersion)) {
|
|
2227
|
+
continue;
|
|
2228
|
+
}
|
|
2229
|
+
actions.push(createInstallAction({
|
|
2230
|
+
agent: "codex",
|
|
2231
|
+
kind: "remove_file",
|
|
2232
|
+
scope: "repo",
|
|
2233
|
+
targetPath,
|
|
2234
|
+
relativePath,
|
|
2235
|
+
state: "planned",
|
|
2236
|
+
mode: "delete",
|
|
2237
|
+
summary: `Remove legacy managed Codex \`/${skillName}\` skill from .codex/skills after installing the documented .agents/skills location.`,
|
|
2238
|
+
}));
|
|
2239
|
+
}
|
|
2202
2240
|
return actions;
|
|
2203
2241
|
}
|
|
2204
2242
|
function planCodexUserInstallActions(targetPath, projectMcp, integrationRootPath, pinnedVersion) {
|
|
@@ -2415,6 +2453,12 @@ async function applyWriteFileAction(action) {
|
|
|
2415
2453
|
await fs.mkdir(path.dirname(action.absolutePath), { recursive: true });
|
|
2416
2454
|
await fs.writeFile(action.absolutePath, action.content ?? renderCursorRule(), "utf8");
|
|
2417
2455
|
}
|
|
2456
|
+
async function applyRemoveFileAction(action) {
|
|
2457
|
+
if (action.absolutePath === null) {
|
|
2458
|
+
throw new Error("Remove-file install action is missing an absolute path.");
|
|
2459
|
+
}
|
|
2460
|
+
await fs.rm(action.absolutePath, { force: true });
|
|
2461
|
+
}
|
|
2418
2462
|
async function applyRunCommandAction(action) {
|
|
2419
2463
|
const [command, ...args] = action.command ?? [];
|
|
2420
2464
|
if (!command) {
|
|
@@ -2512,6 +2556,8 @@ export function renderManagedCodexProjectSection(pinnedVersion) {
|
|
|
2512
2556
|
"[mcp_servers.gdh]",
|
|
2513
2557
|
'command = "npx"',
|
|
2514
2558
|
`args = ["-y", "@skillcap/gdh@${pinnedVersion}", "mcp", "serve"]`,
|
|
2559
|
+
"startup_timeout_sec = 30",
|
|
2560
|
+
"tool_timeout_sec = 300",
|
|
2515
2561
|
].join("\n");
|
|
2516
2562
|
}
|
|
2517
2563
|
export function renderManagedCodexProjectConfig(existingContent, pinnedVersion) {
|
|
@@ -3048,7 +3094,8 @@ function inspectMcpManifestLifecycleSurface(targetPath, mcpEnabled, adapterStatu
|
|
|
3048
3094
|
}
|
|
3049
3095
|
const claudeMcp = findAdapterSurface(adapterStatus, "claude", "mcp_file");
|
|
3050
3096
|
const cursorMcp = findAdapterSurface(adapterStatus, "cursor", "mcp_file");
|
|
3051
|
-
const
|
|
3097
|
+
const codexMcp = findAdapterSurface(adapterStatus, "codex", "mcp_file");
|
|
3098
|
+
const probes = [claudeMcp, cursorMcp, codexMcp]
|
|
3052
3099
|
.filter((surface) => surface !== null)
|
|
3053
3100
|
.map((surface) => createVersionProbe({
|
|
3054
3101
|
targetPath,
|
|
@@ -3057,13 +3104,13 @@ function inspectMcpManifestLifecycleSurface(targetPath, mcpEnabled, adapterStatu
|
|
|
3057
3104
|
expectedVersion: null,
|
|
3058
3105
|
detectedVersion: surface.present ? surface.version : null,
|
|
3059
3106
|
}));
|
|
3060
|
-
const states = [claudeMcp?.state, cursorMcp?.state].filter((state) => state !== undefined);
|
|
3107
|
+
const states = [claudeMcp?.state, cursorMcp?.state, codexMcp?.state].filter((state) => state !== undefined);
|
|
3061
3108
|
if (states.length > 0 && states.every((state) => state === "ready")) {
|
|
3062
3109
|
return createLifecycleSurfaceStatus({
|
|
3063
3110
|
surface: "mcp_manifest",
|
|
3064
3111
|
management: "managed",
|
|
3065
3112
|
state: "compatible",
|
|
3066
|
-
summary: "Project MCP config files are aligned for Claude and Cursor.",
|
|
3113
|
+
summary: "Project MCP config files are aligned for Codex, Claude, and Cursor.",
|
|
3067
3114
|
reasons: [],
|
|
3068
3115
|
probes,
|
|
3069
3116
|
action: null,
|