1仕組みと動作原理
極めてシンプルな実装原理:スキル自体はアイコンファイルを一切パッケージ化・ミラーリングせず、すべての機能は「固定CDNパステンプレート + アイコン名」の文字列連結のみで構成され、エージェントがその場でURLを生成してユーザーに提供します。
# PNG https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/packages/static-png/{light|dark}/{icon-name}.png
デフォルトの出力方針は「ファイルではなくリンクを提供」:ユーザーがダウンロードを要求しない限りURLのみを返し、ダウンロード時のみホストのBashでcurlを実行します。
1. Identify icon name (usually lowercase company/model name, hyphenated if multi-word) 2. Determine format (default: PNG) and theme (default: dark) 3. Construct CDN URL using pattern above 4. Provide URL to user 5. If download requested, use Bash tool with curl 6. Include web viewer link: `https://lobehub.com/icons/{icon-name}`
命名規則が唯一のオントロジー:小文字+ハイフンを使用し、複数のバリエーションはサフィックス(-colorでカラー、-textでテキスト版)で区別。中国語名はまず英語のアイコン名にマッピングする必要があります。
**Icon naming convention**: Lowercase, hyphenated (e.g., `claude`, `chatglm`, `openai`, `huggingface`)
中国語クエリは組み込みのマッピング表(智譜→chatglm、月之暗面→moonshotなど)に依存し、関連する同系統のアイコンも能動的に提示します。
**Chinese AI models**: Support Chinese queries (e.g., "智谱" → `chatglm`, "月之暗面" → `moonshot`)
頻出アイコンリストはreferences/icons-list.mdに外部化され、Models / Providers / Applications / Chinese AIの4カテゴリに分類。SKILL.mdはルーティングのみを保持します。
**Common icons**: See `references/icons-list.md` for comprehensive list organized by category (Models, Providers, Applications, Chinese AI)
404トラブルシューティングは再試行ではなく3ステップで実行:-colorサフィックスを試す → エイリアス(企業名 vs 製品名、chatgpt/gptやgoogle/geminiなど)を試す → ギャラリーの閲覧またはリポジトリ検索へ誘導。
If URL returns 404: 1. Try `-color` suffix variant 2. Check alternate naming (e.g., `chatgpt` vs `gpt`, `google` vs `gemini`) 3. Direct user to https://lobehub.com/icons to browse 4. Search repository: https://github.com/lobehub/lobe-icons
開発者向けの統合手順が個別のreferenceに記載:npmパッケージ名(@lobehub/iconsおよびそのstatic-svg/png/webp、rnバリアント)とReactコンポーネントの使用方法。
Icons can be installed as npm packages:
スキル本体には検証やフォールバックのコードが一切存在しない:URLが利用可能かどうかは、ユーザーまたはエージェントが事後的にcurlを実行して404を検知するしかなく、スキル自体にプローブ機能はありません。
- Browse https://lobehub.com/icons - Try variations (e.g., company name vs product name: `alibaba` vs `alibabacloud`) - Check for `-color` variants if standard URL fails
2コア機能
3外部依存関係
| Kind | Dependency / Endpoint |
|---|---|
| network | lobe-icons 静态资源 CDN(PNG,实测 200) |
| network | lobe-icons 静态资源 CDN(WEBP,实测 200) |
| network | lobe-icons 静态资源 CDN(SVG;文档写的 {light|dark} 路径实测 404,实际位于 static-svg/icons/) |
| cli | curl(宿主 Bash 执行的下载动作) |
| network | 图标画廊(人工浏览/确认外观) |
| network | 上游仓库(排障检索入口) |
| package | @lobehub/icons(React 组件包;实测 npm registry 200) |
| package | @lobehub/icons-static-svg / @lobehub/icons-static-png / @lobehub/icons-static-webp / @lobehub/icons-rn(实测 4 个包 registry 均 200) |
| network | 开发者文档站(图标库文档) |
4推奨統制措置と判定根拠
- 网络端点: 外部ネットワークアクセスの宣言: https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/pack
- 本地工作目录: ファイル読み書きおよび成果物出力: ユーザーが明示的にダウンロードを求めた場合のみ:ホストのBashが `curl -o <icon>.<ext>` を実行し、エージェント/ユーザーが指定したパスに書き込み(SKILL.mdに固定パスの規定なし)
5二重目の独立検証
- [ok] PNG / WEBP 端点可用性(skill 的主路径) — curl 实测:packages/static-png/dark/claude.png = 200、packages/static-png/dark/claude-color.png = 200、packages/static-png/light/claude.png = 200、packages/static-webp/dark/claude.webp = 200,不存在的名字(notarealicon123.png)返回 404 —— 主路径与文档模板一致,404 也可正常反映为 404。
- [discrepancy] SVG 路径模板 vs 上游真实布局 — SKILL.md 写 `packages/static-svg/{light|dark}/{icon-name}.svg`,实测 packages/static-svg/dark/claude.svg = 404、.../light/claude.svg = 404、.../dark/claude-color.svg = 404;GitHub Contents API 显示 packages/static-svg 下只有 icons/ 子目录(无 light/dark 段),tree API 中 static-svg 路径 911 条、形如 packages/static-svg/icons/claude.svg,curl 实测 200。即 SVG 分支的模板已过期(PNG/WEBP 仍是 light|dark 布局,两条路径规则已不一致)。
- [discrepancy] icons-list.md 名录逐名验证 — 把名录去重后的 44 个图标名逐个 GET static-png/dark/<name>.png:40 个 200,4 个 404 —— `chatgpt`、`gpt`、`llama`、`lobechat`;这 4 个名字在 static-svg/icons 的仓库树里同样不存在(tree API 过滤结果为空)。可用替代名实测均 200:openai(对应 chatgpt/gpt)、meta(对应 llama)、lobehub(对应 lobechat)。即名录是『上游旧名 + 别名』的混合体,需要 agent 现场纠偏(讽刺的是 SKILL.md 的 404 排障恰恰建议试 chatgpt/gpt 这两个已失效的名字)。
- [ok] npm 包名真实性(developer-info.md) — curl registry.npmjs.org/<pkg>/latest:@lobehub/icons、@lobehub/icons-static-svg、@lobehub/icons-static-png、@lobehub/icons-static-webp、@lobehub/icons-rn 五个均返回 200,包名与用途注释对应无误;这些是给用户在自己项目里安装的指引,skill 运行期不会自动安装。
- [ok] 画廊与仓库入口可达性 — https://lobehub.com/icons 返回 302(跳转,属正常站点行为);https://github.com/lobehub/lobe-icons 为公开仓库且 tree API 可读(master 分支可访问,packages/ 下有 react-native、static-avatar、static-png、static-svg、static-webp 五个包)。文档给的四个外链(画廊/仓库/文档/npm 搜索)均非死链。
- [ok] 功能声明 vs 实际能力(夸大检查) — SKILL.md/README 声称 '100+ icons',实际上游规模远大:单 packages/static-png/dark 目录即含数百个 PNG(含 -color/-text 变体),static-svg/icons 有 911 个 svg 路径,且涵盖名录之外的品牌(如 adobe、aws、cursor、vercel)——声明属保守而非夸大。反面:declared 'Comprehensive' 的名录只 44 名、且含 4 个失效名,'comprehensive' 一词偏乐观。
- [ok] 『支持中文查询』的映射来源 — SKILL.md 的 '智谱 → chatglm、月之暗面 → moonshot' 与 icons-list.md 的中文列表格(| `chatglm` | 智谱清言 | ChatGLM |、| `moonshot` | 月之暗面 | Moonshot (Kimi) | 等 17 行)一致,映射有仓内依据;但『智谱=ChatGLM』这类厂商别名词典属领域知识,仓内无法证真伪,只能确认两侧文本自洽。
- [discrepancy] 下载示例可照抄性 — SKILL.md 的 Multi-icons 示例里 URL 用了省略号:`curl -o openai.svg "https://raw.githubusercontent.com/lobehub/lobe-icons/.../dark/openai.svg"`,and 完整可用的路径需要补 `packages/static-png`(SVG 情况还要改成 static-svg/icons)。照字面复制该示例会得到无效/404 请求;同一文档上方的模板段才是可执行形式。
6結論
8c8f311d4974d206…