plugins/tui-master/skills/input-handling/SKILL.md
This skill should be used when the user asks about TUI input handling, raw mode, cbreak mode, terminal keyboard parsing, Esc vs Alt ambiguity, Ctrl-C, shortcuts, focus management, mouse events, scroll wheel, bracketed paste, paste safety, command palettes, forms, text editing, resize events, or keybinding design. PROACTIVELY activate for: raw mode, keyboard input, keybindings, mouse support, paste handling, focus model, terminal forms, text input, vim/emacs-style shortcuts, input conflicts, and cross-platform Windows/macOS/Linux input behavior. Provides: input architecture, shortcut rules, focus patterns, paste/mouse safety, and failure-mode triage.
npx skillsauth add JosiahSiegel/claude-plugin-marketplace input-handlingInstall 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.
Use this skill when a TUI reads keys, handles shortcuts, supports mouse, edits text, manages focus, or needs safe paste behavior.
Raw mode disables line discipline and changes signal behavior. Centralize it and restore it reliably. Verify behavior for Ctrl-C, Ctrl-Z/suspend where supported, EOF, resize, terminal close, and fatal exceptions. Passwords and tokens must not echo.
Good keybindings are discoverable, consistent, and conflict-aware.
q, Esc, or Ctrl-C for quit/cancel only when consistent with workflow risk.Every interactive element needs:
Enable bracketed paste for shells, editors, command palettes, and multiline inputs. Parse paste start/end markers and treat pasted text as data, not a sequence of commands. For mouse input, validate coordinates against the current layout and ignore stale events after resize.
| Symptom | Likely cause | Fix | |--|--|--| | Esc feels delayed | parser waiting to distinguish Alt prefix | tune timeout or use framework protocol support | | Ctrl-C does not exit | raw mode swallowed signal | map Ctrl-C explicitly and restore terminal | | Paste triggers actions | no bracketed paste or paste treated as keystrokes | enable paste protocol and route as text | | Mouse clicks wrong row | stale layout after resize or scroll | validate coordinates against current viewport | | Focus disappears | no focused fallback after removing widget | compute next eligible focus target |
references/input-protocols.md - Keyboard, mouse, paste, focus, and resize event details.references/keybinding-design.md - Shortcut design, conflict avoidance, and forms/editors.development
Use for Clerk sessions, tokens, webhooks, orgs, and security. PROACTIVELY activate for session tokens, JWT templates, getToken(), custom claims, pending sessions, multi-session UX, organizations, roles, permissions, system vs custom permissions, features/plans, MFA/passkeys/password policy/bot protection, Clerk webhooks, Svix signatures, verifyWebhook(), user/org sync, retries/replays, environment variables, custom domains, secret rotation, logs, and auth security reviews. Provides token semantics, webhook idempotency, authorization defaults, and hardening checklist.
tools
Use for Clerk in Next.js. PROACTIVELY activate for @clerk/nextjs setup, App Router auth()/currentUser(), clerkMiddleware(), proxy.ts/middleware.ts, createRouteMatcher(), protected pages/layouts/Route Handlers/Server Actions/API routes/tRPC, auth.protect() role/permission/token checks, ClerkProvider placement, server-only clerkClient, Link prefetch, redirects, 401/404 auth failures, custom domains, __clerk proxy paths, and deployment gotchas. Provides file patterns, server/client boundary rules, matcher templates, and production checks.
development
Use for Clerk frontend auth flows. PROACTIVELY activate for React, JavaScript, Vue, Nuxt, Astro, Expo, React Router, TanStack React Start, or SPA setup; ClerkProvider and publishable-key wiring; SignIn/SignUp/UserButton/UserProfile/OrganizationSwitcher; custom useUser/useAuth/useClerk/useSignIn/useSignUp/useSession/useOrganization flows; multi-session UX; cross-origin getToken() fetches; loading states, redirects, routing, CORS/cookies, or hydration bugs. Provides SDK selection, UI patterns, token-fetch templates, and frontend gotchas.
development
Use for Clerk dev/prod readiness, deployment, and multi-language implementation planning. PROACTIVELY activate for environment variables, pk_test/sk_test vs pk_live/sk_live, local dev, preview/staging/prod instances, domains/DNS, redirects, OAuth credentials, custom domains/proxy, authorizedParties, CSP, CORS/cookies, webhooks/tunnels, Vercel/Netlify/Cloudflare/API gateways, monitoring/troubleshooting, and backends in Node/Express/Fastify, Python/FastAPI/Django/Flask, Go, Ruby/Rails, Java/Spring, .NET, PHP/Laravel. Provides checklists, rollout plans, and language-portable patterns.