본문으로 건너뛰기
cccskills
무료GitHub에 공개

image-debt-scan

Find heavy image debt in public/img: both oversized raster photos (PNG/JPG) AND .svg files that are secretly base64 rasters (draw.io / editor exports, often 1 to 6 MB): map each to the MDX pages that reference it, and rank the best candidates to convert to lean brand SVGs. Use when asked to "find heavy images", "image debt scan", "what diagrams should we convert", or before a batch diagram-cleanup pass. Read-only reconnaissance that feeds the arbitrum-brand-svg-diagrams skill and the diagram-converter subagent.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

OffchainLabs/arbitrum-docs스타 252(GitHub 252 + cccskills 0)

실행 점수 미검증

설치 방법 보기

포함된 파일(2)

  • SKILL.md4.7 KB
  • scan.sh3.5 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Image debt scan

Locate the images worth converting to hand-authored SVG. This is the reconnaissance step before arbitrum-brand-svg-diagrams.

When to use

  • "Which images should we convert next?" / "find our heaviest diagrams"
  • Planning a batch cleanup of public/img/
  • Before dispatching diagram-converter subagents: this produces their work list

When NOT to use

  • Photos/screenshots: they legitimately stay raster (only diagrams convert well)
  • A single known file: just use arbitrum-brand-svg-diagrams directly

The blind spot this skill exists to close

The biggest image debt in this repo is not the PNGs: it's .svg files that are actually a base64-encoded raster wrapped in draw.io/editor XML. They carry a .svg extension (so a naïve size scan of *.png/*.jpg misses them entirely) yet weigh 1 to 6 MB each and blur when zoomed. A whole-repo scan this session found ~15 of them at ~6 MB apiece (e.g. haw-token-gateway.svg, haw-batching.svg, apps-pull-oracle.svg, arb-chain-aep-scenario-*.svg). The scanner detects them by grepping each .svg for data:image/…;base64 (and mxfile for draw.io).

Run the scan (driver)

scan.sh reports raster-in-SVG first (top debt), then oversized rasters, each with the MDX pages that reference it (or unreferenced = deletion candidate). Sizes are largest-first.

# whole repo
.agents/skills/image-debt-scan/scan.sh

# scope the reference search to one section (only reports images that section uses)
.agents/skills/image-debt-scan/scan.sh content/docs/how-arbitrum-works

# raise the raster threshold (default 300 KB; raster-in-SVG is always reported)
THRESHOLD_KB=500 .agents/skills/image-debt-scan/scan.sh

Sample output (from the Docusaurus tree; paths and sizes differ here):

== Raster-in-SVG (draw.io / embedded-raster wearing a .svg extension: top debt) ==
   6584 KB  public/img/haw-token-gateway.svg  [embedded-raster]
           (unreferenced: candidate for deletion)
   6087 KB  public/img/apps-pull-oracle.svg  [embedded-raster]
           content/docs/build-decentralized-apps/oracles/01-overview.mdx
   1863 KB  public/img/arb-chain-aep-scenario-2.svg  [draw.io PNG-in-SVG]
           content/docs/launch-arbitrum-chain/.../02-set-up-aep-fee-router.mdx
== Raster images over 300 KB (convert diagrams; keep photos/screenshots) ==
   7863 KB  public/img/bold-before-vs-after-with-bold.png
           content/docs/how-arbitrum-works/bold/gentle-introduction.mdx

Triage the output

Rank into tiers, biggest + most-referenced first:

  1. Raster-in-SVG, referenced → convert (highest value). Filename ends in .svg, so arbitrum-brand-svg-diagrams can replace it in place with no MDX edit and no check-links risk. This is the sweet spot.
  2. Raster-in-SVG, unreferenced → delete. Dead weight; confirm with the user, then trash (never rm).
  3. Heavy PNG/JPG that is a concept diagram → convert (boxes, flows, flat fills). Converting changes the extension, so the MDX src= must be updated.
  4. Heavy PNG/JPG that is a photo/screenshot/pie-chart → keep, optionally recompress. Gradients and fine detail don't vectorize well.

Report a ranked table: size · path · referencing pages · verdict. Do not convert here: that's the SVG skill's job. Hand the "convert" list to a diagram-converter subagent per file (parallel) or arbitrum-brand-svg-diagrams for one.

Gotchas

  • .svg extension guarantees nothing. Always grep for base64/mxfile: head -c 2000 can miss a base64 blob that starts later in the file (some Serif/Affinity exports reference embedded images via <use xlink:href> well past the header), so scan.sh greps the whole file.
  • Genuine large vector exists (e.g. an 80 KB Graphviz UML with no base64), and it is not flagged, correctly. Size alone isn't the signal; base64 is.
  • rg may be rewritten to grep by a shell hook here; scan.sh uses grep -r directly to avoid that.

See also

  • arbitrum-brand-svg-diagrams (under .agents/skills/ and .claude/skills/) does the actual conversion.
  • Subagent diagram-converter (.codex/agents/diagram-converter.toml) parallelizes conversion across the list.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Arbitrum L2 development best practices. Use when implementing bridges, Orbit chains, SDK integrations, or debugging cross-chain transactions. Triggers on Arbitrum, L2, rollup, bridge, retryable, Orbit, Nitro, or cross-chain contexts.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

OffchainLabs/arbitrum-docs2522026년 10월 24일 업데이트

Create or improve lightweight, brand-consistent SVG concept diagrams for the Arbitrum docs, using the official Google Drive infographic asset kit as the palette/style source. Use when asked to "make a diagram more efficient", replace a bloated haw-*.svg (draw.io PNG-in-SVG exports), replace an ASCII / box-drawing diagram in an MDX page with a real image, author a new concept diagram for content/docs/how-arbitrum-works or similar, or build a diagram from the Arbitrum brand assets. Hand-authored lean vector SVG — not Mermaid, not a full Excalidraw/draw.io pipeline.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

OffchainLabs/arbitrum-docs2522026년 10월 24일 업데이트

Use when asked to rebrand, restyle, re-pace, resize, or re-render an existing explainer video, when a video's labels are baked-in raster pixels that cannot be edited, or when building a new animated explainer for the Arbitrum docs from a prompt or a doc section.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

OffchainLabs/arbitrum-docs2522026년 10월 24일 업데이트

cast

무료

Foundry's cast CLI for Ethereum interactions. Use when querying blockchain data, calling contracts, sending transactions, encoding/decoding data, or debugging on-chain issues. Triggers on "cast", "get balance", "call contract", "decode calldata", "check tx", "get block".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

OffchainLabs/arbitrum-docs2522026년 10월 24일 업데이트

Run full documentation quality audit, covering sidebar orphans, unused-file review, MDX structure, internal links, glossary references, contract addresses, variables, formatting, frontmatter, tests, and types. Triggers on "audit docs", "check docs quality", "find problems", "content audit".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

OffchainLabs/arbitrum-docs2522026년 10월 24일 업데이트

LLM Utility: Generate minimal project context map before starting any workflow. ALWAYS run this first at session start, before /prd, before /implement, or after context loss. Triggers on 'context prep', 'orient me', 'start', 'new session'.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

OffchainLabs/arbitrum-docs2522026년 10월 24일 업데이트

OffchainLabs의 스킬 모두 보기

이 스킬의 문제 신고