Not in the top 1,000 by GitHub stars

bybit-exchange/svg-diagram

Agent skill that draws architecture, flowchart, sequence, data-flow and lifecycle diagrams as hand-placed SVG, to one linted house style.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

c30c9e3bc9a7 → c30c9e3bc9a7

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → c30c9e3bc9a7

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit c30c9e3bc9a70f2b77b60c7ea27157de3a88d81a

662GitHub stars
21stars in 7 days
1skill in this repository
0commits in 30 days

Heat

4.3
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Aug 9, 2026Nov 5, 2026662

Individual skills in this repository

How it works

svg-diagram

When your agent uses it

SVG diagramming conventions blending a technical look with CJK-friendly typography. Use when creating flowcharts, architecture diagrams, and similar SVG figures. For one-shot generation, prefer invoking it from a subagent so the main context does not have to carry this skill plus the SVG XML; for multi-round tweaking, use it directly in the main context.

What it loads into context

Frontmatter

77 tokens

Always available to the agent

SKILL.md

7,543 tokens

When the skill is activated

Reference documents

14,989 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Output location and referencing
  2. Core principles
  3. Layout rules
  4. Connector rules
  5. Estimating text width (overflow protection)
  6. Placing labels on curves
  7. Coordinate management
  8. Style rules
  9. Arrowhead definitions
  10. XML special characters (high risk, always check)
  11. Troubleshooting
  12. Verification checklist
  13. Editing workflow

Scripts executed separately

  • package.json
  • tools/svg-lint/bin/svg-lint.mjs
  • tools/svg-lint/lib/checks/arrow-marker.mjs
  • tools/svg-lint/lib/checks/baseline-offset.mjs
  • tools/svg-lint/lib/checks/block-spacing.mjs
  • tools/svg-lint/lib/checks/box-height.mjs
  • tools/svg-lint/lib/checks/connector-geometry.mjs
  • tools/svg-lint/lib/checks/font-stack.mjs
  • tools/svg-lint/lib/checks/light-bg-fallback.mjs
  • tools/svg-lint/lib/checks/overlap.mjs
  • tools/svg-lint/lib/checks/palette-conformance.mjs
  • tools/svg-lint/lib/checks/text-overflow.mjs
  • tools/svg-lint/lib/checks/viewbox-clipping.mjs
  • tools/svg-lint/lib/checks/xml-escaping.mjs
  • tools/svg-lint/lib/color.mjs
  • tools/svg-lint/lib/document.mjs
  • tools/svg-lint/lib/format-json.mjs
  • tools/svg-lint/lib/format-text.mjs
  • tools/svg-lint/lib/geometry.mjs
  • tools/svg-lint/lib/lint.mjs
  • tools/svg-lint/lib/palette.mjs
  • tools/svg-lint/lib/panels.mjs
  • tools/svg-lint/lib/parse-svg.mjs
  • tools/svg-lint/lib/registry.mjs
  • tools/svg-lint/lib/report.mjs
  • tools/svg-lint/lib/text-metrics.mjs
  • tools/svg-lint/test/checks/arrow-marker.test.mjs
  • tools/svg-lint/test/checks/baseline-offset.test.mjs
  • tools/svg-lint/test/checks/block-spacing.test.mjs
  • tools/svg-lint/test/checks/box-height.test.mjs
  • tools/svg-lint/test/checks/connector-geometry.test.mjs
  • tools/svg-lint/test/checks/font-stack.test.mjs
  • tools/svg-lint/test/checks/light-bg-fallback.test.mjs
  • tools/svg-lint/test/checks/overlap.test.mjs
  • tools/svg-lint/test/checks/palette-conformance.test.mjs
  • tools/svg-lint/test/checks/text-overflow.test.mjs
  • tools/svg-lint/test/checks/viewbox-clipping.test.mjs
  • tools/svg-lint/test/checks/xml-escaping.test.mjs
  • tools/svg-lint/test/cli.test.mjs
  • tools/svg-lint/test/color.test.mjs
  • tools/svg-lint/test/document.test.mjs
  • tools/svg-lint/test/geometry.test.mjs
  • tools/svg-lint/test/helpers/load.mjs
  • tools/svg-lint/test/integration.test.mjs
  • tools/svg-lint/test/parse-svg.test.mjs
  • tools/svg-lint/test/report.test.mjs
  • tools/svg-lint/test/text-metrics.test.mjs

