@drunkcoding/agents-and-skills 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/.claude-plugin/marketplace.json +26 -0
  2. package/LICENSE +21 -0
  3. package/README.md +50 -0
  4. package/package.json +33 -0
  5. package/plugins/tech-graph/.claude-plugin/plugin.json +17 -0
  6. package/plugins/tech-graph/README.md +66 -0
  7. package/plugins/tech-graph/agents/tech-graph.md +89 -0
  8. package/plugins/tech-graph/commands/tech-graph.md +13 -0
  9. package/plugins/tech-graph/scripts/check-deps.sh +55 -0
  10. package/plugins/tech-graph/skills/tech-graph/LICENSE +21 -0
  11. package/plugins/tech-graph/skills/tech-graph/README.md +555 -0
  12. package/plugins/tech-graph/skills/tech-graph/README.zh.md +514 -0
  13. package/plugins/tech-graph/skills/tech-graph/SKILL.md +559 -0
  14. package/plugins/tech-graph/skills/tech-graph/agents/openai.yaml +4 -0
  15. package/plugins/tech-graph/skills/tech-graph/assets/samples/sample-style1-flat.png +0 -0
  16. package/plugins/tech-graph/skills/tech-graph/assets/samples/sample-style2-dark.png +0 -0
  17. package/plugins/tech-graph/skills/tech-graph/assets/samples/sample-style3-blueprint.png +0 -0
  18. package/plugins/tech-graph/skills/tech-graph/assets/samples/sample-style4-notion.png +0 -0
  19. package/plugins/tech-graph/skills/tech-graph/assets/samples/sample-style5-glass.png +0 -0
  20. package/plugins/tech-graph/skills/tech-graph/assets/samples/sample-style6-claude.png +0 -0
  21. package/plugins/tech-graph/skills/tech-graph/assets/samples/sample-style7-openai.png +0 -0
  22. package/plugins/tech-graph/skills/tech-graph/fixtures/agent-memory-types-style4.json +181 -0
  23. package/plugins/tech-graph/skills/tech-graph/fixtures/api-flow-style7.json +40 -0
  24. package/plugins/tech-graph/skills/tech-graph/fixtures/mem0-style1.json +297 -0
  25. package/plugins/tech-graph/skills/tech-graph/fixtures/microservices-style3.json +64 -0
  26. package/plugins/tech-graph/skills/tech-graph/fixtures/multi-agent-style5.json +45 -0
  27. package/plugins/tech-graph/skills/tech-graph/fixtures/system-architecture-style6.json +48 -0
  28. package/plugins/tech-graph/skills/tech-graph/fixtures/tool-call-style2.json +182 -0
  29. package/plugins/tech-graph/skills/tech-graph/package.json +42 -0
  30. package/plugins/tech-graph/skills/tech-graph/references/icons.md +406 -0
  31. package/plugins/tech-graph/skills/tech-graph/references/style-1-flat-icon.md +108 -0
  32. package/plugins/tech-graph/skills/tech-graph/references/style-2-dark-terminal.md +107 -0
  33. package/plugins/tech-graph/skills/tech-graph/references/style-3-blueprint.md +113 -0
  34. package/plugins/tech-graph/skills/tech-graph/references/style-4-notion-clean.md +95 -0
  35. package/plugins/tech-graph/skills/tech-graph/references/style-5-glassmorphism.md +125 -0
  36. package/plugins/tech-graph/skills/tech-graph/references/style-6-claude-official.md +209 -0
  37. package/plugins/tech-graph/skills/tech-graph/references/style-7-openai.md +215 -0
  38. package/plugins/tech-graph/skills/tech-graph/references/style-diagram-matrix.md +135 -0
  39. package/plugins/tech-graph/skills/tech-graph/references/svg-layout-best-practices.md +100 -0
  40. package/plugins/tech-graph/skills/tech-graph/scripts/README.md +269 -0
  41. package/plugins/tech-graph/skills/tech-graph/scripts/generate-diagram.sh +181 -0
  42. package/plugins/tech-graph/skills/tech-graph/scripts/generate-from-template.py +1587 -0
  43. package/plugins/tech-graph/skills/tech-graph/scripts/test-all-styles.sh +143 -0
  44. package/plugins/tech-graph/skills/tech-graph/scripts/validate-svg.sh +306 -0
  45. package/plugins/tech-graph/skills/tech-graph/templates/agent-architecture.svg +28 -0
  46. package/plugins/tech-graph/skills/tech-graph/templates/architecture.svg +23 -0
  47. package/plugins/tech-graph/skills/tech-graph/templates/comparison-matrix.svg +14 -0
  48. package/plugins/tech-graph/skills/tech-graph/templates/data-flow.svg +28 -0
  49. package/plugins/tech-graph/skills/tech-graph/templates/er-diagram.svg +21 -0
  50. package/plugins/tech-graph/skills/tech-graph/templates/flowchart.svg +21 -0
  51. package/plugins/tech-graph/skills/tech-graph/templates/sequence.svg +20 -0
  52. package/plugins/tech-graph/skills/tech-graph/templates/state-machine.svg +20 -0
  53. package/plugins/tech-graph/skills/tech-graph/templates/timeline.svg +19 -0
  54. package/plugins/tech-graph/skills/tech-graph/templates/use-case.svg +21 -0
