{"id":"1b20305a-3291-4aca-ac5b-5a0994d9ac5b","shortId":"prrpbv","kind":"skill","title":"diagrammer","tagline":"Author Diagrammer JSON for the Diagrammer viewer. Use whenever the user asks for a mind map, concept map, flowchart, tree, dependency graph, or timeline. Output a single JSON document conforming to the schema below.","description":"# Diagrammer authoring guide\n\nYou are producing a single JSON document that the Diagrammer viewer will\nrender on a pannable, zoomable canvas. Do not output prose around the JSON\nunless the user explicitly asks for it; emit one fenced JSON block.\n\n## Output contract\n\n- Top-level keys: `version`, `type`, `title`, `nodes`, `edges`. Optional:\n  `description`, `meta`.\n- `version` MUST be the string `\"1\"`.\n- `type` MUST be one of: `mindmap`, `tree`, `flowchart`, `graph`,\n  `concept`, `timeline`. Pick the type that matches the user's intent — see\n  the guidance below.\n- `nodes[*].id` must be unique, stable, and URL-safe (`^[a-zA-Z0-9_-]+$`).\n- `edges[*].from` and `edges[*].to` must reference existing node ids.\n- You may include `x` / `y` (in pixels, node-center coordinates) when the\n  user wants a hand-tuned layout. Otherwise omit them and let the viewer\n  compute positions per type. Manual edits in the viewer's edit mode write\n  these coordinates back when the user moves nodes.\n- **Never place two nodes so their bounding boxes overlap or touch.** When\n  emitting `x` / `y`, leave at least ~16 px of clear space between every pair\n  of node rectangles (treat label width × node height as the box). Nodes are\n  120–280 px wide and ~44–140 px tall depending on label/description length —\n  budget for the wider end. The viewer auto-separates loaded maps as a safety\n  net, but author with proper spacing so labels and edge handles don't crowd.\n\n## Choosing a type\n\n| Type        | When to use                                                        |\n| ----------- | ------------------------------------------------------------------ |\n| `mindmap`   | Brainstorming, branches radiating from a single central topic.    |\n| `tree`      | Strict hierarchy with one parent per child (org chart, taxonomy). |\n| `flowchart` | Process or decision flow with directed steps.                     |\n| `graph`     | Arbitrary network: dependencies, relationships, citations, **ER diagrams**. |\n| `concept`   | Concept map with labelled, often bidirectional, links.            |\n| `timeline`  | Linear sequence of events or milestones.                          |\n\nIf the user is ambiguous, ask one clarifying question — or default to\n`mindmap` for \"brainstorm\" / \"outline\" intents, and `flowchart` for \"process\"\n/ \"how does X work\" intents.\n\n## Node fields\n\n```ts\n{\n  id: string                  // unique, stable, URL-safe\n  label: string               // short, ideally <= 40 chars\n  description?: string        // single-line subtitle, <= 80 chars\n  shape?:    'rectangle' | 'rounded' | 'ellipse' | 'diamond' | 'hexagon' | 'pill'\n  color?:    'default' | 'slate' | 'blue' | 'green' | 'amber' | 'rose' | 'violet' | 'cyan'\n  emphasis?: 'normal' | 'strong' | 'subtle'\n  parent?:   string           // hint for tree/mindmap hierarchy\n}\n```\n\n### Markdown formatting\n\nLabels, descriptions, edge labels, and the map title render a small subset\nof inline markdown. Use it to add typographic emphasis or to mark up\nidentifiers — not as decoration.\n\n| Syntax          | Renders as                              |\n| --------------- | --------------------------------------- |\n| `**bold**`      | bold text                               |\n| `*italic*`      | italic                                  |\n| `_italic_`      | italic                                  |\n| `` `code` ``    | inline monospace, e.g. for identifiers  |\n| `~~strike~~`    | strikethrough                           |\n| `[text](url)`   | link (opens in a new tab)               |\n\nNesting is allowed (`**` `` `code` `` `**`). Markup that doesn't match these\ndelimiters renders literally — no headings, lists, paragraphs, or HTML.\nAvoid links inside node labels; put them in `description` instead.\n\n### Visual conventions (use sparingly)\n\n- `emphasis: \"strong\"` on the central node of a mindmap or the root of a tree.\n- `shape: \"diamond\"` for decisions/branches in flowcharts.\n- `shape: \"pill\"` for terminal/IO nodes (start, end, external service).\n- `color: \"rose\"` for failure / error / risk nodes; `color: \"green\"` for\n  success; `color: \"amber\"` for warnings or caveats. Use color to convey\n  meaning, not decoration.\n- Leave most nodes at `shape: \"rounded\"` and `color: \"default\"`. Restraint\n  reads as design.\n\n## Edge fields\n\n```ts\n{\n  from: string                // node id\n  to:   string                // node id\n  label?:     string          // edge label, e.g. \"yes\", \"no\", \"depends on\"\n  style?:     'solid' | 'dashed' | 'dotted'\n  direction?: 'forward' | 'backward' | 'both' | 'none'\n}\n```\n\n- Default direction is `forward` (single arrow at `to`).\n- Use `dashed` for weak / conditional / async links; `dotted` for very weak\n  or implied relationships.\n\n## Sizing guidance\n\n- 5–25 nodes per map is the sweet spot. Past 30, the viewer remains usable but\n  comprehension drops. Split into multiple maps if the user's request implies\n  more.\n- Keep labels concise. Move detail into `description`. Move long explanations\n  out of the map entirely.\n- Avoid cycles in `tree` and `flowchart`. Use `graph` or `concept` if\n  cycles are essential.\n\n## Multiple groups in one map\n\nA single map can contain **multiple disconnected sub-diagrams** that share the\ncanvas without being linked. The viewer detects connected components\nautomatically (via edges + `parent` hints) and lays each out independently,\npacking them side-by-side with padding. No special syntax is required:\n\n- Just emit the nodes and edges for each group. Anything that has no edge or\n  `parent` link to another group becomes its own cluster.\n- The same `type` is applied to every component (e.g. all clusters use\n  `mindmap` layout if `type: \"mindmap\"`).\n- Use this when the user asks to compare/show several small diagrams together,\n  or to lay out parallel sub-trees, parallel flows, sibling ER schemas, etc.\n\nUse `meta.tags` or per-node `description` to explain what each group\nrepresents — there is no dedicated `group` field.\n\n## Edge marker (line / arrow / double / back)\n\nThe `direction` field controls the arrowheads on the edge — i.e. the\nvisual marker between the two endpoints:\n\n| `direction`  | Marker         | When to use                                       |\n| ------------ | -------------- | ------------------------------------------------- |\n| `\"none\"`     | line `—`       | Symmetric / undirected association.               |\n| `\"forward\"`  | arrow `→`      | Directed link from `from` to `to` (default).      |\n| `\"both\"`     | double `↔`     | Bidirectional / mutual relationship.              |\n| `\"backward\"` | back arrow `←` | Reversed direction (rare; usually re-order ends). |\n\nDefault is `\"forward\"`. Pick `\"none\"` for ER associations or concept-map links\nthat have no inherent direction; `\"both\"` for ER many-to-many relationships,\nmutual dependencies, or symmetric concept-map links.\n\n## ER diagrams (entity–relationship)\n\nER diagrams are authored with `type: \"graph\"`. The schema has no dedicated\nattribute list, but the existing fields cover the common case:\n\n- **Entity** → one node per table/entity. Set `shape: \"rectangle\"` and\n  `label: \"**EntityName**\"` (bold). Use `description` to list the\n  attributes inline, comma-separated, with `(PK)` / `(FK)` markers — keep\n  it under ~80 chars; if the entity is wide, split it into two lines via\n  multiple short attributes or move secondary fields out of the diagram.\n- **Weak entity / lookup** → `color: \"slate\"` and/or `emphasis: \"subtle\"`.\n- **Primary domain entity** → `color: \"blue\"` or `emphasis: \"strong\"`.\n- **Relationship** → an edge between the two entities. Put the verb plus\n  cardinality in `label`, e.g. `\"places (1—N)\"`, `\"has (1—1)\"`,\n  `\"tagged with (M—N)\"`. Use `direction: \"both\"` when the relationship is\n  not directional (most ER links).\n- **Chen-style explicit relationship node** (optional, only when the\n  relationship itself carries attributes): add an intermediate node with\n  `shape: \"diamond\"` and edges `entityA → relNode → entityB`, each edge\n  labelled with its side's cardinality (`1`, `N`, `M`).\n- **Cardinality notation**: pick one and stay consistent. Recommended:\n  `1—1`, `1—N`, `M—N`. Also acceptable: `1..1`, `0..N`, `1..*`.\n\n### ER worked example\n\n```json\n{\n  \"version\": \"1\",\n  \"type\": \"graph\",\n  \"title\": \"Order management ER\",\n  \"description\": \"Customers, orders, line items, products.\",\n  \"nodes\": [\n    {\n      \"id\": \"customer\",\n      \"label\": \"**Customer**\",\n      \"description\": \"id (PK), email, name, created_at\",\n      \"shape\": \"rectangle\",\n      \"color\": \"blue\",\n      \"emphasis\": \"strong\"\n    },\n    {\n      \"id\": \"order\",\n      \"label\": \"**Order**\",\n      \"description\": \"id (PK), customer_id (FK), placed_at, status\",\n      \"shape\": \"rectangle\",\n      \"color\": \"blue\"\n    },\n    {\n      \"id\": \"line_item\",\n      \"label\": \"**LineItem**\",\n      \"description\": \"id (PK), order_id (FK), product_id (FK), qty, unit_price\",\n      \"shape\": \"rectangle\"\n    },\n    {\n      \"id\": \"product\",\n      \"label\": \"**Product**\",\n      \"description\": \"id (PK), sku, name, price\",\n      \"shape\": \"rectangle\",\n      \"color\": \"green\"\n    },\n    {\n      \"id\": \"category\",\n      \"label\": \"**Category**\",\n      \"description\": \"id (PK), name\",\n      \"shape\": \"rectangle\",\n      \"color\": \"slate\",\n      \"emphasis\": \"subtle\"\n    }\n  ],\n  \"edges\": [\n    { \"from\": \"customer\", \"to\": \"order\",     \"label\": \"places (1—N)\",      \"direction\": \"both\" },\n    { \"from\": \"order\",    \"to\": \"line_item\", \"label\": \"contains (1—N)\",    \"direction\": \"both\" },\n    { \"from\": \"product\",  \"to\": \"line_item\", \"label\": \"appears in (1—N)\",  \"direction\": \"both\" },\n    { \"from\": \"category\", \"to\": \"product\",   \"label\": \"groups (1—N)\",      \"direction\": \"both\" }\n  ]\n}\n```\n\n## Worked example\n\n```json\n{\n  \"version\": \"1\",\n  \"type\": \"flowchart\",\n  \"title\": \"Password reset flow\",\n  \"description\": \"Happy path and failure branches.\",\n  \"nodes\": [\n    { \"id\": \"start\",   \"label\": \"User clicks 'Forgot password'\", \"shape\": \"pill\" },\n    { \"id\": \"form\",    \"label\": \"Email entry\", \"shape\": \"rounded\" },\n    { \"id\": \"lookup\",  \"label\": \"User exists?\", \"shape\": \"diamond\", \"color\": \"amber\" },\n    { \"id\": \"send\",    \"label\": \"Send reset email\", \"shape\": \"rounded\", \"color\": \"blue\" },\n    { \"id\": \"ack\",     \"label\": \"Generic ack screen\", \"shape\": \"rounded\" },\n    { \"id\": \"click\",   \"label\": \"User clicks token\", \"shape\": \"rounded\" },\n    { \"id\": \"valid\",   \"label\": \"Token valid?\", \"shape\": \"diamond\", \"color\": \"amber\" },\n    { \"id\": \"set\",     \"label\": \"Set new password\", \"shape\": \"rounded\", \"color\": \"green\" },\n    { \"id\": \"expired\", \"label\": \"Show expired notice\", \"shape\": \"rounded\", \"color\": \"rose\" },\n    { \"id\": \"done\",    \"label\": \"Done\", \"shape\": \"pill\", \"color\": \"green\", \"emphasis\": \"strong\" }\n  ],\n  \"edges\": [\n    { \"from\": \"start\",   \"to\": \"form\" },\n    { \"from\": \"form\",    \"to\": \"lookup\" },\n    { \"from\": \"lookup\",  \"to\": \"send\",    \"label\": \"yes\" },\n    { \"from\": \"lookup\",  \"to\": \"ack\",     \"label\": \"no\",  \"style\": \"dashed\" },\n    { \"from\": \"send\",    \"to\": \"ack\" },\n    { \"from\": \"ack\",     \"to\": \"click\" },\n    { \"from\": \"click\",   \"to\": \"valid\" },\n    { \"from\": \"valid\",   \"to\": \"set\",     \"label\": \"yes\" },\n    { \"from\": \"valid\",   \"to\": \"expired\", \"label\": \"no\",  \"style\": \"dashed\" },\n    { \"from\": \"set\",     \"to\": \"done\" }\n  ]\n}\n```\n\n## Anti-patterns\n\n- Do **not** include id collisions, dangling edges, or unreferenced isolated\n  nodes (unless the user's request explicitly calls for them).\n- Do **not** repeat the same idea under multiple ids — collapse synonyms.\n- Do **not** invent layout coordinates by guessing pixel positions; let the\n  viewer compute them unless the user explicitly asks for a custom layout\n  (e.g. by editing in the viewer first).\n- Do **not** emit overlapping `x` / `y` placements. If two nodes share or nearly\n  share coordinates, drop the coords on both and let auto-layout space them.\n- Do **not** include emoji in labels.\n- Do **not** wrap the JSON in additional commentary unless asked. The user\n  will paste the JSON directly into the viewer.","tags":["diagrammer","idradev","agent-skills","ai-agents","ai-skills","anthropic","antigravity","automation","chatgpt","claude","claude-code","codex"],"capabilities":["skill","source-idradev","skill-diagrammer","topic-agent-skills","topic-ai-agents","topic-ai-skills","topic-anthropic","topic-antigravity","topic-automation","topic-chatgpt","topic-claude","topic-claude-code","topic-codex","topic-cursor","topic-diagrammer"],"categories":["Diagrammer"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/IdraDev/Diagrammer/diagrammer","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add IdraDev/Diagrammer","source_repo":"https://github.com/IdraDev/Diagrammer","install_from":"skills.sh"}},"qualityScore":"0.455","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 10 github stars · SKILL.md body (12,003 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:08:16.918Z","embedding":null,"createdAt":"2026-05-10T07:05:01.132Z","updatedAt":"2026-05-18T19:08:16.918Z","lastSeenAt":"2026-05-18T19:08:16.918Z","tsv":"'0':1091 '1':95,1015,1018,1019,1070,1081,1082,1083,1089,1090,1093,1099,1201,1212,1224,1234,1242 '120':232 '140':238 '16':211 '25':619 '280':233 '30':628 '40':372 '44':237 '5':618 '80':380,959 '9':134 'a-za-z0':130 'accept':1088 'ack':1292,1295,1364,1372,1374 'add':428,1050 'addit':1502 'allow':467 'also':1087 'amber':394,540,1280,1315 'ambigu':336 'and/or':988 'anoth':744 'anti':1400 'anti-pattern':1399 'anyth':735 'appear':1222 'appli':754 'arbitrari':310 'around':61 'arrow':599,815,846,861 'arrowhead':823 'ask':13,68,337,772,1451,1505 'associ':844,877 'async':607 'attribut':920,947,974,1049 'author':2,37,262,911 'auto':253,1486 'auto-layout':1485 'auto-separ':252 'automat':703 'avoid':484,662 'back':187,817,860 'backward':591,859 'becom':746 'bidirect':323,856 'block':75 'blue':392,995,1127,1146,1290 'bold':442,443,941 'bound':199 'box':200,229 'brainstorm':282,346 'branch':283,1254 'budget':245 'call':1419 'canva':56,694 'cardin':1010,1069,1073 'carri':1048 'case':929 'categori':1181,1183,1229 'caveat':544 'center':154 'central':288,502 'char':373,381,960 'chart':299 'chen':1037 'chen-styl':1036 'child':297 'choos':274 'citat':314 'clarifi':339 'clear':214 'click':1260,1300,1303,1376,1378 'cluster':749,760 'code':449,468 'collaps':1431 'collis':1406 'color':389,528,535,539,546,559,986,994,1126,1145,1178,1190,1279,1289,1314,1324,1334,1342 'comma':950 'comma-separ':949 'commentari':1503 'common':928 'compare/show':774 'compon':702,757 'comprehens':634 'comput':172,1445 'concept':18,105,317,318,671,880,901 'concept-map':879,900 'concis':649 'condit':606 'conform':31 'connect':701 'consist':1079 'contain':685,1211 'contract':77 'control':821 'convent':495 'convey':548 'coord':1480 'coordin':155,186,1437,1477 'cover':926 'creat':1122 'crowd':273 'custom':1107,1114,1116,1137,1196,1454 'cyan':397 'cycl':663,673 'dangl':1407 'dash':587,603,1368,1394 'decis':304 'decisions/branches':516 'decor':438,551 'dedic':809,919 'default':342,390,560,594,853,870 'delimit':475 'depend':22,241,312,583,897 'descript':88,374,411,492,653,799,943,1106,1117,1134,1152,1170,1184,1249 'design':564 'detail':651 'detect':700 'diagram':316,690,777,905,909,982 'diagramm':1,3,7,36,48 'diamond':386,514,1056,1278,1313 'direct':307,589,595,819,835,847,863,887,1025,1032,1203,1214,1226,1236,1512 'disconnect':687 'document':30,45 'doesn':471 'domain':992 'done':1337,1339,1398 'dot':588,609 'doubl':816,855 'drop':635,1478 'e.g':452,580,758,1013,1456 'edg':86,135,138,269,412,565,578,705,731,739,812,826,1001,1058,1063,1194,1346,1408 'edit':177,182,1458 'ellips':385 'email':1120,1268,1286 'emit':71,205,727,1465 'emoji':1493 'emphasi':398,430,498,989,997,1128,1192,1344 'end':249,525,869 'endpoint':834 'entir':661 'entiti':906,930,963,984,993,1005 'entitya':1059 'entityb':1061 'entitynam':940 'entri':1269 'er':315,790,876,890,904,908,1034,1094,1105 'error':532 'essenti':675 'etc':792 'event':329 'everi':217,756 'exampl':1096,1239 'exist':142,924,1276 'expir':1327,1330,1390 'explain':801 'explan':656 'explicit':67,1039,1418,1450 'extern':526 'failur':531,1253 'fenc':73 'field':359,566,811,820,925,978 'first':1462 'fk':954,1139,1157,1160 'flow':305,788,1248 'flowchart':20,103,301,350,518,667,1244 'forgot':1261 'form':1266,1350,1352 'format':409 'forward':590,597,845,872 'generic':1294 'graph':23,104,309,669,914,1101 'green':393,536,1179,1325,1343 'group':677,734,745,804,810,1233 'guess':1439 'guid':38 'guidanc':118,617 'hand':162 'hand-tun':161 'handl':270 'happi':1250 'head':479 'height':226 'hexagon':387 'hierarchi':292,407 'hint':404,707 'html':483 'i.e':827 'id':121,144,361,571,575,1113,1118,1130,1135,1138,1147,1153,1156,1159,1166,1171,1180,1185,1256,1265,1272,1281,1291,1299,1307,1316,1326,1336,1405,1430 'idea':1427 'ideal':371 'identifi':435,454 'impli':614,645 'includ':147,1404,1492 'independ':712 'inher':886 'inlin':423,450,948 'insid':486 'instead':493 'intent':115,348,357 'intermedi':1052 'invent':1435 'isol':1411 'ital':445,446,447,448 'item':1110,1149,1209,1220 'json':4,29,44,63,74,1097,1240,1500,1511 'keep':647,956 'key':81 'label':223,267,321,368,410,413,488,576,579,648,939,1012,1064,1115,1132,1150,1168,1182,1199,1210,1221,1232,1258,1267,1274,1283,1293,1301,1309,1318,1328,1338,1359,1365,1385,1391,1495 'label/description':243 'lay':709,781 'layout':164,763,1436,1455,1487 'least':210 'leav':208,552 'length':244 'let':169,1442,1484 'level':80 'line':378,814,841,970,1109,1148,1208,1219 'linear':326 'lineitem':1151 'link':324,459,485,608,697,742,848,882,903,1035 'list':480,921,945 'liter':477 'load':255 'long':655 'lookup':985,1273,1354,1356,1362 'm':1022,1072,1085 'manag':1104 'mani':892,894 'manual':176 'many-to-mani':891 'map':17,19,256,319,416,622,639,660,680,683,881,902 'mark':433 'markdown':408,424 'marker':813,830,836,955 'markup':469 'match':111,473 'may':146 'mean':549 'meta':89 'meta.tags':794 'mileston':331 'mind':16 'mindmap':101,281,344,506,762,766 'mode':183 'monospac':451 'move':191,650,654,976 'multipl':638,676,686,972,1429 'must':91,97,122,140 'mutual':857,896 'n':1016,1023,1071,1084,1086,1092,1202,1213,1225,1235 'name':1121,1174,1187 'near':1475 'nest':465 'net':260 'network':311 'never':193 'new':463,1320 'node':85,120,143,153,192,196,220,225,230,358,487,503,523,534,554,570,574,620,729,798,932,1041,1053,1112,1255,1412,1472 'node-cent':152 'none':593,840,874 'normal':399 'notat':1074 'notic':1331 'often':322 'omit':166 'one':72,99,294,338,679,931,1076 'open':460 'option':87,1042 'order':868,1103,1108,1131,1133,1155,1198,1206 'org':298 'otherwis':165 'outlin':347 'output':26,59,76 'overlap':201,1466 'pack':713 'pad':720 'pair':218 'pannabl':54 'paragraph':481 'parallel':783,787 'parent':295,402,706,741 'password':1246,1262,1321 'past':627,1509 'path':1251 'pattern':1401 'per':174,296,621,797,933 'per-nod':796 'pick':107,873,1075 'pill':388,520,1264,1341 'pixel':151,1440 'pk':953,1119,1136,1154,1172,1186 'place':194,1014,1140,1200 'placement':1469 'plus':1009 'posit':173,1441 'price':1163,1175 'primari':991 'process':302,352 'produc':41 'product':1111,1158,1167,1169,1217,1231 'proper':264 'prose':60 'put':489,1006 'px':212,234,239 'qti':1161 'question':340 'radiat':284 'rare':864 're':867 're-ord':866 'read':562 'recommend':1080 'rectangl':221,383,937,1125,1144,1165,1177,1189 'refer':141 'relationship':313,615,858,895,907,999,1029,1040,1046 'relnod':1060 'remain':631 'render':51,418,440,476 'repeat':1424 'repres':805 'request':644,1417 'requir':725 'reset':1247,1285 'restraint':561 'revers':862 'risk':533 'root':509 'rose':395,529,1335 'round':384,557,1271,1288,1298,1306,1323,1333 'safe':129,367 'safeti':259 'schema':34,791,916 'screen':1296 'secondari':977 'see':116 'send':1282,1284,1358,1370 'separ':254,951 'sequenc':327 'servic':527 'set':935,1317,1319,1384,1396 'sever':775 'shape':382,513,519,556,936,1055,1124,1143,1164,1176,1188,1263,1270,1277,1287,1297,1305,1312,1322,1332,1340 'share':692,1473,1476 'short':370,973 'show':1329 'sibl':789 'side':716,718,1067 'side-by-sid':715 'singl':28,43,287,377,598,682 'single-lin':376 'size':616 'skill' 'skill-diagrammer' 'sku':1173 'slate':391,987,1191 'small':420,776 'solid':586 'source-idradev' 'space':215,265,1488 'spare':497 'special':722 'split':636,966 'spot':626 'stabl':125,364 'start':524,1257,1348 'status':1142 'stay':1078 'step':308 'strict':291 'strike':455 'strikethrough':456 'string':94,362,369,375,403,569,573,577 'strong':400,499,998,1129,1345 'style':585,1038,1367,1393 'sub':689,785 'sub-diagram':688 'sub-tre':784 'subset':421 'subtitl':379 'subtl':401,990,1193 'success':538 'sweet':625 'symmetr':842,899 'synonym':1432 'syntax':439,723 'tab':464 'table/entity':934 'tag':1020 'tall':240 'taxonomi':300 'terminal/io':522 'text':444,457 'timelin':25,106,325 'titl':84,417,1102,1245 'togeth':778 'token':1304,1310 'top':79 'top-level':78 'topic':289 'topic-agent-skills' 'topic-ai-agents' 'topic-ai-skills' 'topic-anthropic' 'topic-antigravity' 'topic-automation' 'topic-chatgpt' 'topic-claude' 'topic-claude-code' 'topic-codex' 'topic-cursor' 'topic-diagrammer' 'touch':203 'treat':222 'tree':21,102,290,512,665,786 'tree/mindmap':406 'ts':360,567 'tune':163 'two':195,833,969,1004,1471 'type':83,96,109,175,276,277,752,765,913,1100,1243 'typograph':429 'undirect':843 'uniqu':124,363 'unit':1162 'unless':64,1413,1447,1504 'unreferenc':1410 'url':128,366,458 'url-saf':127,365 'usabl':632 'use':9,280,425,496,545,602,668,761,767,793,839,942,1024 'user':12,66,113,158,190,334,642,771,1259,1275,1302,1415,1449,1507 'usual':865 'valid':1308,1311,1380,1382,1388 'verb':1008 'version':82,90,1098,1241 'via':704,971 'viewer':8,49,171,180,251,630,699,1444,1461,1515 'violet':396 'visual':494,829 'want':159 'warn':542 'weak':605,612,983 'whenev':10 'wide':235,965 'wider':248 'width':224 'without':695 'work':356,1095,1238 'wrap':1498 'write':184 'x':148,206,355,1467 'y':149,207,1468 'yes':581,1360,1386 'z0':133 'za':132 'zoomabl':55","prices":[{"id":"e88f1ec7-d219-4280-b469-b8168f2d1b47","listingId":"1b20305a-3291-4aca-ac5b-5a0994d9ac5b","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"IdraDev","category":"Diagrammer","install_from":"skills.sh"},"createdAt":"2026-05-10T07:05:01.132Z"}],"sources":[{"listingId":"1b20305a-3291-4aca-ac5b-5a0994d9ac5b","source":"github","sourceId":"IdraDev/Diagrammer/diagrammer","sourceUrl":"https://github.com/IdraDev/Diagrammer/tree/main/skills/diagrammer","isPrimary":false,"firstSeenAt":"2026-05-10T07:05:01.132Z","lastSeenAt":"2026-05-18T19:08:16.918Z"}],"details":{"listingId":"1b20305a-3291-4aca-ac5b-5a0994d9ac5b","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"IdraDev","slug":"diagrammer","github":{"repo":"IdraDev/Diagrammer","stars":10,"topics":["agent-skills","ai","ai-agents","ai-skills","anthropic","antigravity","automation","chatgpt","claude","claude-code","codex","cursor","diagrammer","gemini-cli","gpt","llm","llms","skill","skills","workflow-automations"],"license":"mit","html_url":"https://github.com/IdraDev/Diagrammer","pushed_at":"2026-05-08T09:00:48Z","description":"📐 A minimal viewer for LLM-authored diagrams. Local-first, schema-driven, no account, no cloud.","skill_md_sha":"7807cc3919f9a0fa77ad36420931cd5b8bf2e9bf","skill_md_path":"skills/diagrammer/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/IdraDev/Diagrammer/tree/main/skills/diagrammer"},"layout":"multi","source":"github","category":"Diagrammer","frontmatter":{"name":"diagrammer","description":"Author Diagrammer JSON for the Diagrammer viewer. Use whenever the user asks for a mind map, concept map, flowchart, tree, dependency graph, or timeline. Output a single JSON document conforming to the schema below."},"skills_sh_url":"https://skills.sh/IdraDev/Diagrammer/diagrammer"},"updatedAt":"2026-05-18T19:08:16.918Z"}}