xmlui-org/xmlui-claude/distill-trace
Claude Code and agent skill by xmlui-org/xmlui-claude
- community
Checking that the SKILL.md file is still in the repository.
Analyze or distill an XMLUI Inspector trace. Use when the user says "analyze the trace", "distill the trace", "what happened in the trace", or wants to understand an exported trace file.
Install
npx vskill@latest install xmlui-org/xmlui-claude/distill-traceSKILL.md
Distill an XMLUI Inspector Trace
The user has exported a trace JSON file from the XMLUI Inspector. Your job is to distill the raw log events into a concise step-by-step summary of what happened.
First, call the xmlui_find_trace MCP tool to locate the most recent trace export. Then read that file and follow the algorithm below.
Input format
The trace is a JSON array of log event objects. Each event has:
kind— event type:interaction,api:start,api:complete,state:changes,value:change,handler:start,handler:complete,toast,modal:show,modal:confirm,modal:cancel,navigate,app:trace,focus:change,component:vars:inittraceId— groups events that belong to the same user action (e.g.startup-abc123,i-xyz-456)perfTs— high-resolution timestamp (milliseconds since page load), use for orderingts— wall-clock timestamp (fallback ifperfTsmissing)
Key event kinds
`interaction` — a user action (click, keydown, dblclick, contextmenu). Fields:
interactionoreventName— the action typecomponentType,componentLabel— the XMLUI componentariaRole,ariaName— accessible role/name (e.g.button,textbox)uid— component test IDdetail— object withtargetTag,text,ariaRole,ariaName,key(for keydown), modifier keys (ctrlKey,shiftKey,metaKey,altKey)
`api:start` / `api:complete` — HTTP requests made by DataSources. Fields:
method— HTTP method (GET, POST, PUT, DELETE)urlorendpoint— the URLresult— response data (onapi:complete)body— request body (onapi:start, for POST/PUT/PATCH)status— HTTP status code
`value:change` — a form control's value changed. Fields:
component— component type (TextBox, Select, etc.)displayLabel— the new display valueariaName— accessible name of the controlcomponentLabel— component ID/label
`state:changes` — reactive state mutations. Fields:
diffJson— array of{ path, before, after }diffs
`toast` — notification shown to user. Fields:
toastType— success, error, warning, infomessage— toast text
`navigate` — page navigation. Fields:
from,to— URLs
`app:trace` — custom trace points emitted by the app. Fields:
label— trace point namedata— arbitrary data object
`handler:start` — event handler invoked. Fields:
eventName— handler event (click, submit, didChange, etc.)argsoreventArgs— handler arguments (form data, selected item, etc.)
Distillation algorithm
Step 1: Group by traceId
Group all events by their traceId. Sort groups by the earliest perfTs in each group.
Step 2: Classify each group
For each trace group:
Startup group (traceId starts with startup-):
- Extract all
api:completeevents → list of{ method, endpoint } - Extract
app:traceevents → group by label - Output as:
{ action: "startup", await: { api: [...] } }
Interaction group (contains an interaction event):
- The interaction event defines the step's
actionandtarget - Skip interactions on the Inspector itself (componentLabel = "XMLUI Inspector" or componentType = "XSInspector")
No interaction, no startup prefix → skip (internal framework events)
Step 3: Extract each interaction step
From the interaction event, build:
Then scan the other events in the same trace group for:
- API calls:
api:completeevents → addawait.apiarray of{ method, endpoint } - Navigation:
navigateevent → addawait.navigate: { from, to } - Value changes:
value:changeevents → addvalueChangesarray of{ component, value, ariaName } - Toasts:
toastevents → addtoastsarray of{ type, message } - Form data: from
handler:startwith eventName "submit", or fromapi:startwith POST/PUT/PATCH body → add totarget.formData - App traces:
app:traceevents → addappTracesgrouped by label
Step 4: Post-process
Collapse consecutive textbox keydowns into fill steps: If you see multiple consecutive keydown steps on the same textbox (same ariaName or componentId), collapse them into a single step:
Deduplicate double-clicks: If you see click + click + dblclick on the same target in sequence, keep only the dblclick.
Output format
Present the distilled trace as a numbered list of steps. For each step, describe:
- What the user did — the action and target (e.g. "Clicked the 'Santa Rosa Now' button")
- What happened — API calls made, data loaded, values changed, toasts shown
- Notable details — form data submitted, navigation, errors
Example output
For a weather app trace, the output might look like:
Step 1: Startup- API call: GET /api/weather?city=santa-rosa → returned current conditions- App loaded weather data for Santa RosaStep 2: Clicked the "San Francisco" button- API call: GET /api/weather?city=san-francisco → returned current conditions- Value changed: city selector updated to "San Francisco"- Weather display refreshed with San Francisco data
Important notes
- Focus on the user journey — what did the user do and what was the result?
- Ignore
component:vars:initevents (framework internals) - Ignore events with traceId
unknown(orphaned framework events) - For API endpoints, show the path portion — strip long query parameters unless they're meaningful
- If API results are present, summarize them briefly (row counts, key fields) rather than dumping raw data
- If you see errors (failed API calls, validation errors, error toasts), highlight them prominently
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingplugins/xmlui/skills/distill-trace/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/xmlui-org/xmlui-claude/distill-trace)