[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GHZCTN7WWASEPBAFYNK6ZV":3,"skill-same:01M6GHZCTN7WWASEPBAFYNK6ZV":98},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":56,"commitSha":57,"skillDirectory":58,"forksCount":59,"repositoryHtmlUrl":60,"repositoryHomepageUrl":6,"ownerHtmlUrl":61,"ownerBlogUrl":6,"ownerDescription":62,"updatedAt":63,"install":64,"resources":77},"01M6GHZCTN7WWASEPBAFYNK6ZV","excalidraw",null,"Hand-drawn Excalidraw JSON diagrams (arch, flow, seq).","zapabob\u002FSkills","zapabob","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F130830376?v=4","01M6DBMYZAGRTFQDSQYW3W764P","峯岸 亮","01M6DBMZ3GKDSJ01NZ9XTZD7JD",2,"MIT","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fexcalidraw\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[5,24,25,26,27,28,29,30,31,32,33,34,35,36],"macos","linux","architecture","windows","visualization","flow","json","hermes","hermes agent","diagrams","arch","seq","hand","2026-11-10 10:12:30",false,"---\nname: excalidraw\ndescription: \"Hand-drawn Excalidraw JSON diagrams (arch, flow, seq).\"\nversion: 1.0.0\nauthor: Hermes Agent\nlicense: MIT\ndependencies: []\nplatforms: [linux, macos, windows]\nmetadata:\n  hermes:\n    tags: [Excalidraw, Diagrams, Flowcharts, Architecture, Visualization, JSON]\n    related_skills: []\n\n---\n\n# Excalidraw Diagram Skill\n\nCreate diagrams by writing standard Excalidraw element JSON and saving as `.excalidraw` files. These files can be drag-and-dropped onto [excalidraw.com](https:\u002F\u002Fexcalidraw.com) for viewing and editing. No accounts, no API keys, no rendering libraries -- just JSON.\n\n## When to use\n\nGenerate `.excalidraw` files for architecture diagrams, flowcharts, sequence diagrams, concept maps, and more. Files can be opened at excalidraw.com or uploaded for shareable links.\n\n## Workflow\n\n1. **Load this skill** (you already did)\n2. **Write the elements JSON** -- an array of Excalidraw element objects\n3. **Save the file** using `write_file` to create a `.excalidraw` file\n4. **Optionally upload** for a shareable link using `scripts\u002Fupload.py` via `terminal`\n\n### Saving a Diagram\n\nWrap your elements array in the standard `.excalidraw` envelope and save with `write_file`:\n\n```json\n{\n  \"type\": \"excalidraw\",\n  \"version\": 2,\n  \"source\": \"hermes-agent\",\n  \"elements\": [ ...your elements array here... ],\n  \"appState\": {\n    \"viewBackgroundColor\": \"#ffffff\"\n  }\n}\n```\n\nSave to any path, e.g. `~\u002Fdiagrams\u002Fmy_diagram.excalidraw`.\n\n### Uploading for a Shareable Link\n\nRun the upload script (located in this skill's `scripts\u002F` directory) via terminal:\n\n```bash\npython skills\u002Fdiagramming\u002Fexcalidraw\u002Fscripts\u002Fupload.py ~\u002Fdiagrams\u002Fmy_diagram.excalidraw\n```\n\nThis uploads to excalidraw.com (no account needed) and prints a shareable URL. Requires the `cryptography` pip package (`pip install cryptography`).\n\n---\n\n## Element Format Reference\n\n### Required Fields (all elements)\n`type`, `id` (unique string), `x`, `y`, `width`, `height`\n\n### Defaults (skip these -- they're applied automatically)\n- `strokeColor`: `\"#1e1e1e\"`\n- `backgroundColor`: `\"transparent\"`\n- `fillStyle`: `\"solid\"`\n- `strokeWidth`: `2`\n- `roughness`: `1` (hand-drawn look)\n- `opacity`: `100`\n\nCanvas background is white.\n\n### Element Types\n\n**Rectangle**:\n```json\n{ \"type\": \"rectangle\", \"id\": \"r1\", \"x\": 100, \"y\": 100, \"width\": 200, \"height\": 100 }\n```\n- `roundness: { \"type\": 3 }` for rounded corners\n- `backgroundColor: \"#a5d8ff\"`, `fillStyle: \"solid\"` for filled\n\n**Ellipse**:\n```json\n{ \"type\": \"ellipse\", \"id\": \"e1\", \"x\": 100, \"y\": 100, \"width\": 150, \"height\": 150 }\n```\n\n**Diamond**:\n```json\n{ \"type\": \"diamond\", \"id\": \"d1\", \"x\": 100, \"y\": 100, \"width\": 150, \"height\": 150 }\n```\n\n**Labeled shape (container binding)** -- create a text element bound to the shape:\n\n> **WARNING:** Do NOT use `\"label\": { \"text\": \"...\" }` on shapes. This is NOT a valid\n> Excalidraw property and will be silently ignored, producing blank shapes. You MUST\n> use the container binding approach below.\n\nThe shape needs `boundElements` listing the text, and the text needs `containerId` pointing back:\n```json\n{ \"type\": \"rectangle\", \"id\": \"r1\", \"x\": 100, \"y\": 100, \"width\": 200, \"height\": 80,\n  \"roundness\": { \"type\": 3 }, \"backgroundColor\": \"#a5d8ff\", \"fillStyle\": \"solid\",\n  \"boundElements\": [{ \"id\": \"t_r1\", \"type\": \"text\" }] },\n{ \"type\": \"text\", \"id\": \"t_r1\", \"x\": 105, \"y\": 110, \"width\": 190, \"height\": 25,\n  \"text\": \"Hello\", \"fontSize\": 20, \"fontFamily\": 1, \"strokeColor\": \"#1e1e1e\",\n  \"textAlign\": \"center\", \"verticalAlign\": \"middle\",\n  \"containerId\": \"r1\", \"originalText\": \"Hello\", \"autoResize\": true }\n```\n- Works on rectangle, ellipse, diamond\n- Text is auto-centered by Excalidraw when `containerId` is set\n- The text `x`\u002F`y`\u002F`width`\u002F`height` are approximate -- Excalidraw recalculates them on load\n- `originalText` should match `text`\n- Always include `fontFamily: 1` (Virgil\u002Fhand-drawn font)\n\n**Labeled arrow** -- same container binding approach:\n```json\n{ \"type\": \"arrow\", \"id\": \"a1\", \"x\": 300, \"y\": 150, \"width\": 200, \"height\": 0,\n  \"points\": [[0,0],[200,0]], \"endArrowhead\": \"arrow\",\n  \"boundElements\": [{ \"id\": \"t_a1\", \"type\": \"text\" }] },\n{ \"type\": \"text\", \"id\": \"t_a1\", \"x\": 370, \"y\": 130, \"width\": 60, \"height\": 20,\n  \"text\": \"connects\", \"fontSize\": 16, \"fontFamily\": 1, \"strokeColor\": \"#1e1e1e\",\n  \"textAlign\": \"center\", \"verticalAlign\": \"middle\",\n  \"containerId\": \"a1\", \"originalText\": \"connects\", \"autoResize\": true }\n```\n\n**Standalone text** (titles and annotations only -- no container):\n```json\n{ \"type\": \"text\", \"id\": \"t1\", \"x\": 150, \"y\": 138, \"text\": \"Hello\", \"fontSize\": 20,\n  \"fontFamily\": 1, \"strokeColor\": \"#1e1e1e\", \"originalText\": \"Hello\", \"autoResize\": true }\n```\n- `x` is the LEFT edge. To center at position `cx`: `x = cx - (text.length * fontSize * 0.5) \u002F 2`\n- Do NOT rely on `textAlign` or `width` for positioning\n\n**Arrow**:\n```json\n{ \"type\": \"arrow\", \"id\": \"a1\", \"x\": 300, \"y\": 150, \"width\": 200, \"height\": 0,\n  \"points\": [[0,0],[200,0]], \"endArrowhead\": \"arrow\" }\n```\n- `points`: `[dx, dy]` offsets from element `x`, `y`\n- `endArrowhead`: `null` | `\"arrow\"` | `\"bar\"` | `\"dot\"` | `\"triangle\"`\n- `strokeStyle`: `\"solid\"` (default) | `\"dashed\"` | `\"dotted\"`\n\n### Arrow Bindings (connect arrows to shapes)\n\n```json\n{\n  \"type\": \"arrow\", \"id\": \"a1\", \"x\": 300, \"y\": 150, \"width\": 150, \"height\": 0,\n  \"points\": [[0,0],[150,0]], \"endArrowhead\": \"arrow\",\n  \"startBinding\": { \"elementId\": \"r1\", \"fixedPoint\": [1, 0.5] },\n  \"endBinding\": { \"elementId\": \"r2\", \"fixedPoint\": [0, 0.5] }\n}\n```\n\n`fixedPoint` coordinates: `top=[0.5,0]`, `bottom=[0.5,1]`, `left=[0,0.5]`, `right=[1,0.5]`\n\n### Drawing Order (z-order)\n- Array order = z-order (first = back, last = front)\n- Emit progressively: background zones → shape → its bound text → its arrows → next shape\n- BAD: all rectangles, then all texts, then all arrows\n- GOOD: bg_zone → shape1 → text_for_shape1 → arrow1 → arrow_label_text → shape2 → text_for_shape2 → ...\n- Always place the bound text element immediately after its container shape\n\n### Sizing Guidelines\n\n**Font sizes:**\n- Minimum `fontSize`: **16** for body text, labels, descriptions\n- Minimum `fontSize`: **20** for titles and headings\n- Minimum `fontSize`: **14** for secondary annotations only (sparingly)\n- NEVER use `fontSize` below 14\n\n**Element sizes:**\n- Minimum shape size: 120x60 for labeled rectangles\u002Fellipses\n- Leave 20-30px gaps between elements minimum\n- Prefer fewer, larger elements over many tiny ones\n\n### Color Palette\n\nSee `references\u002Fcolors.md` for full color tables. Quick reference:\n\n| Use | Fill Color | Hex |\n|-----|-----------|-----|\n| Primary \u002F Input | Light Blue | `#a5d8ff` |\n| Success \u002F Output | Light Green | `#b2f2bb` |\n| Warning \u002F External | Light Orange | `#ffd8a8` |\n| Processing \u002F Special | Light Purple | `#d0bfff` |\n| Error \u002F Critical | Light Red | `#ffc9c9` |\n| Notes \u002F Decisions | Light Yellow | `#fff3bf` |\n| Storage \u002F Data | Light Teal | `#c3fae8` |\n\n### Tips\n- Use the color palette consistently across the diagram\n- **Text contrast is CRITICAL** -- never use light gray on white backgrounds. Minimum text color on white: `#757575`\n- Do NOT use emoji in text -- they don't render in Excalidraw's font\n- For dark mode diagrams, see `references\u002Fdark-mode.md`\n- For larger examples, see `references\u002Fexamples.md`\n\n\n","# Excalidraw Diagram Skill\n\nCreate diagrams by writing standard Excalidraw element JSON and saving as `.excalidraw` files. These files can be drag-and-dropped onto [excalidraw.com](https:\u002F\u002Fexcalidraw.com) for viewing and editing. No accounts, no API keys, no rendering libraries -- just JSON.\n\n## When to use\n\nGenerate `.excalidraw` files for architecture diagrams, flowcharts, sequence diagrams, concept maps, and more. Files can be opened at excalidraw.com or uploaded for shareable links.\n\n## Workflow\n\n1. **Load this skill** (you already did)\n2. **Write the elements JSON** -- an array of Excalidraw element objects\n3. **Save the file** using `write_file` to create a `.excalidraw` file\n4. **Optionally upload** for a shareable link using `scripts\u002Fupload.py` via `terminal`\n\n### Saving a Diagram\n\nWrap your elements array in the standard `.excalidraw` envelope and save with `write_file`:\n\n```json\n{\n  \"type\": \"excalidraw\",\n  \"version\": 2,\n  \"source\": \"hermes-agent\",\n  \"elements\": [ ...your elements array here... ],\n  \"appState\": {\n    \"viewBackgroundColor\": \"#ffffff\"\n  }\n}\n```\n\nSave to any path, e.g. `~\u002Fdiagrams\u002Fmy_diagram.excalidraw`.\n\n### Uploading for a Shareable Link\n\nRun the upload script (located in this skill's `scripts\u002F` directory) via terminal:\n\n```bash\npython skills\u002Fdiagramming\u002Fexcalidraw\u002Fscripts\u002Fupload.py ~\u002Fdiagrams\u002Fmy_diagram.excalidraw\n```\n\nThis uploads to excalidraw.com (no account needed) and prints a shareable URL. Requires the `cryptography` pip package (`pip install cryptography`).\n\n---\n\n## Element Format Reference\n\n### Required Fields (all elements)\n`type`, `id` (unique string), `x`, `y`, `width`, `height`\n\n### Defaults (skip these -- they're applied automatically)\n- `strokeColor`: `\"#1e1e1e\"`\n- `backgroundColor`: `\"transparent\"`\n- `fillStyle`: `\"solid\"`\n- `strokeWidth`: `2`\n- `roughness`: `1` (hand-drawn look)\n- `opacity`: `100`\n\nCanvas background is white.\n\n### Element Types\n\n**Rectangle**:\n```json\n{ \"type\": \"rectangle\", \"id\": \"r1\", \"x\": 100, \"y\": 100, \"width\": 200, \"height\": 100 }\n```\n- `roundness: { \"type\": 3 }` for rounded corners\n- `backgroundColor: \"#a5d8ff\"`, `fillStyle: \"solid\"` for filled\n\n**Ellipse**:\n```json\n{ \"type\": \"ellipse\", \"id\": \"e1\", \"x\": 100, \"y\": 100, \"width\": 150, \"height\": 150 }\n```\n\n**Diamond**:\n```json\n{ \"type\": \"diamond\", \"id\": \"d1\", \"x\": 100, \"y\": 100, \"width\": 150, \"height\": 150 }\n```\n\n**Labeled shape (container binding)** -- create a text element bound to the shape:\n\n> **WARNING:** Do NOT use `\"label\": { \"text\": \"...\" }` on shapes. This is NOT a valid\n> Excalidraw property and will be silently ignored, producing blank shapes. You MUST\n> use the container binding approach below.\n\nThe shape needs `boundElements` listing the text, and the text needs `containerId` pointing back:\n```json\n{ \"type\": \"rectangle\", \"id\": \"r1\", \"x\": 100, \"y\": 100, \"width\": 200, \"height\": 80,\n  \"roundness\": { \"type\": 3 }, \"backgroundColor\": \"#a5d8ff\", \"fillStyle\": \"solid\",\n  \"boundElements\": [{ \"id\": \"t_r1\", \"type\": \"text\" }] },\n{ \"type\": \"text\", \"id\": \"t_r1\", \"x\": 105, \"y\": 110, \"width\": 190, \"height\": 25,\n  \"text\": \"Hello\", \"fontSize\": 20, \"fontFamily\": 1, \"strokeColor\": \"#1e1e1e\",\n  \"textAlign\": \"center\", \"verticalAlign\": \"middle\",\n  \"containerId\": \"r1\", \"originalText\": \"Hello\", \"autoResize\": true }\n```\n- Works on rectangle, ellipse, diamond\n- Text is auto-centered by Excalidraw when `containerId` is set\n- The text `x`\u002F`y`\u002F`width`\u002F`height` are approximate -- Excalidraw recalculates them on load\n- `originalText` should match `text`\n- Always include `fontFamily: 1` (Virgil\u002Fhand-drawn font)\n\n**Labeled arrow** -- same container binding approach:\n```json\n{ \"type\": \"arrow\", \"id\": \"a1\", \"x\": 300, \"y\": 150, \"width\": 200, \"height\": 0,\n  \"points\": [[0,0],[200,0]], \"endArrowhead\": \"arrow\",\n  \"boundElements\": [{ \"id\": \"t_a1\", \"type\": \"text\" }] },\n{ \"type\": \"text\", \"id\": \"t_a1\", \"x\": 370, \"y\": 130, \"width\": 60, \"height\": 20,\n  \"text\": \"connects\", \"fontSize\": 16, \"fontFamily\": 1, \"strokeColor\": \"#1e1e1e\",\n  \"textAlign\": \"center\", \"verticalAlign\": \"middle\",\n  \"containerId\": \"a1\", \"originalText\": \"connects\", \"autoResize\": true }\n```\n\n**Standalone text** (titles and annotations only -- no container):\n```json\n{ \"type\": \"text\", \"id\": \"t1\", \"x\": 150, \"y\": 138, \"text\": \"Hello\", \"fontSize\": 20,\n  \"fontFamily\": 1, \"strokeColor\": \"#1e1e1e\", \"originalText\": \"Hello\", \"autoResize\": true }\n```\n- `x` is the LEFT edge. To center at position `cx`: `x = cx - (text.length * fontSize * 0.5) \u002F 2`\n- Do NOT rely on `textAlign` or `width` for positioning\n\n**Arrow**:\n```json\n{ \"type\": \"arrow\", \"id\": \"a1\", \"x\": 300, \"y\": 150, \"width\": 200, \"height\": 0,\n  \"points\": [[0,0],[200,0]], \"endArrowhead\": \"arrow\" }\n```\n- `points`: `[dx, dy]` offsets from element `x`, `y`\n- `endArrowhead`: `null` | `\"arrow\"` | `\"bar\"` | `\"dot\"` | `\"triangle\"`\n- `strokeStyle`: `\"solid\"` (default) | `\"dashed\"` | `\"dotted\"`\n\n### Arrow Bindings (connect arrows to shapes)\n\n```json\n{\n  \"type\": \"arrow\", \"id\": \"a1\", \"x\": 300, \"y\": 150, \"width\": 150, \"height\": 0,\n  \"points\": [[0,0],[150,0]], \"endArrowhead\": \"arrow\",\n  \"startBinding\": { \"elementId\": \"r1\", \"fixedPoint\": [1, 0.5] },\n  \"endBinding\": { \"elementId\": \"r2\", \"fixedPoint\": [0, 0.5] }\n}\n```\n\n`fixedPoint` coordinates: `top=[0.5,0]`, `bottom=[0.5,1]`, `left=[0,0.5]`, `right=[1,0.5]`\n\n### Drawing Order (z-order)\n- Array order = z-order (first = back, last = front)\n- Emit progressively: background zones → shape → its bound text → its arrows → next shape\n- BAD: all rectangles, then all texts, then all arrows\n- GOOD: bg_zone → shape1 → text_for_shape1 → arrow1 → arrow_label_text → shape2 → text_for_shape2 → ...\n- Always place the bound text element immediately after its container shape\n\n### Sizing Guidelines\n\n**Font sizes:**\n- Minimum `fontSize`: **16** for body text, labels, descriptions\n- Minimum `fontSize`: **20** for titles and headings\n- Minimum `fontSize`: **14** for secondary annotations only (sparingly)\n- NEVER use `fontSize` below 14\n\n**Element sizes:**\n- Minimum shape size: 120x60 for labeled rectangles\u002Fellipses\n- Leave 20-30px gaps between elements minimum\n- Prefer fewer, larger elements over many tiny ones\n\n### Color Palette\n\nSee `references\u002Fcolors.md` for full color tables. Quick reference:\n\n| Use | Fill Color | Hex |\n|-----|-----------|-----|\n| Primary \u002F Input | Light Blue | `#a5d8ff` |\n| Success \u002F Output | Light Green | `#b2f2bb` |\n| Warning \u002F External | Light Orange | `#ffd8a8` |\n| Processing \u002F Special | Light Purple | `#d0bfff` |\n| Error \u002F Critical | Light Red | `#ffc9c9` |\n| Notes \u002F Decisions | Light Yellow | `#fff3bf` |\n| Storage \u002F Data | Light Teal | `#c3fae8` |\n\n### Tips\n- Use the color palette consistently across the diagram\n- **Text contrast is CRITICAL** -- never use light gray on white backgrounds. Minimum text color on white: `#757575`\n- Do NOT use emoji in text -- they don't render in Excalidraw's font\n- For dark mode diagrams, see `references\u002Fdark-mode.md`\n- For larger examples, see `references\u002Fexamples.md`\n\n\n",{"name":5,"author":42,"license":15,"version":43,"metadata":44,"platforms":54,"description":7,"dependencies":55},"Hermes Agent","1.0.0",{"hermes":45},{"tags":46,"related_skills":53},[47,48,49,50,51,52],"Excalidraw","Diagrams","Flowcharts","Architecture","Visualization","JSON",[],[25,24,27],[],"main","0d1434f89f4bc6b07e9d272accd8c1013768820f","registry\u002Fskills\u002Fexcalidraw\u002Fvariants\u002Fhermes-agent",0,"https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills","https:\u002F\u002Fgithub.com\u002Fzapabob","The Open University of JAPAN　2019-now\r\n\r\nTokyo University of Science　2007-2010","2026-10-26 16:29:01",{"source":8,"skillName":5,"commands":65,"prompt":75,"zipAvailable":76},[66,69,72],{"tool":67,"command":68},"npx","npx skills add zapabob\u002FSkills --skill excalidraw",{"tool":70,"command":71},"bunx","bunx skills add zapabob\u002FSkills --skill excalidraw",{"tool":73,"command":74},"pnpm","pnpm dlx skills add zapabob\u002FSkills --skill excalidraw","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fexcalidraw\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",true,[78,84,88,92],{"path":79,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":82,"sourceHtmlUrl":83},"references\u002Fcolors.md","REFERENCE","参考文档",1777,"https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fexcalidraw\u002Fvariants\u002Fhermes-agent\u002Freferences\u002Fcolors.md",{"path":85,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":86,"sourceHtmlUrl":87},"references\u002Fdark-mode.md",2282,"https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fexcalidraw\u002Fvariants\u002Fhermes-agent\u002Freferences\u002Fdark-mode.md",{"path":89,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":90,"sourceHtmlUrl":91},"references\u002Fexamples.md",14226,"https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fexcalidraw\u002Fvariants\u002Fhermes-agent\u002Freferences\u002Fexamples.md",{"path":93,"resourceType":94,"resourceTypeDesc":95,"sizeBytes":96,"sourceHtmlUrl":97},"scripts\u002Fupload.py","SCRIPT","脚本",3817,"https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fexcalidraw\u002Fvariants\u002Fhermes-agent\u002Fscripts\u002Fupload.py",[99,128,163,190,216,232],{"skillNo":100,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":114,"publishedAt":37},"01M6GJTE1GESGGF9K028Y7753E","xurl","X\u002FTwitter via xurl CLI: post, search, DM, media, v2 API.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fxurl\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[105,108,109],{"categoryNo":106,"categoryName":107,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":110,"categoryName":111,"taxonomyType":112,"taxonomyTypeDesc":113},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[101,115,24,116,117,25,27,118,119,120,121,122,123,31,32,124,56,125,126,127],"openclaw","cli","github","official","search","https","social-media","api","Media","twitter","social","via","post",{"skillNo":129,"name":130,"nameZh":6,"description":131,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":132,"categories":133,"keywords":145,"publishedAt":37},"01M6GJT8S1PXQ8WPXT1HSNBWH2","writing-plans","Write implementation plans: bite-sized tasks, paths, code.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fwriting-plans\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[134,137,140,141,142],{"categoryNo":135,"categoryName":136,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":138,"categoryName":139,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":110,"categoryName":111,"taxonomyType":112,"taxonomyTypeDesc":113},{"categoryNo":143,"categoryName":144,"taxonomyType":112,"taxonomyTypeDesc":113},"01JBSEEDCAT000000000000036","内容创作者",[146,147,148,149,24,150,25,151,27,152,153,154,155,156,157,158,159,160,161,162],"writing","writing plans","plans","design","review","workflow","documentation","tasks","development","code","planning","code-review","subagent","write","superpowers","paths","test-driven-development",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":172,"publishedAt":37},"01M6GJST0H5X7WHBJ3BZK0DVKH","whisper","OpenAI's general-purpose speech recognition model. Supports 99 languages, transcription, translation to English, and language identification. Six model sizes from tiny (39M params) to large (1550M params). Use for speech-to-text, podcast transcription, or multilingual audio processing. Best for robust, multilingual ASR.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fwhisper\u002Fvariants\u002Fhermes-agent-optional\u002FSKILL.md",[169],{"categoryNo":170,"categoryName":171,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",[165,24,25,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189],"openai","speech","multimodal","Transformers","ASR","Audio","text","model","speech recognition","use","general","multilingual","translation","english","identification","processing","Audio Processing",{"skillNo":191,"name":192,"nameZh":6,"description":193,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":194,"categories":195,"keywords":199,"publishedAt":37},"01M6GJSMRQ8EETZTYMG72P70EA","weights-and-biases","W&B: log ML experiments, sweeps, model registry, dashboards.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fweights-and-biases\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[196],{"categoryNo":197,"categoryName":198,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000013","分析与可视化",[200,24,201,202,27,203,28,204,205,206,207,180,208,209,210,211,212,213,214,215],"weights and biases","tensorflow","experiments","pytorch","registry","real-time","tuning","dashboards","experiment","log","time","Experiment Tracking","Model Registry","Hyperparameter Tuning","WandB","Real-Time Visualization",{"skillNo":217,"name":218,"nameZh":6,"description":219,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":220,"categories":221,"keywords":223,"publishedAt":37},"01M6GJS19KDPRY112JTR326S06","watchers","Poll RSS, JSON APIs, and GitHub with watermark dedup.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fwatchers\u002Fvariants\u002Fhermes-agent-optional\u002FSKILL.md",[222],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[218,24,224,117,25,225,226,227,228,30,229,31,32,230,231],"terminal","automation","http","monitoring","cron","rss","devops","with",{"skillNo":233,"name":234,"nameZh":6,"description":235,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":236,"categories":237,"keywords":240,"publishedAt":37},"01M6GJRHJD2A6Q830SWF9W48BC","serving-llms-vllm","vLLM: high-throughput LLM serving, OpenAI API, quantization.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fvllm\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[238,239],{"categoryNo":106,"categoryName":107,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":110,"categoryName":111,"taxonomyType":112,"taxonomyTypeDesc":113},[241,242,243,25,244,173,245,246,247,176,248,122,249,250,251,252,253,254,255,256],"llms","vLLM","serving llms vllm","research","openai api","tensor","Inference Serving","Production","llm serving","High Throughput","PagedAttention","Continuous Batching","Quantization","Tensor Parallelism","high-throughput","throughput"]