xs-diagram-generator — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited xs-diagram-generator (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
内容に応じて最適な図表形式を自動選択し、画像を生成する。
Mermaidコードがすでにある?
├─ YES → Docker mermaid-cli で画像化(最優先)
└─ NO → 内容に応じて選択
├─ フロー/シーケンス → Mermaidコード作成 → Docker mermaid-cli
└─ アーキテクチャ/階層 → Pillow(uv run)で直接生成Mermaidコードがある場合はこれを最優先で使う。
# 1. Mermaidファイルを作成
cat > /tmp/diagram.mmd << 'EOF'
flowchart TB
A[開始] --> B[処理]
B --> C{判断}
C -->|Yes| D[完了]
C -->|No| B
EOF
# 2. Docker版 mermaid-cli で画像生成
docker run --rm -u $(id -u):$(id -g) \
-v /tmp:/data \
minlag/mermaid-cli \
-i /data/diagram.mmd -o /data/diagram.png -b whiteポイント:
-u $(id -u):$(id -g) でパーミッション問題を回避-b white で白背景(スライド向け)-o /data/diagram.svg改行は `<br>` を使う! `\n` は使わない!
# NG(\n がそのまま表示される)
A["Gateway\nRust / Axum"]
# OK(ちゃんと改行される)
A["Gateway<br>Rust / Axum"]subgraphのタイトルが長いと途中で改行される:
線の交差を減らすコツ:
direction LR / direction TB をsubgraph内で使い分けるsubgraphのネスト例(包含関係の表現):
subgraph outer["親システム"]
subgraph inner["子システム"]
A["コンポーネントA"]
end
B["コンポーネントB"] --> A
endfor f in /tmp/*.mmd; do
docker run --rm -u $(id -u):$(id -g) \
-v /tmp:/data \
minlag/mermaid-cli \
-i /data/$(basename "$f") -o /data/$(basename "$f" .mmd).png -b white
doneMermaidを経由せず、直接画像を生成したい場合に使用。
uv run --with pillow python [SKILL_DIR]/draw_diagram.py <type> -o <output.png> -d '<json>'#### アーキテクチャ図 (architecture)
uv run --with pillow python [SKILL_DIR]/draw_diagram.py architecture \
-o /tmp/arch.png -d '{
"title": "システム構成",
"boxes": [
{"id": "api", "label": "API Server", "color": "blue", "row": 0, "col": 1},
{"id": "db", "label": "Database", "sublabel": "PostgreSQL", "color": "green", "row": 1, "col": 0},
{"id": "cache", "label": "Cache", "sublabel": "Redis", "color": "orange", "row": 1, "col": 2}
],
"arrows": [
{"from": "api", "to": "db", "label": "query"},
{"from": "api", "to": "cache", "label": "read/write"}
]
}'パラメータ:
boxes[].id: 識別子(矢印の接続に使用)boxes[].label: メインラベルboxes[].sublabel: サブラベル(オプション)boxes[].color: blue/orange/purple/green/red/gray/tealboxes[].row, boxes[].col: グリッド位置arrows[].from, arrows[].to: 接続元・先の idarrows[].label: 矢印のラベル(オプション)#### フローチャート (flowchart)
uv run --with pillow python [SKILL_DIR]/draw_diagram.py flowchart \
-o /tmp/flow.png -d '{
"title": "ユーザー登録フロー",
"steps": [
{"id": "s1", "label": "開始", "type": "start"},
{"id": "s2", "label": "フォーム入力", "type": "process"},
{"id": "s3", "label": "バリデーション", "type": "decision"},
{"id": "s4", "label": "DB保存", "type": "process"},
{"id": "s5", "label": "完了", "type": "end"}
],
"connections": [
{"from": "s1", "to": "s2"},
{"from": "s2", "to": "s3"},
{"from": "s3", "to": "s4", "label": "OK"},
{"from": "s4", "to": "s5"}
]
}'ステップの type: start(緑)/ end(赤)/ process(青)/ decision(オレンジ)
#### 階層図 (hierarchy)
uv run --with pillow python [SKILL_DIR]/draw_diagram.py hierarchy \
-o /tmp/org.png -d '{
"title": "組織図",
"root": {
"label": "CEO",
"color": "purple",
"children": [
{"label": "CTO", "color": "blue", "children": [
{"label": "Dev Team", "color": "green"},
{"label": "Infra Team", "color": "green"}
]},
{"label": "CFO", "color": "orange", "children": [
{"label": "Finance", "color": "gray"}
]}
]
}
}'| 色名 | 用途の目安 |
|---|---|
blue | 技術系、API、サーバー |
green | 正常系、開始、データベース |
orange | 条件分岐、警告、キャッシュ |
purple | 重要、トップレベル |
red | 終了、エラー、削除 |
gray | 補助、外部システム |
teal | その他 |
「このMermaidを画像にして」
→ .mmdファイルに保存 → docker mermaid-cli → PNG送信「APIサーバー、DB、キャッシュの構成図を作って」
→ Pillow architecture で JSON 生成 → uv run → PNG送信
「ユーザー登録の流れをフローチャートにして」
→ Mermaidコード作成 → docker mermaid-cli → PNG送信~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.