@@ -0,0 +1,406 @@
1
+ # Icon Reference
2
+
3
+ ## Rules for Renderer Compatibility (cairosvg / rsvg-convert)
4
+
5
+ **Never use** `@import url()` for icon fonts — neither cairosvg nor rsvg-convert fetches external resources.
6
+ **Always use** inline SVG `<path>`, `<circle>`, `<rect>`, `<text>` combinations.
7
+ **Font fallback**: embed font-family in `<style>` using system fonts only.
8
+
9
+ ---
10
+
11
+ ## Generic Semantic Shapes (No product — use these first)
12
+
13
+ ### Database / Vector Store (cylinder)
14
+ ```xml
15
+ <!-- cx=center-x, top=top-y, w=width, h=height -->
16
+ <!-- Typical: w=80, h=70 -->
17
+ <ellipse cx="cx" cy="top" rx="w/2" ry="w/6" fill="fill" stroke="stroke" stroke-width="1.5"/>
18
+ <rect x="cx-w/2" y="top" width="w" height="h" fill="fill" stroke="none"/>
19
+ <line x1="cx-w/2" y1="top" x2="cx-w/2" y2="top+h" stroke="stroke" stroke-width="1.5"/>
20
+ <line x1="cx+w/2" y1="top" x2="cx+w/2" y2="top+h" stroke="stroke" stroke-width="1.5"/>
21
+ <!-- Optional inner rings for Vector Store -->
22
+ <ellipse cx="cx" cy="top+h*0.33" rx="w/2" ry="w/6" fill="none" stroke="stroke" stroke-width="0.7" opacity="0.5"/>
23
+ <ellipse cx="cx" cy="top+h*0.66" rx="w/2" ry="w/6" fill="none" stroke="stroke" stroke-width="0.7" opacity="0.5"/>
24
+ <ellipse cx="cx" cy="top+h" rx="w/2" ry="w/6" fill="fill-dark" stroke="stroke" stroke-width="1.5"/>
25
+ ```
26
+
27
+ ### LLM / Model Node (rounded rect with spark)
28
+ ```xml
29
+ <!-- Rounded rect with double border = "intelligent" signal -->
30
+ <rect x="x" y="y" width="w" height="h" rx="10" fill="fill" stroke="stroke-outer" stroke-width="2.5"/>
31
+ <rect x="x+3" y="y+3" width="w-6" height="h-6" rx="8" fill="none" stroke="stroke-inner" stroke-width="0.8" opacity="0.5"/>
32
+ <!-- Spark icon (⚡) as text or small lightning path -->
33
+ <text x="cx" y="cy-6" text-anchor="middle" font-size="14">⚡</text>
34
+ <text x="cx" y="cy+10" text-anchor="middle" fill="text-color" font-size="13" font-weight="600">GPT-4o</text>
35
+ ```
36
+
37
+ ### Agent / Orchestrator (hexagon)
38
+ ```xml
39
+ <!-- r = circumradius, cx/cy = center -->
40
+ <!-- For r=36: points at 36,0 18,31.2 -18,31.2 -36,0 -18,-31.2 18,-31.2 -->
41
+ <polygon points="cx,cy-r cx+r*0.866,cy-r*0.5 cx+r*0.866,cy+r*0.5 cx,cy+r cx-r*0.866,cy+r*0.5 cx-r*0.866,cy-r*0.5"
42
+ fill="fill" stroke="stroke" stroke-width="1.5"/>
43
+ <text x="cx" y="cy+5" text-anchor="middle" fill="text" font-size="12" font-weight="600">Agent</text>
44
+ ```
45
+
46
+ ### Memory Node (short-term, dashed border)
47
+ ```xml
48
+ <rect x="x" y="y" width="w" height="h" rx="8"
49
+ fill="fill" stroke="stroke" stroke-width="1.5" stroke-dasharray="6,3"/>
50
+ <text x="cx" y="cy-6" text-anchor="middle" fill="text" font-size="10" opacity="0.7">MEMORY</text>
51
+ <text x="cx" y="cy+8" text-anchor="middle" fill="text" font-size="13">Short-term</text>
52
+ ```
53
+
54
+ ### Tool / Function Call (rect with gear symbol)
55
+ ```xml
56
+ <rect x="x" y="y" width="w" height="h" rx="6" fill="fill" stroke="stroke" stroke-width="1.5"/>
57
+ <!-- Gear: simplified as ⚙ unicode or small circle with lines -->
58
+ <text x="cx" y="cy-4" text-anchor="middle" font-size="16">⚙</text>
59
+ <text x="cx" y="cy+12" text-anchor="middle" fill="text" font-size="12">Tool Name</text>
60
+ ```
61
+
62
+ ### Queue / Stream (horizontal pipe)
63
+ ```xml
64
+ <!-- Pipe tube: left cap ellipse + body + right cap ellipse -->
65
+ <ellipse cx="x1" cy="cy" rx="ry*0.6" ry="ry" fill="fill-dark" stroke="stroke" stroke-width="1.5"/>
66
+ <rect x="x1" y="cy-ry" width="x2-x1" height="ry*2" fill="fill" stroke="none"/>
67
+ <line x1="x1" y1="cy-ry" x2="x2" y2="cy-ry" stroke="stroke" stroke-width="1.5"/>
68
+ <line x1="x1" y1="cy+ry" x2="x2" y2="cy+ry" stroke="stroke" stroke-width="1.5"/>
69
+ <ellipse cx="x2" cy="cy" rx="ry*0.6" ry="ry" fill="fill-light" stroke="stroke" stroke-width="1.5"/>
70
+ ```
71
+
72
+ ### User / Human Actor
73
+ ```xml
74
+ <!-- Head -->
75
+ <circle cx="cx" cy="cy-18" r="10" fill="fill" stroke="stroke" stroke-width="1.2"/>
76
+ <!-- Body / shoulders -->
77
+ <path d="M cx-14,cy+16 Q cx-14,cy-4 cx,cy-4 Q cx+14,cy-4 cx+14,cy+16"
78
+ fill="fill" stroke="stroke" stroke-width="1.2"/>
79
+ <text x="cx" y="cy+30" text-anchor="middle" fill="text" font-size="12">User</text>
80
+ ```
81
+
82
+ ### API Gateway (hexagon, single border, smaller)
83
+ ```xml
84
+ <polygon points="cx,cy-28 cx+24,cy-14 cx+24,cy+14 cx,cy+28 cx-24,cy+14 cx-24,cy-14"
85
+ fill="fill" stroke="stroke" stroke-width="1.5"/>
86
+ <text x="cx" y="cy+5" text-anchor="middle" fill="text" font-size="11">API</text>
87
+ ```
88
+
89
+ ### Browser / Web Client
90
+ ```xml
91
+ <rect x="x" y="y" width="w" height="h" rx="6" fill="fill" stroke="stroke" stroke-width="1.5"/>
92
+ <!-- Title bar -->
93
+ <rect x="x" y="y" width="w" height="20" rx="6" fill="fill-dark" stroke="none"/>
94
+ <rect x="x" y="y+14" width="w" height="6" fill="fill-dark"/>
95
+ <!-- Traffic light dots -->
96
+ <circle cx="x+12" cy="y+10" r="4" fill="#ef4444" opacity="0.8"/>
97
+ <circle cx="x+24" cy="y+10" r="4" fill="#f59e0b" opacity="0.8"/>
98
+ <circle cx="x+36" cy="y+10" r="4" fill="#10b981" opacity="0.8"/>
99
+ ```
100
+
101
+ ### Document / File
102
+ ```xml
103
+ <!-- Folded corner rectangle -->
104
+ <path d="M x,y L x+w-12,y L x+w,y+12 L x+w,y+h L x,y+h Z"
105
+ fill="fill" stroke="stroke" stroke-width="1.5"/>
106
+ <!-- Fold -->
107
+ <path d="M x+w-12,y L x+w-12,y+12 L x+w,y+12" fill="fill-dark" stroke="stroke" stroke-width="1"/>
108
+ <!-- Lines inside -->
109
+ <line x1="x+8" y1="y+h*0.45" x2="x+w-8" y2="y+h*0.45" stroke="stroke" stroke-width="1" opacity="0.5"/>
110
+ <line x1="x+8" y1="y+h*0.6" x2="x+w-8" y2="y+h*0.6" stroke="stroke" stroke-width="1" opacity="0.5"/>
111
+ <line x1="x+8" y1="y+h*0.75" x2="x+w-16" y2="y+h*0.75" stroke="stroke" stroke-width="1" opacity="0.5"/>
112
+ ```
113
+
114
+ ### Decision Diamond (flowcharts)
115
+ ```xml
116
+ <!-- cx/cy = center, hw = half-width, hh = half-height -->
117
+ <polygon points="cx,cy-hh cx+hw,cy cx,cy+hh cx-hw,cy"
118
+ fill="fill" stroke="stroke" stroke-width="1.5"/>
119
+ <text x="cx" y="cy+5" text-anchor="middle" fill="text" font-size="12">Condition?</text>
120
+ ```
121
+
122
+ ### Swim Lane Container
123
+ ```xml
124
+ <!-- Background band for a layer/group -->
125
+ <rect x="x" y="y" width="w" height="h" rx="6"
126
+ fill="fill" fill-opacity="0.04" stroke="stroke" stroke-width="1" stroke-dasharray="6,4"/>
127
+ <!-- Layer label top-left -->
128
+ <text x="x+12" y="y+16" fill="label-color" font-size="10" font-weight="600" letter-spacing="0.06em">LAYER NAME</text>
129
+ ```
130
+
131
+ ---
132
+
133
+ ## Product Icons (Brand Colors + Inline SVG)
134
+
135
+ All use circle badge + text abbreviation pattern. Replace `cx`, `cy` with actual coordinates.
136
+
137
+ ### AI / ML Products
138
+
139
+ | Product | Color | Badge Text |
140
+ |---------|-------|-----------|
141
+ | OpenAI / ChatGPT | `#10A37F` | `OAI` |
142
+ | Anthropic / Claude | `#D97757` | `Claude` |
143
+ | Google Gemini | `#4285F4` | `Gemini` |
144
+ | Meta LLaMA | `#0467DF` | `LLaMA` |
145
+ | Mistral | `#FF7000` | `Mistral` |
146
+ | Cohere | `#39594D` | `Cohere` |
147
+ | Groq | `#F55036` | `Groq` |
148
+ | Together AI | `#6366F1` | `Together` |
149
+ | Replicate | `#191919` | `Rep` |
150
+ | Hugging Face | `#FFD21E` (text dark) | `HF` |
151
+
152
+ **Template:**
153
+ ```xml
154
+ <circle cx="cx" cy="cy" r="22" fill="BRAND_COLOR"/>
155
+ <text x="cx" y="cy+5" text-anchor="middle" fill="white"
156
+ font-size="10" font-weight="700" font-family="Helvetica">BADGE_TEXT</text>
157
+ <!-- Optional: outer ring for "AI" products -->
158
+ <circle cx="cx" cy="cy" r="24" fill="none" stroke="BRAND_COLOR" stroke-width="1" opacity="0.4"/>
159
+ ```
160
+
161
+ ### AI Memory & RAG Products
162
+
163
+ | Product | Color | Badge |
164
+ |---------|-------|-------|
165
+ | Mem0 | `#6366F1` | `mem0` |
166
+ | LangChain | `#1C3C3C` | `🦜` or `LC` |
167
+ | LlamaIndex | `#8B5CF6` | `LI` |
168
+ | LangGraph | `#1C3C3C` | `LG` |
169
+ | CrewAI | `#EF4444` | `Crew` |
170
+ | AutoGen | `#0078D4` | `AG` |
171
+ | Haystack | `#FF6D00` | `🌾` or `HS` |
172
+ | DSPy | `#7C3AED` | `DSPy` |
173
+
174
+ ### Vector Databases
175
+
176
+ | Product | Color | Badge |
177
+ |---------|-------|-------|
178
+ | Pinecone | `#1C1C2E` + green | `Pine` |
179
+ | Weaviate | `#FA0050` | `Wea` |
180
+ | Qdrant | `#DC244C` | `Qdrant` |
181
+ | Chroma | `#FF6B35` | `Chr` |
182
+ | Milvus | `#00A1EA` | `Milvus` |
183
+ | pgvector | `#336791` | `pgv` |
184
+ | Faiss | `#0467DF` | `FAISS` |
185
+
186
+ **Vector DB template (cylinder + badge):**
187
+ ```xml
188
+ <!-- Cylinder shape -->
189
+ <ellipse cx="cx" cy="top" rx="40" ry="12" fill="FILL" stroke="STROKE" stroke-width="1.5"/>
190
+ <rect x="cx-40" y="top" width="80" height="50" fill="FILL" stroke="none"/>
191
+ <line x1="cx-40" y1="top" x2="cx-40" y2="top+50" stroke="STROKE" stroke-width="1.5"/>
192
+ <line x1="cx+40" y1="top" x2="cx+40" y2="top+50" stroke="STROKE" stroke-width="1.5"/>
193
+ <ellipse cx="cx" cy="top+50" rx="40" ry="12" fill="FILL_DARK" stroke="STROKE" stroke-width="1.5"/>
194
+ <!-- Product name -->
195
+ <text x="cx" y="top+30" text-anchor="middle" fill="white"
196
+ font-size="11" font-weight="700">Pinecone</text>
197
+ ```
198
+
199
+ ### Classic Databases & Storage
200
+
201
+ | Product | Color |
202
+ |---------|-------|
203
+ | PostgreSQL | `#336791` |
204
+ | MySQL | `#4479A1` |
205
+ | MongoDB | `#47A248` |
206
+ | Redis | `#DC382D` |
207
+ | Elasticsearch | `#005571` |
208
+ | Cassandra | `#1287B1` |
209
+ | Neo4j | `#008CC1` |
210
+ | SQLite | `#003B57` |
211
+
212
+ ### Message Queues & Streaming
213
+
214
+ | Product | Color |
215
+ |---------|-------|
216
+ | Apache Kafka | `#231F20` |
217
+ | RabbitMQ | `#FF6600` |
218
+ | AWS SQS | `#FF9900` |
219
+ | NATS | `#27AAE1` |
220
+ | Pulsar | `#188FFF` |
221
+
222
+ ### Cloud & Infra
223
+
224
+ | Product | Color |
225
+ |---------|-------|
226
+ | AWS | `#FF9900` |
227
+ | GCP | `#4285F4` |
228
+ | Azure | `#0089D6` |
229
+ | Cloudflare | `#F48120` |
230
+ | Vercel | `#000000` |
231
+ | Docker | `#2496ED` |
232
+ | Kubernetes | `#326CE5` |
233
+ | Terraform | `#7B42BC` |
234
+ | Nginx | `#009639` |
235
+ | FastAPI | `#009688` |
236
+
237
+ ### Observability
238
+
239
+ | Product | Color |
240
+ |---------|-------|
241
+ | Grafana | `#F46800` |
242
+ | Prometheus | `#E6522C` |
243
+ | Datadog | `#632CA6` |
244
+ | LangSmith | `#1C3C3C` |
245
+ | Langfuse | `#6366F1` |
246
+ | Arize | `#6B48FF` |
247
+
248
+ ---
249
+
250
+ ## Azure Service Icons
251
+
252
+ Azure brand colour: `#0089D6` (top tile / outer ring).
253
+ Service-specific accents come from Microsoft's Azure icon set; use them
254
+ as the inner badge fill so a glance still tells you "this is Azure".
255
+
256
+ **Template (Azure tile):**
257
+ ```xml
258
+ <!-- Azure tile: outer rounded square in Azure blue, inner badge for the service. -->
259
+ <rect x="cx-22" y="cy-22" width="44" height="44" rx="6"
260
+ fill="#0089D6" stroke="none"/>
261
+ <rect x="cx-19" y="cy-19" width="38" height="38" rx="4"
262
+ fill="SERVICE_COLOR" stroke="none"/>
263
+ <text x="cx" y="cy+5" text-anchor="middle" fill="white"
264
+ font-size="9" font-weight="700" font-family="Helvetica">BADGE</text>
265
+ ```
266
+
267
+ ### Azure Compute
268
+
269
+ | Product | Service Color | Badge |
270
+ |---------|---------------|-------|
271
+ | Azure Functions | `#0062AD` | `Func` |
272
+ | Azure App Service | `#0072C6` | `App` |
273
+ | Azure Container Apps | `#3F8624` | `ACA` |
274
+ | Azure Container Instances | `#0078D4` | `ACI` |
275
+ | Azure Kubernetes Service (AKS) | `#326CE5` | `AKS` |
276
+ | Azure Virtual Machines | `#0078D4` | `VM` |
277
+ | Azure Batch | `#0072C6` | `Batch` |
278
+ | Azure Spring Apps | `#6DB33F` | `Spring` |
279
+
280
+ ### Azure Data & Analytics
281
+
282
+ | Product | Service Color | Badge |
283
+ |---------|---------------|-------|
284
+ | Azure SQL Database | `#0066A1` | `SQL` |
285
+ | Azure Cosmos DB | `#3D7AB3` | `Cosmos` |
286
+ | Azure Database for PostgreSQL | `#336791` | `pg` |
287
+ | Azure Database for MySQL | `#4479A1` | `MySQL` |
288
+ | Azure Synapse Analytics | `#0078D4` | `Syn` |
289
+ | Azure Data Factory | `#0078D4` | `ADF` |
290
+ | Azure Databricks | `#FF3621` | `Bricks` |
291
+ | Azure Stream Analytics | `#0072C6` | `Stream` |
292
+ | Azure Data Explorer (Kusto) | `#1E5180` | `Kusto` |
293
+ | Azure Cache for Redis | `#DC382D` | `Redis` |
294
+
295
+ ### Azure Storage
296
+
297
+ | Product | Service Color | Badge |
298
+ |---------|---------------|-------|
299
+ | Azure Blob Storage | `#0078D4` | `Blob` |
300
+ | Azure Queue Storage | `#0078D4` | `Queue` |
301
+ | Azure Table Storage | `#0078D4` | `Table` |
302
+ | Azure Files | `#0078D4` | `Files` |
303
+ | Azure Data Lake Storage Gen2 | `#0078D4` | `Lake` |
304
+
305
+ ### Azure AI
306
+
307
+ | Product | Service Color | Badge |
308
+ |---------|---------------|-------|
309
+ | Azure OpenAI Service | `#10A37F` | `AOAI` |
310
+ | Azure AI Search (Cognitive Search) | `#0078D4` | `AISrch` |
311
+ | Azure AI Foundry | `#742774` | `Foundry` |
312
+ | Azure Machine Learning | `#0078D4` | `AML` |
313
+ | Azure AI Content Safety | `#107C10` | `Safety` |
314
+ | Azure Speech / Translator | `#0078D4` | `Speech` |
315
+
316
+ ### Azure Messaging & Eventing
317
+
318
+ | Product | Service Color | Badge |
319
+ |---------|---------------|-------|
320
+ | Azure Service Bus | `#0078D4` | `SB` |
321
+ | Azure Event Grid | `#0078D4` | `Grid` |
322
+ | Azure Event Hubs | `#0078D4` | `Hubs` |
323
+ | Azure Notification Hubs | `#0078D4` | `Notif` |
324
+ | Azure SignalR Service | `#0078D4` | `SignalR` |
325
+
326
+ ### Azure Networking & Edge
327
+
328
+ | Product | Service Color | Badge |
329
+ |---------|---------------|-------|
330
+ | Azure Front Door | `#0078D4` | `AFD` |
331
+ | Azure Application Gateway | `#0078D4` | `AppGW` |
332
+ | Azure Load Balancer | `#0078D4` | `LB` |
333
+ | Azure API Management | `#1FBA9F` | `APIM` |
334
+ | Azure Virtual Network | `#0078D4` | `VNet` |
335
+ | Azure Private Link | `#0078D4` | `PL` |
336
+ | Azure CDN | `#0078D4` | `CDN` |
337
+ | Azure DNS | `#0078D4` | `DNS` |
338
+
339
+ ### Azure Identity & Security
340
+
341
+ | Product | Service Color | Badge |
342
+ |---------|---------------|-------|
343
+ | Microsoft Entra ID (Azure AD) | `#0072C6` | `Entra` |
344
+ | Azure Key Vault | `#FFB900` | `KV` |
345
+ | Azure Sentinel | `#0072C6` | `Sentinel` |
346
+ | Microsoft Defender for Cloud | `#0078D4` | `Defender` |
347
+
348
+ ### Azure DevOps & Operations
349
+
350
+ | Product | Service Color | Badge |
351
+ |---------|---------------|-------|
352
+ | Azure DevOps Pipelines | `#0078D4` | `Pipelines` |
353
+ | GitHub Actions (Azure target) | `#181717` | `GHA` |
354
+ | Azure Monitor | `#0078D4` | `Monitor` |
355
+ | Application Insights | `#0072C6` | `AppI` |
356
+ | Azure Log Analytics | `#0078D4` | `Logs` |
357
+
358
+ ### Azure-specific shapes
359
+
360
+ For diagrams that need a recognisable "Azure" visual without a service
361
+ badge — e.g. a region container or a subscription boundary — use a
362
+ dashed Azure-blue outline:
363
+
364
+ ```xml
365
+ <!-- Azure region/subscription container -->
366
+ <rect x="x" y="y" width="w" height="h" rx="8"
367
+ fill="#0089D6" fill-opacity="0.04"
368
+ stroke="#0089D6" stroke-width="1.2" stroke-dasharray="6,4"/>
369
+ <text x="x+12" y="y+16" fill="#0089D6" font-size="10"
370
+ font-weight="700" letter-spacing="0.06em">AZURE • REGION NAME</text>
371
+ ```
372
+
373
+ ---
374
+
375
+ ## Icon Sizing Guide
376
+
377
+ | Context | Recommended Size | Padding |
378
+ |---------|-----------------|---------|
379
+ | Node badge (inside box) | 28×28px circle | 10px |
380
+ | Standalone icon node | 40×40px | 16px |
381
+ | Hero / central node | 56×56px | 20px |
382
+ | Small inline indicator | 16×16px | 6px |
383
+
384
+ ## Arrow Marker Templates
385
+
386
+ ```xml
387
+ <defs>
388
+ <!-- Standard filled arrow -->
389
+ <marker id="arrow-COLORNAME" markerWidth="10" markerHeight="7"
390
+ refX="9" refY="3.5" orient="auto">
391
+ <polygon points="0 0, 10 3.5, 0 7" fill="COLOR"/>
392
+ </marker>
393
+
394
+ <!-- Open arrow (outline only) -->
395
+ <marker id="arrow-open" markerWidth="10" markerHeight="8"
396
+ refX="9" refY="4" orient="auto">
397
+ <path d="M 0 0 L 10 4 L 0 8" fill="none" stroke="COLOR" stroke-width="1.5"/>
398
+ </marker>
399
+
400
+ <!-- Circle dot (for association lines) -->
401
+ <marker id="dot" markerWidth="8" markerHeight="8"
402
+ refX="4" refY="4" orient="auto">
403
+ <circle cx="4" cy="4" r="3" fill="COLOR"/>
404
+ </marker>
405
+ </defs>
406
+ ```
@@ -0,0 +1,108 @@
1
+ # Style 1: Flat Icon (Default)
2
+
3
+ Inspired by draw.io defaults and Apple documentation style.
4
+
5
+ ## Colors
6
+
7
+ ```
8
+ Background: #ffffff
9
+ Box fill: #ffffff
10
+ Box stroke: #d1d5db (gray-300)
11
+ Box radius: 8px
12
+ Text primary: #111827 (gray-900)
13
+ Text secondary: #6b7280 (gray-500)
14
+
15
+ Semantic arrow colors (pick by flow type):
16
+ Flow A (main): #2563eb (blue-600)
17
+ Flow B (alt): #dc2626 (red-600)
18
+ Flow C (data): #16a34a (green-600)
19
+ Flow D (async): #9333ea (purple-600)
20
+
21
+ Icon accent backgrounds:
22
+ Blue tint: #eff6ff / #dbeafe
23
+ Red tint: #fef2f2 / #fee2e2
24
+ Green tint: #f0fdf4 / #dcfce7
25
+ Purple tint: #faf5ff / #ede9fe
26
+ Orange tint: #fff7ed / #fed7aa
27
+ Teal tint: #f0fdfa / #ccfbf1
28
+ ```
29
+
30
+ ## Typography
31
+
32
+ ```
33
+ font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC',
34
+ 'Microsoft YaHei', 'Microsoft JhengHei', 'SimHei', sans-serif
35
+ font-size: 14px labels, 12px sub-labels, 16px titles
36
+ font-weight: 400 normal, 600 semi-bold for titles
37
+ ```
38
+
39
+ ## Box Shapes
40
+
41
+ ```xml
42
+ <!-- Standard node box -->
43
+ <rect rx="8" ry="8" fill="#ffffff" stroke="#d1d5db" stroke-width="1.5"/>
44
+
45
+ <!-- Icon accent box (colored background) -->
46
+ <rect rx="8" ry="8" fill="#eff6ff" stroke="#bfdbfe" stroke-width="1.5"/>
47
+
48
+ <!-- Database cylinder (use SVG path) -->
49
+ <!-- Terminal box: rx=4, fill=#111827, stroke=#374151 -->
50
+ <!-- User/actor: circle or rounded rect with icon -->
51
+ ```
52
+
53
+ ## Arrows
54
+
55
+ ```xml
56
+ <defs>
57
+ <marker id="arrow-blue" markerWidth="10" markerHeight="7"
58
+ refX="9" refY="3.5" orient="auto">
59
+ <polygon points="0 0, 10 3.5, 0 7" fill="#2563eb"/>
60
+ </marker>
61
+ <marker id="arrow-red" markerWidth="10" markerHeight="7"
62
+ refX="9" refY="3.5" orient="auto">
63
+ <polygon points="0 0, 10 3.5, 0 7" fill="#dc2626"/>
64
+ </marker>
65
+ </defs>
66
+
67
+ <!-- Line -->
68
+ <line stroke="#2563eb" stroke-width="1.5" marker-end="url(#arrow-blue)"/>
69
+ <!-- Or path for curved/orthogonal routing -->
70
+ <path stroke="#2563eb" stroke-width="1.5" fill="none" marker-end="url(#arrow-blue)"/>
71
+ ```
72
+
73
+ ## Legend
74
+
75
+ Always include a legend in the bottom-left if multiple arrow colors are used:
76
+
77
+ ```xml
78
+ <g transform="translate(20, 560)">
79
+ <line x1="0" y1="8" x2="30" y2="8" stroke="#2563eb" stroke-width="1.5"
80
+ marker-end="url(#arrow-blue)"/>
81
+ <text x="36" y="12" fill="#6b7280" font-size="12">Agent flow</text>
82
+ <line x1="0" y1="24" x2="30" y2="24" stroke="#dc2626" stroke-width="1.5"
83
+ marker-end="url(#arrow-red)"/>
84
+ <text x="36" y="28" fill="#6b7280" font-size="12">RAG flow</text>
85
+ </g>
86
+ ```
87
+
88
+ ## SVG Template
89
+
90
+ ```xml
91
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 960 600"
92
+ width="960" height="600">
93
+ <style>
94
+ /* NO @import — cairosvg / rsvg-convert cannot fetch external URLs */
95
+ text { font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Microsoft YaHei', 'Microsoft JhengHei', 'SimHei', sans-serif; }
96
+ </style>
97
+ <defs>
98
+ <!-- arrow markers here -->
99
+ <!-- gradients/filters if needed -->
100
+ </defs>
101
+ <!-- white background -->
102
+ <rect width="960" height="600" fill="#ffffff"/>
103
+ <!-- diagram title (optional) -->
104
+ <!-- nodes -->
105
+ <!-- edges -->
106
+ <!-- legend -->
107
+ </svg>
108
+ ```
@@ -0,0 +1,107 @@
1
+ # Style 2: Dark Terminal
2
+
3
+ Neon-on-dark hacker aesthetic. Matches CLAUDE.md standard tech diagram style.
4
+
5
+ ## Colors
6
+
7
+ ```
8
+ Background: #0f0f1a (near-black)
9
+ Panel fill: #0f172a (slate-950)
10
+ Panel stroke: #334155 (slate-700)
11
+ Box radius: 6px
12
+
13
+ Text primary: #e2e8f0 (slate-200)
14
+ Text secondary: #94a3b8 (slate-400)
15
+ Text muted: #475569 (slate-600)
16
+
17
+ Accent palette (use per theme/layer):
18
+ Purple: #7c3aed / #a855f7
19
+ Orange: #ea580c / #f97316
20
+ Blue: #1d4ed8 / #3b82f6
21
+ Green: #059669 / #10b981
22
+ Gold: #eab308
23
+ Red: #dc2626 / #ef4444
24
+
25
+ Arrow colors: match accent of the source node's theme
26
+ ```
27
+
28
+ ## Background Gradient
29
+
30
+ ```xml
31
+ <defs>
32
+ <linearGradient id="bg-grad" x1="0%" y1="0%" x2="100%" y2="100%">
33
+ <stop offset="0%" stop-color="#0f0f1a"/>
34
+ <stop offset="100%" stop-color="#1a1a2e"/>
35
+ </linearGradient>
36
+ </defs>
37
+ <rect width="960" height="600" fill="url(#bg-grad)"/>
38
+ ```
39
+
40
+ ## Typography
41
+
42
+ ```
43
+ font-family: 'SF Mono', 'Fira Code', 'Cascadia Code', 'Courier New', 'Microsoft YaHei', 'SimHei', monospace
44
+ font-size: 13px labels, 11px sub-labels, 15px titles
45
+ font-weight: 400 normal, 700 bold for section headers
46
+ letter-spacing: 0.02em for labels
47
+ ```
48
+
49
+ ## Box Styles
50
+
51
+ ```xml
52
+ <!-- Standard panel -->
53
+ <rect rx="6" ry="6" fill="#0f172a" stroke="#334155" stroke-width="1"/>
54
+
55
+ <!-- Colored accent box (themed by function) -->
56
+ <rect rx="6" ry="6" fill="#1e1b4b" stroke="#7c3aed" stroke-width="1.5"/>
57
+ <!-- Purple for AI/ML nodes -->
58
+ <!-- #1c1917 / #ea580c for compute/API nodes -->
59
+ <!-- #052e16 / #059669 for storage/DB nodes -->
60
+ <!-- #1e3a5f / #3b82f6 for network/gateway nodes -->
61
+ ```
62
+
63
+ ## Glow Effect (optional, for key nodes)
64
+
65
+ ```xml
66
+ <defs>
67
+ <filter id="glow-purple">
68
+ <feGaussianBlur stdDeviation="3" result="blur"/>
69
+ <feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
70
+ </filter>
71
+ </defs>
72
+ <rect filter="url(#glow-purple)" stroke="#a855f7" .../>
73
+ ```
74
+
75
+ ## Arrows
76
+
77
+ ```xml
78
+ <defs>
79
+ <marker id="arrow-purple" markerWidth="8" markerHeight="6"
80
+ refX="7" refY="3" orient="auto">
81
+ <polygon points="0 0, 8 3, 0 6" fill="#a855f7"/>
82
+ </marker>
83
+ </defs>
84
+ <path stroke="#a855f7" stroke-width="1.5" stroke-dasharray="none"
85
+ fill="none" marker-end="url(#arrow-purple)"/>
86
+ ```
87
+
88
+ ## SVG Template
89
+
90
+ ```xml
91
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 960 600"
92
+ width="960" height="600">
93
+ <style>
94
+ text { font-family: 'SF Mono', 'Fira Code', 'Cascadia Code', 'Courier New', 'Microsoft YaHei', 'SimHei', monospace; fill: #e2e8f0; }
95
+ </style>
96
+ <defs>
97
+ <linearGradient id="bg-grad" x1="0%" y1="0%" x2="100%" y2="100%">
98
+ <stop offset="0%" stop-color="#0f0f1a"/>
99
+ <stop offset="100%" stop-color="#1a1a2e"/>
100
+ </linearGradient>
101
+ <!-- arrow markers -->
102
+ <!-- glow filters -->
103
+ </defs>
104
+ <rect width="960" height="600" fill="url(#bg-grad)"/>
105
+ <!-- nodes, edges, legend -->
106
+ </svg>
107
+ ```