.codex/skills/inspect-elements/SKILL.md
Resolve on-screen Bitsocial Web DOM elements to React source files, line numbers, component names, and ownership stacks using the app's dev-only element-source helpers and playwright-cli. Use when Codex needs to inspect a page element, map a snapshot ref to source code, confirm which component rendered a node, or follow up after $profile-browsing finds a rerender hotspot and needs file-level attribution.
npx skillsauth add bitsocialnet/bitsocial-web inspect-elementsInstall 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.
Use this skill to jump from a concrete DOM node in the running Bitsocial Web app to the React file and component stack that produced it.
http://bitsocial.localhost:1355playwright-cli installedplaywright-cli.playwright-cli snapshot and choose the relevant element ref.playwright-cli -s=inspect eval "async el => JSON.stringify(await window.__ELEMENT_SOURCE__.resolve(el))" e7
The result includes:
source: the most useful file and line match for the elementcomponentName: the nearest meaningful React componentstack: ownership stack from the concrete node upwardtagName: the underlying DOM tagplaywright-cli -s=inspect open http://bitsocial.localhost:1355
playwright-cli -s=inspect goto http://bitsocial.localhost:1355/
playwright-cli -s=inspect eval "window.__ELEMENT_SOURCE__?.ready ?? false"
playwright-cli -s=inspect snapshot
If ready is false, wait a moment and evaluate again. If window.__ELEMENT_SOURCE__?.error is set, report that error instead of continuing.
Prefer snapshot refs because they target the exact live DOM node you just inspected.
playwright-cli -s=inspect eval "async el => JSON.stringify(await window.__ELEMENT_SOURCE__.resolve(el))" e7
Use this only when the element is easy to target and a snapshot ref is not practical.
playwright-cli -s=inspect eval "JSON.stringify(await window.__ELEMENT_SOURCE__.resolveBySelector('[data-testid=\"hero-cta\"]'))"
Useful when you have a screenshot or a visually obvious hotspot.
playwright-cli -s=inspect eval "JSON.stringify(await window.__ELEMENT_SOURCE__.resolveAtPoint(320, 420))"
playwright-cli -s=inspect eval "async el => { const info = await window.__ELEMENT_SOURCE__.resolve(el); return JSON.stringify({ ...info, formattedStack: window.__ELEMENT_SOURCE__.formatStack(info.stack, 5) }); }" e7
Use formattedStack when you need a short, readable trace for the final report.
When $profile-browsing reports a hot route or rerender-heavy area:
window.__ELEMENT_SOURCE__.resolve(...).source.filePath as the direct edit target and stack to understand parent ownership.This complements react-scan. react-scan tells you which components rerender too often. inspect-elements tells you which exact source file produced the node you are looking at.
source is null but stack exists, use the first useful stack frame rather than guessing.source and stack are empty, report that the node could not be resolved and pick a nearby parent element instead.development
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.
data-ai
Add or update i18next translation keys across all language files by spawning translator subagents. Use when the user asks to add a new translation, update existing translations, translate text, or work with i18n keys. Triggers on "translate", "add translation", "translation key", "i18n", "localization".
development
Test and debug Android wrapper features for Bitsocial Web using a local Android emulator or attached device. Manages emulator lifecycle, builds and installs the wrapper when commands are provided, runs focused checks, captures logcat diagnostics, and debugs WebView or TWA behavior. Use when the user asks to test Android, debug WebView behavior, run emulator tests, or says "test-apk".
testing
Review an open GitHub pull request, inspect bot and human feedback, decide which findings are valid, implement fixes on the PR branch, and merge the PR into master when it is ready. Use when the user says "check the PR", "address review comments", "review PR feedback", or "merge this PR".