Skip to content
Back to skills

Preset Picker

ASecurity

Show which preset is running and switch between them - `off`, `conservative` (the recommended default for "carry less"), `medium`, `high`, `xhigh`. Use when the user asks which preset is set, to change what context-guru trims, to carry less context, or says /plugin configure is awkward for this.

  • 56 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 5, 2026
ai-agentsgobash

Security analysis

A100/100

Scanned October 5, 2026

npx -y skills add rossoctl/context-guru --skill preset-picker --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Preset Picker?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Preset Picker
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/rossoctl-preset-picker-context-guru/badge)](https://www.skillsdirectory.com/skills/rossoctl-preset-picker-context-guru)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: preset-picker
description: Show which preset is running and switch between them - `off`, `conservative` (the recommended default for "carry less"), `medium`, `high`, `xhigh`. Use when the user asks which preset is set, to change what context-guru trims, to carry less context, or says /plugin configure is awkward for this.
allowed-tools: Bash(${CLAUDE_PLUGIN_ROOT}/scripts/settings.py)
---

# Pick a preset

`/plugin configure` can set this too, but it is a blank options form: five fields, no
explanation, no sense of what `conservative` actually does before you pick it. This skill is that same
write — `settings.py preset` — made nameable and explainable, same reason
[`/context-guru:cache-strategy-picker`](../cache-strategy-picker/SKILL.md) exists for
`cache_strategy` rather than leaving it to the generic form too.

**You do not write the settings file, and you do not compose its contents.** `settings.py preset`
is the only thing that knows where the configured options actually live and how to update them
without disturbing anything else in that file.

## 1. Report what is in effect

```bash
"${CLAUDE_PLUGIN_ROOT}/scripts/settings.py" preset show
```

`file=(none)` means nothing has been configured yet and the plugin default (`off`) applies — not
a fault, just unset.

## 2. Offer the choices, one line each

```bash
"${CLAUDE_PLUGIN_ROOT}/scripts/settings.py" preset list
```

| Name | ELI5 |
|---|---|
| `off` | nothing runs, requests go through untouched |
| `conservative` | trims obvious waste — the safe first step into "carry less" |
| `medium` | `conservative` plus a cheap model that keeps only what looks relevant in recent tool output |
| `high` | `medium` plus a summarizer that compacts older turns once the context window is nearly full |
| `xhigh` | `high` plus a deep-adjudication sweep over turns whose cache has already gone cold — the deepest cut |

Recommend `conservative` to someone who wants to carry less context but hasn't said they want an
LLM pass: it is deterministic, so nothing about the request path depends on a model call
succeeding. `medium`, `high` and `xhigh` are an escalating ladder — each is a strict superset of
the one below it — so "somewhere in between" usually means one tier up from wherever they are now,
not a custom mix.

## 3. Switch

```bash
"${CLAUDE_PLUGIN_ROOT}/scripts/settings.py" preset set --name <name>
```

Writes into whichever settings file already holds this plugin's configured options, so it lands
where the running proxy will actually read it. If nothing is configured yet, it inherits whatever
scope THIS project's *routing* already uses (recorded when `/context-guru:install` ran, read back
via the same `resolve_install_scope()` the statusline skill uses) — a project routed at project
scope gets its preset there too, one routed at user scope gets it there, with no extra flag either
way. Only a project with no routing at all falls back to project-local, since there is nothing yet
to inherit. Pass `--user-scope` to deliberately diverge from that — a preset the user wants on
every project even though routing itself is project-scoped.

## 4. A restart is required

Like a cache-strategy change, this takes effect at the **next proxy start**, not this session.
Say so plainly rather than implying it applies immediately — `/context-guru:status` after a
restart is the way to confirm it stuck.

## Do not

- Do not invent a preset name. `settings.py preset list` is the authoritative set; anything else
  exits 2 with `reason=unknown_preset`.
- Do not push someone toward `high` or `xhigh` by default. `medium` is already the first tier that
  makes its own model calls and spends on its own; `high`/`xhigh` add a compaction-model summarizer
  on top. Offer them, don't default to them.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.