사용 방법
- 설치 명령을 복사하고 자신의 에이전트 환경에 설치하기 전에 소스 패키지를 확인하세요.
- 필요한 도구, 인증 정보, 지원 환경은 원본 문서에서 확인하세요.
- 입력과 원하는 산출물을 설명하고 출처와 결과를 대조하세요.
npx skills add https://github.com/remotion-dev/remotion --skill react-scan시작 전 확인
- 설치에는 모델 구독, API 한도, 파일 접근 권한이 포함되지 않습니다.
- 별점 수와 설치 수는 활동 지표이며 독립적인 품질·보안 검증이 아닙니다.
원본 저장소의 제목, 예시, 코드, 표, 링크, 이미지를 유지해 표시합니다.
React Scan
Use targeted captures to optimize measured Studio interactions. Do not infer a performance problem from source alone when the workflow can be reproduced.
Record a capture
Start from the repository root:
bun run react-scan:capture -- --label <short-kebab-case-description>Wait for Studio to finish building and settle. Perform one named interaction three times, then stop the command with Ctrl+C. Keep captures short so startup, HMR, and unrelated interactions do not dominate the data.
The command writes an ignored directory under out/react-scan/ containing:
metadata.json: capture context, git state, browser, and tested URL.summary.json: ranked component costs, render causes, slow commits, and
profiling-hook status.
events.ndjson: raw React Scan Lite events for deeper inspection.
out/react-scan/latest.json points to the newest capture.
React Scan replaces the React DevTools profiling-hook channel while active. Do not record with the React DevTools Timeline Profiler at the same time.
Analyze the evidence
Read metadata.json and summary.json first. Confirm the capture contains commit events and inspect profilingHooksStatuses; do not interpret a missing profiling channel as an idle application.
Prioritize components with high total self duration, repeated expensive renders, or a clear user-visible slow commit. Inclusive duration contains child work and can double-count a subtree, so use it to locate an expensive boundary, then use self duration and the raw tree to identify the actual work.
Use render causes as evidence, not automatic prescriptions:
- High
parentRenderCountwith no relevant prop, state, context, or hook change
suggests a stable memoization boundary.
- Repeated changed props suggest checking referential stability at the source
location before adding memoization.
- Hook, state, or context changes require following the owning update; wrapping
the component in memo() will not block them.
- Source locations identify JSX call sites. Search for the component definition
before editing.
For timeline-position findings, also read ../studio-perf/SKILL.md before changing subscriptions or memoization boundaries.
Verify an optimization
Preserve the baseline capture. After changing code, record the same interaction the same number of times with the same viewport and compare a new capture. Require an improvement in the relevant commit/component metrics without a regression in behavior. Do not optimize every re-render: cheap necessary renders are often preferable to added memoization complexity.
Report both capture directories, the measured before/after change, and the focused tests used to protect behavior.




