@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.
- package/.claude-plugin/marketplace.json +26 -0
- package/LICENSE +21 -0
- package/README.md +50 -0
- package/package.json +33 -0
- package/plugins/tech-graph/.claude-plugin/plugin.json +17 -0
- package/plugins/tech-graph/README.md +66 -0
- package/plugins/tech-graph/agents/tech-graph.md +89 -0
- package/plugins/tech-graph/commands/tech-graph.md +13 -0
- package/plugins/tech-graph/scripts/check-deps.sh +55 -0
- package/plugins/tech-graph/skills/tech-graph/LICENSE +21 -0
- package/plugins/tech-graph/skills/tech-graph/README.md +555 -0
- package/plugins/tech-graph/skills/tech-graph/README.zh.md +514 -0
- package/plugins/tech-graph/skills/tech-graph/SKILL.md +559 -0
- package/plugins/tech-graph/skills/tech-graph/agents/openai.yaml +4 -0
- package/plugins/tech-graph/skills/tech-graph/assets/samples/sample-style1-flat.png +0 -0
- package/plugins/tech-graph/skills/tech-graph/assets/samples/sample-style2-dark.png +0 -0
- package/plugins/tech-graph/skills/tech-graph/assets/samples/sample-style3-blueprint.png +0 -0
- package/plugins/tech-graph/skills/tech-graph/assets/samples/sample-style4-notion.png +0 -0
- package/plugins/tech-graph/skills/tech-graph/assets/samples/sample-style5-glass.png +0 -0
- package/plugins/tech-graph/skills/tech-graph/assets/samples/sample-style6-claude.png +0 -0
- package/plugins/tech-graph/skills/tech-graph/assets/samples/sample-style7-openai.png +0 -0
- package/plugins/tech-graph/skills/tech-graph/fixtures/agent-memory-types-style4.json +181 -0
- package/plugins/tech-graph/skills/tech-graph/fixtures/api-flow-style7.json +40 -0
- package/plugins/tech-graph/skills/tech-graph/fixtures/mem0-style1.json +297 -0
- package/plugins/tech-graph/skills/tech-graph/fixtures/microservices-style3.json +64 -0
- package/plugins/tech-graph/skills/tech-graph/fixtures/multi-agent-style5.json +45 -0
- package/plugins/tech-graph/skills/tech-graph/fixtures/system-architecture-style6.json +48 -0
- package/plugins/tech-graph/skills/tech-graph/fixtures/tool-call-style2.json +182 -0
- package/plugins/tech-graph/skills/tech-graph/package.json +42 -0
- package/plugins/tech-graph/skills/tech-graph/references/icons.md +406 -0
- package/plugins/tech-graph/skills/tech-graph/references/style-1-flat-icon.md +108 -0
- package/plugins/tech-graph/skills/tech-graph/references/style-2-dark-terminal.md +107 -0
- package/plugins/tech-graph/skills/tech-graph/references/style-3-blueprint.md +113 -0
- package/plugins/tech-graph/skills/tech-graph/references/style-4-notion-clean.md +95 -0
- package/plugins/tech-graph/skills/tech-graph/references/style-5-glassmorphism.md +125 -0
- package/plugins/tech-graph/skills/tech-graph/references/style-6-claude-official.md +209 -0
- package/plugins/tech-graph/skills/tech-graph/references/style-7-openai.md +215 -0
- package/plugins/tech-graph/skills/tech-graph/references/style-diagram-matrix.md +135 -0
- package/plugins/tech-graph/skills/tech-graph/references/svg-layout-best-practices.md +100 -0
- package/plugins/tech-graph/skills/tech-graph/scripts/README.md +269 -0
- package/plugins/tech-graph/skills/tech-graph/scripts/generate-diagram.sh +181 -0
- package/plugins/tech-graph/skills/tech-graph/scripts/generate-from-template.py +1587 -0
- package/plugins/tech-graph/skills/tech-graph/scripts/test-all-styles.sh +143 -0
- package/plugins/tech-graph/skills/tech-graph/scripts/validate-svg.sh +306 -0
- package/plugins/tech-graph/skills/tech-graph/templates/agent-architecture.svg +28 -0
- package/plugins/tech-graph/skills/tech-graph/templates/architecture.svg +23 -0
- package/plugins/tech-graph/skills/tech-graph/templates/comparison-matrix.svg +14 -0
- package/plugins/tech-graph/skills/tech-graph/templates/data-flow.svg +28 -0
- package/plugins/tech-graph/skills/tech-graph/templates/er-diagram.svg +21 -0
- package/plugins/tech-graph/skills/tech-graph/templates/flowchart.svg +21 -0
- package/plugins/tech-graph/skills/tech-graph/templates/sequence.svg +20 -0
- package/plugins/tech-graph/skills/tech-graph/templates/state-machine.svg +20 -0
- package/plugins/tech-graph/skills/tech-graph/templates/timeline.svg +19 -0
- 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
|
+
```
|