@caddis/cli 0.0.0 → 0.1.0

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 (153) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +150 -1
  3. package/bundles/antigravity-plugin/agents/code-reviewer.md +47 -0
  4. package/bundles/antigravity-plugin/agents/preflight.md +53 -0
  5. package/bundles/antigravity-plugin/guard_agy.py +338 -0
  6. package/bundles/antigravity-plugin/hooks.json +36 -0
  7. package/bundles/antigravity-plugin/mcp_config.json +8 -0
  8. package/bundles/antigravity-plugin/mcp_ping_server.py +55 -0
  9. package/bundles/antigravity-plugin/plugin.json +5 -0
  10. package/bundles/antigravity-plugin/session_end_agy.py +57 -0
  11. package/bundles/antigravity-plugin/skills/_registry.md +115 -0
  12. package/bundles/antigravity-plugin/skills/add-rules/SKILL.md +45 -0
  13. package/bundles/antigravity-plugin/skills/api-design/SKILL.md +249 -0
  14. package/bundles/antigravity-plugin/skills/backend-development/SKILL.md +305 -0
  15. package/bundles/antigravity-plugin/skills/best-practices/SKILL.md +500 -0
  16. package/bundles/antigravity-plugin/skills/best-practices/agents/best-practices-referencer.md +263 -0
  17. package/bundles/antigravity-plugin/skills/best-practices/agents/codebase-context-builder.md +326 -0
  18. package/bundles/antigravity-plugin/skills/best-practices/agents/task-intent-analyzer.md +245 -0
  19. package/bundles/antigravity-plugin/skills/best-practices/references/anti-patterns.md +571 -0
  20. package/bundles/antigravity-plugin/skills/best-practices/references/before-after-examples.md +1114 -0
  21. package/bundles/antigravity-plugin/skills/best-practices/references/best-practices-guide.md +513 -0
  22. package/bundles/antigravity-plugin/skills/best-practices/references/common-workflows.md +692 -0
  23. package/bundles/antigravity-plugin/skills/best-practices/references/prompt-patterns.md +547 -0
  24. package/bundles/antigravity-plugin/skills/brainstorming/SKILL.md +57 -0
  25. package/bundles/antigravity-plugin/skills/ci-cd-pipeline/SKILL.md +315 -0
  26. package/bundles/antigravity-plugin/skills/code-documentation/SKILL.md +271 -0
  27. package/bundles/antigravity-plugin/skills/code-review/SKILL.md +122 -0
  28. package/bundles/antigravity-plugin/skills/codebase-audit/SKILL.md +204 -0
  29. package/bundles/antigravity-plugin/skills/context-curator/SKILL.md +157 -0
  30. package/bundles/antigravity-plugin/skills/cross-review/SKILL.md +40 -0
  31. package/bundles/antigravity-plugin/skills/css-architecture/SKILL.md +305 -0
  32. package/bundles/antigravity-plugin/skills/css-architecture/references/RESPONSIVE-DESIGN.md +604 -0
  33. package/bundles/antigravity-plugin/skills/database-design/SKILL.md +177 -0
  34. package/bundles/antigravity-plugin/skills/db-diagram/SKILL.md +148 -0
  35. package/bundles/antigravity-plugin/skills/db-diagram/scripts/sql_to_graph.py +1212 -0
  36. package/bundles/antigravity-plugin/skills/digress/SKILL.md +61 -0
  37. package/bundles/antigravity-plugin/skills/draw-io/SKILL.md +162 -0
  38. package/bundles/antigravity-plugin/skills/draw-io/references/aws-icons.md +677 -0
  39. package/bundles/antigravity-plugin/skills/draw-io/references/layout-guidelines.md +142 -0
  40. package/bundles/antigravity-plugin/skills/draw-io/references/troubleshooting.md +118 -0
  41. package/bundles/antigravity-plugin/skills/draw-io/references/workflows.md +103 -0
  42. package/bundles/antigravity-plugin/skills/draw-io/scripts/convert-drawio-to-png.sh +25 -0
  43. package/bundles/antigravity-plugin/skills/draw-io/scripts/find_aws_icon.py +79 -0
  44. package/bundles/antigravity-plugin/skills/error-handling/SKILL.md +260 -0
  45. package/bundles/antigravity-plugin/skills/excalidraw-db/SKILL.md +38 -0
  46. package/bundles/antigravity-plugin/skills/fastapi-dev/SKILL.md +300 -0
  47. package/bundles/antigravity-plugin/skills/feature-plan/SKILL.md +198 -0
  48. package/bundles/antigravity-plugin/skills/frontend-design/SKILL.md +193 -0
  49. package/bundles/antigravity-plugin/skills/frontend-design/references/my-tech-stack.md +127 -0
  50. package/bundles/antigravity-plugin/skills/gh-cli/SKILL.md +195 -0
  51. package/bundles/antigravity-plugin/skills/git-commit/SKILL.md +285 -0
  52. package/bundles/antigravity-plugin/skills/golden-plan/SKILL.md +577 -0
  53. package/bundles/antigravity-plugin/skills/handoff/SKILL.md +100 -0
  54. package/bundles/antigravity-plugin/skills/implement/SKILL.md +114 -0
  55. package/bundles/antigravity-plugin/skills/javascript-typescript/SKILL.md +142 -0
  56. package/bundles/antigravity-plugin/skills/kb/SKILL.md +60 -0
  57. package/bundles/antigravity-plugin/skills/mermaid-db/SKILL.md +33 -0
  58. package/bundles/antigravity-plugin/skills/mermaid-diagrams/SKILL.md +236 -0
  59. package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/ENHANCEMENTS.md +264 -0
  60. package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/MERMAID-SUMMARY.md +137 -0
  61. package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/advanced-features.md +556 -0
  62. package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/architecture-diagrams.md +192 -0
  63. package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/c4-diagrams.md +410 -0
  64. package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/class-diagrams.md +361 -0
  65. package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/erd-diagrams.md +510 -0
  66. package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/flowcharts.md +450 -0
  67. package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/sequence-diagrams.md +394 -0
  68. package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/troubleshooting.md +335 -0
  69. package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/workflows.md +418 -0
  70. package/bundles/antigravity-plugin/skills/migrate-dir/SKILL.md +68 -0
  71. package/bundles/antigravity-plugin/skills/mockup/SKILL.md +242 -0
  72. package/bundles/antigravity-plugin/skills/particle-art/SKILL.md +243 -0
  73. package/bundles/antigravity-plugin/skills/particle-art/references/canvas-utils.ts +171 -0
  74. package/bundles/antigravity-plugin/skills/particle-art/references/dot-field.template.tsx +203 -0
  75. package/bundles/antigravity-plugin/skills/particle-art/references/flow-field.template.tsx +263 -0
  76. package/bundles/antigravity-plugin/skills/particle-art/references/node-shape.template.tsx +261 -0
  77. package/bundles/antigravity-plugin/skills/particle-art/references/shape-sampler.ts +281 -0
  78. package/bundles/antigravity-plugin/skills/particle-art/references/stipple-morph.template.tsx +167 -0
  79. package/bundles/antigravity-plugin/skills/particle-art/references/stipple.template.tsx +175 -0
  80. package/bundles/antigravity-plugin/skills/particle-art/references/trail-ghost.template.tsx +266 -0
  81. package/bundles/antigravity-plugin/skills/particle-art/references/usage-examples.md +320 -0
  82. package/bundles/antigravity-plugin/skills/playwright/API_REFERENCE.md +653 -0
  83. package/bundles/antigravity-plugin/skills/playwright/SKILL.md +454 -0
  84. package/bundles/antigravity-plugin/skills/playwright/lib/helpers.js +441 -0
  85. package/bundles/antigravity-plugin/skills/playwright/package.json +26 -0
  86. package/bundles/antigravity-plugin/skills/playwright/run.js +228 -0
  87. package/bundles/antigravity-plugin/skills/prd/SKILL.md +107 -0
  88. package/bundles/antigravity-plugin/skills/preflight/SKILL.md +435 -0
  89. package/bundles/antigravity-plugin/skills/python/SKILL.md +388 -0
  90. package/bundles/antigravity-plugin/skills/react-best-practices/SKILL.md +269 -0
  91. package/bundles/antigravity-plugin/skills/react-dev/README.md +404 -0
  92. package/bundles/antigravity-plugin/skills/react-dev/SKILL.md +459 -0
  93. package/bundles/antigravity-plugin/skills/react-dev/examples/generic-components.md +579 -0
  94. package/bundles/antigravity-plugin/skills/react-dev/examples/server-components.md +579 -0
  95. package/bundles/antigravity-plugin/skills/react-dev/references/event-handlers.md +574 -0
  96. package/bundles/antigravity-plugin/skills/react-dev/references/hooks.md +456 -0
  97. package/bundles/antigravity-plugin/skills/react-dev/references/react-19-patterns.md +638 -0
  98. package/bundles/antigravity-plugin/skills/react-dev/references/react-router.md +1002 -0
  99. package/bundles/antigravity-plugin/skills/react-dev/references/tanstack-router.md +587 -0
  100. package/bundles/antigravity-plugin/skills/refactoring/SKILL.md +486 -0
  101. package/bundles/antigravity-plugin/skills/resume/SKILL.md +36 -0
  102. package/bundles/antigravity-plugin/skills/security-review/SKILL.md +196 -0
  103. package/bundles/antigravity-plugin/skills/setup-project-ai/SKILL.md +61 -0
  104. package/bundles/antigravity-plugin/skills/ship/SKILL.md +107 -0
  105. package/bundles/antigravity-plugin/skills/ship-merge/SKILL.md +103 -0
  106. package/bundles/antigravity-plugin/skills/ship-pr/SKILL.md +102 -0
  107. package/bundles/antigravity-plugin/skills/skill-creator/LICENSE.txt +202 -0
  108. package/bundles/antigravity-plugin/skills/skill-creator/SKILL.md +491 -0
  109. package/bundles/antigravity-plugin/skills/skill-creator/agents/analyzer.md +274 -0
  110. package/bundles/antigravity-plugin/skills/skill-creator/agents/comparator.md +202 -0
  111. package/bundles/antigravity-plugin/skills/skill-creator/agents/grader.md +223 -0
  112. package/bundles/antigravity-plugin/skills/skill-creator/assets/eval_review.html +146 -0
  113. package/bundles/antigravity-plugin/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  114. package/bundles/antigravity-plugin/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  115. package/bundles/antigravity-plugin/skills/skill-creator/references/schemas.md +430 -0
  116. package/bundles/antigravity-plugin/skills/skill-creator/scripts/__init__.py +0 -0
  117. package/bundles/antigravity-plugin/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  118. package/bundles/antigravity-plugin/skills/skill-creator/scripts/generate_report.py +326 -0
  119. package/bundles/antigravity-plugin/skills/skill-creator/scripts/improve_description.py +247 -0
  120. package/bundles/antigravity-plugin/skills/skill-creator/scripts/package_skill.py +136 -0
  121. package/bundles/antigravity-plugin/skills/skill-creator/scripts/quick_validate.py +103 -0
  122. package/bundles/antigravity-plugin/skills/skill-creator/scripts/run_eval.py +310 -0
  123. package/bundles/antigravity-plugin/skills/skill-creator/scripts/run_loop.py +328 -0
  124. package/bundles/antigravity-plugin/skills/skill-creator/scripts/utils.py +47 -0
  125. package/bundles/antigravity-plugin/skills/sql/SKILL.md +321 -0
  126. package/bundles/antigravity-plugin/skills/tdd/SKILL.md +37 -0
  127. package/bundles/antigravity-plugin/skills/tdd-workflow/SKILL.md +188 -0
  128. package/bundles/antigravity-plugin/skills/technical-writing/SKILL.md +286 -0
  129. package/bundles/antigravity-plugin/skills/test-strategy/SKILL.md +155 -0
  130. package/bundles/antigravity-plugin/skills/ui-brief/SKILL.md +84 -0
  131. package/bundles/antigravity-plugin/skills/ui-review/SKILL.md +176 -0
  132. package/bundles/antigravity-plugin/skills/ui-review/references/framework-fixes.md +471 -0
  133. package/bundles/antigravity-plugin/skills/ui-review/references/visual-checklist.md +236 -0
  134. package/bundles/antigravity-plugin/skills/usage-review/SKILL.md +77 -0
  135. package/bundles/antigravity-plugin/skills/use-model/SKILL.md +64 -0
  136. package/bundles/antigravity-plugin/skills/using-git-worktrees/SKILL.md +217 -0
  137. package/bundles/antigravity-plugin/skills/version/SKILL.md +18 -0
  138. package/bundles/antigravity-plugin/skills/warm-editorial-ui/DESIGN_TOKENS.md +487 -0
  139. package/bundles/antigravity-plugin/skills/warm-editorial-ui/IMPLEMENTATION_GUIDE.md +177 -0
  140. package/bundles/antigravity-plugin/skills/warm-editorial-ui/SKILL.md +732 -0
  141. package/bundles/antigravity-plugin/skills/webapp-testing/LICENSE.txt +202 -0
  142. package/bundles/antigravity-plugin/skills/webapp-testing/SKILL.md +97 -0
  143. package/bundles/antigravity-plugin/skills/webapp-testing/examples/console_logging.py +35 -0
  144. package/bundles/antigravity-plugin/skills/webapp-testing/examples/element_discovery.py +40 -0
  145. package/bundles/antigravity-plugin/skills/webapp-testing/examples/static_html_automation.py +33 -0
  146. package/bundles/antigravity-plugin/skills/webapp-testing/scripts/with_server.py +106 -0
  147. package/bundles/antigravity-plugin/skills/windows-deployment/SKILL.md +880 -0
  148. package/bundles/antigravity-plugin/skills/writing-plans/SKILL.md +384 -0
  149. package/bundles/antigravity-plugin/statusline-command-agy.sh +91 -0
  150. package/bundles/antigravity-plugin/warm_start_agy.py +149 -0
  151. package/bundles/manifest.json +6 -0
  152. package/dist/cli.js +5363 -0
  153. package/package.json +61 -4
