Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add commands/iliaal/whetstone/skilloptgit clone --depth 1 https://github.com/iliaal/whetstoneWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00040 | $0.01578 |
| Opus 5 | $0.00020 | $0.00789 |
| Sonnet 5 | $0.00008 | $0.00316 |
| Haiku 4.5 | $0.00004 | $0.00158 |
Grade C, and why
skillopt scanned grade C with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Recursive force deletehighDestructive command
rm -rf with a variable or a broad path is one typo away from removing the wrong tree.
hazard that has let a target agent `rm -rf` fixtures and `git commit` in the host How it starts
The opening of the file, as written. The whole thing — 99 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/skillopt — run the SkillOpt process-skill optimizer
Optimize a Whetstone process skill via distillery/skillopt/. Full procedure
and rationale: distillery/skillopt/SKILLOPT-RUNBOOK.md.
Safety — read before --run
The optimizer drives a bypassPermissions target agent with its bash sandbox
disabled. Running it nested inside a Claude Code session is the documented
hazard that has let a target agent rm -rf fixtures and git commit in the host
repo (see the Safety section of distillery/skillopt/SKILLOPT-RUNBOOK.md).
Therefore:
- Default mode does NOT run the agent in-session — it validates + prints the exact command to run in a bare terminal.
--runexecutes in-session only after the rollout's_ensure_unsandboxedunsetsCLAUDE_CODE_COORDINATOR_MODE(confines each nested agent's Bash root to its out-of-repo tmpdir) AND a clean git checkpoint exists. Relative-path escape is closed by design; absolute-path access still is not — use--runonly on your own curated fixtures, and prefer the default.
Arguments
skill(defaultia-debugging) — the process skill to optimize.--fixtures <dir>(advanced) — override the fixture set named in the skill's config; defaults to whateverconfigs/whetstone/<skill>.yamlpoints at.--target <model>(default: the config's weak target) — override the weak target to optimize for; capable models saturatehard, leaving no room.--weight <λ>(default auto) — soft blend weight; must be< 1/n_val.--epochs N(default2).--run— execute in-session (hardened) instead of printing the command.
Procedure (follow exactly)
- Resolve the per-skill config.
CONFIG = distillery/skillopt/configs/whetstone/<skill>.yaml. If it does not exist, the skill is not onboarded — SkillOpt needs four pieces per skill: fixtures, aRUBRICS[<skill>]entry inskillopt/envs/whetstone/rubric.py, this config, and a seed (env.skill_init). Tell the user to onboard it (see the runbook §5) and STOP. Do not fall back todefault.yaml— that silently optimizes ia-debugging's skill against the wrong fixtures. ReadFIXDIRfrom the config'senv.tasks_root(atasks/dir) and setSETDIRto its parent — the fixture-set root, wherebuild_fixtures.pyandsplits/live (not insidetasks/). ConfirmFIXDIR, the siblingsplits/{train,val,test}/items.json, and$SETDIR/build_fixtures.pyexist.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 99 lines · 40 tokens per session scan C 85244f295d5a
skillopt is a command published in the GitHub repository iliaal/whetstone (32 stars, last pushed 4d ago), licensed MIT. It adds 40 tokens to every session and 1,578 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it C with 1 finding (recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other commands, from other repositories
build
Run full verification pipeline.
fest-show
Show festival progression (in-progress tasks, roadmap, and dependency view).
camera-ready
Convert an accepted anonymous-submission LaTeX paper (AAAI/AIES/ACM-style) to camera-ready and implement the accepted reviews. Use when a paper is accepted with no rebuttal and you need to de-anonymize, add copyright, turn on section numbering, implement each reviewer's minor revisions, optionally move proofs to a…
superpowers-execute
Execute the current GSD phase plan with Superpowers instead of gsd-execute-phase.
generate-rules
Generate development rules and standards into RULES.md.
config
Command "config" from sdebruyn/fabric-dw-mcp-cli, covering configuration & defaults, http retry budget, sql retry budget, mcp workspace allowlist {#mcp-workspace-allowlist} and mcp server log level.