Agent skill
investigate
Guide diagnosis of a user-reported symptom — map to diagnostics, collect data, analyze
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/investigate-cwilliams5-alt-tabby
SKILL.md
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.
Step 1 — Understand the symptom
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.
Step 2 — Tell the user what to enable
Based on the classification, tell the user exactly what to do. Be specific — config key names, not vague instructions.
Always recommend
- FlightRecorder — should already be enabled by default (
[Diagnostics] FlightRecorder=true). Confirm with the user. If not enabled, this is the first thing to turn on.
Category-specific diagnostics
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).
Reproduction instructions
Tell the user:
- Enable the diagnostics listed above in
config.ini - Restart Alt-Tabby (diagnostics are read at startup)
- Reproduce the issue
- Immediately press F12 (or their configured FlightRecorder hotkey) to capture a dump
- Provide: the flight recorder dump from
release/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.
Step 3 — Analyze the data
When the user provides data:
Flight recorder dumps
Use the analysis method from /flight-recorder — trace event chains, check global state, find broken sequences, timing gaps.
Log files
Read the log files and correlate timestamps with the flight recorder dump. Look for:
- Events in the log that correspond to the symptom timeframe
- Error messages or unexpected states
- Patterns across multiple occurrences
Cross-correlation
The power is in combining sources:
- FlightRecorder shows what happened (event sequence)
- WinEventLog shows what Windows reported (focus changes, window events)
- EventLog shows what the keyboard hook saw (key events, state transitions)
- KomorebiLog shows what komorebi reported (workspace changes, window moves)
- PaintTimingLog shows how long rendering took
Match timestamps across sources to build the full picture.
Step 4 — Diagnose or escalate
If the cause is clear:
- Explain the root cause with evidence from the data
- Point to the relevant code (use query tools —
query_state.ps1for state machine issues,query_messages.ps1for message handlers,query_events.ps1 <code>to look up event field meanings and emitter functions) - Suggest whether this is a bug to fix or a known limitation
If the cause is unclear:
- Explain what you've ruled out
- Suggest additional diagnostics that might help
- Ask the user to reproduce with more verbose logging if available
When the user provides no data yet
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.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?