@@ -0,0 +1,394 @@
1
+ # Sequence Diagrams
2
+
3
+ Sequence diagrams show interactions between participants over time. They're ideal for API flows, authentication sequences, and system component interactions.
4
+
5
+ ## Basic Syntax
6
+
7
+ ```mermaid
8
+ sequenceDiagram
9
+ participant A
10
+ participant B
11
+ A->>B: Message
12
+ ```
13
+
14
+ ## Participants and Actors
15
+
16
+ ```mermaid
17
+ sequenceDiagram
18
+ actor User
19
+ participant Frontend
20
+ participant API
21
+ participant Database
22
+
23
+ User->>Frontend: Click button
24
+ Frontend->>API: POST /data
25
+ ```
26
+
27
+ **Difference:**
28
+ - `participant` - System components (services, classes, databases)
29
+ - `actor` - External entities (users, external systems)
30
+
31
+ ## Message Types
32
+
33
+ ### Solid Arrow (Synchronous)
34
+ ```mermaid
35
+ sequenceDiagram
36
+ Client->>Server: Request
37
+ Server-->>Client: Response
38
+ ```
39
+
40
+ - `->>` Solid arrow (request)
41
+ - `-->>` Dotted arrow (response/return)
42
+
43
+ ### Open Arrow (Asynchronous)
44
+ ```mermaid
45
+ sequenceDiagram
46
+ Client-)Server: Async message
47
+ Server--)Client: Async response
48
+ ```
49
+
50
+ - `-)` Solid open arrow
51
+ - `--)` Dotted open arrow
52
+
53
+ ### Cross/X (Delete)
54
+ ```mermaid
55
+ sequenceDiagram
56
+ Client-xServer: Delete
57
+ ```
58
+
59
+ ## Activations
60
+
61
+ Show when a participant is actively processing:
62
+
63
+ ```mermaid
64
+ sequenceDiagram
65
+ Client->>+Server: Request
66
+ Server->>+Database: Query
67
+ Database-->>-Server: Data
68
+ Server-->>-Client: Response
69
+ ```
70
+
71
+ - `+` after arrow activates
72
+ - `-` before arrow deactivates
73
+
74
+ ## Alt/Else (Conditional Logic)
75
+
76
+ ```mermaid
77
+ sequenceDiagram
78
+ User->>API: POST /login
79
+ API->>Database: Query user
80
+ Database-->>API: User data
81
+
82
+ alt Valid credentials
83
+ API-->>User: 200 OK + Token
84
+ else Invalid credentials
85
+ API-->>User: 401 Unauthorized
86
+ else Account locked
87
+ API-->>User: 403 Forbidden
88
+ end
89
+ ```
90
+
91
+ ## Opt (Optional)
92
+
93
+ ```mermaid
94
+ sequenceDiagram
95
+ User->>API: POST /order
96
+ API->>PaymentService: Process payment
97
+
98
+ opt Payment successful
99
+ API->>EmailService: Send confirmation
100
+ end
101
+
102
+ API-->>User: Order result
103
+ ```
104
+
105
+ ## Par (Parallel)
106
+
107
+ Show concurrent operations:
108
+
109
+ ```mermaid
110
+ sequenceDiagram
111
+ API->>Service: Process order
112
+
113
+ par Send email
114
+ Service->>EmailService: Send confirmation
115
+ and Update inventory
116
+ Service->>InventoryService: Reduce stock
117
+ and Log event
118
+ Service->>LogService: Log order
119
+ end
120
+
121
+ Service-->>API: Complete
122
+ ```
123
+
124
+ ## Loop
125
+
126
+ ```mermaid
127
+ sequenceDiagram
128
+ Client->>Server: Request batch
129
+
130
+ loop For each item
131
+ Server->>Database: Process item
132
+ Database-->>Server: Result
133
+ end
134
+
135
+ Server-->>Client: All results
136
+ ```
137
+
138
+ **Loop with condition:**
139
+ ```mermaid
140
+ sequenceDiagram
141
+ loop Every 5 seconds
142
+ Monitor->>API: Health check
143
+ API-->>Monitor: Status
144
+ end
145
+ ```
146
+
147
+ ## Break (Early Exit)
148
+
149
+ ```mermaid
150
+ sequenceDiagram
151
+ User->>API: Submit form
152
+ API->>Validator: Validate input
153
+
154
+ break Input invalid
155
+ API-->>User: 400 Bad Request
156
+ end
157
+
158
+ API->>Database: Save data
159
+ Database-->>API: Success
160
+ API-->>User: 200 OK
161
+ ```
162
+
163
+ ## Notes
164
+
165
+ ### Note over single participant
166
+ ```mermaid
167
+ sequenceDiagram
168
+ User->>API: Request
169
+ Note over API: Validates JWT token
170
+ API-->>User: Response
171
+ ```
172
+
173
+ ### Note spanning participants
174
+ ```mermaid
175
+ sequenceDiagram
176
+ Frontend->>API: Request
177
+ Note over Frontend,API: HTTPS encrypted
178
+ API-->>Frontend: Response
179
+ ```
180
+
181
+ ### Right/Left notes
182
+ ```mermaid
183
+ sequenceDiagram
184
+ User->>System: Action
185
+ Note right of System: Logs to database
186
+ System-->>User: Response
187
+ Note left of User: Updates UI
188
+ ```
189
+
190
+ ## Sequence Numbers
191
+
192
+ Automatically number messages:
193
+
194
+ ```mermaid
195
+ sequenceDiagram
196
+ autonumber
197
+
198
+ User->>Frontend: Login
199
+ Frontend->>API: Authenticate
200
+ API->>Database: Verify credentials
201
+ Database-->>API: User data
202
+ API-->>Frontend: JWT token
203
+ Frontend-->>User: Success
204
+ ```
205
+
206
+ ## Links and Tooltips
207
+
208
+ Add clickable links:
209
+
210
+ ```mermaid
211
+ sequenceDiagram
212
+ participant A as Service A
213
+ link A: Dashboard @ https://dashboard.example.com
214
+ link A: API Docs @ https://docs.example.com
215
+
216
+ A->>B: Message
217
+ ```
218
+
219
+ ## Comprehensive Example: User Authentication Flow
220
+
221
+ ```mermaid
222
+ sequenceDiagram
223
+ autonumber
224
+ actor User
225
+ participant Frontend
226
+ participant AuthAPI
227
+ participant Database
228
+ participant Redis
229
+ participant EmailService
230
+
231
+ User->>+Frontend: Enter credentials
232
+ Frontend->>+AuthAPI: POST /auth/login
233
+
234
+ AuthAPI->>+Database: Query user by email
235
+ Database-->>-AuthAPI: User record
236
+
237
+ alt User not found
238
+ AuthAPI-->>Frontend: 404 User not found
239
+ Frontend-->>User: Show error
240
+ else User found
241
+ AuthAPI->>AuthAPI: Verify password hash
242
+
243
+ alt Invalid password
244
+ AuthAPI->>Database: Increment failed attempts
245
+
246
+ opt Failed attempts > 5
247
+ AuthAPI->>Database: Lock account
248
+ AuthAPI->>EmailService: Send security alert
249
+ end
250
+
251
+ AuthAPI-->>Frontend: 401 Invalid credentials
252
+ Frontend-->>User: Show error
253
+ else Valid password
254
+ AuthAPI->>AuthAPI: Generate JWT token
255
+ AuthAPI->>+Redis: Store session
256
+ Redis-->>-AuthAPI: Confirm
257
+
258
+ par Update login metadata
259
+ AuthAPI->>Database: Update last_login
260
+ and Track analytics
261
+ AuthAPI->>Database: Log login event
262
+ end
263
+
264
+ AuthAPI-->>-Frontend: 200 OK + JWT token
265
+ Frontend->>Frontend: Store token in localStorage
266
+ Frontend-->>-User: Redirect to dashboard
267
+
268
+ opt First login
269
+ EmailService->>User: Welcome email
270
+ end
271
+ end
272
+ end
273
+ ```
274
+
275
+ ## API Request/Response Example
276
+
277
+ ```mermaid
278
+ sequenceDiagram
279
+ autonumber
280
+ participant Client
281
+ participant Gateway
282
+ participant AuthService
283
+ participant UserService
284
+ participant Database
285
+
286
+ Client->>+Gateway: GET /api/users/123
287
+ Note over Gateway: Rate limiting check
288
+
289
+ Gateway->>+AuthService: Validate JWT
290
+ AuthService->>AuthService: Verify signature
291
+
292
+ alt Token invalid or expired
293
+ AuthService-->>Gateway: 401 Unauthorized
294
+ Gateway-->>Client: 401 Unauthorized
295
+ else Token valid
296
+ AuthService-->>-Gateway: User context
297
+
298
+ Gateway->>+UserService: GET /users/123
299
+ UserService->>+Database: SELECT * FROM users WHERE id=123
300
+ Database-->>-UserService: User record
301
+
302
+ alt User not found
303
+ UserService-->>Gateway: 404 Not Found
304
+ Gateway-->>Client: 404 Not Found
305
+ else User found
306
+ UserService-->>-Gateway: 200 OK + User data
307
+ Gateway-->>-Client: 200 OK + User data
308
+ end
309
+ end
310
+ ```
311
+
312
+ ## Microservices Communication
313
+
314
+ ```mermaid
315
+ sequenceDiagram
316
+ actor User
317
+ participant Gateway
318
+ participant OrderService
319
+ participant PaymentService
320
+ participant InventoryService
321
+ participant NotificationService
322
+ participant MessageQueue
323
+
324
+ User->>+Gateway: POST /orders
325
+ Gateway->>+OrderService: Create order
326
+
327
+ OrderService->>+InventoryService: Check stock
328
+ InventoryService-->>-OrderService: Stock available
329
+
330
+ break Insufficient stock
331
+ OrderService-->>Gateway: 400 Out of stock
332
+ Gateway-->>User: Error message
333
+ end
334
+
335
+ OrderService->>OrderService: Reserve order
336
+ OrderService->>+PaymentService: Charge customer
337
+
338
+ alt Payment successful
339
+ PaymentService-->>-OrderService: Payment confirmed
340
+ OrderService->>MessageQueue: Publish OrderConfirmed event
341
+
342
+ par Async processing
343
+ MessageQueue->>InventoryService: Reduce stock
344
+ and
345
+ MessageQueue->>NotificationService: Send confirmation
346
+ NotificationService->>User: Email confirmation
347
+ end
348
+
349
+ OrderService-->>-Gateway: 201 Created
350
+ Gateway-->>User: Order confirmed
351
+ else Payment failed
352
+ PaymentService-->>OrderService: Payment declined
353
+ OrderService->>OrderService: Release reservation
354
+ OrderService-->>Gateway: 402 Payment Required
355
+ Gateway-->>User: Payment failed
356
+ end
357
+ ```
358
+
359
+ ## Best Practices
360
+
361
+ 1. **Order participants logically** - Typically: User → Frontend → Backend → Database
362
+ 2. **Use activations** - Shows when components are actively processing
363
+ 3. **Group related logic** - Use alt/opt/par to organize conditional flows
364
+ 4. **Add descriptive notes** - Explain complex logic or important details
365
+ 5. **Keep diagrams focused** - One scenario per diagram
366
+ 6. **Number messages** - Use autonumber for complex flows
367
+ 7. **Show error paths** - Document failure scenarios with alt/else
368
+ 8. **Indicate async operations** - Use open arrows for fire-and-forget messages
369
+
370
+ ## Common Use Cases
371
+
372
+ ### Authentication
373
+ - Login flows
374
+ - OAuth/SSO flows
375
+ - Token refresh
376
+ - Password reset
377
+
378
+ ### API Operations
379
+ - CRUD operations
380
+ - Search and filtering
381
+ - Batch processing
382
+ - Webhook handling
383
+
384
+ ### System Integration
385
+ - Microservice communication
386
+ - Third-party API calls
387
+ - Message queue processing
388
+ - Event-driven architecture
389
+
390
+ ### Business Processes
391
+ - Order fulfillment
392
+ - Payment processing
393
+ - Approval workflows
394
+ - Notification chains
@@ -0,0 +1,335 @@
1
+ # Mermaid Troubleshooting Guide
2
+
3
+ Common issues and solutions when working with Mermaid diagrams.
4
+
5
+ ## Diagram Won't Render
6
+
7
+ ### Issue: Blank output or error message
8
+
9
+ **Symptoms:**
10
+ - GitHub shows blank space where diagram should be
11
+ - Mermaid Live shows "Syntax Error"
12
+ - VS Code preview doesn't display diagram
13
+
14
+ **Solutions:**
15
+
16
+ 1. **Check diagram type declaration:**
17
+ ```mermaid
18
+ ❌ classdiagram # Wrong - typo
19
+ ❌ class-diagram # Wrong - hyphen
20
+ ✅ classDiagram # Correct
21
+ ```
22
+
23
+ 2. **Verify syntax at mermaid.live:**
24
+ - Copy your diagram code
25
+ - Paste at https://mermaid.live
26
+ - Check error messages in the editor
27
+
28
+ 3. **Check for special characters:**
29
+ ```mermaid
30
+ ❌ class User {name} # Braces break syntax
31
+ ✅ class User {+name} # Add visibility modifier
32
+
33
+ ❌ A[Order {id}] # Braces in label
34
+ ✅ A["Order {id}"] # Quote the label
35
+ ```
36
+
37
+ 4. **Ensure proper indentation (especially in YAML/Markdown):**
38
+ ````markdown
39
+ ❌ Wrong:
40
+ ```mermaid
41
+ classDiagram
42
+ class User
43
+ ```
44
+
45
+ ✅ Correct:
46
+ ```mermaid
47
+ classDiagram
48
+ class User
49
+ ```
50
+ ````
51
+
52
+ ## Arrows Not Connecting
53
+
54
+ ### Issue: Arrows don't connect to nodes
55
+
56
+ **Symptoms:**
57
+ - Arrow appears but doesn't touch nodes
58
+ - Error: "Node not found"
59
+ - Disconnected elements
60
+
61
+ **Solutions:**
62
+
63
+ 1. **Match node IDs exactly (case-sensitive):**
64
+ ```mermaid
65
+ ❌ flowchart TD
66
+ Start --> process # 'process' doesn't exist
67
+ Process[Do work] # 'Process' defined (capital P)
68
+
69
+ ✅ flowchart TD
70
+ Start --> Process
71
+ Process[Do work]
72
+ ```
73
+
74
+ 2. **Define nodes before connecting:**
75
+ ```mermaid
76
+ ❌ sequenceDiagram
77
+ User->>API # API not defined
78
+
79
+ ✅ sequenceDiagram
80
+ participant User
81
+ participant API
82
+ User->>API
83
+ ```
84
+
85
+ 3. **Use correct arrow syntax for diagram type:**
86
+ ```mermaid
87
+ # Flowchart
88
+ A --> B # Standard connection
89
+
90
+ # Sequence diagram
91
+ A->>B # Sync message
92
+ A-->>B # Response
93
+
94
+ # Class diagram
95
+ A --> B # Association
96
+ A --|> B # Inheritance
97
+ A --* B # Composition
98
+ ```
99
+
100
+ ## Layout Issues
101
+
102
+ ### Issue: Diagram layout looks wrong or crowded
103
+
104
+ **Solutions:**
105
+
106
+ 1. **Try different direction:**
107
+ ```mermaid
108
+ flowchart TD # Top to bottom (default)
109
+ flowchart LR # Left to right
110
+ flowchart RL # Right to left
111
+ flowchart BT # Bottom to top
112
+ ```
113
+
114
+ 2. **Use subgraphs to group elements:**
115
+ ```mermaid
116
+ flowchart TD
117
+ subgraph Frontend
118
+ A[React App]
119
+ B[Redux Store]
120
+ end
121
+
122
+ subgraph Backend
123
+ C[API Server]
124
+ D[Database]
125
+ end
126
+
127
+ A --> C
128
+ C --> D
129
+ ```
130
+
131
+ 3. **Split complex diagrams:**
132
+ ```mermaid
133
+ # Instead of one massive diagram
134
+ # Create multiple focused diagrams:
135
+ # - diagram-overview.mmd
136
+ # - diagram-auth-flow.mmd
137
+ # - diagram-payment-flow.mmd
138
+ ```
139
+
140
+ 4. **Add invisible links to force layout:**
141
+ ```mermaid
142
+ flowchart LR
143
+ A --> B
144
+ B --> C
145
+ A ~~~ D # Invisible link to align D with A
146
+ ```
147
+
148
+ ## Syntax Errors
149
+
150
+ ### Issue: Specific syntax not working
151
+
152
+ **Common mistakes:**
153
+
154
+ 1. **Missing spaces around arrows:**
155
+ ```mermaid
156
+ ❌ A-->B # Works but harder to read
157
+ ✅ A --> B # Better
158
+ ```
159
+
160
+ 2. **Wrong relationship syntax (class diagrams):**
161
+ ```mermaid
162
+ ❌ User -> Order # Wrong syntax
163
+ ✅ User --> Order # Association
164
+ ✅ User --|> Order # Inheritance
165
+ ```
166
+
167
+ 3. **Incorrect cardinality (ERD):**
168
+ ```mermaid
169
+ ❌ USER 1--* ORDER # Wrong
170
+ ✅ USER ||--o{ ORDER # One to many
171
+ ```
172
+
173
+ 4. **Missing participant declaration (sequence):**
174
+ ```mermaid
175
+ ❌ sequenceDiagram
176
+ User->>API # Implicit participant (works but not best practice)
177
+
178
+ ✅ sequenceDiagram
179
+ participant User
180
+ participant API
181
+ User->>API
182
+ ```
183
+
184
+ ## Rendering Performance
185
+
186
+ ### Issue: Diagram is slow to render or times out
187
+
188
+ **Solutions:**
189
+
190
+ 1. **Reduce complexity:**
191
+ - Limit to 15-20 nodes per diagram
192
+ - Split into multiple diagrams
193
+ - Remove unnecessary details
194
+
195
+ 2. **Avoid deep nesting:**
196
+ ```mermaid
197
+ ❌ flowchart TD
198
+ A --> B
199
+ B --> C
200
+ C --> D
201
+ D --> E
202
+ # Too deep!
203
+
204
+ ✅ flowchart TD
205
+ A --> B --> C
206
+ C --> D --> E
207
+ ```
208
+
209
+ 3. **Use ELK layout for complex diagrams:**
210
+ ```mermaid
211
+ %%{init: {"flowchart": {"defaultRenderer": "elk"}} }%%
212
+ flowchart TD
213
+ # Complex diagram
214
+ ```
215
+
216
+ ## Labels and Text Issues
217
+
218
+ ### Issue: Text not displaying correctly
219
+
220
+ **Solutions:**
221
+
222
+ 1. **Quote labels with special characters:**
223
+ ```mermaid
224
+ ❌ A[User: Admin] # Colon breaks it
225
+ ✅ A["User: Admin"] # Quote it
226
+
227
+ ❌ B[Price: $100] # Dollar sign breaks it
228
+ ✅ B["Price: $100"] # Quote it
229
+ ```
230
+
231
+ 2. **Use HTML entities for special characters:**
232
+ ```mermaid
233
+ A["Price: #36;100"] # $ = #36;
234
+ B["Name: #60;User#62;"] # < and > = #60; #62;
235
+ ```
236
+
237
+ 3. **Use `<br>` for line breaks:**
238
+ ```mermaid
239
+ A["First Line<br>Second Line<br>Third Line"]
240
+ ```
241
+
242
+ 4. **Escape backticks in code labels:**
243
+ ```mermaid
244
+ A["`function() { return 'code'; }`"]
245
+ ```
246
+
247
+ ## Export Issues
248
+
249
+ ### Issue: Exported diagram looks different from preview
250
+
251
+ **Solutions:**
252
+
253
+ 1. **Use Mermaid Live for consistent exports:**
254
+ - Go to https://mermaid.live
255
+ - Paste your diagram
256
+ - Export as PNG or SVG
257
+
258
+ 2. **Use Mermaid CLI for batch exports:**
259
+ ```bash
260
+ npm install -g @mermaid-js/mermaid-cli
261
+ mmdc -i diagram.mmd -o diagram.png
262
+ ```
263
+
264
+ 3. **Specify theme in diagram:**
265
+ ```mermaid
266
+ %%{init: {'theme':'base'}}%%
267
+ flowchart TD
268
+ A --> B
269
+ ```
270
+
271
+ ## GitHub/GitLab Rendering
272
+
273
+ ### Issue: Diagram doesn't render on GitHub
274
+
275
+ **Solutions:**
276
+
277
+ 1. **Ensure proper code fence:**
278
+ ````markdown
279
+ ❌ '''mermaid # Wrong quote type
280
+
281
+ ✅ ```mermaid # Correct
282
+ classDiagram
283
+ ```
284
+ ````
285
+
286
+ 2. **Check file extension:**
287
+ - `.md` or `.markdown` files render automatically
288
+ - `.mmd` files need to be viewed raw
289
+
290
+ 3. **Verify syntax in Mermaid Live first:**
291
+ - GitHub's Mermaid version may lag behind
292
+ - Test at https://mermaid.live
293
+
294
+ ## Version Compatibility
295
+
296
+ ### Issue: Diagram works locally but not in production
297
+
298
+ **Solutions:**
299
+
300
+ 1. **Check Mermaid version:**
301
+ - Different platforms support different versions
302
+ - GitHub: ~v9.x-10.x
303
+ - GitLab: ~v9.x
304
+ - Notion: ~v8.x
305
+
306
+ 2. **Use stable syntax:**
307
+ - Avoid newest features if targeting older platforms
308
+ - Stick to core syntax that works everywhere
309
+
310
+ 3. **Test on target platform:**
311
+ - Create test file in actual environment
312
+ - Validate before committing
313
+
314
+ ## Quick Debugging Checklist
315
+
316
+ When a diagram breaks, check:
317
+
318
+ - [ ] Diagram type spelled correctly (case-sensitive)
319
+ - [ ] All node IDs match exactly (case-sensitive)
320
+ - [ ] Arrows use correct syntax for diagram type
321
+ - [ ] Special characters are quoted or escaped
322
+ - [ ] No typos in relationship symbols (-->, --|>, etc.)
323
+ - [ ] Syntax validates at https://mermaid.live
324
+ - [ ] Code fence uses triple backticks: ```mermaid
325
+ - [ ] Indentation is consistent
326
+ - [ ] No unescaped braces {} in labels
327
+ - [ ] All participants declared (sequence diagrams)
328
+
329
+ ## Still Stuck?
330
+
331
+ 1. **Copy error-free example** from this skill's references
332
+ 2. **Modify incrementally** to match your needs
333
+ 3. **Test after each change** to isolate the problem
334
+ 4. **Check official docs:** https://mermaid.js.org
335
+ 5. **Search GitHub issues:** https://github.com/mermaid-js/mermaid/issues