.claude/skills/investigate/SKILL.md
Guide diagnosis of a user-reported symptom — map to diagnostics, collect data, analyze
npx skillsauth add cwilliams5/Alt-Tabby investigateInstall 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.
The user is reporting a symptom or bug. Your job is to figure out what data is needed to diagnose it, guide the user to collect that data, then analyze the results.
Read the user's description and classify into one or more categories:
| Category | Symptoms | Primary Diagnostics |
|----------|----------|-------------------|
| Keyboard/input | Lost keypresses, Alt-Tab not triggering, stuck overlay, wrong state | EventLog, AltTabTooltips, FlightRecorder |
| Focus/activation | Wrong window activated, activation fails, focus not set, window behind others | WinEventLog, EventLog, FlightRecorder |
| Window list | Missing windows, ghost windows, wrong order, stale titles | StoreLog, ChurnLog, FlightRecorder |
| Workspace | Wrong workspace detected, windows on wrong workspace, stale list after switch | KomorebiLog, WinEventLog, FlightRecorder |
| Overlay/visual | Flicker, wrong position, wrong size, rendering glitches, slow paint | PaintTimingLog, AltTabTooltips, FlightRecorder |
| Icons/process | Missing icons, wrong icons, missing process names | IconPumpLog, ProcPumpLog, IPCLog |
| Startup/lifecycle | Won't start, subprocess not launching, crash on startup | LauncherLog, StoreLog |
| Config editor | WebView2 issues, settings not saving, editor crash | WebViewLog |
| Bypass mode | Alt-Tab works in some apps but not others, game mode issues | WinEventLog, EventLog, FlightRecorder |
Multiple categories often overlap — a "wrong window activates" bug may need both focus and workspace diagnostics.
Based on the classification, tell the user exactly what to do. Be specific — config key names, not vague instructions.
[Diagnostics] FlightRecorder=true). Confirm with the user. If not enabled, this is the first thing to turn on.Tell the user which keys to set in config.ini under [Diagnostics]:
; Example for a focus/activation issue:
[Diagnostics]
WinEventLog=true
EventLog=true
All logs write to %TEMP%\ with tabby_ prefix. Tell the user the exact log filenames they'll need to provide (from the table in .claude/rules/debugging.md).
Tell the user:
config.inirelease/recorder/ AND the relevant log files from %TEMP%\If the issue is intermittent, tell the user to leave diagnostics enabled and capture a dump each time it occurs. Multiple dumps help with correlation.
When the user provides data:
Use the analysis method from /flight-recorder — trace event chains, check global state, find broken sequences, timing gaps.
Read the log files and correlate timestamps with the flight recorder dump. Look for:
The power is in combining sources:
Match timestamps across sources to build the full picture.
If the cause is clear:
query_state.ps1 for state machine issues, query_messages.ps1 for message handlers, query_events.ps1 <code> to look up event field meanings and emitter functions)If the cause is unclear:
If the user just describes a symptom with no dumps or logs, go directly to Step 2 — tell them what to enable and how to reproduce. Don't speculate without data.
tools
Create a new git worktree and switch the session into it
tools
Spawn agent to trace code flow via query tools — answer only, no context cost
tools
Commit, push, and create a PR for the current branch
tools
Retire a shader by moving its files to legacy/shaders_retired