[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7CVBCMS8DA09T4JMAG6BVB8":3,"skill-same:01M7CVBCMS8DA09T4JMAG6BVB8":81},{"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":18,"linkOnly":19,"markdownContent":20,"markdownBody":21,"frontMatter":22,"refName":41,"commitSha":42,"skillDirectory":43,"forksCount":13,"repositoryHtmlUrl":44,"repositoryHomepageUrl":6,"ownerHtmlUrl":45,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":46,"install":47,"resources":60},"01M7CVBCMS8DA09T4JMAG6BVB8","excalidraw",null,"Hand-drawn Excalidraw JSON diagrams (arch, flow, seq).","dwikanugraha13\u002FProject-Anara","dwikanugraha13","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F63535036?v=4","01M7CTBN0DG8GDNP4QZ68W8M0A","01M7CTBN10Q015JDBYJS6AJRGN",0,"MIT","https:\u002F\u002Fgithub.com\u002Fdwikanugraha13\u002FProject-Anara\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fexcalidraw\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\ncategory: creative\nname: excalidraw\ndescription: \"Hand-drawn Excalidraw JSON diagrams (arch, flow, seq).\"\nversion: 1.0.1\nauthor: Anara Agent\nlicense: MIT\ndependencies: []\nplatforms: [linux, macos, windows]\nmetadata:\n  anara:\n    tags: [Excalidraw, Diagrams, Flowcharts, Architecture, Visualization, JSON]\n    related_skills: []\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\": \"anara-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\u002Fcreative\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","# 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\": \"anara-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\u002Fcreative\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",{"name":5,"author":23,"license":14,"version":24,"category":25,"metadata":26,"platforms":36,"description":7,"dependencies":40},"Anara Agent","1.0.1","creative",{"anara":27},{"tags":28,"related_skills":35},[29,30,31,32,33,34],"Excalidraw","Diagrams","Flowcharts","Architecture","Visualization","JSON",[],[37,38,39],"linux","macos","windows",[],"main","3e6d6b7ffb6ab43ddf3991509e5cfb5f8c90cd1a","backend\u002Fskills\u002Fexcalidraw","https:\u002F\u002Fgithub.com\u002Fdwikanugraha13\u002FProject-Anara","https:\u002F\u002Fgithub.com\u002Fdwikanugraha13","2026-10-13 07:57:21",{"source":8,"skillName":5,"commands":48,"prompt":58,"zipAvailable":59},[49,52,55],{"tool":50,"command":51},"npx","npx skills add dwikanugraha13\u002FProject-Anara --skill excalidraw",{"tool":53,"command":54},"bunx","bunx skills add dwikanugraha13\u002FProject-Anara --skill excalidraw",{"tool":56,"command":57},"pnpm","pnpm dlx skills add dwikanugraha13\u002FProject-Anara --skill excalidraw","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fdwikanugraha13\u002FProject-Anara\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fexcalidraw\u002FSKILL.md",true,[61,67,71,75],{"path":62,"resourceType":63,"resourceTypeDesc":64,"sizeBytes":65,"sourceHtmlUrl":66},"references\u002Fcolors.md","REFERENCE","参考文档",1777,"https:\u002F\u002Fgithub.com\u002Fdwikanugraha13\u002FProject-Anara\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fexcalidraw\u002Freferences\u002Fcolors.md",{"path":68,"resourceType":63,"resourceTypeDesc":64,"sizeBytes":69,"sourceHtmlUrl":70},"references\u002Fdark-mode.md",2282,"https:\u002F\u002Fgithub.com\u002Fdwikanugraha13\u002FProject-Anara\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fexcalidraw\u002Freferences\u002Fdark-mode.md",{"path":72,"resourceType":63,"resourceTypeDesc":64,"sizeBytes":73,"sourceHtmlUrl":74},"references\u002Fexamples.md",14225,"https:\u002F\u002Fgithub.com\u002Fdwikanugraha13\u002FProject-Anara\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fexcalidraw\u002Freferences\u002Fexamples.md",{"path":76,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":79,"sourceHtmlUrl":80},"scripts\u002Fupload.py","SCRIPT","脚本",3817,"https:\u002F\u002Fgithub.com\u002Fdwikanugraha13\u002FProject-Anara\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fexcalidraw\u002Fscripts\u002Fupload.py",[82,89,96,104,111,118],{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":88,"publishedAt":18},"01M7CVK8W5MPQ8H45A6XE6RPK1","youtube-content","YouTube transcripts to summaries, threads, blogs.","https:\u002F\u002Fgithub.com\u002Fdwikanugraha13\u002FProject-Anara\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fyoutube-content\u002FSKILL.md",[],[],{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":95,"publishedAt":18},"01M7CVK56KG9399ZZVE9KM54WS","xurl","X\u002FTwitter via xurl CLI: raw post search, posting, DM, media.","https:\u002F\u002Fgithub.com\u002Fdwikanugraha13\u002FProject-Anara\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fxurl\u002FSKILL.md",[],[],{"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":100,"sourceHtmlUrl":101,"categories":102,"keywords":103,"publishedAt":18},"01M7CVK22A44A88NPPBAC1FVQP","xlsx","Create, read, edit Excel .xlsx workbooks and CSVs.","https:\u002F\u002Fgithub.com\u002Fdwikanugraha13\u002FProject-Anara\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fxlsx\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fdwikanugraha13\u002FProject-Anara\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fxlsx\u002FSKILL.md",[],[],{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":110,"publishedAt":18},"01M7CVJX88C8PY2T6RQZ5GCG15","weights-and-biases","W&B: log ML experiments, sweeps, model registry, dashboards.","https:\u002F\u002Fgithub.com\u002Fdwikanugraha13\u002FProject-Anara\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fweights-and-biases\u002FSKILL.md",[],[],{"skillNo":112,"name":113,"nameZh":6,"description":114,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":115,"categories":116,"keywords":117,"publishedAt":18},"01M7CVJR3W1FBRGC56DG6BJ1Y3","weekly-review-planning","Weekly reset: commitments, stalled work, next-week plan.","https:\u002F\u002Fgithub.com\u002Fdwikanugraha13\u002FProject-Anara\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fweekly-review-planning\u002FSKILL.md",[],[],{"skillNo":119,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":124,"publishedAt":18},"01M7CVJGPJNPQDM8S1KTTMJN7M","touchdesigner-mcp","Control TouchDesigner via twozero MCP.","https:\u002F\u002Fgithub.com\u002Fdwikanugraha13\u002FProject-Anara\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Ftouchdesigner-mcp\u002FSKILL.md",[],[]]