Files

  • .gitignoreasset323 bytes
  • LICENSEasset1,071 bytes
  • README.mddoc11,488 bytes
  • SKILL.mdcore26,551 bytes
  • SKILL.mdcore26,551 bytes
  • SKILL.mdcore26,551 bytes
  • SKILL.mdcore26,551 bytes
  • SKILL.mdcore26,551 bytes
  • SKILL.mdcore26,551 bytes
  • SKILL.mdcore26,551 bytes
  • SKILL.mdcore26,551 bytes
  • SKILL.mdcore26,551 bytes
  • SKILL.mdcore26,551 bytes
  • SKILL.mdcore26,551 bytes
  • SKILL.mdcore26,551 bytes
  • SKILL.mdcore26,551 bytes
  • SKILL.mdcore26,551 bytes
  • assets/house-style.svgasset3,185 bytes
  • gallery/01-architecture-skill-loading.svgasset7,054 bytes
  • gallery/02-workflow-svg-authoring.svgasset4,830 bytes
  • gallery/03-sequence-lint-gate.svgasset6,325 bytes
  • gallery/04-dataflow-metrics-to-doc.svgasset5,908 bytes
  • gallery/05-lifecycle-skill-states.svgasset4,937 bytes
  • gallery/06-architecture-repo-layout.svgasset5,746 bytes
  • gallery/07-workflow-install-surfaces.svgasset5,801 bytes
  • gallery/08-reference-cjk-fonts.svgasset5,945 bytes
  • gallery/09-dataflow-tiered-routing.svgasset9,241 bytes
  • gallery/10-workflow-ab-benchmark.svgasset8,375 bytes
  • package.jsonruns336 bytes
  • tools/svg-lint/README.mddoc50,065 bytes
  • tools/svg-lint/bin/svg-lint.mjsruns3,045 bytes
  • tools/svg-lint/lib/checks/arrow-marker.mjsruns22,720 bytes
  • tools/svg-lint/lib/checks/baseline-offset.mjsruns6,715 bytes
  • tools/svg-lint/lib/checks/block-spacing.mjsruns16,033 bytes
  • tools/svg-lint/lib/checks/box-height.mjsruns5,607 bytes
  • tools/svg-lint/lib/checks/connector-geometry.mjsruns30,145 bytes
  • tools/svg-lint/lib/checks/font-stack.mjsruns6,982 bytes
  • tools/svg-lint/lib/checks/light-bg-fallback.mjsruns8,077 bytes
  • tools/svg-lint/lib/checks/overlap.mjsruns33,524 bytes
  • tools/svg-lint/lib/checks/palette-conformance.mjsruns11,808 bytes
  • tools/svg-lint/lib/checks/text-overflow.mjsruns7,379 bytes
  • tools/svg-lint/lib/checks/viewbox-clipping.mjsruns4,019 bytes
  • tools/svg-lint/lib/checks/xml-escaping.mjsruns2,218 bytes
  • tools/svg-lint/lib/color.mjsruns2,162 bytes
  • tools/svg-lint/lib/document.mjsruns49,929 bytes
  • tools/svg-lint/lib/format-json.mjsruns451 bytes
  • tools/svg-lint/lib/format-text.mjsruns1,489 bytes
  • tools/svg-lint/lib/geometry.mjsruns9,849 bytes
  • tools/svg-lint/lib/lint.mjsruns2,486 bytes
  • tools/svg-lint/lib/palette.mjsruns1,425 bytes
  • tools/svg-lint/lib/panels.mjsruns4,003 bytes
  • tools/svg-lint/lib/parse-svg.mjsruns12,011 bytes
  • tools/svg-lint/lib/registry.mjsruns1,299 bytes
  • tools/svg-lint/lib/report.mjsruns892 bytes
  • tools/svg-lint/lib/text-metrics.mjsruns6,593 bytes
  • tools/svg-lint/test/checks/arrow-marker.test.mjsruns56,260 bytes
  • tools/svg-lint/test/checks/baseline-offset.test.mjsruns24,993 bytes
  • tools/svg-lint/test/checks/block-spacing.test.mjsruns37,220 bytes
  • tools/svg-lint/test/checks/box-height.test.mjsruns21,286 bytes
  • tools/svg-lint/test/checks/connector-geometry.test.mjsruns55,405 bytes
  • tools/svg-lint/test/checks/font-stack.test.mjsruns33,287 bytes
  • tools/svg-lint/test/checks/light-bg-fallback.test.mjsruns15,305 bytes
  • tools/svg-lint/test/checks/overlap.test.mjsruns86,437 bytes
  • tools/svg-lint/test/checks/palette-conformance.test.mjsruns32,118 bytes
  • tools/svg-lint/test/checks/text-overflow.test.mjsruns30,985 bytes
  • tools/svg-lint/test/checks/viewbox-clipping.test.mjsruns8,952 bytes
  • tools/svg-lint/test/checks/xml-escaping.test.mjsruns8,563 bytes
  • tools/svg-lint/test/cli.test.mjsruns3,774 bytes
  • tools/svg-lint/test/color.test.mjsruns9,342 bytes
  • tools/svg-lint/test/document.test.mjsruns137,892 bytes
  • tools/svg-lint/test/fixtures/fail/baseline-off.svgasset538 bytes
  • tools/svg-lint/test/fixtures/fail/clipped-bottom.svgasset510 bytes
  • tools/svg-lint/test/fixtures/fail/line-cuts-box.svgasset702 bytes
  • tools/svg-lint/test/fixtures/fail/marker-units-missing.svgasset932 bytes
  • tools/svg-lint/test/fixtures/fail/missing-noto.svgasset419 bytes
  • tools/svg-lint/test/fixtures/fail/no-background.svgasset447 bytes
  • tools/svg-lint/test/fixtures/fail/off-palette.svgasset676 bytes
  • tools/svg-lint/test/fixtures/fail/right-angle-curve.svgasset1,289 bytes
  • tools/svg-lint/test/fixtures/fail/short-box.svgasset508 bytes
  • tools/svg-lint/test/fixtures/fail/text-over-line.svgasset636 bytes
  • tools/svg-lint/test/fixtures/fail/text-overflow.svgasset486 bytes
  • tools/svg-lint/test/fixtures/fail/tight-spacing.svgasset683 bytes
  • tools/svg-lint/test/fixtures/fail/unescaped-ampersand.svgasset453 bytes
  • tools/svg-lint/test/fixtures/fail/warning-only.svgasset1,212 bytes
  • tools/svg-lint/test/fixtures/pass/card-row.svgasset997 bytes
  • tools/svg-lint/test/fixtures/pass/minimal.svgasset1,086 bytes
  • tools/svg-lint/test/geometry.test.mjsruns19,213 bytes
  • tools/svg-lint/test/helpers/load.mjsruns764 bytes
  • tools/svg-lint/test/integration.test.mjsruns6,654 bytes
  • tools/svg-lint/test/parse-svg.test.mjsruns23,460 bytes
  • tools/svg-lint/test/report.test.mjsruns12,962 bytes
  • tools/svg-lint/test/text-metrics.test.mjsruns9,962 bytes
