{
  "schemaVersion": "1.0",
  "item": {
    "slug": "excalidraw-diagrams",
    "name": "Excalidraw Diagrams for Obsidian",
    "source": "tencent",
    "type": "skill",
    "category": "内容创作",
    "sourceUrl": "https://clawhub.ai/Ricardodpalmeida/excalidraw-diagrams",
    "canonicalUrl": "https://clawhub.ai/Ricardodpalmeida/excalidraw-diagrams",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/excalidraw-diagrams",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=excalidraw-diagrams",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "references/excalidraw-format.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/excalidraw-diagrams"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/excalidraw-diagrams",
    "agentPageUrl": "https://openagent3.xyz/skills/excalidraw-diagrams/agent",
    "manifestUrl": "https://openagent3.xyz/skills/excalidraw-diagrams/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/excalidraw-diagrams/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Excalidraw Diagram Generator",
        "body": "Create Excalidraw diagrams from text content with multiple output formats compatible with Obsidian's Excalidraw plugin."
      },
      {
        "title": "Output Modes",
        "body": "The user must explicitly request a diagram. Do not generate or save files unless the user asks for one.\n\nModeWhen to useFile ExtensionUse CaseObsidianUser asks for an Obsidian/Excalidraw diagram.mdOpen directly in Obsidian with Excalidraw pluginStandardUser asks for a standard/excalidraw.com file.excalidrawOpen on excalidraw.com\n\nIf the mode is ambiguous, ask the user which format they want."
      },
      {
        "title": "Process",
        "body": "Confirm output mode with the user if ambiguous\nAnalyze content - identify concepts, relationships, hierarchy\nChoose diagram type based on content structure\nGenerate Excalidraw JSON following design rules below\nOutput in correct format based on mode\nAsk the user for the save path and filename before writing\nCheck if file exists at the target path. If it does, ask before overwriting\nSave the file only after user confirmation"
      },
      {
        "title": "Mode 1: Obsidian Format (Default)",
        "body": "This format wraps the JSON in Markdown so Obsidian's Excalidraw plugin opens it directly:\n\n---\nexcalidraw-plugin: parsed\ntags: [excalidraw]\n---\n\n==⚠  Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠==\nYou can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving'\n\n# Excalidraw Data\n\n## Text Elements\n%%\n\n## Drawing\n```json\n{\"type\":\"excalidraw\",\"version\":2,\"source\":\"https://github.com/zsviczian/obsidian-excalidraw-plugin\",\"elements\":[...],\"appState\":{\"gridSize\":null,\"viewBackgroundColor\":\"#ffffff\"},\"files\":{}}\n\n%%\n\n**Critical formatting rules:**\n- Frontmatter MUST include `tags: [excalidraw]`\n- The warning message must be complete\n- JSON must be inside a ```json code block\n- Text Elements section stays empty (just `%%`)\n- Source must be `\"https://github.com/zsviczian/obsidian-excalidraw-plugin\"` for Obsidian mode\n\n### Mode 2: Standard Excalidraw Format\n\nPure JSON for excalidraw.com:\n\n```json\n{\n  \"type\": \"excalidraw\",\n  \"version\": 2,\n  \"source\": \"https://excalidraw.com\",\n  \"elements\": [...],\n  \"appState\": { \"gridSize\": null, \"viewBackgroundColor\": \"#ffffff\" },\n  \"files\": {}\n}"
      },
      {
        "title": "Typography",
        "body": "All text elements must use \"fontFamily\": 5 (Excalifont - hand-drawn style)\nFont sizes:\n\nTitles: 24-28px (minimum 20px)\nSubtitles: 18-20px\nBody/labels: 16-18px (minimum 16px)\nAnnotations: 14px (use sparingly)\n\n\nNever use font size below 14px - unreadable at normal zoom\nLine height: \"lineHeight\": 1.25 for all text\nText alignment: \"textAlign\": \"center\", \"verticalAlign\": \"middle\" for labels"
      },
      {
        "title": "Layout",
        "body": "Canvas range: Keep all elements within 0-1200 x 0-800 pixels\nMinimum shape size: Rectangles/ellipses with text should be at least 120x60px\nElement spacing: Minimum 20-30px between elements to prevent overlap\nPadding: Leave 50-80px padding around all edges\nGrid: Place elements on 20px grid for alignment"
      },
      {
        "title": "Color Palette",
        "body": "Shape fill colors (backgroundColor, fillStyle: \"solid\"):\n\nColorHexUsageLight Blue#a5d8ffInput, data sources, primary nodesLight Green#b2f2bbSuccess, output, completed statesLight Orange#ffd8a8Warnings, pending, external dependenciesLight Purple#d0bfffProcessing, middleware, special itemsLight Red#ffc9c9Errors, critical alertsLight Yellow#fff3bfNotes, decisions, planningLight Cyan#c3fae8Storage, data, cacheLight Pink#eebefaAnalysis, metrics, statistics\n\nText colors (strokeColor):\n\nUsageHexNotesHeadings#1e40afDeep blueSubtitles/connectors#3b82f6Bright blueBody text#374151Dark gray (minimum #757575 on white)Emphasis#f59e0bGold/amber\n\nContrast rules:\n\nWhite background text: minimum #757575 lightness\nLight fills: use dark variants (e.g., light green fill → #15803d text)\nAvoid light gray text (#b0b0b0, #999) on white"
      },
      {
        "title": "Styling",
        "body": "Roughness: 1 (artist style) for hand-drawn look, or 0 (architect) for clean diagrams\nStroke width: 2 (normal) for most elements\nRoundness: { \"type\": 3 } for rounded corners on rectangles\nOpacity: 100 for most elements, 30-50 for background layers"
      },
      {
        "title": "Diagram Types",
        "body": "Choose the appropriate visualization based on content:\n\nTypeBest ForLayoutFlowchartStep-by-step processes, workflowsTop-to-bottom or left-to-right with arrowsMind MapConcept expansion, brainstormingRadial from centerHierarchyOrg charts, system decompositionTop-down tree structureRelationshipDependencies, interactionsNetwork with connecting linesComparisonA vs B analysisSide-by-side columnsTimelineEvent progression, milestonesHorizontal time axisMatrix2D categorization, priority gridsX/Y coordinate planeArchitectureSystem components, data flowLayered (frontend/middleware/backend)"
      },
      {
        "title": "Root Structure",
        "body": "{\n  \"type\": \"excalidraw\",\n  \"version\": 2,\n  \"source\": \"https://github.com/zsviczian/obsidian-excalidraw-plugin\",\n  \"elements\": [...],\n  \"appState\": {\n    \"gridSize\": null,\n    \"viewBackgroundColor\": \"#ffffff\"\n  },\n  \"files\": {}\n}"
      },
      {
        "title": "Element Template",
        "body": "All elements require these fields:\n\n{\n  \"id\": \"unique-id-string\",\n  \"type\": \"rectangle|ellipse|text|arrow|diamond|line\",\n  \"x\": 100,\n  \"y\": 100,\n  \"width\": 200,\n  \"height\": 50,\n  \"angle\": 0,\n  \"strokeColor\": \"#1e1e1e\",\n  \"backgroundColor\": \"transparent\",\n  \"fillStyle\": \"solid\",\n  \"strokeWidth\": 2,\n  \"strokeStyle\": \"solid\",\n  \"roughness\": 1,\n  \"opacity\": 100,\n  \"groupIds\": [],\n  \"roundness\": { \"type\": 3 },\n  \"seed\": 123456789,\n  \"version\": 1,\n  \"isDeleted\": false,\n  \"boundElements\": null,\n  \"updated\": 1,\n  \"link\": null,\n  \"locked\": false\n}\n\nImportant:\n\nUse \"boundElements\": null (not [])\nUse \"updated\": 1 (not timestamps)\nDo NOT include frameId, index, versionNonce, or rawText"
      },
      {
        "title": "Text Element (additional fields)",
        "body": "{\n  \"type\": \"text\",\n  \"text\": \"Label Text\",\n  \"fontSize\": 20,\n  \"fontFamily\": 5,\n  \"textAlign\": \"center\",\n  \"verticalAlign\": \"middle\",\n  \"containerId\": null,\n  \"originalText\": \"Label Text\",\n  \"autoResize\": true,\n  \"lineHeight\": 1.25\n}"
      },
      {
        "title": "Arrow Element (additional fields)",
        "body": "{\n  \"type\": \"arrow\",\n  \"points\": [[0, 0], [200, 0]],\n  \"startBinding\": null,\n  \"endBinding\": null,\n  \"startArrowhead\": null,\n  \"endArrowhead\": \"arrow\",\n  \"elbowed\": false\n}\n\nFor arrows connecting shapes, use startBinding and endBinding:\n\n{\n  \"startBinding\": { \"elementId\": \"shape-id-1\", \"focus\": 0, \"gap\": 1, \"fixedPoint\": null },\n  \"endBinding\": { \"elementId\": \"shape-id-2\", \"focus\": 0, \"gap\": 1, \"fixedPoint\": null }\n}\n\nAdd the arrow to each shape's boundElements:\n\n{\n  \"boundElements\": [\n    { \"id\": \"arrow-id\", \"type\": \"arrow\" }\n  ]\n}"
      },
      {
        "title": "Text Centering Calculation",
        "body": "Text elements use left-edge x coordinate. To center text:\n\nestimatedWidth = text.length * fontSize * 0.5  (use * 1.0 for CJK characters)\nx = centerX - estimatedWidth / 2\n\nExample: Text \"Hello\" (5 chars, 20px) centered at x=300:\n\nestimatedWidth = 5 * 20 * 0.5 = 50\nx = 300 - 25 = 275"
      },
      {
        "title": "Architecture Diagram",
        "body": "Rectangles for services/components\nColor-code by layer (frontend=blue, middleware=purple, backend=green)\nArrows for data flow\nGroup related components visually"
      },
      {
        "title": "Flowchart",
        "body": "Rectangles for process steps\nDiamonds for decision points\nArrows showing flow direction\nTop-to-bottom or left-to-right layout"
      },
      {
        "title": "Mind Map",
        "body": "Central topic in middle\nBranches radiating outward\nUse consistent colors per branch\nSub-branches connect to main branches"
      },
      {
        "title": "File Naming",
        "body": "Suggest descriptive filenames based on content, but always confirm with the user before saving:\n\nModeFormatExampleObsidian[topic].[type].mdsystem-architecture.diagram.mdStandard[topic].[type].excalidrawsystem-architecture.diagram.excalidraw\n\nBefore writing any file:\n\nConfirm the full save path and filename with the user\nIf a file already exists at that path, warn the user and ask before overwriting\nNever write files silently or to assumed default paths"
      },
      {
        "title": "Example User Messages",
        "body": "\"Create an Excalidraw diagram of our microservices architecture\"\n\"Draw a flowchart showing the CI/CD pipeline\"\n\"Make a mind map of machine learning concepts\"\n\"Generate a standard excalidraw file for this workflow\" (forces .excalidraw output)"
      },
      {
        "title": "Implementation Checklist",
        "body": "When generating a diagram:\n\nConfirm output mode with user (Obsidian or Standard)\n Analyze content and select diagram type\n Plan layout (positions, connections, groupings)\n Generate elements with:\n\n Unique IDs for each element\n \"fontFamily\": 5 for all text\n Proper colors from palette\n Correct bindings for arrows and labels\n\n\n Validate JSON is syntactically correct\n Wrap in appropriate output format\n Confirm save path and filename with user\n Check for existing file at target path (warn if exists)\n Save only after user confirmation\n Report file path and usage instructions to user"
      }
    ],
    "body": "Excalidraw Diagram Generator\n\nCreate Excalidraw diagrams from text content with multiple output formats compatible with Obsidian's Excalidraw plugin.\n\nOutput Modes\n\nThe user must explicitly request a diagram. Do not generate or save files unless the user asks for one.\n\nMode\tWhen to use\tFile Extension\tUse Case\nObsidian\tUser asks for an Obsidian/Excalidraw diagram\t.md\tOpen directly in Obsidian with Excalidraw plugin\nStandard\tUser asks for a standard/excalidraw.com file\t.excalidraw\tOpen on excalidraw.com\n\nIf the mode is ambiguous, ask the user which format they want.\n\nProcess\nConfirm output mode with the user if ambiguous\nAnalyze content - identify concepts, relationships, hierarchy\nChoose diagram type based on content structure\nGenerate Excalidraw JSON following design rules below\nOutput in correct format based on mode\nAsk the user for the save path and filename before writing\nCheck if file exists at the target path. If it does, ask before overwriting\nSave the file only after user confirmation\nOutput Formats\nMode 1: Obsidian Format (Default)\n\nThis format wraps the JSON in Markdown so Obsidian's Excalidraw plugin opens it directly:\n\n---\nexcalidraw-plugin: parsed\ntags: [excalidraw]\n---\n\n==⚠  Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠==\nYou can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving'\n\n# Excalidraw Data\n\n## Text Elements\n%%\n\n## Drawing\n```json\n{\"type\":\"excalidraw\",\"version\":2,\"source\":\"https://github.com/zsviczian/obsidian-excalidraw-plugin\",\"elements\":[...],\"appState\":{\"gridSize\":null,\"viewBackgroundColor\":\"#ffffff\"},\"files\":{}}\n\n\n%%\n\n\n**Critical formatting rules:**\n- Frontmatter MUST include `tags: [excalidraw]`\n- The warning message must be complete\n- JSON must be inside a ```json code block\n- Text Elements section stays empty (just `%%`)\n- Source must be `\"https://github.com/zsviczian/obsidian-excalidraw-plugin\"` for Obsidian mode\n\n### Mode 2: Standard Excalidraw Format\n\nPure JSON for excalidraw.com:\n\n```json\n{\n  \"type\": \"excalidraw\",\n  \"version\": 2,\n  \"source\": \"https://excalidraw.com\",\n  \"elements\": [...],\n  \"appState\": { \"gridSize\": null, \"viewBackgroundColor\": \"#ffffff\" },\n  \"files\": {}\n}\n\nDesign Rules\nTypography\nAll text elements must use \"fontFamily\": 5 (Excalifont - hand-drawn style)\nFont sizes:\nTitles: 24-28px (minimum 20px)\nSubtitles: 18-20px\nBody/labels: 16-18px (minimum 16px)\nAnnotations: 14px (use sparingly)\nNever use font size below 14px - unreadable at normal zoom\nLine height: \"lineHeight\": 1.25 for all text\nText alignment: \"textAlign\": \"center\", \"verticalAlign\": \"middle\" for labels\nLayout\nCanvas range: Keep all elements within 0-1200 x 0-800 pixels\nMinimum shape size: Rectangles/ellipses with text should be at least 120x60px\nElement spacing: Minimum 20-30px between elements to prevent overlap\nPadding: Leave 50-80px padding around all edges\nGrid: Place elements on 20px grid for alignment\nColor Palette\n\nShape fill colors (backgroundColor, fillStyle: \"solid\"):\n\nColor\tHex\tUsage\nLight Blue\t#a5d8ff\tInput, data sources, primary nodes\nLight Green\t#b2f2bb\tSuccess, output, completed states\nLight Orange\t#ffd8a8\tWarnings, pending, external dependencies\nLight Purple\t#d0bfff\tProcessing, middleware, special items\nLight Red\t#ffc9c9\tErrors, critical alerts\nLight Yellow\t#fff3bf\tNotes, decisions, planning\nLight Cyan\t#c3fae8\tStorage, data, cache\nLight Pink\t#eebefa\tAnalysis, metrics, statistics\n\nText colors (strokeColor):\n\nUsage\tHex\tNotes\nHeadings\t#1e40af\tDeep blue\nSubtitles/connectors\t#3b82f6\tBright blue\nBody text\t#374151\tDark gray (minimum #757575 on white)\nEmphasis\t#f59e0b\tGold/amber\n\nContrast rules:\n\nWhite background text: minimum #757575 lightness\nLight fills: use dark variants (e.g., light green fill → #15803d text)\nAvoid light gray text (#b0b0b0, #999) on white\nStyling\nRoughness: 1 (artist style) for hand-drawn look, or 0 (architect) for clean diagrams\nStroke width: 2 (normal) for most elements\nRoundness: { \"type\": 3 } for rounded corners on rectangles\nOpacity: 100 for most elements, 30-50 for background layers\nDiagram Types\n\nChoose the appropriate visualization based on content:\n\nType\tBest For\tLayout\nFlowchart\tStep-by-step processes, workflows\tTop-to-bottom or left-to-right with arrows\nMind Map\tConcept expansion, brainstorming\tRadial from center\nHierarchy\tOrg charts, system decomposition\tTop-down tree structure\nRelationship\tDependencies, interactions\tNetwork with connecting lines\nComparison\tA vs B analysis\tSide-by-side columns\nTimeline\tEvent progression, milestones\tHorizontal time axis\nMatrix\t2D categorization, priority grids\tX/Y coordinate plane\nArchitecture\tSystem components, data flow\tLayered (frontend/middleware/backend)\nJSON Structure\nRoot Structure\n{\n  \"type\": \"excalidraw\",\n  \"version\": 2,\n  \"source\": \"https://github.com/zsviczian/obsidian-excalidraw-plugin\",\n  \"elements\": [...],\n  \"appState\": {\n    \"gridSize\": null,\n    \"viewBackgroundColor\": \"#ffffff\"\n  },\n  \"files\": {}\n}\n\nElement Template\n\nAll elements require these fields:\n\n{\n  \"id\": \"unique-id-string\",\n  \"type\": \"rectangle|ellipse|text|arrow|diamond|line\",\n  \"x\": 100,\n  \"y\": 100,\n  \"width\": 200,\n  \"height\": 50,\n  \"angle\": 0,\n  \"strokeColor\": \"#1e1e1e\",\n  \"backgroundColor\": \"transparent\",\n  \"fillStyle\": \"solid\",\n  \"strokeWidth\": 2,\n  \"strokeStyle\": \"solid\",\n  \"roughness\": 1,\n  \"opacity\": 100,\n  \"groupIds\": [],\n  \"roundness\": { \"type\": 3 },\n  \"seed\": 123456789,\n  \"version\": 1,\n  \"isDeleted\": false,\n  \"boundElements\": null,\n  \"updated\": 1,\n  \"link\": null,\n  \"locked\": false\n}\n\n\nImportant:\n\nUse \"boundElements\": null (not [])\nUse \"updated\": 1 (not timestamps)\nDo NOT include frameId, index, versionNonce, or rawText\nText Element (additional fields)\n{\n  \"type\": \"text\",\n  \"text\": \"Label Text\",\n  \"fontSize\": 20,\n  \"fontFamily\": 5,\n  \"textAlign\": \"center\",\n  \"verticalAlign\": \"middle\",\n  \"containerId\": null,\n  \"originalText\": \"Label Text\",\n  \"autoResize\": true,\n  \"lineHeight\": 1.25\n}\n\nArrow Element (additional fields)\n{\n  \"type\": \"arrow\",\n  \"points\": [[0, 0], [200, 0]],\n  \"startBinding\": null,\n  \"endBinding\": null,\n  \"startArrowhead\": null,\n  \"endArrowhead\": \"arrow\",\n  \"elbowed\": false\n}\n\n\nFor arrows connecting shapes, use startBinding and endBinding:\n\n{\n  \"startBinding\": { \"elementId\": \"shape-id-1\", \"focus\": 0, \"gap\": 1, \"fixedPoint\": null },\n  \"endBinding\": { \"elementId\": \"shape-id-2\", \"focus\": 0, \"gap\": 1, \"fixedPoint\": null }\n}\n\n\nAdd the arrow to each shape's boundElements:\n\n{\n  \"boundElements\": [\n    { \"id\": \"arrow-id\", \"type\": \"arrow\" }\n  ]\n}\n\nText Centering Calculation\n\nText elements use left-edge x coordinate. To center text:\n\nestimatedWidth = text.length * fontSize * 0.5  (use * 1.0 for CJK characters)\nx = centerX - estimatedWidth / 2\n\n\nExample: Text \"Hello\" (5 chars, 20px) centered at x=300:\n\nestimatedWidth = 5 * 20 * 0.5 = 50\nx = 300 - 25 = 275\nCommon Patterns\nArchitecture Diagram\nRectangles for services/components\nColor-code by layer (frontend=blue, middleware=purple, backend=green)\nArrows for data flow\nGroup related components visually\nFlowchart\nRectangles for process steps\nDiamonds for decision points\nArrows showing flow direction\nTop-to-bottom or left-to-right layout\nMind Map\nCentral topic in middle\nBranches radiating outward\nUse consistent colors per branch\nSub-branches connect to main branches\nFile Naming\n\nSuggest descriptive filenames based on content, but always confirm with the user before saving:\n\nMode\tFormat\tExample\nObsidian\t[topic].[type].md\tsystem-architecture.diagram.md\nStandard\t[topic].[type].excalidraw\tsystem-architecture.diagram.excalidraw\n\nBefore writing any file:\n\nConfirm the full save path and filename with the user\nIf a file already exists at that path, warn the user and ask before overwriting\nNever write files silently or to assumed default paths\nExample User Messages\n\"Create an Excalidraw diagram of our microservices architecture\"\n\"Draw a flowchart showing the CI/CD pipeline\"\n\"Make a mind map of machine learning concepts\"\n\"Generate a standard excalidraw file for this workflow\" (forces .excalidraw output)\nImplementation Checklist\n\nWhen generating a diagram:\n\n Confirm output mode with user (Obsidian or Standard)\n Analyze content and select diagram type\n Plan layout (positions, connections, groupings)\n Generate elements with:\n Unique IDs for each element\n \"fontFamily\": 5 for all text\n Proper colors from palette\n Correct bindings for arrows and labels\n Validate JSON is syntactically correct\n Wrap in appropriate output format\n Confirm save path and filename with user\n Check for existing file at target path (warn if exists)\n Save only after user confirmation\n Report file path and usage instructions to user"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/Ricardodpalmeida/excalidraw-diagrams",
    "publisherUrl": "https://clawhub.ai/Ricardodpalmeida/excalidraw-diagrams",
    "owner": "Ricardodpalmeida",
    "version": "1.0.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/excalidraw-diagrams",
    "downloadUrl": "https://openagent3.xyz/downloads/excalidraw-diagrams",
    "agentUrl": "https://openagent3.xyz/skills/excalidraw-diagrams/agent",
    "manifestUrl": "https://openagent3.xyz/skills/excalidraw-diagrams/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/excalidraw-diagrams/agent.md"
  }
}