.claude/skills/profile/SKILL.md
Analyze speedscope profiles from Alt-Tabby's built-in profiler
npx skillsauth add cwilliams5/Alt-Tabby profileInstall 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.
Analyze a profiling session captured by Alt-Tabby's --profile build. The user may provide additional context (specific file, focus area, comparison instructions, or multiple files to analyze together).
Resolve the profile file(s) using the argument (if any):
release/recorder/, pick the newest profile_*.speedscope.json by modification timerelease/recorder/release/recorder/ for a matching fileprofile_*.speedscope.json files from today in release/recorder/Use ls -t release/recorder/profile_*.speedscope.json to find files. Confirm the resolved file path(s) to the user before analyzing.
Run these via python tools/query_profile.py <file>:
Summary (no flags) — always run first. Show the table to the user.
Reentrancy check (--reentrant) — always run. Flag any reentrant calls as potential bugs.
Deep dive — based on the summary, pick the top 2-3 functions by total time and run --function <name> on each. Use query_timers.ps1 to check if hot functions are timer callbacks — this helps interpret high call counts (timer-driven vs event-driven). Focus on:
User focus — if the user specified a focus area (e.g., "investigate animation draw times", "look at komorebi processing"), prioritize functions related to that area in the deep dive.
When analyzing multiple profiles:
Present findings as:
Keep it concise — tables over prose. The user knows the codebase.
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