Read SKILL.md

# SVG Diagramming Conventions

## Output location and referencing

> Diagrams go in SVG, never ASCII art. That rule decides *whether* to draw; this skill covers *how*, starting with where the file lands.

- Put the file in an `assets/` directory next to the document (e.g. `docs/foo.md` → `docs/assets/foo-arch.svg`)
- Reference it from markdown with a relative path, `![title](assets/xxx.svg)`. Do not inline SVG XML.
- When data in the document changes, the corresponding SVG must be updated too. A figure that contradicts the prose beside it is worse than no figure

## Core principles

### Get it right on the first pass
The first SVG you generate must already satisfy every item in the verification checklist at the end of this document. Do not rely on user feedback to fix basic layout problems (spacing, padding, alignment, viewBox clipping). After generating, walk the checklist yourself and fix anything you find before showing the result.
View the complete source on GitHub

Skills included

  • svg-diagram

Repository facts

License
MIT
Created
Aug 13, 2026
Last pushed
Sep 3, 2026
Forks
44
Open issues
1
Project activity
Slowing

Rank over the last 12 weeks

Now #983 · best #832 · down 115 in 30 days

  1. #937 on Oct 13
  2. #958 on Oct 14
  3. #945 on Oct 15
  4. #932 on Oct 17
  5. #969 on Oct 20
  6. #983 since Oct 21
