You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -115,16 +115,16 @@ Codex users should open `/hooks` after install or update and approve the project
115
115
116
116
### Option 2: Cursor plugin (native)
117
117
118
-
Cursor users can install Impeccable as a native [Cursor plugin](https://cursor.com/docs/plugins) instead of copying skill folders. The plugin bundles the skill, its subagent, and a Cursor-native pre-write hook that blocks anti-pattern writes before they land.
118
+
Cursor users can install Impeccable as a native [Cursor plugin](https://cursor.com/docs/plugins) instead of copying skill folders. The plugin reuses the same `.cursor/skills/` harness tree, `.claude/agents/` subagent, and `.cursor/hooks.json`pre-write gate already shipped in this repo. No duplicate payload.
119
119
120
-
To try it locally before it lands in the Cursor marketplace, copy the generated plugin into your local plugins directory and reload Cursor:
120
+
To try it locally before it lands in the Cursor marketplace, symlink the repo into your local plugins directory and reload Cursor:
# Restart Cursor, or run "Developer: Reload Window"
125
125
```
126
126
127
-
Verify it loaded under **Customize** (skills, agents, and the hook should appear). The pluginis generated by the build from the same source as every other harness, so its version always matches the skill. Once published, it installs directly from the Cursor marketplace.
127
+
Verify the skill, agent, and hook under **Customize**. The `.cursor-plugin/plugin.json` manifest is generated by the build and points at those canonical paths. Once published, it installs directly from the Cursor marketplace.
128
128
129
129
### Option 3: Git Submodule
130
130
@@ -319,7 +319,7 @@ Installed hook surfaces:
319
319
320
320
- Claude Code: `.claude/settings.local.json` (gitignored, machine-local) runs `${CLAUDE_PROJECT_DIR}/.claude/skills/impeccable/scripts/hook.mjs`. A hook moved into the shared `settings.json` is honored in place.
321
321
- GitHub Copilot: `.github/hooks/impeccable.json` (committed, shared by the Copilot CLI and the cloud agent) runs `.github/skills/impeccable/scripts/hook.mjs`. The Copilot CLI activates it once the file is on the repository's default branch and the folder is trusted.
322
-
- Cursor: `.cursor/hooks.json` runs `.cursor/skills/impeccable/scripts/hook-before-edit.mjs`. Installed as a native Cursor plugin (Option 2 above), the same pre-write hook ships in the plugin's `hooks/hooks.json` and resolves against the bundled skill payload.
322
+
- Cursor: `.cursor/hooks.json` runs `.cursor/skills/impeccable/scripts/hook-before-edit.mjs`. Installed as a native Cursor plugin (Option 2 above), the manifest points at the same `.cursor/hooks.json` and canonical `.cursor/skills/` tree.
The installer preserves unrelated hook entries and settings. If a hook manifest is malformed, install/update aborts by default; rerun with `--force` to back up the malformed file as `.bak` and replace it.
0 commit comments