Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/auto-196faaa2dd7eac9f.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"ketchup": patch
---

- Restored the `ketchup-` prefix on skill names so commands invoke correctly as `/ketchup:init` and similar
5 changes: 5 additions & 0 deletions .changeset/auto-8677c63e1a5befad.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"ketchup": patch
---

- Restored slash command namespacing so skills are invoked as /ketchup:init, /ketchup:review, etc.
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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.
Expand Down Expand Up @@ -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"
```

---
Expand Down
2 changes: 0 additions & 2 deletions skills/config/SKILL.md → commands/config.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
---
name: ketchup-config
description: Manage Ketchup configuration. Toggle validators, reminders, set hook options.
user-invocable: true
argument-hint: show | set <key> <value> | validators [enable|disable|reset] <name> | reminders [enable|disable|priority|reset|add] <name>
---

Expand Down
2 changes: 0 additions & 2 deletions skills/init/SKILL.md → commands/init.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
---
name: ketchup-init
description: Initialize Ketchup in the current repository
user-invocable: true
---

!`node "${CLAUDE_PLUGIN_ROOT}/dist/bundle/scripts/init.js"`
10 changes: 5 additions & 5 deletions docs/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 <key> <value> # Update a setting
/ketchup-config validators # List active validators
/ketchup-config reminders # List active reminders
/ketchup:config show # View current configuration
/ketchup:config set <key> <value> # Update a setting
/ketchup:config validators # List active validators
/ketchup:config reminders # List active reminders
```

---
Expand Down
6 changes: 3 additions & 3 deletions docs/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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
```
2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
16 changes: 8 additions & 8 deletions docs/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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 <key> <value> # Update a setting
/ketchup-config validators # List active validators
/ketchup-config reminders # List active reminders
/ketchup:config show # View current configuration
/ketchup:config set <key> <value> # Update a setting
/ketchup:config validators # List active validators
/ketchup:config reminders # List active reminders
```

Configuration is stored in `.ketchup/state.json`.
Expand Down Expand Up @@ -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)
6 changes: 3 additions & 3 deletions docs/operational-concerns.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 <name>`
- Disable validators you don't need: `/ketchup:config validators disable <name>`
- Set `validateCommit.mode` to `warn` instead of `strict` (NACK becomes a warning, doesn't block)

---
Expand All @@ -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: <reason>]` 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.

Expand Down Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion docs/reminders-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion docs/validators-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Loading