← ClaudeAtlas

togglelisted

Toggle what each skill costs at session start — set on, name-only, user-invocable-only or off in settings.json skillOverrides, shown as a table of current levels first. Invoke only as /wss:toggle; it has no flag and is never inferred from a phrase. Levels apply from the next session start.
qupunto/wss · ★ 1 · Data & Documents · score 75
Install: claude install-skill qupunto/wss
# Toggling skill load levels `skillOverrides` in `settings.json` sets, per skill, how much of it a session pays for at start and who may invoke it. This skill edits that block and nothing else. [`WSS.OWNERSHIP.md`](../../wss/workflow/WSS.OWNERSHIP.md) lists `toggle` in its matrix, and its [resolve-pointers rule](../../wss/workflow/WSS.OWNERSHIP.md#a-skill-resolves-its-pointers-before-it-runs) governs the read below: take `skillOverrides` fresh from both files on every run, never from earlier in this session. | level | startup cost | model can invoke | `/name` works | `--wss-` flag | |---|---|---|---|---| | *(no entry)* | full description | yes | yes | fires | | `name-only` | name only | yes | yes | fires | | `user-invocable-only` | none | no | yes | inert | | `off` | none | no | no | inert | The flag column is this suite's own hook: `skill_disabled()` in `hooks/wss-shorthand-flags.sh` treats `off` and `user-invocable-only` as disabled, so those flags stop firing while the slash form (if any) survives. ## Procedure 1. **Read the current state**, in one call, from the project directory: ```bash S="${CLAUDE_CONFIG_DIR:-$HOME/.claude}" [ -x "$S/wss/tests/wss-doctor.sh" ] || S=$(ls -d "$S"/plugins/cache/*/wss/*/ 2>/dev/null | tail -1) bash "$S"/skills/toggle/assets/wss-skill-levels.sh ``` Those two resolution lines are [`contracts`](../contracts/SKILL.md)' canonical form. The script reads both settings files — a project entry wins over a user entry