41 earlier periods
  1. #900 on Aug 9
  2. #908 on Aug 14
  3. #910 on Aug 17
  4. #928 on Aug 19
  5. #867 on Aug 22
  6. #938 on Aug 31
  7. #940 on Sep 2
  8. #935 on Sep 3
  9. #893 on Sep 4
  10. #870 on Sep 5
  11. #904 on Sep 6
  12. #927 on Sep 7
  13. #935 on Sep 8
  14. #918 on Sep 9
  15. #915 on Sep 10
  16. #867 on Sep 11
  17. #862 from Sep 12 to Sep 13
  18. #896 on Sep 14
  19. #884 on Sep 15
  20. #896 on Sep 16
  21. #893 on Sep 17
  22. #872 on Sep 18
  23. #851 on Sep 19
  24. #868 on Sep 20
  25. #902 on Sep 23
  26. #865 on Sep 24
  27. #844 on Sep 26
  28. #863 on Sep 27
  29. #910 on Sep 28
  30. #939 on Sep 29
  31. #906 on Sep 30
  32. #843 on Oct 1
  33. #859 on Oct 2
  34. #832 on Oct 3
  35. #873 on Oct 4
  36. #881 on Oct 6
  37. #917 on Oct 7
  38. #924 on Oct 9
  39. #899 on Oct 10
  40. #905 on Oct 11
  41. #931 on Oct 12

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 5, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 20 notes
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • tools/svg-lint/README.md:140 Analysis incomplete: physical or joined line exceeds character limit
  • tools/svg-lint/README.md:141 Analysis incomplete: physical or joined line exceeds character limit
  • tools/svg-lint/README.md:142 Analysis incomplete: physical or joined line exceeds character limit
  • tools/svg-lint/README.md:143 Analysis incomplete: physical or joined line exceeds character limit
  • tools/svg-lint/README.md:144 Analysis incomplete: physical or joined line exceeds character limit
  • tools/svg-lint/README.md:147 Analysis incomplete: physical or joined line exceeds character limit
  • tools/svg-lint/README.md:145 Analysis incomplete: physical or joined line exceeds character limit
Show all 112 signals by file

