[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71FS5JTSW8RBX8YNJS3BBWG":3,"skill-same:01M71FS5JTSW8RBX8YNJS3BBWG":95},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":55,"commitSha":56,"skillDirectory":57,"forksCount":13,"repositoryHtmlUrl":58,"repositoryHomepageUrl":6,"ownerHtmlUrl":59,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":60,"install":61,"resources":74},"01M71FS5JTSW8RBX8YNJS3BBWG","excalidraw",null,"Create hand-drawn style diagrams using Excalidraw JSON format. Generate .excalidraw files for architecture diagrams, flowcharts, sequence diagrams, concept maps, and more. Files can be opened at excalidraw.com or uploaded for shareable links.","gjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6","gjbvsjjvgm-sketch","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F278511911?v=4","01M71F3JXKZQ70H2KCHHTXKZDA","01M71F3JY8A79Z3NZBW08TF4JD",0,"MIT","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes-agent\u002Fskills\u002Fcreative\u002Fexcalidraw\u002FSKILL.md",[],[5,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36],"architecture","format","at","json","generate","style","create","maps","can","hand","files","more","json format","architecture diagrams","for","visualization","links","concept","diagrams","2026-11-10 10:12:30",false,"---\nname: excalidraw\ndescription: Create hand-drawn style diagrams using Excalidraw JSON format. Generate .excalidraw files for architecture diagrams, flowcharts, sequence diagrams, concept maps, and more. Files can be opened at excalidraw.com or uploaded for shareable links.\nversion: 1.0.0\nauthor: YOUSEF SHTIWE\nlicense: MIT\ndependencies: []\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## 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\": \"yousef-sovereign-core\",\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## 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\": \"yousef-sovereign-core\",\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":14,"version":43,"metadata":44,"description":7,"dependencies":54},"YOUSEF SHTIWE","1.0.0",{"hermes":45},{"tags":46,"related_skills":53},[47,48,49,50,51,52],"Excalidraw","Diagrams","Flowcharts","Architecture","Visualization","JSON",[],[],"main","93bbc269671fbb340afa15b36a8766f15dc30df2","hermes-agent\u002Fskills\u002Fcreative\u002Fexcalidraw","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch","2026-04-27 02:51:28",{"source":8,"skillName":5,"commands":62,"prompt":72,"zipAvailable":73},[63,66,69],{"tool":64,"command":65},"npx","npx skills add gjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6 --skill excalidraw",{"tool":67,"command":68},"bunx","bunx skills add gjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6 --skill excalidraw",{"tool":70,"command":71},"pnpm","pnpm dlx skills add gjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6 --skill excalidraw","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes-agent\u002Fskills\u002Fcreative\u002Fexcalidraw\u002FSKILL.md",true,[75,81,85,89],{"path":76,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":79,"sourceHtmlUrl":80},"references\u002Fcolors.md","REFERENCE","参考文档",1777,"https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes-agent\u002Fskills\u002Fcreative\u002Fexcalidraw\u002Freferences\u002Fcolors.md",{"path":82,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":83,"sourceHtmlUrl":84},"references\u002Fdark-mode.md",2282,"https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes-agent\u002Fskills\u002Fcreative\u002Fexcalidraw\u002Freferences\u002Fdark-mode.md",{"path":86,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":87,"sourceHtmlUrl":88},"references\u002Fexamples.md",14235,"https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes-agent\u002Fskills\u002Fcreative\u002Fexcalidraw\u002Freferences\u002Fexamples.md",{"path":90,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":93,"sourceHtmlUrl":94},"scripts\u002Fupload.py","SCRIPT","脚本",3817,"https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes-agent\u002Fskills\u002Fcreative\u002Fexcalidraw\u002Fscripts\u002Fupload.py",[96,138,166,182,201,222],{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":118,"publishedAt":37},"01M71G6TJ2RAQ1J0PV3K6D9GQA","writing-plans","Use when you have a spec or requirements for a multi-step task. Creates comprehensive implementation plans with bite-sized tasks, exact file paths, and complete code examples.","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes_sovereign_data\u002Fskills\u002Fsoftware-development\u002Fwriting-plans\u002FSKILL.md",[102,107,110,115],{"categoryNo":103,"categoryName":104,"taxonomyType":105,"taxonomyTypeDesc":106},"01JBSEEDCAT000000000000015","视觉设计","SCENARIO","使用场景",{"categoryNo":108,"categoryName":109,"taxonomyType":105,"taxonomyTypeDesc":106},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":111,"categoryName":112,"taxonomyType":113,"taxonomyTypeDesc":114},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",{"categoryNo":116,"categoryName":117,"taxonomyType":113,"taxonomyTypeDesc":114},"01JBSEEDCAT000000000000036","内容创作者",[119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,32,136,137],"writing","writing plans","plans","design","review","workflow","documentation","tasks","development","code","planning","code-review","subagent","superpowers","paths","test-driven-development","you","test-driven","when",{"skillNo":139,"name":134,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":151,"publishedAt":37},"01M71G6R81013R3T7W5VP56GCB","Use when implementing any feature or bugfix, before writing implementation code. Enforces RED-GREEN-REFACTOR cycle with test-first approach.","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes_sovereign_data\u002Fskills\u002Fsoftware-development\u002Ftest-driven-development\u002FSKILL.md",[143,146,149,150],{"categoryNo":144,"categoryName":145,"taxonomyType":105,"taxonomyTypeDesc":106},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":147,"categoryName":148,"taxonomyType":105,"taxonomyTypeDesc":106},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":108,"categoryName":109,"taxonomyType":105,"taxonomyTypeDesc":106},{"categoryNo":116,"categoryName":117,"taxonomyType":113,"taxonomyTypeDesc":114},[152,153,127,154,155,119,156,128,157,131,132,158,159,160,161,162,163,164,165,137],"test","test driven development","driven","testing","debugging","refactor","red-green-refactor","cycle","green","systematic","bugfix","implementing","systematic-debugging","test-first",{"skillNo":167,"name":164,"nameZh":6,"description":168,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":169,"categories":170,"keywords":172,"publishedAt":37},"01M71G6N0Y546JZEDF25E2PMCE","Use when encountering any bug, test failure, or unexpected behavior. 4-phase root cause investigation — NO fixes without understanding the problem first.","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes_sovereign_data\u002Fskills\u002Fsoftware-development\u002Fsystematic-debugging\u002FSKILL.md",[171],{"categoryNo":147,"categoryName":148,"taxonomyType":105,"taxonomyTypeDesc":106},[173,156,161,119,152,127,131,174,132,175,176,177,121,178,134,179,136,180,181,137],"systematic debugging","use","bug","root-cause","problem-solving","problem","fixes","phase","root cause",{"skillNo":183,"name":184,"nameZh":6,"description":185,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":186,"categories":187,"keywords":194,"publishedAt":37},"01M71G6J0DXEGY48GH4KVW2SJH","subagent-driven-development","Use when executing implementation plans with independent tasks. Dispatches fresh delegate_task per task with two-stage review (spec compliance then code quality).","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes_sovereign_data\u002Fskills\u002Fsoftware-development\u002Fsubagent-driven-development\u002FSKILL.md",[188,189,190,191],{"categoryNo":108,"categoryName":109,"taxonomyType":105,"taxonomyTypeDesc":106},{"categoryNo":111,"categoryName":112,"taxonomyType":113,"taxonomyTypeDesc":114},{"categoryNo":116,"categoryName":117,"taxonomyType":113,"taxonomyTypeDesc":114},{"categoryNo":192,"categoryName":193,"taxonomyType":113,"taxonomyTypeDesc":114},"01JBSEEDCAT000000000000037","律师与法务",[127,195,131,154,119,123,124,196,126,128,197,130,198,199,132,121,200,134,136,137],"subagent driven development","code quality","delegation","parallel","delegate","fresh",{"skillNo":202,"name":203,"nameZh":6,"description":204,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":205,"categories":206,"keywords":209,"publishedAt":37},"01M71G6EFFBQX6634E6XHB09Y1","requesting-code-review","Pre-commit verification pipeline — static security scan, baseline-aware quality gates, independent reviewer subagent, and auto-fix loop. Use after code changes and before committing, pushing, or opening a PR.","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes_sovereign_data\u002Fskills\u002Fsoftware-development\u002Frequesting-code-review\u002FSKILL.md",[207,208],{"categoryNo":144,"categoryName":145,"taxonomyType":105,"taxonomyTypeDesc":106},{"categoryNo":111,"categoryName":112,"taxonomyType":113,"taxonomyTypeDesc":114},[210,123,128,211,119,212,130,213,214,215,216,131,217,218,219,132,134,220,221,136],"code review","requesting code review","commit","verification","security scan","pipeline","loop","reviewer","fix","auto","static","auto-fix",{"skillNo":223,"name":224,"nameZh":6,"description":225,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":226,"categories":227,"keywords":228,"publishedAt":37},"01M71G6CM8ANSWVFXCN9AAD58Y","plan","Plan mode for Hermes — inspect context, write a markdown plan into the active workspace's `.hermes\u002Fplans\u002F` directory, and do not execute the work.","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes_sovereign_data\u002Fskills\u002Fsoftware-development\u002Fplan\u002FSKILL.md",[],[224,119,229,124,127,129,230,131,231,232,233,234,235,236,121,237,238,239,32,240],"directory","markdown","workspace","work","write","implementation","do","active","plan mode","inspect","mode","plan-mode"]