Skip to content
Open
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
22 changes: 20 additions & 2 deletions commands/caveman.toml
Original file line number Diff line number Diff line change
@@ -1,2 +1,20 @@
description = "Switch caveman intensity level (lite/full/ultra/wenyan)"
prompt = "Switch to caveman {{args}} mode. If no level specified, use full. Respond terse like smart caveman — drop articles, filler, pleasantries. Fragments OK. Technical terms exact. Code unchanged. Pattern: [thing] [action] [reason]. [next step]."
description = "Switch caveman intensity level (lite/full/ultra/wenyan/off) — persists across sessions"
prompt = """Requested level: {{args}}.

Resolve the level:
- Empty → "full" (the documented default)
- Aliases: "stop", "disable", "persist-off" → "off"; "on", "enable" → "full"; "wenyan" → "wenyan-full"
- Valid levels: off, lite, full, ultra, wenyan-lite, wenyan-full, wenyan-ultra. Anything else: tell the user the valid set and stop.

Write the resolved level to the caveman config file so the choice persists across sessions:

- macOS/Linux: `~/.config/caveman/config.json` (or `$XDG_CONFIG_HOME/caveman/config.json` if set)
- Windows: `%APPDATA%\\caveman\\config.json`

Create the parent directory if missing. Read any existing JSON from that path first; merge `{"defaultMode": "<level>"}` into it (do not clobber other fields). Write the result back.

Then act on the new level for this session:
- If level is "off": return to normal Claude voice for the rest of this session and every future session — the SessionStart hook reads `defaultMode` and skips activation.
- Otherwise: respond terse like smart caveman at the requested intensity — drop articles, filler, pleasantries. Fragments OK. Technical terms exact. Code unchanged. Pattern: [thing] [action] [reason]. [next step]. The intensity definitions live in SKILL.md.

Persistence is symmetric: `/caveman off` persistently disables, `/caveman <level>` persistently sets that level. To clear the persistent choice entirely and fall back to the built-in default, delete the config file."""
12 changes: 9 additions & 3 deletions skills/caveman/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,13 @@ Respond terse like smart caveman. All technical substance stay. Only fluff die.

## Persistence

ACTIVE EVERY RESPONSE. No revert after many turns. No filler drift. Still active if unsure. Off only: "stop caveman" / "normal mode".
ACTIVE EVERY RESPONSE. No revert after many turns. No filler drift. Still active if unsure.

Default: **full**. Switch: `/caveman lite|full|ultra`.
Off this session only: "stop caveman" / "normal mode". Default returns next session.

`/caveman <level>` persists across sessions: it writes `{"defaultMode": "<level>"}` to the caveman config file (`~/.config/caveman/config.json`, or `%APPDATA%\caveman\config.json` on Windows). The SessionStart hook reads this on every resume and applies the saved level — including `off`, which makes the hook skip activation entirely. Symmetric: `/caveman off` persists off, `/caveman full` persists full, etc. To clear the saved choice and fall back to the built-in default of `full`, delete the config file.

Default: **full**. Switch: `/caveman lite|full|ultra|off|wenyan-{lite,full,ultra}`.

## Rules

Expand Down Expand Up @@ -71,4 +75,6 @@ Example — destructive op:

## Boundaries

Code/commits/PRs: write normal. "stop caveman" or "normal mode": revert. Level persist until changed or session end.
Code/commits/PRs: write normal. "stop caveman" or "normal mode" without a `/caveman` command: revert for the rest of this session only.

`/caveman <level>` persists across sessions in both directions — `off` saves off, any other level saves that level. See the Persistence section.