mirror of
https://github.com/obra/superpowers.git
synced 2026-06-29 05:59:04 +08:00
Keep Codex hooks manifest in plugin metadata
Prompt: Jesse questioned whether the PR should remove the hooks config from the Codex plugin manifest. Runtime investigation showed Codex accepts a committed plugin manifest with hooks and installs the plugin successfully. Removing the field changes behavior: Codex falls back to the default hooks/hooks.json, which uses the non-Codex session-start hook and CLAUDE_PLUGIN_ROOT path, instead of hooks/hooks-codex.json and the session-start-codex script. Changes: restore .codex-plugin/plugin.json hooks to ./hooks/hooks-codex.json and update the Codex marketplace manifest test to require that Codex-specific hook pointer instead of rejecting hooks. Validation: bash tests/codex/test-marketplace-manifest.sh; scripts/lint-shell.sh tests/codex/test-marketplace-manifest.sh; bash tests/codex-plugin-sync/test-sync-to-codex-plugin.sh; bash tests/kimi/test-plugin-manifest.sh; bash tests/shell-lint/test-lint-shell.sh.
This commit is contained in:
committed by
Drew Ritter
parent
a17aaaef3a
commit
bfa3e4137a
@@ -21,6 +21,7 @@
|
|||||||
"workflow"
|
"workflow"
|
||||||
],
|
],
|
||||||
"skills": "./skills/",
|
"skills": "./skills/",
|
||||||
|
"hooks": "./hooks/hooks-codex.json",
|
||||||
"interface": {
|
"interface": {
|
||||||
"displayName": "Superpowers",
|
"displayName": "Superpowers",
|
||||||
"shortDescription": "Planning, TDD, debugging, and delivery workflows for coding agents",
|
"shortDescription": "Planning, TDD, debugging, and delivery workflows for coding agents",
|
||||||
|
|||||||
@@ -51,16 +51,11 @@ if not plugin_manifest.exists():
|
|||||||
|
|
||||||
manifest = json.loads(plugin_manifest.read_text(encoding="utf-8"))
|
manifest = json.loads(plugin_manifest.read_text(encoding="utf-8"))
|
||||||
assert_equal(manifest.get("name"), plugin.get("name"), "plugin manifest name")
|
assert_equal(manifest.get("name"), plugin.get("name"), "plugin manifest name")
|
||||||
|
assert_equal(
|
||||||
unsupported_manifest_fields = ["hooks"]
|
manifest.get("hooks"),
|
||||||
present_unsupported = sorted(
|
"./hooks/hooks-codex.json",
|
||||||
field for field in unsupported_manifest_fields if field in manifest
|
"Codex hooks manifest",
|
||||||
)
|
)
|
||||||
if present_unsupported:
|
|
||||||
raise AssertionError(
|
|
||||||
"unsupported Codex manifest fields present: "
|
|
||||||
+ ", ".join(present_unsupported)
|
|
||||||
)
|
|
||||||
|
|
||||||
print("Codex marketplace manifest looks good")
|
print("Codex marketplace manifest looks good")
|
||||||
PY
|
PY
|
||||||
|
|||||||
Reference in New Issue
Block a user