Use when working on the qol-tray Controllers plugin or the host's reusable gamepad field, including browser Gamepad input, controller hardware profiles, Linux evdev supplementation, Bluetooth adapter and signal diagnostics, driver-specific fixes, and rumble or haptics testing.
How this skill is triggered — by the user, by Claude, or both
Slash command
/qol-plugin-controllers:qol-plugin-controllersThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Keep the Controllers plugin's native hardware knowledge separate from qol-tray's reusable browser gamepad UI. Preserve raw evidence and its unit or source before deriving a label.
Keep the Controllers plugin's native hardware knowledge separate from qol-tray's reusable browser gamepad UI. Preserve raw evidence and its unit or source before deriving a label.
| Area | Owner |
|---|---|
| Native detection, driver fixes, evdev supplementation, and Linux Bluetooth metadata | plugins/plugin-controllers/ |
Generic type = "gamepad" rendering, browser monitoring, profiles, haptics, and presentation | apps/qol-tray/ui/views/plugin-config/fields/ |
| Controller illustration geometry | apps/qol-tray/ui/assets/gamepad-* |
| Gamepad styling | apps/qol-tray/ui/styles/plugin-config.css |
| Host/plugin query contract | qol-config.toml, qol-runtime.toml, and the plugin daemon payload |
Do not move a hardware-specific daemon workaround into the generic field. Do not build a plugin-local copy of UI behavior that every gamepad field should share.
navigator.getGamepads().absolute_dbm or bredr_link_margin_db; never infer units from the number alone.mapping = "standard" as the browser's mapping claim, not proof that vendor extras or browser-specific quirks are canonical.qol-tray:qol-apps-testing for the canonical browser-hardware testing recipe.Match the narrowest stable identity available, define geometry and legends as profile data, and test profile selection, canonical controls, extra-button discovery, and geometric clearance. Do not rewrite raw button order globally for a quirk observed in one browser/device combination.
Add a typed field to the native model, serialize it in one contract payload, normalize it at the browser boundary, and render from the normalized model. Use qol-project:qol-arch-channels before introducing a new host/plugin communication path.
Keep capability detection separate from effect planning and playback. Test magnitudes, durations, fallback mode, cancellation, and cleanup independently.
qol-langs:preact-conventions for the htm/Preact implementation.qol-langs:rust-conventions for native platform code.qol-tray:qol-tray-ui-systems for host UI interaction and focus behavior.qol-tray:qol-apps-testing for test selection and browser-hardware fakes.Guides completion of development work by verifying tests, detecting environment, and presenting structured options for merge, PR, or cleanup.
Enforces test-driven development: write failing test first, then minimal code to pass. Use when implementing features or bugfixes.
Guides creation and editing of skills using test-driven development with pressure scenarios and subagents to verify agent compliance.
npx claudepluginhub qol-tools/qol-skills --plugin qol-plugin-controllers