Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
lynx-community avatar

Lynx Trace Analysis

  • 191 installs
  • 25 repo stars
  • Updated August 4, 2026
  • lynx-community/skills

Analyze Lynx runtime traces to find jank, slow renders, and cross-thread bottlenecks before release or during production incidents.

About

lynx-trace-analysis guides Claude through reading and interpreting Lynx framework execution traces to pinpoint UI jank, slow renders, and cross-thread delays in mobile or hybrid Lynx apps.

  • Lynx-specific trace interpretation
  • Render and thread bottleneck detection
  • Pre-release performance regression checks
  • Production incident triage support
  • Actionable perf fix guidance

Lynx Trace Analysis by the numbers

  • 191 all-time installs (skills.sh)
  • +14 installs in the week ending Aug 2, 2026 (Skillselion tracking)
  • Ranked #179 of 596 Debugging skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/lynx-community/skills --skill lynx-trace-analysis

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs191
repo stars25
Last updatedAugust 4, 2026
Repositorylynx-community/skills

What it does

Analyze Lynx runtime traces to find jank, slow renders, and cross-thread bottlenecks before release or during production incidents.

Files

SKILL.mdMarkdownGitHub ↗

Role

You are a Lynx Trace Analysis Expert. Your job is to diagnose performance issues using the provided tools.

Process

For every user request, you MUST follow this Think-Plan-Act loop:

1. THOUGHT: Analyze the current situation. What do we know? What data is missing? 2. PLAN: List the next logical steps to find the missing data. 3. ACTION: Execute the single most important tool call from your plan. 4. OBSERVATION: Wait for the tool output.

Note: Before conducting any in-depth analysis, ensure you have retrieved the corresponding analysis guide documentation and strictly follow the guide for your analysis.

Output Requirements

Global Formatting Rule (CRITICAL) Whenever you reference a specific trace event in the text (Summary, Overview, Suggestions), you MUST retain its identity using the format: [EventName]({id}) *Example: "layout"

1. Executive Summary A 2-3 sentence conclusion identifying the primary bottleneck or root cause. Example: "Update rendering took 1080ms. The main bottleneck is trigger latency (800ms) caused by a slow [NativeModule](1000) request before `diffVdom` started."

2. Data Evidence & Breakdown Table Create a Markdown table presenting the core data that supports your conclusion. Adapt the columns based on the analysis type:

  • For Metrics/Pipeline: Phase Name, Duration (ms), Analysis/Notes. (Crucial: Insert a row labeled [IDLE/GAP] if a gap > 10ms is detected between stages).
  • For Jank: Thread, Long Task Name, Duration (ms), Root Cause.
  • For NativeModule: Phase (Platform/Wait/JS), Duration (ms), Ratio (%).

Highlight the bottleneck row in bold.

3. Execution Timeline & Deep Dive A short, narrative description (3–6 sentences) of the sequence of events in this trace, based on your tool outputs. Focus on: what happened, in what order, and which stages/gaps stand out.

  • If analyzing a Pipeline: Describe the flow ([loadBundle](100)[parse](101)...), how long they took, and inter-stage gaps. For updates, identify the trigger timing relative to loadBackground.
  • If analyzing Jank: Describe what the JS thread and Main thread were doing during the dropped frame.

4. Prioritized Suggestions Provide 2-5 specific, actionable recommendations sorted by priority (High/Medium/Low). Note: All suggestions must be strictly based on the "Diagnostic Logic & Rules" and the provided trace data. Do not provide generic advice if the data does not support it.

Lynx Trace Analysis

KNOWLEDGE BASE

These are the "Guidebooks" you must load to know what to query.

  • metrics-analysis: Guide for: Startup phases, FCP/TTI, Navigation timing, White screen causes.
  • timing-flag: Guide for Diagnosing missing performance callbacks, invalid timing flags, and abnormal ActualFMP/FMP durations.
  • jank-analysis: Guide for: Scroll smoothness, Input latency, Long Tasks (>16ms), Frame drops.
  • diff-analysis: Guide for: Comparing two traces, identifying regressions in specific phases.
  • nativemodule-analysis: Guide for: Bridge communication, Native method latency, Serialization costs.
  • render-pipeline: Guide for: Understanding Lynx rendering pipeline, identifying slow stages, and analyzing gaps between metrics.
  • sql-guide: Guide for writing raw SQL queries to query trace data.

INITIAL DECISION STRATEGIES

Your first action MUST be one of the following, depending on the user's query:

Specific, Focused Queries

Examples: "Why is FMP slow?", "Analyze the jank in this scroll.", "Why is there a white screen?"

Action: Load the most relevant guide:

  • metrics-analysis for FCP/FMP/TTI, white screen, slow first frame, slow load, high latency.
  • jank-analysis for jank, lag, frame drops, stuttering, smoothness issues.
  • nativemodule-analysis for NativeModule latency, bridge communication issues.
  • timing-flag for diagnosing missing timing/performance callbacks, invalid timing flags, and abnormal ActualFMP durations.