README.md

  • Network accessline 5
    [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
  • Network accessline 6
    [![Agent Skills](https://img.shields.io/badge/Agent-Skills-7C3AED.svg)](https://github.com/vercel-labs/skills)
  • Network accessline 7
    [![svg-lint: 12 checks](https://img.shields.io/badge/svg--lint-12%20checks-22c55e.svg)](#the-lint-gate)
  • Network accessline 16
    Install the svg-diagram skill from https://github.com/bybit-exchange/svg-diagram
  • Network accessline 47
    mkdir -p ~/.claude/skills/svg-diagram curl -fsSL https://raw.githubusercontent.com/bybit-exchange/svg-diagram/main/SKILL.md \
  • Network accessline 48
    curl -fsSL https://raw.githubusercontent.com/bybit-exchange/svg-diagram/main/SKILL.md \
  • Network accessline 159
    printf '%s' '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 60" width="200"><text x="50" y="20" font-size="12">Load & Save</text></svg>' > /tmp/broken.svg

SKILL.md

  • Network accessline 171
    <svg viewBox="0 0 750 400" width="750" xmlns="http://www.w3.org/2000/svg">

assets/house-style.svg

  • Network accessline 1
    <svg viewBox="55 0 648 150" width="648" xmlns="http://www.w3.org/2000/svg">

gallery/01-architecture-skill-loading.svg

  • Network accessline 1
    <svg viewBox="13 0 717 318.5" width="717" xmlns="http://www.w3.org/2000/svg">

gallery/02-workflow-svg-authoring.svg

  • Network accessline 1
    <svg viewBox="183 0 443 436" width="443" xmlns="http://www.w3.org/2000/svg">

gallery/03-sequence-lint-gate.svg

  • Network accessline 1
    <svg viewBox="0 0 736 547" width="736" xmlns="http://www.w3.org/2000/svg">

gallery/04-dataflow-metrics-to-doc.svg

  • Network accessline 1
    <svg viewBox="8 0 784 201.5" width="784" xmlns="http://www.w3.org/2000/svg">

gallery/05-lifecycle-skill-states.svg

  • Network accessline 1
    <svg viewBox="18 0 716 199.5" width="716" xmlns="http://www.w3.org/2000/svg">

gallery/06-architecture-repo-layout.svg

  • Network accessline 1
    <svg viewBox="-10 2 520 410" width="520" xmlns="http://www.w3.org/2000/svg">

gallery/07-workflow-install-surfaces.svg

  • Network accessline 1
    <svg viewBox="18 0 1118 487.5" width="1118" xmlns="http://www.w3.org/2000/svg">

gallery/08-reference-cjk-fonts.svg

  • Network accessline 1
    <svg viewBox="8 0 462 475.5" width="462" xmlns="http://www.w3.org/2000/svg">

gallery/09-dataflow-tiered-routing.svg

  • Network accessline 1
    <svg viewBox="8 0 676 504" width="676" xmlns="http://www.w3.org/2000/svg">

gallery/10-workflow-ab-benchmark.svg

  • Network accessline 1
    <svg viewBox="0 0 510 537" width="510" xmlns="http://www.w3.org/2000/svg">

package.json

  • Executable scriptline 1
    Executable file

tools/svg-lint/bin/svg-lint.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

tools/svg-lint/lib/checks/arrow-marker.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/lib/checks/baseline-offset.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/lib/checks/block-spacing.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/lib/checks/box-height.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/lib/checks/connector-geometry.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/lib/checks/font-stack.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/lib/checks/light-bg-fallback.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/lib/checks/overlap.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/lib/checks/palette-conformance.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/lib/checks/text-overflow.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/lib/checks/viewbox-clipping.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/lib/checks/xml-escaping.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/lib/color.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/lib/document.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/lib/format-json.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/lib/format-text.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/lib/geometry.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/lib/lint.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/lib/palette.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/lib/panels.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/lib/parse-svg.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/lib/registry.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/lib/report.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/lib/text-metrics.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/test/checks/arrow-marker.test.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/test/checks/baseline-offset.test.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/test/checks/block-spacing.test.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/test/checks/box-height.test.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/test/checks/connector-geometry.test.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/test/checks/font-stack.test.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/test/checks/light-bg-fallback.test.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/test/checks/overlap.test.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/test/checks/palette-conformance.test.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/test/checks/text-overflow.test.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/test/checks/viewbox-clipping.test.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/test/checks/xml-escaping.test.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/test/cli.test.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/test/color.test.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/test/document.test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 10
    const DOC = `<svg viewBox="0 0 400 180" width="400" xmlns="http://www.w3.org/2000/svg">

tools/svg-lint/test/fixtures/fail/baseline-off.svg

  • Network accessline 1
    <!-- tools/svg-lint/test/fixtures/fail/baseline-off.svg --> <!-- the baseline should be 62 + 18 + 4.2 = 84.2; this is the box centre, 80, so the text rides high --> <svg viewBox="0 0 272 120" width="272" xmlns="http://www.w3.org/2000/svg">
  • Network accessline 2
    <!-- the baseline should be 62 + 18 + 4.2 = 84.2; this is the box centre, 80, so the text rides high --> <svg viewBox="0 0 272 120" width="272" xmlns="http://www.w3.org/2000/svg">   <style>text { font-family: 'PingFang SC', 'Microsoft YaHei
  • Network accessline 3
    <svg viewBox="0 0 272 120" width="272" xmlns="http://www.w3.org/2000/svg">

tools/svg-lint/test/fixtures/fail/clipped-bottom.svg

  • Network accessline 1
    <!-- tools/svg-lint/test/fixtures/fail/clipped-bottom.svg --> <!-- content reaches y=98 but the viewBox is only 90 tall: the bottom 8px are cut off --> <svg viewBox="0 0 272 90" xmlns="http://www.w3.org/2000/svg">
  • Network accessline 2
    <!-- content reaches y=98 but the viewBox is only 90 tall: the bottom 8px are cut off --> <svg viewBox="0 0 272 90" xmlns="http://www.w3.org/2000/svg">   <style>text { font-family: 'PingFang SC', 'Microsoft YaHei', 'Noto Sans CJK SC', syste
  • Network accessline 3
    <svg viewBox="0 0 272 90" xmlns="http://www.w3.org/2000/svg">

tools/svg-lint/test/fixtures/fail/line-cuts-box.svg

  • Network accessline 1
    <!-- tools/svg-lint/test/fixtures/fail/line-cuts-box.svg --> <!-- the line neither starts nor ends at the middle box, yet runs straight through its centre --> <svg viewBox="0 0 280 80" width="280" xmlns="http://www.w3.org/2000/svg">
  • Network accessline 2
    <!-- the line neither starts nor ends at the middle box, yet runs straight through its centre --> <svg viewBox="0 0 280 80" width="280" xmlns="http://www.w3.org/2000/svg">   <style>
  • Network accessline 3
    <svg viewBox="0 0 280 80" width="280" xmlns="http://www.w3.org/2000/svg">

tools/svg-lint/test/fixtures/fail/marker-units-missing.svg

  • Network accessline 1
    <!-- markerUnits absent and refX written as 0: at stroke-width=2 the arrowhead both doubles and shifts --> <svg viewBox="0 0 272 120" width="272" xmlns="http://www.w3.org/2000/svg">
  • Network accessline 2
    <svg viewBox="0 0 272 120" width="272" xmlns="http://www.w3.org/2000/svg">

tools/svg-lint/test/fixtures/fail/missing-noto.svg

  • Network accessline 1
    <!-- tools/svg-lint/test/fixtures/fail/missing-noto.svg --> <svg viewBox="0 0 272 120" width="272" xmlns="http://www.w3.org/2000/svg">
  • Network accessline 2
    <svg viewBox="0 0 272 120" width="272" xmlns="http://www.w3.org/2000/svg">

tools/svg-lint/test/fixtures/fail/no-background.svg

  • Network accessline 1
    <!-- tools/svg-lint/test/fixtures/fail/no-background.svg --> <!-- No background rectangle and a dark-colored title: invisible under the GitHub dark theme --> <svg viewBox="0 0 272 60" width="272" xmlns="http://www.w3.org/2000/svg">
  • Network accessline 2
    <!-- No background rectangle and a dark-colored title: invisible under the GitHub dark theme --> <svg viewBox="0 0 272 60" width="272" xmlns="http://www.w3.org/2000/svg">   <style>text { font-family: 'PingFang SC', 'Microsoft YaHei', 'Noto 
  • Network accessline 3
    <svg viewBox="0 0 272 60" width="272" xmlns="http://www.w3.org/2000/svg">

tools/svg-lint/test/fixtures/fail/off-palette.svg

  • Network accessline 1
    <!-- tools/svg-lint/test/fixtures/fail/off-palette.svg --> <!-- #ff00ff is not in the palette; #dbeafe paired with #ec4899 is not one semantic triple --> <svg viewBox="0 0 272 120" width="272" xmlns="http://www.w3.org/2000/svg">
  • Network accessline 2
    <!-- #ff00ff is not in the palette; #dbeafe paired with #ec4899 is not one semantic triple --> <svg viewBox="0 0 272 120" width="272" xmlns="http://www.w3.org/2000/svg">   <style>text { font-family: 'PingFang SC', 'Microsoft YaHei', 'Noto S
  • Network accessline 3
    <svg viewBox="0 0 272 120" width="272" xmlns="http://www.w3.org/2000/svg">

tools/svg-lint/test/fixtures/fail/right-angle-curve.svg

  • Network accessline 7
    Second connector: its second segment runs 80px across and 50px up, so it is a straight line      along neither axis. --> <svg viewBox="0 0 320 160" width="320" xmlns="http://www.w3.org/2000/svg">
  • Network accessline 8
    along neither axis. --> <svg viewBox="0 0 320 160" width="320" xmlns="http://www.w3.org/2000/svg">   <style>
  • Network accessline 9
    <svg viewBox="0 0 320 160" width="320" xmlns="http://www.w3.org/2000/svg">

tools/svg-lint/test/fixtures/fail/short-box.svg

  • Network accessline 1
    <!-- tools/svg-lint/test/fixtures/fail/short-box.svg --> <!-- a single 12px line needs 36px of height; this box is given only 26px --> <svg viewBox="0 0 272 110" width="272" xmlns="http://www.w3.org/2000/svg">
  • Network accessline 2
    <!-- a single 12px line needs 36px of height; this box is given only 26px --> <svg viewBox="0 0 272 110" width="272" xmlns="http://www.w3.org/2000/svg">   <style>text { font-family: 'PingFang SC', 'Microsoft YaHei', 'Noto Sans CJK SC', syst
  • Network accessline 3
    <svg viewBox="0 0 272 110" width="272" xmlns="http://www.w3.org/2000/svg">

tools/svg-lint/test/fixtures/fail/text-over-line.svg

  • Network accessline 1
    <!-- tools/svg-lint/test/fixtures/fail/text-over-line.svg --> <!-- the label baseline 32 coincides exactly with the connector at y=32: the line runs through the glyphs --> <svg viewBox="0 0 272 108" width="272" xmlns="http://www.w3.org/2000
  • Network accessline 2
    <!-- the label baseline 32 coincides exactly with the connector at y=32: the line runs through the glyphs --> <svg viewBox="0 0 272 108" width="272" xmlns="http://www.w3.org/2000/svg">   <style>
  • Network accessline 3
    <svg viewBox="0 0 272 108" width="272" xmlns="http://www.w3.org/2000/svg">

tools/svg-lint/test/fixtures/fail/text-overflow.svg

  • Network accessline 1
    <!-- 'Extraordinarily long label' is 26 characters × 7px = 182px, too wide for a 90px box --> <svg viewBox="0 0 272 120" width="272" xmlns="http://www.w3.org/2000/svg">
  • Network accessline 2
    <svg viewBox="0 0 272 120" width="272" xmlns="http://www.w3.org/2000/svg">

tools/svg-lint/test/fixtures/fail/tight-spacing.svg

  • Network accessline 1
    <!-- tools/svg-lint/test/fixtures/fail/tight-spacing.svg --> <!-- the gap between the two boxes is only 12px, under the 25px minimum --> <svg viewBox="0 0 256 120" width="256" xmlns="http://www.w3.org/2000/svg">
  • Network accessline 2
    <!-- the gap between the two boxes is only 12px, under the 25px minimum --> <svg viewBox="0 0 256 120" width="256" xmlns="http://www.w3.org/2000/svg">   <style>text { font-family: 'PingFang SC', 'Microsoft YaHei', 'Noto Sans CJK SC', system
  • Network accessline 3
    <svg viewBox="0 0 256 120" width="256" xmlns="http://www.w3.org/2000/svg">

tools/svg-lint/test/fixtures/fail/unescaped-ampersand.svg

  • Network accessline 1
    <!-- tools/svg-lint/test/fixtures/fail/unescaped-ampersand.svg --> <svg viewBox="0 0 272 120" width="272" xmlns="http://www.w3.org/2000/svg">
  • Network accessline 2
    <svg viewBox="0 0 272 120" width="272" xmlns="http://www.w3.org/2000/svg">

tools/svg-lint/test/fixtures/fail/warning-only.svg

  • Network accessline 5
    22 on each side, the title centred on the content centre 136, and the label baseline 62+18+4.2~=84.      The #ffffff background rectangle covers the full width, so the light background fallback check passes outright. --> <svg viewBox="0 0 2
  • Network accessline 6
    The #ffffff background rectangle covers the full width, so the light background fallback check passes outright. --> <svg viewBox="0 0 272 120" width="272" xmlns="http://www.w3.org/2000/svg">   <style>
  • Network accessline 7
    <svg viewBox="0 0 272 120" width="272" xmlns="http://www.w3.org/2000/svg">

tools/svg-lint/test/fixtures/pass/card-row.svg

  • Network accessline 1
    <svg viewBox="0 0 338 126" width="338" xmlns="http://www.w3.org/2000/svg">

tools/svg-lint/test/fixtures/pass/minimal.svg

  • Network accessline 1
    <!-- tools/svg-lint/test/fixtures/pass/minimal.svg --> <svg viewBox="0 0 272 120" width="272" xmlns="http://www.w3.org/2000/svg">
  • Network accessline 2
    <svg viewBox="0 0 272 120" width="272" xmlns="http://www.w3.org/2000/svg">

tools/svg-lint/test/geometry.test.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/test/helpers/load.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/test/integration.test.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/test/parse-svg.test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 7
    const DOC = `<svg viewBox="0 0 137 59" width="137" xmlns="http://www.w3.org/2000/svg">
  • Network accessline 398
    'text content': '<svg><text x="1" y="2" font-size="9">cost -- benefit</text></svg>',     'attribute value': '<svg><path d="M1,2 L3,4" stroke-dasharray="4--4" aria-label="cost -- benefit"/></svg>',     'url in an attribute': '<svg><image hre
  • Network accessline 399
    'attribute value': '<svg><path d="M1,2 L3,4" stroke-dasharray="4--4" aria-label="cost -- benefit"/></svg>',     'url in an attribute': '<svg><image href="https://example.com/a--b.png" x="0" y="0" width="4" height="4"/></svg>',     'css insi
  • Network accessline 400
    'url in an attribute': '<svg><image href="https://example.com/a--b.png" x="0" y="0" width="4" height="4"/></svg>',

tools/svg-lint/test/report.test.mjs

  • Executable scriptline 1
    Executable file

tools/svg-lint/test/text-metrics.test.mjs

  • Executable scriptline 1
    Executable file

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Signal confidence: 60 facts

and 10 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md SKILL.md.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.