[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6WWSQYXV76PK36YANQ7Y2PR":3,"skill-same:01M6WWSQYXV76PK36YANQ7Y2PR":75},{"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":18,"publishedAt":36,"linkOnly":37,"markdownContent":38,"markdownBody":39,"frontMatter":40,"refName":48,"commitSha":49,"skillDirectory":50,"forksCount":14,"repositoryHtmlUrl":51,"repositoryHomepageUrl":52,"ownerHtmlUrl":53,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":54,"install":55,"resources":68},"01M6WWSQYXV76PK36YANQ7Y2PR","excalidraw",null,"Generates Excalidraw diagrams programmatically as hand-drawn-style JSON. Use when creating architecture diagrams, flowcharts, or hand-drawn-style visuals for documentation, or when converting existing diagrams to editable Excalidraw JSON.","projectious-work\u002Fprocesskit","projectious-work","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F263889726?v=4","01M6N97TJJ118WQ35CHRV8RD0E","projectious.work","01M6N97TPWJPF0BMKYQ4PBY5W8",0,"MIT","https:\u002F\u002Fgithub.com\u002Fprojectious-work\u002Fprocesskit\u002Fblob\u002Fmain\u002Farchive\u002Fprocesskit-install-20261101\u002Fcontext\u002Ftemplates\u002Fprocesskit\u002Fv0.10.0\u002Fcontext\u002Fskills\u002Fdesign\u002Fexcalidraw\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35],"diagrams","when","Existing","for","v1","hand","editable","style","as","design","use","work","json","architecture diagrams","documentation","visuals","architecture","2026-11-10 10:12:30",false,"---\nname: excalidraw\ndescription: |\n  Generates Excalidraw diagrams programmatically as hand-drawn-style JSON. Use when creating architecture diagrams, flowcharts, or hand-drawn-style visuals for documentation, or when converting existing diagrams to editable Excalidraw JSON.\nmetadata:\n  processkit:\n    apiVersion: processkit.projectious.work\u002Fv1\n    id: SKILL-excalidraw\n    version: \"1.1.0\"\n    created: 2026-04-06T00:00:00Z\n    category: design\n---\n\n# Excalidraw\n\n## Intro\n\nExcalidraw files are JSON with a top-level `elements` array of shapes,\ntext, and arrows. Generate them directly to produce hand-drawn-style\narchitecture diagrams, flowcharts, and documentation visuals that stay\neditable in the Excalidraw app.\n\n## Overview\n\n### File shape\n\nAn `.excalidraw` file has a fixed envelope and a list of elements:\n\n```json\n{\n  \"type\": \"excalidraw\",\n  \"version\": 2,\n  \"source\": \"generated\",\n  \"elements\": [],\n  \"appState\": {\n    \"viewBackgroundColor\": \"#ffffff\",\n    \"gridSize\": 20\n  },\n  \"files\": {}\n}\n```\n\nEvery element carries `id` (unique 8+ char string), `type`, position\n(`x`, `y`), dimensions, and styling: `strokeColor`, `backgroundColor`,\n`fillStyle` (`solid` \u002F `hachure` \u002F `cross-hatch`), `strokeWidth`\n(1\u002F2\u002F4), `roughness` (0 architect, 1 artist, 2 cartoonist), `opacity`\n(0-100), plus `groupIds` and `boundElements` for linking.\n\n### Element types\n\nUse `rectangle` (with `roundness: { type: 3 }` for rounded corners)\nfor boxes and containers, `ellipse` for soft nodes, `diamond` for\ndecisions, `text` for labels, and `arrow` \u002F `line` for connections.\n`freedraw` and `image` are available but rarely generated.\n\n```json\n{\n  \"id\": \"rect1\", \"type\": \"rectangle\",\n  \"x\": 100, \"y\": 100, \"width\": 200, \"height\": 80,\n  \"strokeColor\": \"#1e1e1e\", \"backgroundColor\": \"#a5d8ff\",\n  \"fillStyle\": \"solid\", \"strokeWidth\": 2, \"roughness\": 1,\n  \"roundness\": { \"type\": 3 }\n}\n```\n\nText elements set `text`, `fontSize`, `fontFamily` (1 = Virgil\nhand-drawn, 2 = Helvetica, 3 = Cascadia mono), `textAlign`, and\n`verticalAlign`. Arrows use `points` relative to `x, y` plus optional\n`startBinding` \u002F `endBinding` linking to target element IDs.\n\n### Binding text to shapes\n\nTo label a shape, create a text element and bind both sides:\n\n1. On the container: add `\"boundElements\": [{\"id\": \"textId\", \"type\":\n   \"text\"}]`.\n2. On the text: set `\"containerId\": \"shapeId\"` and size the text to\n   fit inside the container.\n3. Excalidraw auto-centers the text within the shape.\n\n### Layout guidelines\n\n- Align coordinates to multiples of 20 (matches the default grid).\n- Leave 80-120px between connected elements.\n- Use left-to-right for flows and pipelines, top-to-bottom for\n  hierarchies.\n- Group related elements with a shared `groupIds` entry.\n- Label every shape; keep one idea per diagram and split if it grows\n  beyond a single viewport.\n- Titles 28-32px, labels 20-24px, annotations 16-18px, never below\n  16px.\n- Give similar elements the same width and height for visual rhythm.\n\n### Semantic color palette\n\nPick from this palette and stay consistent within a diagram:\n\n| Role | Fill (`backgroundColor`) | Stroke (`strokeColor`) |\n|---|---|---|\n| Primary \u002F action | `#a5d8ff` | `#1971c2` |\n| Secondary \u002F support | `#d0bfff` | `#6741d9` |\n| Success \u002F positive | `#b2f2bb` | `#2f9e44` |\n| Warning \u002F caution | `#ffec99` | `#e8590c` |\n| Danger \u002F error | `#ffc9c9` | `#e03131` |\n| Neutral \u002F container | `#e9ecef` | `#495057` |\n\nSet `\"fillStyle\": \"solid\"` when a shape is filled.\n\n### Diagram types\n\n- **Architecture:** rectangles for services and databases (rounded\n  corners), arrows for data flow with labels, a larger container\n  rectangle grouping related services, colors by layer (frontend\n  blue, backend green, data yellow).\n- **Flowchart:** diamonds for decisions, rectangles for processes,\n  ellipses for start\u002Fend, consistent direction, \"Yes\"\u002F\"No\" labels on\n  decision arrows.\n- **Sequence-style:** vertical arrangement with horizontal arrows,\n  operation names on each arrow, dashed arrows for responses.\n\n### Embedding in docs\n\nSave the `.excalidraw` source for editing, export SVG or PNG for\nembedding. GitHub renders `.excalidraw.png` directly in Markdown. The\nExcalidraw VS Code extension renders `.excalidraw` files in-editor.\n\n## Gotchas\n\nAgent-specific failure modes — provider-neutral pause-and-self-check items:\n\n- **Using short or sequential element IDs like \"1\", \"2\", \"3\".** Element IDs must be globally unique across the file. Duplicate or predictable IDs cause Excalidraw to silently overwrite or misrender elements. Use random 8+ character strings as the spec requires.\n- **Placing coordinates without snapping to the 20px grid.** Elements at arbitrary coordinates (e.g., `x: 73, y: 117`) appear misaligned when the file is opened and manually edited. Snap all positions to multiples of 20 to match the default grid.\n- **Omitting `boundElements` or `containerId` for labeled shapes.** A text element placed visually on top of a shape is not bound to it — moving the shape leaves the label behind. To label a shape, both the container's `boundElements` and the text's `containerId` must reference each other.\n- **Generating bindings that reference non-existent element IDs.** Arrows with `startBinding` or `endBinding` pointing to IDs not present in the `elements` array fail to render their connections. Always verify that every binding target ID exists in the file before emitting.\n- **Using `image` elements without populating the `files` object.** Excalidraw image elements reference a file ID that must appear as a key in the top-level `files` object with base64-encoded content. Omitting this entry renders a broken image placeholder.\n- **Generating all elements at the same coordinates.** Without a deliberate layout plan — left-to-right for flows, top-to-bottom for hierarchies, 80-120px between nodes — elements overlap on open and the diagram is unusable. Plan the coordinate layout before emitting any elements.\n- **Emitting incomplete JSON that omits required top-level keys.** A file missing `type`, `version`, `appState`, or `files` (even as an empty `{}`) fails validation when loaded in Excalidraw. Always emit the complete v2 envelope even for minimal diagrams.\n\n## Full reference\n\n### Full element property reference\n\nCommon properties across all element types:\n\n```\nid              string    Unique identifier (use descriptive IDs)\ntype            string    rectangle|ellipse|diamond|text|arrow|\n                          line|freedraw|image\nx, y            number    Position (top-left corner)\nwidth, height   number    Bounding box size\nangle           number    Rotation in radians (default 0)\nstrokeColor     string    Border\u002Fline color (hex)\nbackgroundColor string    Fill color (hex, or \"transparent\")\nfillStyle       string    \"solid\" | \"hachure\" | \"cross-hatch\"\nstrokeWidth     number    1 (thin), 2 (normal), 4 (bold)\nstrokeStyle     string    \"solid\" | \"dashed\" | \"dotted\"\nroughness       number    0 (architect) | 1 (artist) | 2 (cartoonist)\nopacity         number    0-100\nroundness       object    { \"type\": 3 } for rounded corners, null for sharp\nisDeleted       boolean   Soft-delete flag (default false)\nboundElements   array     [{ \"id\": \"...\", \"type\": \"text|arrow\" }]\ngroupIds        array     Group IDs for visually grouping elements\n```\n\nText-specific properties:\n\n```\ntext            string    The displayed text\nfontSize        number    Size in px (16-32 typical)\nfontFamily      number    1 (Virgil\u002Fhand), 2 (Helvetica), 3 (Cascadia\u002Fmono)\ntextAlign       string    \"left\" | \"center\" | \"right\"\nverticalAlign   string    \"top\" | \"middle\"\ncontainerId     string    ID of parent container (for bound text)\n```\n\nArrow and line properties:\n\n```\npoints          array     [[0,0], [dx,dy]] - relative to x,y\nstartBinding    object    { \"elementId\": \"id\", \"focus\": 0, \"gap\": 4 }\nendBinding      object    { \"elementId\": \"id\", \"focus\": 0, \"gap\": 4 }\nstartArrowhead  string    null | \"arrow\" | \"dot\" | \"bar\"\nendArrowhead    string    null | \"arrow\" | \"dot\" | \"bar\"\n```\n\n`focus` ranges from -1 to 1 and controls where the arrow attaches\n(0 = center). `gap` is the space between the arrowhead and the target\nborder. Target elements must list the arrow in their `boundElements`.\n\n### Minimal valid file\n\n```json\n{\n  \"type\": \"excalidraw\",\n  \"version\": 2,\n  \"source\": \"generated\",\n  \"elements\": [\n    {\n      \"id\": \"box1\",\n      \"type\": \"rectangle\",\n      \"x\": 100,\n      \"y\": 100,\n      \"width\": 200,\n      \"height\": 80,\n      \"strokeColor\": \"#1971c2\",\n      \"backgroundColor\": \"#a5d8ff\",\n      \"fillStyle\": \"solid\",\n      \"strokeWidth\": 2,\n      \"roughness\": 1,\n      \"opacity\": 100,\n      \"angle\": 0,\n      \"groupIds\": [],\n      \"roundness\": { \"type\": 3 },\n      \"boundElements\": [\n        { \"id\": \"label1\", \"type\": \"text\" }\n      ],\n      \"isDeleted\": false\n    },\n    {\n      \"id\": \"label1\",\n      \"type\": \"text\",\n      \"x\": 140,\n      \"y\": 125,\n      \"width\": 120,\n      \"height\": 30,\n      \"text\": \"Service A\",\n      \"fontSize\": 20,\n      \"fontFamily\": 1,\n      \"textAlign\": \"center\",\n      \"verticalAlign\": \"middle\",\n      \"containerId\": \"box1\",\n      \"strokeColor\": \"#1e1e1e\",\n      \"backgroundColor\": \"transparent\",\n      \"fillStyle\": \"solid\",\n      \"strokeWidth\": 1,\n      \"roughness\": 1,\n      \"opacity\": 100,\n      \"angle\": 0,\n      \"groupIds\": [],\n      \"boundElements\": null,\n      \"isDeleted\": false\n    }\n  ],\n  \"appState\": {\n    \"viewBackgroundColor\": \"#ffffff\",\n    \"gridSize\": 20\n  },\n  \"files\": {}\n}\n```\n\n### Common patterns\n\n- **Container with children:** use a large rectangle as a visual\n  container with smaller elements inside. Bind arrows to the\n  container, not to the children.\n- **Labeled arrow:** create an arrow between two shapes, then add a\n  standalone text element positioned near the arrow's midpoint. Arrow\n  labels do not need `containerId`.\n- **Decision diamond:** use `type: \"diamond\"` with bound text.\n  Connect \"Yes\" and \"No\" arrows from different sides and label each\n  arrow with a nearby text element.\n- **Grouping:** assign the same `groupIds` entry to multiple elements\n  to link them as a visual group.\n\n### References\n\n- `references\u002Fjson-schema.md` — full element schema and minimal file\n  template.\n","# Excalidraw\n\n## Intro\n\nExcalidraw files are JSON with a top-level `elements` array of shapes,\ntext, and arrows. Generate them directly to produce hand-drawn-style\narchitecture diagrams, flowcharts, and documentation visuals that stay\neditable in the Excalidraw app.\n\n## Overview\n\n### File shape\n\nAn `.excalidraw` file has a fixed envelope and a list of elements:\n\n```json\n{\n  \"type\": \"excalidraw\",\n  \"version\": 2,\n  \"source\": \"generated\",\n  \"elements\": [],\n  \"appState\": {\n    \"viewBackgroundColor\": \"#ffffff\",\n    \"gridSize\": 20\n  },\n  \"files\": {}\n}\n```\n\nEvery element carries `id` (unique 8+ char string), `type`, position\n(`x`, `y`), dimensions, and styling: `strokeColor`, `backgroundColor`,\n`fillStyle` (`solid` \u002F `hachure` \u002F `cross-hatch`), `strokeWidth`\n(1\u002F2\u002F4), `roughness` (0 architect, 1 artist, 2 cartoonist), `opacity`\n(0-100), plus `groupIds` and `boundElements` for linking.\n\n### Element types\n\nUse `rectangle` (with `roundness: { type: 3 }` for rounded corners)\nfor boxes and containers, `ellipse` for soft nodes, `diamond` for\ndecisions, `text` for labels, and `arrow` \u002F `line` for connections.\n`freedraw` and `image` are available but rarely generated.\n\n```json\n{\n  \"id\": \"rect1\", \"type\": \"rectangle\",\n  \"x\": 100, \"y\": 100, \"width\": 200, \"height\": 80,\n  \"strokeColor\": \"#1e1e1e\", \"backgroundColor\": \"#a5d8ff\",\n  \"fillStyle\": \"solid\", \"strokeWidth\": 2, \"roughness\": 1,\n  \"roundness\": { \"type\": 3 }\n}\n```\n\nText elements set `text`, `fontSize`, `fontFamily` (1 = Virgil\nhand-drawn, 2 = Helvetica, 3 = Cascadia mono), `textAlign`, and\n`verticalAlign`. Arrows use `points` relative to `x, y` plus optional\n`startBinding` \u002F `endBinding` linking to target element IDs.\n\n### Binding text to shapes\n\nTo label a shape, create a text element and bind both sides:\n\n1. On the container: add `\"boundElements\": [{\"id\": \"textId\", \"type\":\n   \"text\"}]`.\n2. On the text: set `\"containerId\": \"shapeId\"` and size the text to\n   fit inside the container.\n3. Excalidraw auto-centers the text within the shape.\n\n### Layout guidelines\n\n- Align coordinates to multiples of 20 (matches the default grid).\n- Leave 80-120px between connected elements.\n- Use left-to-right for flows and pipelines, top-to-bottom for\n  hierarchies.\n- Group related elements with a shared `groupIds` entry.\n- Label every shape; keep one idea per diagram and split if it grows\n  beyond a single viewport.\n- Titles 28-32px, labels 20-24px, annotations 16-18px, never below\n  16px.\n- Give similar elements the same width and height for visual rhythm.\n\n### Semantic color palette\n\nPick from this palette and stay consistent within a diagram:\n\n| Role | Fill (`backgroundColor`) | Stroke (`strokeColor`) |\n|---|---|---|\n| Primary \u002F action | `#a5d8ff` | `#1971c2` |\n| Secondary \u002F support | `#d0bfff` | `#6741d9` |\n| Success \u002F positive | `#b2f2bb` | `#2f9e44` |\n| Warning \u002F caution | `#ffec99` | `#e8590c` |\n| Danger \u002F error | `#ffc9c9` | `#e03131` |\n| Neutral \u002F container | `#e9ecef` | `#495057` |\n\nSet `\"fillStyle\": \"solid\"` when a shape is filled.\n\n### Diagram types\n\n- **Architecture:** rectangles for services and databases (rounded\n  corners), arrows for data flow with labels, a larger container\n  rectangle grouping related services, colors by layer (frontend\n  blue, backend green, data yellow).\n- **Flowchart:** diamonds for decisions, rectangles for processes,\n  ellipses for start\u002Fend, consistent direction, \"Yes\"\u002F\"No\" labels on\n  decision arrows.\n- **Sequence-style:** vertical arrangement with horizontal arrows,\n  operation names on each arrow, dashed arrows for responses.\n\n### Embedding in docs\n\nSave the `.excalidraw` source for editing, export SVG or PNG for\nembedding. GitHub renders `.excalidraw.png` directly in Markdown. The\nExcalidraw VS Code extension renders `.excalidraw` files in-editor.\n\n## Gotchas\n\nAgent-specific failure modes — provider-neutral pause-and-self-check items:\n\n- **Using short or sequential element IDs like \"1\", \"2\", \"3\".** Element IDs must be globally unique across the file. Duplicate or predictable IDs cause Excalidraw to silently overwrite or misrender elements. Use random 8+ character strings as the spec requires.\n- **Placing coordinates without snapping to the 20px grid.** Elements at arbitrary coordinates (e.g., `x: 73, y: 117`) appear misaligned when the file is opened and manually edited. Snap all positions to multiples of 20 to match the default grid.\n- **Omitting `boundElements` or `containerId` for labeled shapes.** A text element placed visually on top of a shape is not bound to it — moving the shape leaves the label behind. To label a shape, both the container's `boundElements` and the text's `containerId` must reference each other.\n- **Generating bindings that reference non-existent element IDs.** Arrows with `startBinding` or `endBinding` pointing to IDs not present in the `elements` array fail to render their connections. Always verify that every binding target ID exists in the file before emitting.\n- **Using `image` elements without populating the `files` object.** Excalidraw image elements reference a file ID that must appear as a key in the top-level `files` object with base64-encoded content. Omitting this entry renders a broken image placeholder.\n- **Generating all elements at the same coordinates.** Without a deliberate layout plan — left-to-right for flows, top-to-bottom for hierarchies, 80-120px between nodes — elements overlap on open and the diagram is unusable. Plan the coordinate layout before emitting any elements.\n- **Emitting incomplete JSON that omits required top-level keys.** A file missing `type`, `version`, `appState`, or `files` (even as an empty `{}`) fails validation when loaded in Excalidraw. Always emit the complete v2 envelope even for minimal diagrams.\n\n## Full reference\n\n### Full element property reference\n\nCommon properties across all element types:\n\n```\nid              string    Unique identifier (use descriptive IDs)\ntype            string    rectangle|ellipse|diamond|text|arrow|\n                          line|freedraw|image\nx, y            number    Position (top-left corner)\nwidth, height   number    Bounding box size\nangle           number    Rotation in radians (default 0)\nstrokeColor     string    Border\u002Fline color (hex)\nbackgroundColor string    Fill color (hex, or \"transparent\")\nfillStyle       string    \"solid\" | \"hachure\" | \"cross-hatch\"\nstrokeWidth     number    1 (thin), 2 (normal), 4 (bold)\nstrokeStyle     string    \"solid\" | \"dashed\" | \"dotted\"\nroughness       number    0 (architect) | 1 (artist) | 2 (cartoonist)\nopacity         number    0-100\nroundness       object    { \"type\": 3 } for rounded corners, null for sharp\nisDeleted       boolean   Soft-delete flag (default false)\nboundElements   array     [{ \"id\": \"...\", \"type\": \"text|arrow\" }]\ngroupIds        array     Group IDs for visually grouping elements\n```\n\nText-specific properties:\n\n```\ntext            string    The displayed text\nfontSize        number    Size in px (16-32 typical)\nfontFamily      number    1 (Virgil\u002Fhand), 2 (Helvetica), 3 (Cascadia\u002Fmono)\ntextAlign       string    \"left\" | \"center\" | \"right\"\nverticalAlign   string    \"top\" | \"middle\"\ncontainerId     string    ID of parent container (for bound text)\n```\n\nArrow and line properties:\n\n```\npoints          array     [[0,0], [dx,dy]] - relative to x,y\nstartBinding    object    { \"elementId\": \"id\", \"focus\": 0, \"gap\": 4 }\nendBinding      object    { \"elementId\": \"id\", \"focus\": 0, \"gap\": 4 }\nstartArrowhead  string    null | \"arrow\" | \"dot\" | \"bar\"\nendArrowhead    string    null | \"arrow\" | \"dot\" | \"bar\"\n```\n\n`focus` ranges from -1 to 1 and controls where the arrow attaches\n(0 = center). `gap` is the space between the arrowhead and the target\nborder. Target elements must list the arrow in their `boundElements`.\n\n### Minimal valid file\n\n```json\n{\n  \"type\": \"excalidraw\",\n  \"version\": 2,\n  \"source\": \"generated\",\n  \"elements\": [\n    {\n      \"id\": \"box1\",\n      \"type\": \"rectangle\",\n      \"x\": 100,\n      \"y\": 100,\n      \"width\": 200,\n      \"height\": 80,\n      \"strokeColor\": \"#1971c2\",\n      \"backgroundColor\": \"#a5d8ff\",\n      \"fillStyle\": \"solid\",\n      \"strokeWidth\": 2,\n      \"roughness\": 1,\n      \"opacity\": 100,\n      \"angle\": 0,\n      \"groupIds\": [],\n      \"roundness\": { \"type\": 3 },\n      \"boundElements\": [\n        { \"id\": \"label1\", \"type\": \"text\" }\n      ],\n      \"isDeleted\": false\n    },\n    {\n      \"id\": \"label1\",\n      \"type\": \"text\",\n      \"x\": 140,\n      \"y\": 125,\n      \"width\": 120,\n      \"height\": 30,\n      \"text\": \"Service A\",\n      \"fontSize\": 20,\n      \"fontFamily\": 1,\n      \"textAlign\": \"center\",\n      \"verticalAlign\": \"middle\",\n      \"containerId\": \"box1\",\n      \"strokeColor\": \"#1e1e1e\",\n      \"backgroundColor\": \"transparent\",\n      \"fillStyle\": \"solid\",\n      \"strokeWidth\": 1,\n      \"roughness\": 1,\n      \"opacity\": 100,\n      \"angle\": 0,\n      \"groupIds\": [],\n      \"boundElements\": null,\n      \"isDeleted\": false\n    }\n  ],\n  \"appState\": {\n    \"viewBackgroundColor\": \"#ffffff\",\n    \"gridSize\": 20\n  },\n  \"files\": {}\n}\n```\n\n### Common patterns\n\n- **Container with children:** use a large rectangle as a visual\n  container with smaller elements inside. Bind arrows to the\n  container, not to the children.\n- **Labeled arrow:** create an arrow between two shapes, then add a\n  standalone text element positioned near the arrow's midpoint. Arrow\n  labels do not need `containerId`.\n- **Decision diamond:** use `type: \"diamond\"` with bound text.\n  Connect \"Yes\" and \"No\" arrows from different sides and label each\n  arrow with a nearby text element.\n- **Grouping:** assign the same `groupIds` entry to multiple elements\n  to link them as a visual group.\n\n### References\n\n- `references\u002Fjson-schema.md` — full element schema and minimal file\n  template.\n",{"name":5,"metadata":41,"description":47},{"processkit":42},{"id":43,"created":44,"version":45,"category":28,"apiVersion":46},"SKILL-excalidraw",1775433600000,"1.1.0","processkit.projectious.work\u002Fv1","Generates Excalidraw diagrams programmatically as hand-drawn-style JSON. Use when creating architecture diagrams, flowcharts, or hand-drawn-style visuals for documentation, or when converting existing diagrams to editable Excalidraw JSON.\n","main","4876a92620ee792aac2ac9a1a806322d8a572367","archive\u002Fprocesskit-install-20261101\u002Fcontext\u002Ftemplates\u002Fprocesskit\u002Fv0.10.0\u002Fcontext\u002Fskills\u002Fdesign\u002Fexcalidraw","https:\u002F\u002Fgithub.com\u002Fprojectious-work\u002Fprocesskit","https:\u002F\u002Fprojectious-work.github.io\u002Fprocesskit\u002F","https:\u002F\u002Fgithub.com\u002Fprojectious-work","2026-11-11 23:24:18",{"source":8,"skillName":5,"commands":56,"prompt":66,"zipAvailable":67},[57,60,63],{"tool":58,"command":59},"npx","npx skills add projectious-work\u002Fprocesskit --skill excalidraw",{"tool":61,"command":62},"bunx","bunx skills add projectious-work\u002Fprocesskit --skill excalidraw",{"tool":64,"command":65},"pnpm","pnpm dlx skills add projectious-work\u002Fprocesskit --skill excalidraw","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fprojectious-work\u002Fprocesskit\u002Fblob\u002Fmain\u002Farchive\u002Fprocesskit-install-20261101\u002Fcontext\u002Ftemplates\u002Fprocesskit\u002Fv0.10.0\u002Fcontext\u002Fskills\u002Fdesign\u002Fexcalidraw\u002FSKILL.md",true,[69],{"path":70,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":73,"sourceHtmlUrl":74},"references\u002Fjson-schema.md","REFERENCE","参考文档",4671,"https:\u002F\u002Fgithub.com\u002Fprojectious-work\u002Fprocesskit\u002Fblob\u002Fmain\u002Farchive\u002Fprocesskit-install-20261101\u002Fcontext\u002Ftemplates\u002Fprocesskit\u002Fv0.10.0\u002Fcontext\u002Fskills\u002Fdesign\u002Fexcalidraw\u002Freferences\u002Fjson-schema.md",[76,101,121,142,159,177],{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":87,"publishedAt":36},"01M6X5MTC89B4ZGXW3JVSQCPF8","skill-management","Manage Skill package manifests as v1 ontology entities.","https:\u002F\u002Fgithub.com\u002Fprojectious-work\u002Fprocesskit\u002Fblob\u002Fmain\u002Fsrc\u002Fcontext\u002Fskills\u002Fprocesskit\u002Fskill-management\u002FSKILL.md",[82],{"categoryNo":83,"categoryName":84,"taxonomyType":85,"taxonomyTypeDesc":86},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[88,89,90,91,92,93,30,94,95,96,78,97,27,98,23,99,100],"management","skill management","create","update","package","alpha","list","manage","ontology","get","manifests","skill package","transition",{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":108,"publishedAt":36},"01M6X5MCV74NHW5MEDNHZRF2C8","schema-management","Manage generated processkit schema contracts through deterministic MCP rebuild and inspection workflows.","https:\u002F\u002Fgithub.com\u002Fprojectious-work\u002Fprocesskit\u002Fblob\u002Fmain\u002Fsrc\u002Fcontext\u002Fskills\u002Fprocesskit\u002Fschema-management\u002FSKILL.md",[107],{"categoryNo":83,"categoryName":84,"taxonomyType":85,"taxonomyTypeDesc":86},[88,109,110,111,112,113,93,30,114,115,95,116,117,118,97,119,120],"schema","schema management","MCP","workflows","validation","generated","rebuild","contracts","wed","deterministic","contract","mode",{"skillNo":122,"name":123,"nameZh":6,"description":124,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":125,"categories":126,"keywords":127,"publishedAt":36},"01M6X5M5G6YJ96AMZGSCZJ1D13","proposition-management","Record claims, risks, beliefs, world facts, WSJF estimates, and assumptions through the Proposition interface.","https:\u002F\u002Fgithub.com\u002Fprojectious-work\u002Fprocesskit\u002Fblob\u002Fmain\u002Fsrc\u002Fcontext\u002Fskills\u002Fprocesskit\u002Fproposition-management\u002FSKILL.md",[],[88,128,129,90,91,130,93,30,131,132,133,134,97,135,136,137,138,139,140,141],"proposition","proposition management","index","log","world","record","query","creation","event","interface","updates","facts","claims","WSJF",{"skillNo":143,"name":144,"nameZh":6,"description":145,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":146,"categories":147,"keywords":148,"publishedAt":36},"01M6X5KMQ83QN9M6MPWZM7344F","ontology-management","Manage generated v1 ontology entities that do not require a dedicated domain server.","https:\u002F\u002Fgithub.com\u002Fprojectious-work\u002Fprocesskit\u002Fblob\u002Fmain\u002Fsrc\u002Fcontext\u002Fskills\u002Fprocesskit\u002Fontology-management\u002FSKILL.md",[],[88,96,149,90,93,150,151,114,152,131,95,153,154,97,155,156,136,157,23,158],"ontology management","lifecycle","archive","roadmap","do","domain","iteration","keep","measurement","generic",{"skillNo":160,"name":161,"nameZh":6,"description":162,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":163,"categories":164,"keywords":165,"publishedAt":36},"01M6X5KCY2DN3SM21RERSFNEBT","okf-compatibility","Import, export, and validate conformant Open Knowledge Format bundles.","https:\u002F\u002Fgithub.com\u002Fprojectious-work\u002Fprocesskit\u002Fblob\u002Fmain\u002Fsrc\u002Fcontext\u002Fskills\u002Fprocesskit\u002Fokf-compatibility\u002FSKILL.md",[],[166,167,168,169,93,170,171,172,30,173,174,175,176],"okf","compatibility","okf compatibility","validate","open","knowledge","format","export","bundles","bundle","import",{"skillNo":178,"name":179,"nameZh":6,"description":180,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":181,"categories":182,"keywords":183,"publishedAt":36},"01M6X5JA8S5PNGJVFW4EQY8T83","capability-management","Manage versioned Capability entities and their governed lifecycle.","https:\u002F\u002Fgithub.com\u002Fprojectious-work\u002Fprocesskit\u002Fblob\u002Fmain\u002Fsrc\u002Fcontext\u002Fskills\u002Fprocesskit\u002Fcapability-management\u002FSKILL.md",[],[88,184,185,90,91,130,93,150,30,94,131,186,95,133,97,156,136,137,187,100],"capability","capability management","queries","changes"]