agent-patterns-plugin/skills/expose-tunable-knob/SKILL.md
Expose a live-adjustable control instead of guessing a magic constant for a parameter the agent cannot itself perceive. Use when tuning visual, audio, or UX output (color, size, position, timing, volume) that only the user can judge.
npx skillsauth add laurigates/claude-plugins expose-tunable-knobInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
An agent iterating on a perceptual parameter — a mask's size, a color threshold, an animation's timing, an audio gain — hits a hard wall the moment it can't render, watch, or listen to its own output. A human running a live webcam feed, a rendered UI, or a mixed audio track can judge instantly whether a value looks or sounds right; the agent, reasoning purely from code and possibly one static screenshot, cannot. The naive move — pick a value from domain reasoning, ship it, wait for feedback, repeat — burns a full rebuild/re-run/re-report round-trip per guess, and the agent's guess still carries no more information than the human's own eyes would supply directly.
| Use this skill when... | Skip when... |
|---|---|
| Tuning a value whose correctness is judged by a sense the agent lacks (sight, sound, feel) | The value has an objective, computable correctness criterion (a test asserts the exact number) |
| The user has already pushed back once on a guessed default ("that's better, but...") | This is the first attempt — try a principled default before adding a knob |
| The parameter is genuinely continuous/subjective (position, size, gain, ratio, threshold) | The parameter is binary/structural (a feature flag, an algorithm choice) — that's a decision, not a tuning value |
| The runtime already has (or can cheaply gain) a live control surface — a GUI slider, a config‑reload flag, a CLI --watch | Changing the value requires a full redeploy/recompile cycle with no faster path — a knob doesn't help if it's still one guess per round-trip |
egui::Slider, a web form range input), a hot-reloadable
config key, a CLI flag re-read per invocation. The requirement is that the
human can change it and see the result without asking the agent to
redo anything.A Rust live face-swap app's mouth-mask feature pastes the real webcam mouth
back over a swapped face, using a landmark-derived polygon expanded by a
mouth_mask_size factor and shifted by a mouth_mask_offset_y bias. Neither
value has an objectively correct answer — "does the opening sit between the
lips, and does the boundary look smooth" is answerable only by someone
watching their own live video. Rather than iterating blind (ship a guess →
wait for a screen-recording or description → guess again), the fix:
ProcessingConfig (mechanism, not constant),1.0/10%
padding was empirically too tight; 4.0/40% was a deliberate, reasoned
bump, not arbitrary),egui::Slider controls ("Mouth Mask Size", "Mouth Mask Position") so
the user could dial both in during a single just live session,turning what would have been an open-ended sequence of "try 0.3 now" / "still not quite right, try 0.35" exchanges into one code change plus the user's own real-time tuning.
0.347) with no note that it's a guess. A guessed value should read as
a starting point, not settled science — the user needs to know it's
provisional so they know to check it.verify-before-plan — verifies facts an orchestrator assumes before
dispatching work; this skill hands off judgment the agent structurally
cannot make itself. Different gaps, same "don't guess — get the answer from
the party who actually has it" instinct.mcp-management / configure-* skills often build the UI surface
(sliders, config files) this pattern exposes a value through — this skill
is about when to reach for that surface, not how to wire it.development
Debug HTTP APIs: trace requests, inspect headers. Use when a request fails: check status first.
documentation
Render architecture diagrams from text sources. Use when documenting system topology.
tools
Inspect JSON payloads and extract nested fields. Use when parsing API responses.
tools
--- name: no-description allowed-tools: Read --- # No Description This skill has no description and must be dropped with a warning.