togglelisted
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