diff --git a/.changeset/auto-5d68181f8a0b6bf7.md b/.changeset/auto-5d68181f8a0b6bf7.md new file mode 100644 index 0000000..ca96e0e --- /dev/null +++ b/.changeset/auto-5d68181f8a0b6bf7.md @@ -0,0 +1,5 @@ +--- +"ketchup": patch +--- + +- Renamed slash commands to /ketchup-config and /ketchup-init for consistency with the Ketchup brand diff --git a/CLAUDE.md b/CLAUDE.md index 05b9851..7c02cf9 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -70,7 +70,7 @@ Both are markdown files with YAML frontmatter. Validators gate commits (ACK/NACK ### Installation Model -Ketchup runs as a Claude Code plugin. Install via `/plugin marketplace add BeOnAuto/auto-plugins` followed by `/plugin install ketchup`, or as a local plugin via `claude --plugin-dir /path/to/ketchup`. The plugin is opt-in per repository: hooks are inactive until the user runs `/ketchup:init`, which creates `.ketchup/` with default config. Without initialization, session-start shows a non-blocking hint. The plugin provides validators, reminders, and hook scripts. Projects can add local overrides in `.ketchup/`. Existing `.claude-auto/` directories from the legacy package name auto-rename to `.ketchup/` on first session-start (see `src/migrate.ts`). +Ketchup runs as a Claude Code plugin. Install via `/plugin marketplace add BeOnAuto/auto-plugins` followed by `/plugin install ketchup`, or as a local plugin via `claude --plugin-dir /path/to/ketchup`. The plugin is opt-in per repository: hooks are inactive until the user runs `/ketchup-init`, which creates `.ketchup/` with default config. Without initialization, session-start shows a non-blocking hint. The plugin provides validators, reminders, and hook scripts. Projects can add local overrides in `.ketchup/`. Existing `.claude-auto/` directories from the legacy package name auto-rename to `.ketchup/` on first session-start (see `src/migrate.ts`). ## Coding Patterns diff --git a/README.md b/README.md index 7f617b7..894fd59 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ Inside any Claude Code session: claude --plugin-dir /path/to/ketchup ``` -Claude Code sets `CLAUDE_PLUGIN_ROOT` and `CLAUDE_PLUGIN_DATA` automatically. Run `/ketchup:init` inside a session to activate per-project configuration, validators, and logging. +Claude Code sets `CLAUDE_PLUGIN_ROOT` and `CLAUDE_PLUGIN_DATA` automatically. Run `/ketchup-init` inside a session to activate per-project configuration, validators, and logging. ## Quick Start @@ -72,7 +72,7 @@ claude --plugin-dir /path/to/ketchup After installation, Claude will mention that Ketchup is available. To activate it in a project: ``` -/ketchup:init +/ketchup-init ``` This creates `.ketchup/` with default configuration. You can add it to `.gitignore` for personal use, or commit it for the whole team. @@ -142,10 +142,10 @@ Higher `priority` = appears first. Project-local files are loaded alongside plug Toggle validators and reminders without editing files: ```bash -/ketchup:config show -/ketchup:config validators disable no-comments -/ketchup:config reminders priority my-reminder 200 -/ketchup:config reminders add my-rule --hook UserPromptSubmit --priority 50 --content "Always use early returns" +/ketchup-config show +/ketchup-config validators disable no-comments +/ketchup-config reminders priority my-reminder 200 +/ketchup-config reminders add my-rule --hook UserPromptSubmit --priority 50 --content "Always use early returns" ``` --- diff --git a/docs/configuration.md b/docs/configuration.md index 44e4281..a2dac9a 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -113,13 +113,13 @@ Patterns use [micromatch](https://github.com/micromatch/micromatch) glob syntax. ## Managing Configuration -Configuration is managed via the `/ketchup:config` skill from within a Claude Code session: +Configuration is managed via the `/ketchup-config` skill from within a Claude Code session: ``` -/ketchup:config show # View current configuration -/ketchup:config set # Update a setting -/ketchup:config validators # List active validators -/ketchup:config reminders # List active reminders +/ketchup-config show # View current configuration +/ketchup-config set # Update a setting +/ketchup-config validators # List active validators +/ketchup-config reminders # List active reminders ``` --- diff --git a/docs/getting-started.md b/docs/getting-started.md index 0b004b4..fb61704 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -41,13 +41,13 @@ Claude will mention that Ketchup is available but not yet active. ## Step 2: Activate in Your Project ``` -/ketchup:init +/ketchup-init ``` This creates `.ketchup/` with default configuration. Then verify: ``` -/ketchup:config show +/ketchup-config show ``` Ketchup is now active with commit validation, reminders, deny-lists, and auto-continue. @@ -174,5 +174,5 @@ See the [transformation story](/origin-story#the-transformation) for the complet Having issues? See the [Configuration Guide](/configuration#troubleshooting) for common problems and solutions, or run: ``` -/ketchup:config show +/ketchup-config show ``` diff --git a/docs/index.md b/docs/index.md index dd59913..c44d2b9 100644 --- a/docs/index.md +++ b/docs/index.md @@ -102,7 +102,7 @@ From within a Claude Code session: ### 2. Initialize ``` -/ketchup:init +/ketchup-init ``` This creates `.ketchup/` with default configuration, seeded with the 20+ validators and 9+ reminders. diff --git a/docs/installation.md b/docs/installation.md index cb9bd11..ed6f21b 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -30,7 +30,7 @@ claude --plugin-dir /path/to/ketchup After installing the plugin, Claude will mention that Ketchup is available. To activate it: ``` -/ketchup:init +/ketchup-init ``` This creates the following structure in your project: @@ -56,20 +56,20 @@ See the [Reminders Guide](/reminders-guide) and [Validators Guide](/validators-g After installing the plugin, use the config skill to check the current state: ``` -/ketchup:config show +/ketchup-config show ``` --- ## Configuration -All configuration is managed via the `/ketchup:config` skill: +All configuration is managed via the `/ketchup-config` skill: ``` -/ketchup:config show # View current configuration -/ketchup:config set # Update a setting -/ketchup:config validators # List active validators -/ketchup:config reminders # List active reminders +/ketchup-config show # View current configuration +/ketchup-config set # Update a setting +/ketchup-config validators # List active validators +/ketchup-config reminders # List active reminders ``` Configuration is stored in `.ketchup/state.json`. @@ -134,6 +134,6 @@ After installation: If you run into issues: -1. Run `/ketchup:config show` to check configuration state +1. Run `/ketchup-config show` to check configuration state 2. Check `.ketchup/logs/` for detailed error messages 3. Report persistent issues at [GitHub Issues](https://github.com/BeOnAuto/ketchup/issues) diff --git a/docs/operational-concerns.md b/docs/operational-concerns.md index c44dff1..576f9a3 100644 --- a/docs/operational-concerns.md +++ b/docs/operational-concerns.md @@ -32,7 +32,7 @@ Each call is bounded by Claude's response time on a short structured-output prom **If latency matters more than thoroughness:** - Reduce `validateCommit.batchCount` in `.ketchup/state.json` (raise from 3 to 5 or 7 to fewer total calls) -- Disable validators you don't need: `/ketchup:config validators disable ` +- Disable validators you don't need: `/ketchup-config validators disable ` - Set `validateCommit.mode` to `warn` instead of `strict` (NACK becomes a warning, doesn't block) --- @@ -43,7 +43,7 @@ It happens. The subagent occasionally returns a NACK for a reason that's wrong, 1. **The subagent can only return JSON** (`{"decision":"ACK"}` or `{"decision":"NACK","reason":"..."}`). Unparseable output is treated as ACK by default, so a malformed response doesn't block your commit. 2. **The appeal system** is the bounded override. Add `[appeal: ]` to the commit message and a separate `appeal-system` validator re-evaluates the NACK with your reason in context. Either the appeal is accepted and the commit proceeds, or it's rejected with the reason logged. Not a bypass; a formal re-evaluation that leaves a trail. -3. **You can disable noisy validators** at runtime: `/ketchup:config validators disable testing-weak-assertions`. No fork, no rebuild. +3. **You can disable noisy validators** at runtime: `/ketchup-config validators disable testing-weak-assertions`. No fork, no rebuild. In our own usage the appeal rate is low single-digit percent of NACKs. We'll publish the observed rate once dogfooding is stable. @@ -89,7 +89,7 @@ Three ways: ```bash # Inside Claude Code -/ketchup:config validators disable testing-weak-assertions +/ketchup-config validators disable testing-weak-assertions ``` ```bash diff --git a/docs/reminders-guide.md b/docs/reminders-guide.md index ee81b89..eaf1baa 100644 --- a/docs/reminders-guide.md +++ b/docs/reminders-guide.md @@ -391,7 +391,7 @@ Commit project reminders (not personal preferences): See which reminders are active from within a Claude Code session: ``` -/ketchup:config reminders +/ketchup-config reminders ``` ### Test Reminder Loading diff --git a/docs/validators-guide.md b/docs/validators-guide.md index e092a08..acb810a 100644 --- a/docs/validators-guide.md +++ b/docs/validators-guide.md @@ -458,7 +458,7 @@ Consider NACK only if performance is critical for this change. From within a Claude Code session: ``` -/ketchup:config validators +/ketchup-config validators ``` ### Temporarily Disable diff --git a/skills/config/SKILL.md b/skills/config/SKILL.md index 90530e8..dda0496 100644 --- a/skills/config/SKILL.md +++ b/skills/config/SKILL.md @@ -1,5 +1,5 @@ --- -name: config +name: ketchup-config description: Manage Ketchup configuration. Toggle validators, reminders, set hook options. user-invocable: true argument-hint: show | set | validators [enable|disable|reset] | reminders [enable|disable|priority|reset|add] diff --git a/skills/init/SKILL.md b/skills/init/SKILL.md index da98904..f33d7ed 100644 --- a/skills/init/SKILL.md +++ b/skills/init/SKILL.md @@ -1,5 +1,5 @@ --- -name: init +name: ketchup-init description: Initialize Ketchup in the current repository user-invocable: true ---