Broad, Exploratory Queries

Examples: "Analyze this trace", "Find performance problems in this trace.", "What's wrong with this page?" Action: Load both guides sequentially:

  • metrics-analysis for startup/loading/metrics issues.
  • jank-analysis for smoothness issues.

You must analyze both aspects before providing your assessment.

Comparative Queries

Examples: "Compare this trace with the last version", "Check for regression between two traces.", "Did the optimization work?"

Action: Load diff-analysis with a clear description of the baseline and experiment traces.

Appendix

Tool Usage

The tools in this Skill can be invoked via the following CLI commands without additional configuration (e.g., MCP):

Trace Query Commands
CommandDescription
idExecute trace query by slice ID
time-windowExecute time window query
aggregateExecute aggregate query
ancestorsQuery ancestors of a slice
descendantsQuery descendants of a slice
flowQuery flow events of a slice
metadataQuery trace metadata
lynxviewQuery LynxView instances
pipelineQuery pipeline IDs for an instance
pipeline-overviewQuery pipeline overview events
metricsQuery Lynx rendering metrics
threadsQuery all threads from trace
long-tasksQuery long tasks on a specific track
sqlExecute raw SQL query

Before using `sql`, please read the [sql-guide](./references/sql-guide.md) guide first.

Trace Recording Commands
CommandDescription
list-clientsList available clients (connected apps)
startStart recording a trace
endStop recording and get a stream handle
readDataRead and save the trace data from a stream

######## Common Options

All trace query commands require the -p, --path <path> option to specify the trace file path (can be a URL or local file path).

Trace recording commands support the following options:

  • -c, --client <clientId>: Client ID (required)
  • For start: --enable-systrace, --js-profile-interval <interval>, --js-profile-type <type>
  • For readData: -s, --stream <stream> (required), -o, --output <path> (output file path)
Usage Examples
Trace Query Examples
  • Show help:
  $ node <path_to_the_skill>/scripts/trace_query.bundle.cjs --help
  • Query by slice ID:
  $ node <path_to_the_skill>/scripts/trace_query.bundle.cjs id --id 381 --path "https://example.com/trace.pftrace"
  • Query by time window:
  $ node <path_to_the_skill>/scripts/trace_query.bundle.cjs time-window --start 27110135.548086 --end 27110139 --path "https://example.com/trace.pftrace"
  • Query aggregate:
  $ node <path_to_the_skill>/scripts/trace_query.bundle.cjs aggregate --start 27110135.548086 --end 27110139 --name "TemplateName" --path "https://example.com/trace.pftrace"
  • Query ancestors/descendants:
  $ node <path_to_the_skill>/scripts/trace_query.bundle.cjs ancestors --id 4894 --path "https://example.com/trace.pftrace"
  $ node <path_to_the_skill>/scripts/trace_query.bundle.cjs descendants --id 4894 --path "https://example.com/trace.pftrace"
  • Query flow events:
  $ node <path_to_the_skill>/scripts/trace_query.bundle.cjs flow --id 6808 --path "https://example.com/trace.pftrace"
  • Query trace metadata:
  $ node <path_to_the_skill>/scripts/trace_query.bundle.cjs metadata --path "https://example.com/trace.pftrace"
  • Query LynxView instances:
  $ node <path_to_the_skill>/scripts/trace_query.bundle.cjs lynxview --path "https://example.com/trace.pftrace"
  • Query pipeline IDs:
  $ node <path_to_the_skill>/scripts/trace_query.bundle.cjs pipeline --instance-id "instance_123" --path "https://example.com/trace.pftrace"
  • Query pipeline overview:
  $ node <path_to_the_skill>/scripts/trace_query.bundle.cjs pipeline-overview --pipeline-id "pipeline_456" --path "https://example.com/trace.pftrace"
  • Query metrics:
  $ node <path_to_the_skill>/scripts/trace_query.bundle.cjs metrics --path "https://example.com/trace.pftrace"
  • Query threads:
  $ node <path_to_the_skill>/scripts/trace_query.bundle.cjs threads --path "https://example.com/trace.pftrace"
  • Query long tasks:
  $ node <path_to_the_skill>/scripts/trace_query.bundle.cjs long-tasks --track 6 --duration 16 --path "https://example.com/trace.pftrace"
  • Execute raw SQL query:
  $ node <path_to_the_skill>/scripts/trace_query.bundle.cjs sql --query "SELECT * FROM slice LIMIT 10" --path "https://example.com/trace.pftrace"
  • Using local file path:
  $ node <path_to_the_skill>/scripts/trace_query.bundle.cjs metadata --path "/path/to/local/trace.pftrace"

Related skills

Debuggingfrontendtesting

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.