A packaging fix so the design hook loads in Codex.
+-
+
- Codex loads the plugin design hook again. The plugin-packaged hook manifest carried a top-level
descriptionfield that Codex's strict hook parser rejected, so the post-edit design check failed to register. That field is gone from the plugin artifact, and the hook now loads cleanly on Codex while staying identical for Claude Code.
+
A new anti-slop rule for Codex-style grid backgrounds, a bolder pass that respects your design system, and critique that stays independent across more harnesses.
- Decorative grid backgrounds are now a named tell. Impeccable refuses the two-axis CSS grid overlay built from hairline gradient lines and a repeating
background-size, the pattern Codex reaches for on almost any empty surface. Actual canvases, maps, blueprints, and measurement tools still get their grid; everything else gets real product structure or a plain surface.
diff --git a/tests/hook-build.test.mjs b/tests/hook-build.test.mjs
index cad22a5d0..0294d5001 100644
--- a/tests/hook-build.test.mjs
+++ b/tests/hook-build.test.mjs
@@ -197,6 +197,9 @@ describe('generated hook artifacts in repo', () => {
const manifest = readJson('plugin/hooks/hooks.json');
assert.deepEqual(manifest, buildClaudePluginHooksManifest());
+ // Codex loads bundled plugin hooks from this same file and rejects any
+ // top-level field other than `hooks` (issue #330).
+ assert.equal(manifest.description, undefined);
const handler = manifest.hooks.PostToolUse[0].hooks[0];
assert.equal(manifest.hooks.PostToolUse[0].matcher, 'Edit|Write|MultiEdit');