with one click
analyze-bundle
Convert Next.js bundle analyzer data to NDJSON and explore it
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Convert Next.js bundle analyzer data to NDJSON and explore it
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Use when the user asks to use d3k, run/dev/test/debug a web project with d3k, or reproduce a browser issue. Own the runtime: reuse or background-start d3k non-interactively, wait for readiness, use its project-stable managed Chrome profile, and inspect unified browser/server evidence.
Run DeepSec against a Vercel project checkout from dev3000. Use for one-click DeepSec setup, project context bootstrapping, bounded first-pass processing, and report generation.
| name | analyze-bundle |
| description | Convert Next.js bundle analyzer data to NDJSON and explore it |
| allowed-tools | Bash(node *) Bash(head:*) Bash(tail:*) Bash(grep:*) Bash(jq:*) Read |
Converts Next.js bundle analyzer binary .data files into grep/jq-friendly NDJSON.
This workflow pre-generates analyzer artifacts in:
.next/diagnostics/analyze/ndjson/routes.ndjson.next/diagnostics/analyze/ndjson/sources.ndjson.next/diagnostics/analyze/ndjson/output_files.ndjson.next/diagnostics/analyze/ndjson/module_edges.ndjson.next/diagnostics/analyze/ndjson/modules.ndjsonFocus on reading these files and using their evidence to prioritize changes.
| File | What's in it |
|---|---|
modules.ndjson | Global module registry (id, ident, path) |
module_edges.ndjson | Module dependency graph (from, to, kind: sync/async) |
sources.ndjson | Per-route source tree with sizes and environment flags |
chunk_parts.ndjson | Granular size data: one line per (source, output_file) pair |
output_files.ndjson | Per-route output files with aggregated sizes |
routes.ndjson | Route-level summaries |
jq -s 'sort_by(-.total_compressed_size)' .next/diagnostics/analyze/ndjson/routes.ndjson
jq -s '
group_by(.full_path)
| map(max_by(.compressed_size))
| sort_by(-.compressed_size)
| .[0:10]
| .[] | {full_path, compressed_size, size, route}
' .next/diagnostics/analyze/ndjson/sources.ndjson
grep '"client":true' .next/diagnostics/analyze/ndjson/sources.ndjson \
| grep '"js":true' \
| jq -s 'sort_by(-.compressed_size) | .[0:10] | .[] | {full_path, compressed_size}'
grep '"from":42,' .next/diagnostics/analyze/ndjson/module_edges.ndjson | jq .to
grep '"to":42,' .next/diagnostics/analyze/ndjson/module_edges.ndjson | jq .from
grep 'react-dom' .next/diagnostics/analyze/ndjson/modules.ndjson | jq '{id, path}'
grep '"route":"/"' .next/diagnostics/analyze/ndjson/output_files.ndjson \
| jq -s 'sort_by(-.total_compressed_size) | .[0:10] | .[] | {filename, total_compressed_size, num_parts}'
grep '"route":"/"' .next/diagnostics/analyze/ndjson/sources.ndjson \
| jq 'select(.parent_id == null)'