agentleFS
real-link-techreal-link-tech/reallink-skills/skills/ue-trace-analysis/SKILL.md

ue-trace-analysis

Skill4 starsChanged 3 months agoMITView on GitHub

Analyze Unreal Engine `.utrace` files and turn them into actionable hotspot summaries. Use when Codex needs to inspect Unreal trace captures, summarize GPU frame cost, identify worst frames, compare trace files, or explain what a `.utrace` capture is showing. Trigger on requests about `.utrace`, Unreal Insights trace analysis, GPU frame spikes, hotspot breakdowns, or extending the bundled parser for deeper event inspection.

The file

We split this skill into the rules it gives an agent

11 rules. About 0 are common, 7 are distinctive, and 4 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈7

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use the bundled script for the first pass.

    line 8
  2. Very specific:

    If the user wants structured output, add --json-out <path>.

    line 14
  3. Distinctive:

    Use one of these paths:

    line 29
  4. Distinctive:

    If the DLL cannot be found, stop and report that clearly instead of inventing a trace summary.

    line 35
  5. Very specific:

    Prefer the script in scripts/analyze_utrace.py over ad hoc parsing.

    line 39
  6. Distinctive:

    Use this reading order:

    line 51
  7. Distinctive:

    When comparing multiple traces, run the script once per file and compare the same timeline fields across outputs instead of mixing values …

    line 58
  8. Very specific:

    If the user asks for deeper inspection, extend the parser in scripts/ and consult the copied C# reference implementation under …

    line 64
  9. Distinctive:

    Read usage-notes.md for CLI patterns, output semantics, and extension guidance.

    line 68
  10. Very specific:

    Read files under references/trace-csharp-src/ only when you need low-level format details or want to add new event parsing behavior.

    line 69
  11. Distinctive:

    Keep the answer grounded in the parsed fields.

    line 82

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

UE Trace Analysis

Use the bundled script for the first pass. It gives a deterministic summary of GPU timelines and keeps the reasoning grounded in parsed trace data instead of guesses.

Quick Start

  1. Confirm the user provided a .utrace file path.
  2. Run scripts/analyze_utrace.py <trace_path>.
  3. If the user wants structured output, add --json-out <path>.
  4. Summarize avg_ms, p95_ms, max_ms, worst_frame, top_inclusive, and top_exclusive.

Example:

python scripts/analyze_utrace.py C:\path\to\capture.utrace --json-out C:\path\to\summary.json

Workflow

1. Resolve the decoder DLL

The parser needs UnrealInsights-TraceLog.dll.

Use one of these paths:

  • Pass --decoder-dll <path>
  • Set UE_TRACE_LOG_DLL
  • Rely on common UE install paths already checked by the script

If the DLL cannot be found, stop and report that clearly instead of inventing a trace summary.

2. Run the parser first

Prefer the script in scripts/analyze_utrace.py over ad hoc parsing. It already handles:

  • transport packet demux
  • trace event type registration
  • important stream parsing
  • GpuProfiler.Frame and GpuProfiler.Frame2
  • inclusive and exclusive hotspot aggregation

By default the script creates a deterministic demux folder next to the trace file so it also works in workspace-restricted sandboxes. If you need to keep intermediate thread bins for debugging, add --keep-demux. If you want them under a known folder, also add --work-dir <dir>.

3. Interpret the results

Use this reading order:

  1. trace.packet_count, decoded_size_bytes, and thread_count for capture scale
  2. gpu.*.avg_ms, median_ms, p95_ms, and max_ms for distribution
  3. gpu.*.worst_frame for the concrete spike
  4. top_inclusive and top_exclusive for hotspot attribution

When comparing multiple traces, run the script once per file and compare the same timeline fields across outputs instead of mixing values from different timeline names.

4. Stay within the tool's current scope

The bundled parser currently gives the strongest coverage for GPU-frame summaries. Do not claim CPU, networking, object replication, or gameplay conclusions unless you extended the parser and verified them from parsed events.

If the user asks for deeper inspection, extend the parser in scripts/ and consult the copied C# reference implementation under references/trace-csharp-src/.

References

  • Read usage-notes.md for CLI patterns, output semantics, and extension guidance.
  • Read files under references/trace-csharp-src/ only when you need low-level format details or want to add new event parsing behavior.

Output Expectations

A good answer should usually include:

  • which trace file was analyzed
  • which GPU timeline had data
  • average, p95, and worst-frame cost
  • the top few inclusive hotspots
  • the top few exclusive hotspots
  • any limitation that affects confidence

Keep the answer grounded in the parsed fields. If the script fails, explain the failure and the next concrete unblock step.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.