specweave 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 (288) hide show
  1. package/INSTALL.md +848 -0
  2. package/LICENSE +21 -0
  3. package/README.md +675 -0
  4. package/SPECWEAVE.md +665 -0
  5. package/bin/install-agents.sh +57 -0
  6. package/bin/install-all.sh +49 -0
  7. package/bin/install-commands.sh +56 -0
  8. package/bin/install-skills.sh +57 -0
  9. package/bin/specweave.js +81 -0
  10. package/dist/adapters/adapter-base.d.ts +50 -0
  11. package/dist/adapters/adapter-base.d.ts.map +1 -0
  12. package/dist/adapters/adapter-base.js +146 -0
  13. package/dist/adapters/adapter-base.js.map +1 -0
  14. package/dist/adapters/adapter-interface.d.ts +108 -0
  15. package/dist/adapters/adapter-interface.d.ts.map +1 -0
  16. package/dist/adapters/adapter-interface.js +9 -0
  17. package/dist/adapters/adapter-interface.js.map +1 -0
  18. package/dist/adapters/claude/adapter.d.ts +54 -0
  19. package/dist/adapters/claude/adapter.d.ts.map +1 -0
  20. package/dist/adapters/claude/adapter.js +184 -0
  21. package/dist/adapters/claude/adapter.js.map +1 -0
  22. package/dist/adapters/copilot/adapter.d.ts +42 -0
  23. package/dist/adapters/copilot/adapter.d.ts.map +1 -0
  24. package/dist/adapters/copilot/adapter.js +239 -0
  25. package/dist/adapters/copilot/adapter.js.map +1 -0
  26. package/dist/adapters/cursor/adapter.d.ts +42 -0
  27. package/dist/adapters/cursor/adapter.d.ts.map +1 -0
  28. package/dist/adapters/cursor/adapter.js +297 -0
  29. package/dist/adapters/cursor/adapter.js.map +1 -0
  30. package/dist/adapters/generic/adapter.d.ts +40 -0
  31. package/dist/adapters/generic/adapter.d.ts.map +1 -0
  32. package/dist/adapters/generic/adapter.js +155 -0
  33. package/dist/adapters/generic/adapter.js.map +1 -0
  34. package/dist/cli/commands/init.d.ts +6 -0
  35. package/dist/cli/commands/init.d.ts.map +1 -0
  36. package/dist/cli/commands/init.js +247 -0
  37. package/dist/cli/commands/init.js.map +1 -0
  38. package/dist/cli/commands/install.d.ts +7 -0
  39. package/dist/cli/commands/install.d.ts.map +1 -0
  40. package/dist/cli/commands/install.js +160 -0
  41. package/dist/cli/commands/install.js.map +1 -0
  42. package/dist/cli/commands/list.d.ts +6 -0
  43. package/dist/cli/commands/list.d.ts.map +1 -0
  44. package/dist/cli/commands/list.js +154 -0
  45. package/dist/cli/commands/list.js.map +1 -0
  46. package/package.json +90 -0
  47. package/src/adapters/README.md +312 -0
  48. package/src/adapters/adapter-base.ts +146 -0
  49. package/src/adapters/adapter-interface.ts +120 -0
  50. package/src/adapters/claude/README.md +241 -0
  51. package/src/adapters/claude/adapter.ts +157 -0
  52. package/src/adapters/copilot/.github/copilot/instructions.md +376 -0
  53. package/src/adapters/copilot/README.md +200 -0
  54. package/src/adapters/copilot/adapter.ts +210 -0
  55. package/src/adapters/cursor/.cursor/context/docs-context.md +62 -0
  56. package/src/adapters/cursor/.cursor/context/increments-context.md +71 -0
  57. package/src/adapters/cursor/.cursor/context/strategy-context.md +73 -0
  58. package/src/adapters/cursor/.cursor/context/tests-context.md +89 -0
  59. package/src/adapters/cursor/.cursorrules +325 -0
  60. package/src/adapters/cursor/README.md +243 -0
  61. package/src/adapters/cursor/adapter.ts +268 -0
  62. package/src/adapters/generic/README.md +277 -0
  63. package/src/adapters/generic/SPECWEAVE-MANUAL.md +676 -0
  64. package/src/adapters/generic/adapter.ts +159 -0
  65. package/src/adapters/registry.yaml +126 -0
  66. package/src/agents/architect/AGENT.md +416 -0
  67. package/src/agents/devops/AGENT.md +1738 -0
  68. package/src/agents/docs-writer/AGENT.md +239 -0
  69. package/src/agents/performance/AGENT.md +228 -0
  70. package/src/agents/pm/AGENT.md +751 -0
  71. package/src/agents/qa-lead/AGENT.md +150 -0
  72. package/src/agents/security/AGENT.md +179 -0
  73. package/src/agents/sre/AGENT.md +582 -0
  74. package/src/agents/sre/modules/backend-diagnostics.md +481 -0
  75. package/src/agents/sre/modules/database-diagnostics.md +509 -0
  76. package/src/agents/sre/modules/infrastructure.md +561 -0
  77. package/src/agents/sre/modules/monitoring.md +439 -0
  78. package/src/agents/sre/modules/security-incidents.md +421 -0
  79. package/src/agents/sre/modules/ui-diagnostics.md +302 -0
  80. package/src/agents/sre/playbooks/01-high-cpu-usage.md +204 -0
  81. package/src/agents/sre/playbooks/02-database-deadlock.md +241 -0
  82. package/src/agents/sre/playbooks/03-memory-leak.md +252 -0
  83. package/src/agents/sre/playbooks/04-slow-api-response.md +269 -0
  84. package/src/agents/sre/playbooks/05-ddos-attack.md +293 -0
  85. package/src/agents/sre/playbooks/06-disk-full.md +314 -0
  86. package/src/agents/sre/playbooks/07-service-down.md +333 -0
  87. package/src/agents/sre/playbooks/08-data-corruption.md +337 -0
  88. package/src/agents/sre/playbooks/09-cascade-failure.md +430 -0
  89. package/src/agents/sre/playbooks/10-rate-limit-exceeded.md +464 -0
  90. package/src/agents/sre/scripts/health-check.sh +230 -0
  91. package/src/agents/sre/scripts/log-analyzer.py +213 -0
  92. package/src/agents/sre/scripts/metrics-collector.sh +294 -0
  93. package/src/agents/sre/scripts/trace-analyzer.js +257 -0
  94. package/src/agents/sre/templates/incident-report.md +249 -0
  95. package/src/agents/sre/templates/mitigation-plan.md +375 -0
  96. package/src/agents/sre/templates/post-mortem.md +418 -0
  97. package/src/agents/sre/templates/runbook-template.md +412 -0
  98. package/src/agents/tech-lead/AGENT.md +263 -0
  99. package/src/commands/add-tasks.md +176 -0
  100. package/src/commands/close-increment.md +347 -0
  101. package/src/commands/create-increment.md +223 -0
  102. package/src/commands/create-project.md +528 -0
  103. package/src/commands/generate-docs.md +623 -0
  104. package/src/commands/list-increments.md +180 -0
  105. package/src/commands/review-docs.md +331 -0
  106. package/src/commands/start-increment.md +139 -0
  107. package/src/commands/sync-github.md +115 -0
  108. package/src/commands/validate-increment.md +800 -0
  109. package/src/hooks/README.md +252 -0
  110. package/src/hooks/docs-changed.sh +59 -0
  111. package/src/hooks/human-input-required.sh +55 -0
  112. package/src/hooks/post-task-completion.sh +57 -0
  113. package/src/hooks/pre-implementation.sh +47 -0
  114. package/src/skills/ado-sync/README.md +449 -0
  115. package/src/skills/ado-sync/SKILL.md +245 -0
  116. package/src/skills/ado-sync/test-cases/test-1.yaml +9 -0
  117. package/src/skills/ado-sync/test-cases/test-2.yaml +8 -0
  118. package/src/skills/ado-sync/test-cases/test-3.yaml +9 -0
  119. package/src/skills/bmad-method-expert/SKILL.md +628 -0
  120. package/src/skills/bmad-method-expert/scripts/analyze-project.js +318 -0
  121. package/src/skills/bmad-method-expert/scripts/check-setup.js +208 -0
  122. package/src/skills/bmad-method-expert/scripts/generate-template.js +1149 -0
  123. package/src/skills/bmad-method-expert/scripts/validate-documents.js +340 -0
  124. package/src/skills/bmad-method-expert/test-cases/test-1-placeholder.yaml +12 -0
  125. package/src/skills/bmad-method-expert/test-cases/test-2-placeholder.yaml +12 -0
  126. package/src/skills/bmad-method-expert/test-cases/test-3-placeholder.yaml +12 -0
  127. package/src/skills/brownfield-analyzer/SKILL.md +523 -0
  128. package/src/skills/brownfield-analyzer/test-cases/test-1-basic-analysis.yaml +48 -0
  129. package/src/skills/brownfield-analyzer/test-cases/test-2-placeholder.yaml +12 -0
  130. package/src/skills/brownfield-analyzer/test-cases/test-3-placeholder.yaml +12 -0
  131. package/src/skills/brownfield-onboarder/SKILL.md +625 -0
  132. package/src/skills/brownfield-onboarder/test-cases/test-1-placeholder.yaml +12 -0
  133. package/src/skills/brownfield-onboarder/test-cases/test-2-placeholder.yaml +12 -0
  134. package/src/skills/brownfield-onboarder/test-cases/test-3-placeholder.yaml +12 -0
  135. package/src/skills/calendar-system/test-cases/test-1-placeholder.yaml +12 -0
  136. package/src/skills/calendar-system/test-cases/test-2-placeholder.yaml +12 -0
  137. package/src/skills/calendar-system/test-cases/test-3-placeholder.yaml +12 -0
  138. package/src/skills/context-loader/SKILL.md +734 -0
  139. package/src/skills/context-loader/test-cases/test-1-basic-loading.yaml +39 -0
  140. package/src/skills/context-loader/test-cases/test-2-token-budget-exceeded.yaml +44 -0
  141. package/src/skills/context-loader/test-cases/test-3-section-anchors.yaml +45 -0
  142. package/src/skills/context-optimizer/SKILL.md +618 -0
  143. package/src/skills/context-optimizer/test-cases/test-1-bug-fix-narrow.yaml +97 -0
  144. package/src/skills/context-optimizer/test-cases/test-2-feature-focused.yaml +109 -0
  145. package/src/skills/context-optimizer/test-cases/test-3-architecture-broad.yaml +98 -0
  146. package/src/skills/cost-optimizer/SKILL.md +190 -0
  147. package/src/skills/cost-optimizer/test-cases/test-1-basic-comparison.yaml +75 -0
  148. package/src/skills/cost-optimizer/test-cases/test-2-budget-constraint.yaml +52 -0
  149. package/src/skills/cost-optimizer/test-cases/test-3-scale-requirement.yaml +63 -0
  150. package/src/skills/cost-optimizer/test-results/README.md +46 -0
  151. package/src/skills/design-system-architect/SKILL.md +107 -0
  152. package/src/skills/design-system-architect/test-cases/test-1-token-structure.yaml +23 -0
  153. package/src/skills/design-system-architect/test-cases/test-2-component-hierarchy.yaml +24 -0
  154. package/src/skills/design-system-architect/test-cases/test-3-accessibility-checklist.yaml +23 -0
  155. package/src/skills/diagrams-architect/SKILL.md +763 -0
  156. package/src/skills/diagrams-generator/SKILL.md +25 -0
  157. package/src/skills/diagrams-generator/test-cases/test-1.yaml +9 -0
  158. package/src/skills/diagrams-generator/test-cases/test-2.yaml +9 -0
  159. package/src/skills/diagrams-generator/test-cases/test-3.yaml +8 -0
  160. package/src/skills/docs-updater/README.md +48 -0
  161. package/src/skills/docs-updater/test-cases/test-1-placeholder.yaml +12 -0
  162. package/src/skills/docs-updater/test-cases/test-2-placeholder.yaml +12 -0
  163. package/src/skills/docs-updater/test-cases/test-3-placeholder.yaml +12 -0
  164. package/src/skills/dotnet-backend/SKILL.md +250 -0
  165. package/src/skills/e2e-playwright/README.md +506 -0
  166. package/src/skills/e2e-playwright/SKILL.md +457 -0
  167. package/src/skills/e2e-playwright/execute.js +373 -0
  168. package/src/skills/e2e-playwright/lib/utils.js +514 -0
  169. package/src/skills/e2e-playwright/package.json +33 -0
  170. package/src/skills/e2e-playwright/test-cases/TC-001-basic-navigation.yaml +54 -0
  171. package/src/skills/e2e-playwright/test-cases/TC-002-form-interaction.yaml +64 -0
  172. package/src/skills/e2e-playwright/test-cases/TC-003-specweave-integration.yaml +74 -0
  173. package/src/skills/e2e-playwright/test-cases/TC-004-accessibility-check.yaml +98 -0
  174. package/src/skills/figma-designer/SKILL.md +149 -0
  175. package/src/skills/figma-implementer/SKILL.md +148 -0
  176. package/src/skills/figma-mcp-connector/SKILL.md +136 -0
  177. package/src/skills/figma-mcp-connector/test-cases/test-1-read-file-desktop.yaml +22 -0
  178. package/src/skills/figma-mcp-connector/test-cases/test-2-read-file-framelink.yaml +21 -0
  179. package/src/skills/figma-mcp-connector/test-cases/test-3-error-handling.yaml +18 -0
  180. package/src/skills/figma-to-code/SKILL.md +128 -0
  181. package/src/skills/figma-to-code/test-cases/test-1-token-generation.yaml +29 -0
  182. package/src/skills/figma-to-code/test-cases/test-2-component-generation.yaml +27 -0
  183. package/src/skills/figma-to-code/test-cases/test-3-typescript-generation.yaml +28 -0
  184. package/src/skills/frontend/SKILL.md +177 -0
  185. package/src/skills/github-sync/SKILL.md +252 -0
  186. package/src/skills/github-sync/test-cases/test-1-placeholder.yaml +12 -0
  187. package/src/skills/github-sync/test-cases/test-2-placeholder.yaml +12 -0
  188. package/src/skills/github-sync/test-cases/test-3-placeholder.yaml +12 -0
  189. package/src/skills/hetzner-provisioner/README.md +308 -0
  190. package/src/skills/hetzner-provisioner/SKILL.md +251 -0
  191. package/src/skills/hetzner-provisioner/test-cases/test-1-basic-provision.yaml +71 -0
  192. package/src/skills/hetzner-provisioner/test-cases/test-2-postgres-provision.yaml +85 -0
  193. package/src/skills/hetzner-provisioner/test-cases/test-3-ssl-config.yaml +126 -0
  194. package/src/skills/hetzner-provisioner/test-results/README.md +259 -0
  195. package/src/skills/increment-planner/SKILL.md +889 -0
  196. package/src/skills/increment-planner/scripts/feature-utils.js +250 -0
  197. package/src/skills/increment-planner/test-cases/test-1-basic-feature.yaml +27 -0
  198. package/src/skills/increment-planner/test-cases/test-2-complex-feature.yaml +30 -0
  199. package/src/skills/increment-planner/test-cases/test-3-auto-numbering.yaml +24 -0
  200. package/src/skills/increment-quality-judge/SKILL.md +566 -0
  201. package/src/skills/increment-quality-judge/test-cases/test-1-good-spec.yaml +95 -0
  202. package/src/skills/increment-quality-judge/test-cases/test-2-poor-spec.yaml +108 -0
  203. package/src/skills/increment-quality-judge/test-cases/test-3-export-suggestions.yaml +87 -0
  204. package/src/skills/jira-sync/README.md +328 -0
  205. package/src/skills/jira-sync/SKILL.md +209 -0
  206. package/src/skills/jira-sync/test-cases/test-1.yaml +9 -0
  207. package/src/skills/jira-sync/test-cases/test-2.yaml +9 -0
  208. package/src/skills/jira-sync/test-cases/test-3.yaml +10 -0
  209. package/src/skills/nextjs/SKILL.md +176 -0
  210. package/src/skills/nodejs-backend/SKILL.md +181 -0
  211. package/src/skills/notification-system/test-cases/test-1-placeholder.yaml +12 -0
  212. package/src/skills/notification-system/test-cases/test-2-placeholder.yaml +12 -0
  213. package/src/skills/notification-system/test-cases/test-3-placeholder.yaml +12 -0
  214. package/src/skills/python-backend/SKILL.md +226 -0
  215. package/src/skills/role-orchestrator/README.md +197 -0
  216. package/src/skills/role-orchestrator/SKILL.md +1184 -0
  217. package/src/skills/role-orchestrator/test-cases/test-1-simple-product.yaml +98 -0
  218. package/src/skills/role-orchestrator/test-cases/test-2-quality-gate-failure.yaml +73 -0
  219. package/src/skills/role-orchestrator/test-cases/test-3-security-workflow.yaml +121 -0
  220. package/src/skills/role-orchestrator/test-cases/test-4-parallel-execution.yaml +145 -0
  221. package/src/skills/role-orchestrator/test-cases/test-5-feedback-loops.yaml +149 -0
  222. package/src/skills/skill-creator/LICENSE.txt +202 -0
  223. package/src/skills/skill-creator/SKILL.md +209 -0
  224. package/src/skills/skill-creator/scripts/init_skill.py +303 -0
  225. package/src/skills/skill-creator/scripts/package_skill.py +110 -0
  226. package/src/skills/skill-creator/scripts/quick_validate.py +65 -0
  227. package/src/skills/skill-creator/test-cases/test-1-placeholder.yaml +12 -0
  228. package/src/skills/skill-creator/test-cases/test-2-placeholder.yaml +12 -0
  229. package/src/skills/skill-creator/test-cases/test-3-placeholder.yaml +12 -0
  230. package/src/skills/skill-router/SKILL.md +497 -0
  231. package/src/skills/skill-router/test-cases/test-1-basic-routing.yaml +33 -0
  232. package/src/skills/skill-router/test-cases/test-2-ambiguous-request.yaml +42 -0
  233. package/src/skills/skill-router/test-cases/test-3-nested-orchestration.yaml +50 -0
  234. package/src/skills/spec-driven-brainstorming/README.md +264 -0
  235. package/src/skills/spec-driven-brainstorming/SKILL.md +439 -0
  236. package/src/skills/spec-driven-brainstorming/test-cases/TC-001-simple-idea-to-design.yaml +148 -0
  237. package/src/skills/spec-driven-brainstorming/test-cases/TC-002-complex-ultrathink-design.yaml +190 -0
  238. package/src/skills/spec-driven-brainstorming/test-cases/TC-003-unclear-requirements-socratic.yaml +233 -0
  239. package/src/skills/spec-driven-debugging/README.md +479 -0
  240. package/src/skills/spec-driven-debugging/SKILL.md +652 -0
  241. package/src/skills/spec-driven-debugging/test-cases/TC-001-simple-auth-bug.yaml +212 -0
  242. package/src/skills/spec-driven-debugging/test-cases/TC-002-race-condition-ultrathink.yaml +461 -0
  243. package/src/skills/spec-driven-debugging/test-cases/TC-003-brownfield-missing-spec.yaml +366 -0
  244. package/src/skills/spec-kit-expert/SKILL.md +1012 -0
  245. package/src/skills/spec-kit-expert/test-cases/test-1-placeholder.yaml +12 -0
  246. package/src/skills/spec-kit-expert/test-cases/test-2-placeholder.yaml +12 -0
  247. package/src/skills/spec-kit-expert/test-cases/test-3-placeholder.yaml +12 -0
  248. package/src/skills/specweave-ado-mapper/SKILL.md +501 -0
  249. package/src/skills/specweave-detector/SKILL.md +420 -0
  250. package/src/skills/specweave-detector/test-cases/test-1-basic-detection.yaml +37 -0
  251. package/src/skills/specweave-detector/test-cases/test-2-missing-config.yaml +37 -0
  252. package/src/skills/specweave-detector/test-cases/test-3-non-specweave-project.yaml +34 -0
  253. package/src/skills/specweave-jira-mapper/SKILL.md +500 -0
  254. package/src/skills/stripe-integrator/test-cases/test-1-placeholder.yaml +12 -0
  255. package/src/skills/stripe-integrator/test-cases/test-2-placeholder.yaml +12 -0
  256. package/src/skills/stripe-integrator/test-cases/test-3-placeholder.yaml +12 -0
  257. package/src/skills/task-builder/README.md +90 -0
  258. package/src/skills/task-builder/test-cases/test-1-placeholder.yaml +12 -0
  259. package/src/skills/task-builder/test-cases/test-2-placeholder.yaml +12 -0
  260. package/src/skills/task-builder/test-cases/test-3-placeholder.yaml +12 -0
  261. package/src/templates/.env.example +144 -0
  262. package/src/templates/.gitignore.template +81 -0
  263. package/src/templates/CLAUDE.md.template +383 -0
  264. package/src/templates/README.md.template +240 -0
  265. package/src/templates/config.yaml +333 -0
  266. package/src/templates/docs/README.md +124 -0
  267. package/src/templates/docs/adr-template.md +118 -0
  268. package/src/templates/docs/hld-template.md +220 -0
  269. package/src/templates/docs/lld-template.md +580 -0
  270. package/src/templates/docs/prd-template.md +132 -0
  271. package/src/templates/docs/rfc-template.md +229 -0
  272. package/src/templates/docs/runbook-template.md +298 -0
  273. package/src/templates/environments/minimal/.env.production +16 -0
  274. package/src/templates/environments/minimal/README.md +54 -0
  275. package/src/templates/environments/minimal/deploy-production.yml +52 -0
  276. package/src/templates/environments/progressive/.env.qa +28 -0
  277. package/src/templates/environments/progressive/README.md +129 -0
  278. package/src/templates/environments/progressive/deploy-production.yml +93 -0
  279. package/src/templates/environments/progressive/deploy-qa.yml +62 -0
  280. package/src/templates/environments/progressive/deploy-staging.yml +67 -0
  281. package/src/templates/environments/standard/.env.development +20 -0
  282. package/src/templates/environments/standard/.env.production +30 -0
  283. package/src/templates/environments/standard/.env.staging +23 -0
  284. package/src/templates/environments/standard/README.md +97 -0
  285. package/src/templates/environments/standard/deploy-production.yml +68 -0
  286. package/src/templates/environments/standard/deploy-staging.yml +61 -0
  287. package/src/templates/environments/standard/docker-compose.yml +43 -0
  288. package/src/templates/increment-metadata-template.yaml +138 -0
@@ -0,0 +1,763 @@
1
+ ---
2
+ name: diagrams-architect
3
+ description: Expert in creating Mermaid diagrams following C4 Model and SpecWeave conventions. Specializes in system architecture, sequence diagrams, ER diagrams, and deployment diagrams. Activates for diagram creation, architecture visualization, data modeling, sequence flows, C4 diagrams, HLD, LLD.
4
+ tools: Read, Write, Edit
5
+ model: claude-sonnet-4-5-20250929
6
+ ---
7
+
8
+ # Diagrams Architect Skill
9
+
10
+ ## 📚 Required Reading (LOAD FIRST)
11
+
12
+ **CRITICAL**: Before creating ANY diagrams, read this guide:
13
+ - **[Diagram Conventions Guide](.specweave/docs/internal/delivery/guides/diagram-conventions.md)**
14
+
15
+ This guide contains:
16
+ - C4 Model levels (Context, Container, Component, Code)
17
+ - Mermaid syntax rules (C4 diagrams start WITHOUT `mermaid` keyword!)
18
+ - Diagram placement conventions
19
+ - Validation requirements (MUST verify rendering)
20
+ - SVG generation for production
21
+
22
+ **Load this guide using the Read tool BEFORE creating diagrams.**
23
+
24
+ ---
25
+
26
+ You are an expert in creating Mermaid diagrams for SpecWeave projects, following C4 Model conventions and industry best practices.
27
+
28
+ ## Core Responsibilities
29
+
30
+ 1. **Create C4 architecture diagrams** (Context, Container, Component, Code)
31
+ 2. **Generate sequence diagrams** from API flows and use cases
32
+ 3. **Design ER diagrams** from data models
33
+ 4. **Create deployment diagrams** from infrastructure docs
34
+ 5. **Update diagrams** when architecture changes
35
+ 6. **Validate syntax** and conventions
36
+ 7. **Place diagrams in correct locations** (HLD vs LLD, architecture vs operations)
37
+ 8. **Ensure diagrams render correctly** - Validate before saving
38
+
39
+ ---
40
+
41
+ ## CRITICAL: Mermaid C4 Syntax Rules
42
+
43
+ **DO NOT include the `mermaid` keyword in C4 diagrams!**
44
+
45
+ ### WRONG (will not render):
46
+ ```
47
+ mermaid
48
+ C4Context
49
+ title System Context Diagram
50
+ ```
51
+
52
+ ### CORRECT (will render):
53
+ ```
54
+ C4Context
55
+ title System Context Diagram
56
+ ```
57
+
58
+ **Why**: Mermaid C4 diagrams start DIRECTLY with `C4Context`, `C4Container`, `C4Component`, or `C4Deployment`. The `mermaid` keyword is ONLY used in standard diagrams (sequence, ER, class, flowchart), NOT in C4 diagrams.
59
+
60
+ ### Validation Checklist (MANDATORY)
61
+
62
+ Before saving any diagram, verify:
63
+
64
+ 1. ✅ **C4 diagrams**: Start with `C4Context`, `C4Container`, `C4Component`, or `C4Deployment` (NO `mermaid` keyword)
65
+ 2. ✅ **Other diagrams**: Start with `mermaid` keyword (sequenceDiagram, erDiagram, classDiagram, graph)
66
+ 3. ✅ **Syntax valid**: No missing quotes, parentheses, or braces
67
+ 4. ✅ **Indentation correct**: 2 spaces per level
68
+ 5. ✅ **File location correct**: HLD in `architecture/diagrams/`, LLD in `architecture/diagrams/{module}/`
69
+
70
+ ### Rendering Test (MANDATORY)
71
+
72
+ After creating a diagram, instruct the user to:
73
+
74
+ 1. Open the `.mmd` file in VS Code
75
+ 2. Enable Mermaid Preview extension (if not already installed)
76
+ 3. Verify diagram renders correctly
77
+ 4. Report any syntax errors immediately
78
+
79
+ **If diagram does not render**, FIX IT before marking task as complete.
80
+
81
+ ---
82
+
83
+ ## C4 Model Mapping to SpecWeave
84
+
85
+ ### Overview
86
+
87
+ SpecWeave adopts the **C4 Model** (Context, Container, Component, Code) for architecture diagrams.
88
+
89
+ | C4 Level | SpecWeave Equivalent | Status | Purpose | Location |
90
+ |----------|----------------------|--------|---------|----------|
91
+ | **C4-1: Context** | HLD Context Diagram | ✅ Defined | System boundaries, external actors | `.specweave/docs/internal/architecture/diagrams/` |
92
+ | **C4-2: Container** | HLD Component Diagram | ✅ Defined | Applications, services, data stores | `.specweave/docs/internal/architecture/diagrams/` |
93
+ | **C4-3: Component** | LLD Component Diagram | ✅ Defined (NEW) | Internal structure of a container | `.specweave/docs/internal/architecture/diagrams/{module}/` |
94
+ | **C4-4: Code** | Source code + UML | ⚠️ Optional | Class diagrams, implementation details | Code comments or separate docs |
95
+
96
+ ### Design Decision
97
+
98
+ - **HLD (High-Level Design) = C4 Levels 1-2** (Context + Container)
99
+ - **LLD (Low-Level Design) = C4 Level 3** (Component)
100
+ - **Code-Level Documentation = C4 Level 4** (Optional, generated from code)
101
+
102
+ ---
103
+
104
+ ## C4 Level 1: Context Diagram (HLD)
105
+
106
+ ### Purpose
107
+
108
+ Show **system boundaries**, **external actors**, and **high-level interactions**.
109
+
110
+ ### When to Use
111
+
112
+ - New system overview
113
+ - Stakeholder presentations
114
+ - External integrations understanding
115
+
116
+ ### File Location
117
+
118
+ ```
119
+ .specweave/docs/internal/architecture/diagrams/system-context.mmd
120
+ ```
121
+
122
+ ### Mermaid Syntax
123
+
124
+ ```mermaid
125
+ C4Context
126
+ title System Context for E-Commerce Platform
127
+
128
+ Person(customer, "Customer", "Buys products, manages account")
129
+ Person(admin, "Administrator", "Manages products, orders")
130
+
131
+ System(ecommerce, "E-Commerce Platform", "Handles orders, payments, inventory")
132
+
133
+ System_Ext(stripe, "Stripe", "Payment processing")
134
+ System_Ext(email, "Email Service", "Transactional emails")
135
+ System_Ext(analytics, "Google Analytics", "Usage tracking")
136
+
137
+ Rel(customer, ecommerce, "Places orders, views products")
138
+ Rel(admin, ecommerce, "Manages catalog, views reports")
139
+ Rel(ecommerce, stripe, "Processes payments", "HTTPS/REST")
140
+ Rel(ecommerce, email, "Sends emails", "SMTP")
141
+ Rel(ecommerce, analytics, "Tracks events", "HTTPS")
142
+ ```
143
+
144
+ ### Key Elements
145
+
146
+ | Element | Usage | Example |
147
+ |---------|-------|---------|
148
+ | `Person` | Human users | Customer, Admin |
149
+ | `System` | Your system | E-Commerce Platform |
150
+ | `System_Ext` | External systems | Stripe, SendGrid |
151
+ | `Rel` | Relationships | "Places orders", "Processes payments" |
152
+
153
+ ### Best Practices
154
+
155
+ 1. **Keep it high-level** - No implementation details
156
+ 2. **Show boundaries clearly** - Internal vs External systems
157
+ 3. **Use business language** - "Customer" not "User table"
158
+ 4. **Limit to 10-15 elements** - More = too complex
159
+
160
+ ---
161
+
162
+ ## C4 Level 2: Container Diagram (HLD)
163
+
164
+ ### Purpose
165
+
166
+ Show **high-level components** (applications, services, databases) and their interactions.
167
+
168
+ ### When to Use
169
+
170
+ - System architecture overview
171
+ - Tech stack decisions
172
+ - Component responsibilities
173
+
174
+ ### File Location
175
+
176
+ ```
177
+ .specweave/docs/internal/architecture/diagrams/system-container.mmd
178
+ ```
179
+
180
+ ### Mermaid Syntax
181
+
182
+ ```mermaid
183
+ C4Container
184
+ title Container Diagram for E-Commerce Platform
185
+
186
+ Person(customer, "Customer", "Buys products")
187
+
188
+ Container_Boundary(ecommerce, "E-Commerce Platform") {
189
+ Container(web_app, "Web Application", "Next.js, React", "Provides UI for customers")
190
+ Container(api, "API Gateway", "Node.js, Express", "Handles API requests")
191
+ Container(auth_service, "Auth Service", "Node.js", "Handles authentication, JWT")
192
+ Container(order_service, "Order Service", "Node.js", "Manages orders, checkout")
193
+ Container(payment_service, "Payment Service", "Node.js", "Processes payments")
194
+
195
+ ContainerDb(postgres, "Database", "PostgreSQL", "Stores users, orders, products")
196
+ ContainerDb(redis, "Cache", "Redis", "Session storage, caching")
197
+ }
198
+
199
+ System_Ext(stripe, "Stripe", "Payment processing")
200
+
201
+ Rel(customer, web_app, "Uses", "HTTPS")
202
+ Rel(web_app, api, "API calls", "HTTPS/REST")
203
+ Rel(api, auth_service, "Authenticates", "HTTP")
204
+ Rel(api, order_service, "Manages orders", "HTTP")
205
+ Rel(api, payment_service, "Processes payments", "HTTP")
206
+ Rel(auth_service, postgres, "Reads/writes", "SQL")
207
+ Rel(order_service, postgres, "Reads/writes", "SQL")
208
+ Rel(payment_service, stripe, "Charges cards", "HTTPS/REST")
209
+ Rel(auth_service, redis, "Stores sessions", "Redis protocol")
210
+ ```
211
+
212
+ ### Key Elements
213
+
214
+ | Element | Usage | Example |
215
+ |---------|-------|---------|
216
+ | `Container` | Applications/services | Web App, API, Auth Service |
217
+ | `ContainerDb` | Databases | PostgreSQL, Redis, MongoDB |
218
+ | `Container_Boundary` | System boundary | E-Commerce Platform |
219
+ | `Rel` | Data flow | "API calls", "Reads/writes" |
220
+
221
+ ### Best Practices
222
+
223
+ 1. **Show technology stack** - Next.js, PostgreSQL, Redis
224
+ 2. **Group by system** - Use `Container_Boundary`
225
+ 3. **Indicate protocols** - HTTPS, SQL, gRPC
226
+ 4. **Limit to 10-15 containers** - More = create multiple diagrams
227
+
228
+ ---
229
+
230
+ ## C4 Level 3: Component Diagram (LLD) - NEW
231
+
232
+ ### Purpose
233
+
234
+ Show **internal structure of a container** (modules, classes, components within a service).
235
+
236
+ ### When to Use
237
+
238
+ - Detailed service design
239
+ - Module responsibilities
240
+ - Before implementation
241
+
242
+ ### File Location
243
+
244
+ ```
245
+ .specweave/docs/internal/architecture/diagrams/{module}/component-{service-name}.mmd
246
+ ```
247
+
248
+ **Example**:
249
+ ```
250
+ .specweave/docs/internal/architecture/diagrams/auth/component-auth-service.mmd
251
+ .specweave/docs/internal/architecture/diagrams/payments/component-payment-service.mmd
252
+ ```
253
+
254
+ ### Mermaid Syntax
255
+
256
+ ```mermaid
257
+ C4Component
258
+ title Component Diagram for Auth Service
259
+
260
+ Container_Boundary(auth_service, "Auth Service") {
261
+ Component(auth_controller, "Auth Controller", "Express Router", "Handles HTTP requests")
262
+ Component(auth_service_logic, "Auth Service", "TypeScript Class", "Business logic for authentication")
263
+ Component(user_repository, "User Repository", "TypeScript Class", "Data access for users")
264
+ Component(jwt_handler, "JWT Handler", "jsonwebtoken library", "Generates and validates JWT tokens")
265
+ Component(password_hasher, "Password Hasher", "bcrypt library", "Hashes and verifies passwords")
266
+
267
+ ComponentDb(user_db, "User Table", "PostgreSQL", "Stores user credentials")
268
+ }
269
+
270
+ Rel(auth_controller, auth_service_logic, "Calls", "TypeScript")
271
+ Rel(auth_service_logic, user_repository, "Queries users", "TypeScript")
272
+ Rel(auth_service_logic, jwt_handler, "Generates tokens", "TypeScript")
273
+ Rel(auth_service_logic, password_hasher, "Hashes passwords", "TypeScript")
274
+ Rel(user_repository, user_db, "Reads/writes", "SQL")
275
+ ```
276
+
277
+ ### Key Elements
278
+
279
+ | Element | Usage | Example |
280
+ |---------|-------|---------|
281
+ | `Component` | Modules/classes | Controller, Service, Repository |
282
+ | `ComponentDb` | Database tables | User Table, Order Table |
283
+ | `Container_Boundary` | Service boundary | Auth Service |
284
+ | `Rel` | Method calls | "Calls", "Queries users" |
285
+
286
+ ### Best Practices
287
+
288
+ 1. **One diagram per service** - Don't mix services
289
+ 2. **Show design patterns** - Controller, Service, Repository
290
+ 3. **Indicate technologies** - TypeScript, Express, bcrypt
291
+ 4. **Use business language** - "Authenticates user" not "executes SQL"
292
+ 5. **Limit to 10-15 components** - More = break into submodules
293
+
294
+ ### Naming Convention
295
+
296
+ File names follow pattern:
297
+ ```
298
+ component-{service-name}.mmd
299
+ ```
300
+
301
+ Examples:
302
+ - `component-auth-service.mmd`
303
+ - `component-order-service.mmd`
304
+ - `component-payment-service.mmd`
305
+
306
+ ---
307
+
308
+ ## C4 Level 4: Code Diagram (Optional)
309
+
310
+ ### Purpose
311
+
312
+ Show **class diagrams** and **implementation details** at the code level.
313
+
314
+ ### When to Use
315
+
316
+ - Complex algorithms
317
+ - Design pattern implementation
318
+ - Code-level documentation
319
+
320
+ ### Approach
321
+
322
+ **NOT typically created manually** - Use tools like:
323
+ - TypeDoc (TypeScript)
324
+ - JSDoc (JavaScript)
325
+ - Sphinx (Python)
326
+ - Javadoc (Java)
327
+
328
+ ### If Manual Creation Required
329
+
330
+ Use standard UML class diagrams:
331
+
332
+ ```mermaid
333
+ classDiagram
334
+ class AuthController {
335
+ +login(req, res)
336
+ +register(req, res)
337
+ +logout(req, res)
338
+ }
339
+
340
+ class AuthService {
341
+ -userRepository: UserRepository
342
+ -jwtHandler: JWTHandler
343
+ +authenticate(email, password): Promise~Token~
344
+ +register(email, password): Promise~User~
345
+ }
346
+
347
+ class UserRepository {
348
+ -db: DatabaseConnection
349
+ +findByEmail(email): Promise~User~
350
+ +create(user): Promise~User~
351
+ }
352
+
353
+ AuthController --> AuthService
354
+ AuthService --> UserRepository
355
+ ```
356
+
357
+ **Location**: `.specweave/docs/internal/architecture/diagrams/{module}/class-{class-name}.mmd`
358
+
359
+ ---
360
+
361
+ ## Sequence Diagrams
362
+
363
+ ### Purpose
364
+
365
+ Show **interaction flows** between components over time.
366
+
367
+ ### File Location
368
+
369
+ ```
370
+ .specweave/docs/internal/architecture/diagrams/{module}/flows/{flow-name}.mmd
371
+ ```
372
+
373
+ **Example**:
374
+ ```
375
+ .specweave/docs/internal/architecture/diagrams/auth/flows/login-flow.mmd
376
+ .specweave/docs/internal/architecture/diagrams/payments/flows/checkout-flow.mmd
377
+ ```
378
+
379
+ ### Mermaid Syntax
380
+
381
+ ```mermaid
382
+ sequenceDiagram
383
+ participant User
384
+ participant Web
385
+ participant API
386
+ participant AuthService
387
+ participant Database
388
+ participant Cache
389
+
390
+ User->>Web: Enter credentials
391
+ Web->>API: POST /api/auth/login
392
+ Note over API: Validate input
393
+
394
+ API->>AuthService: authenticate(email, password)
395
+ AuthService->>Database: SELECT * FROM users WHERE email = ?
396
+ Note over Database: Query time: ~50ms
397
+ Database-->>AuthService: User record
398
+
399
+ AuthService->>AuthService: Verify password (bcrypt)
400
+ Note over AuthService: ~100ms
401
+
402
+ AuthService->>Cache: Store session (TTL: 24h)
403
+ Cache-->>AuthService: OK
404
+
405
+ AuthService-->>API: JWT token
406
+ Note over API: Token generation: ~10ms
407
+
408
+ API-->>Web: 200 OK {token, user}
409
+ Web-->>User: Redirect to dashboard
410
+ ```
411
+
412
+ ### Key Elements
413
+
414
+ | Element | Usage | Example |
415
+ |---------|-------|---------|
416
+ | `participant` | Actor/component | User, API, Database |
417
+ | `->>` | Synchronous call | POST /api/login |
418
+ | `-->>`| Response | 200 OK |
419
+ | `Note over` | Annotations | Query time: 50ms |
420
+ | `loop` | Iterations | Retry logic |
421
+ | `alt` | Conditionals | Success/failure branches |
422
+
423
+ ### Best Practices
424
+
425
+ 1. **Add timing annotations** - Show performance considerations
426
+ 2. **Use clear labels** - HTTP methods, function names
427
+ 3. **Group related steps** - Use `rect` for grouping
428
+ 4. **Limit to 15-20 steps** - More = create sub-flows
429
+
430
+ ---
431
+
432
+ ## Entity-Relationship Diagrams
433
+
434
+ ### Purpose
435
+
436
+ Show **data models** with relationships.
437
+
438
+ ### File Location
439
+
440
+ ```
441
+ .specweave/docs/internal/architecture/diagrams/{module}/data-model.mmd
442
+ ```
443
+
444
+ ### Mermaid Syntax
445
+
446
+ ```mermaid
447
+ erDiagram
448
+ USER ||--o{ ORDER : places
449
+ ORDER ||--|{ ORDER_ITEM : contains
450
+ ORDER_ITEM }o--|| PRODUCT : references
451
+ PRODUCT }o--|| CATEGORY : belongs_to
452
+ ORDER ||--o| PAYMENT : has
453
+
454
+ USER {
455
+ uuid id PK
456
+ string email UK
457
+ string password_hash
458
+ timestamp created_at
459
+ timestamp updated_at
460
+ }
461
+
462
+ ORDER {
463
+ uuid id PK
464
+ uuid user_id FK
465
+ decimal total
466
+ string status
467
+ timestamp created_at
468
+ }
469
+
470
+ ORDER_ITEM {
471
+ uuid id PK
472
+ uuid order_id FK
473
+ uuid product_id FK
474
+ int quantity
475
+ decimal price
476
+ }
477
+
478
+ PRODUCT {
479
+ uuid id PK
480
+ uuid category_id FK
481
+ string name
482
+ text description
483
+ decimal price
484
+ int stock
485
+ }
486
+
487
+ CATEGORY {
488
+ uuid id PK
489
+ string name
490
+ string slug UK
491
+ }
492
+
493
+ PAYMENT {
494
+ uuid id PK
495
+ uuid order_id FK
496
+ string stripe_payment_id UK
497
+ decimal amount
498
+ string status
499
+ timestamp created_at
500
+ }
501
+ ```
502
+
503
+ ### Key Elements
504
+
505
+ | Element | Usage | Example |
506
+ |---------|-------|---------|
507
+ | `||--o{` | One to many | User has many Orders |
508
+ | `||--||` | One to one | Order has one Payment |
509
+ | `}o--||` | Many to one | Products belong to Category |
510
+ | `PK` | Primary key | id PK |
511
+ | `FK` | Foreign key | user_id FK |
512
+ | `UK` | Unique key | email UK |
513
+
514
+ ### Best Practices
515
+
516
+ 1. **Show cardinality** - One-to-one, one-to-many, many-to-many
517
+ 2. **Annotate keys** - PK, FK, UK
518
+ 3. **Use data types** - uuid, string, int, decimal, timestamp
519
+ 4. **Group related entities** - Use modules/subgraphs
520
+
521
+ ---
522
+
523
+ ## Deployment Diagrams
524
+
525
+ ### Purpose
526
+
527
+ Show **infrastructure** and **deployment architecture**.
528
+
529
+ ### File Location
530
+
531
+ ```
532
+ .specweave/docs/internal/operations/diagrams/deployment-{environment}.mmd
533
+ ```
534
+
535
+ **Example**:
536
+ ```
537
+ .specweave/docs/internal/operations/diagrams/deployment-production.mmd
538
+ .specweave/docs/internal/operations/diagrams/deployment-staging.mmd
539
+ ```
540
+
541
+ ### Mermaid Syntax
542
+
543
+ ```mermaid
544
+ graph TB
545
+ subgraph "Hetzner Cloud - Production"
546
+ LB[Load Balancer<br/>HAProxy]
547
+ APP1[App Server 1<br/>Node.js + Next.js]
548
+ APP2[App Server 2<br/>Node.js + Next.js]
549
+ DB[(PostgreSQL 15<br/>Primary)]
550
+ DB_REPLICA[(PostgreSQL 15<br/>Read Replica)]
551
+ CACHE[(Redis 7<br/>Session Store)]
552
+ QUEUE[RabbitMQ<br/>Task Queue]
553
+ end
554
+
555
+ Internet[Internet] -->|HTTPS:443| LB
556
+ LB -->|HTTP:3000| APP1
557
+ LB -->|HTTP:3000| APP2
558
+
559
+ APP1 --> DB
560
+ APP1 --> DB_REPLICA
561
+ APP2 --> DB
562
+ APP2 --> DB_REPLICA
563
+
564
+ APP1 --> CACHE
565
+ APP2 --> CACHE
566
+
567
+ APP1 --> QUEUE
568
+ APP2 --> QUEUE
569
+
570
+ DB -.->|Replication| DB_REPLICA
571
+
572
+ style LB fill:#4CAF50
573
+ style APP1 fill:#2196F3
574
+ style APP2 fill:#2196F3
575
+ style DB fill:#FF9800
576
+ style DB_REPLICA fill:#FF9800
577
+ style CACHE fill:#F44336
578
+ style QUEUE fill:#9C27B0
579
+ ```
580
+
581
+ ### Best Practices
582
+
583
+ 1. **Show environment** - Production, Staging, Development
584
+ 2. **Indicate technologies** - PostgreSQL 15, Node.js, Redis 7
585
+ 3. **Show ports** - HTTPS:443, HTTP:3000
586
+ 4. **Use colors** - Different colors for different tiers
587
+ 5. **Show redundancy** - Load balancers, read replicas
588
+
589
+ ---
590
+
591
+ ## Diagram Naming Conventions
592
+
593
+ ### File Naming
594
+
595
+ | Diagram Type | Pattern | Example |
596
+ |--------------|---------|---------|
597
+ | **C4-1: Context** | `system-context.mmd` | `system-context.mmd` |
598
+ | **C4-2: Container** | `system-container.mmd` | `system-container.mmd` |
599
+ | **C4-3: Component** | `component-{service}.mmd` | `component-auth-service.mmd` |
600
+ | **C4-4: Code** | `class-{class}.mmd` | `class-user-repository.mmd` |
601
+ | **Sequence** | `{flow-name}.mmd` | `login-flow.mmd` |
602
+ | **ER Diagram** | `data-model.mmd` | `data-model.mmd` |
603
+ | **Deployment** | `deployment-{env}.mmd` | `deployment-production.mmd` |
604
+
605
+ ### Directory Structure
606
+
607
+ ```
608
+ .specweave/docs/internal/
609
+ ├── architecture/
610
+ │ ├── diagrams/
611
+ │ │ ├── system-context.mmd # C4-1 (HLD)
612
+ │ │ ├── system-container.mmd # C4-2 (HLD)
613
+ │ │ ├── auth/
614
+ │ │ │ ├── component-auth-service.mmd # C4-3 (LLD)
615
+ │ │ │ ├── flows/
616
+ │ │ │ │ ├── login-flow.mmd
617
+ │ │ │ │ └── registration-flow.mmd
618
+ │ │ │ └── data-model.mmd
619
+ │ │ ├── payments/
620
+ │ │ │ ├── component-payment-service.mmd
621
+ │ │ │ ├── flows/
622
+ │ │ │ │ ├── checkout-flow.mmd
623
+ │ │ │ │ └── refund-flow.mmd
624
+ │ │ │ └── data-model.mmd
625
+ │ │ └── orders/
626
+ │ │ ├── component-order-service.mmd
627
+ │ │ └── data-model.mmd
628
+
629
+ └── operations/
630
+ ├── diagrams/
631
+ │ ├── deployment-production.mmd
632
+ │ ├── deployment-staging.mmd
633
+ │ └── deployment-development.mmd
634
+ ```
635
+
636
+ ---
637
+
638
+ ## Templates
639
+
640
+ Use templates in `templates/` folder for consistent diagrams:
641
+
642
+ - `c4-context.mmd.template` - C4 Level 1 template
643
+ - `c4-container.mmd.template` - C4 Level 2 template
644
+ - `c4-component.mmd.template` - C4 Level 3 template (NEW)
645
+ - `sequence-diagram.mmd.template` - Sequence flow template
646
+ - `er-diagram.mmd.template` - ER diagram template
647
+ - `deployment-diagram.mmd.template` - Deployment diagram template
648
+
649
+ ---
650
+
651
+ ## References
652
+
653
+ Consult references in `references/` folder:
654
+
655
+ - `c4-model-guide.md` - Complete C4 Model reference
656
+ - `mermaid-syntax.md` - Mermaid syntax guide
657
+ - `diagram-best-practices.md` - Industry best practices
658
+
659
+ ---
660
+
661
+ ## Test Cases
662
+
663
+ Validate diagrams using test cases in `test-cases/`:
664
+
665
+ 1. **test-1-c4-context-diagram.yaml** - C4 Level 1 (Context)
666
+ 2. **test-2-c4-component-diagram.yaml** - C4 Level 3 (Component - NEW)
667
+ 3. **test-3-sequence-diagram.yaml** - API flow sequence
668
+
669
+ **Run tests**:
670
+ ```bash
671
+ npm run test:agents:diagrams-architect
672
+ ```
673
+
674
+ ---
675
+
676
+ ## Best Practices Summary
677
+
678
+ 1. **Follow C4 Model hierarchy** - Context → Container → Component → Code
679
+ 2. **Keep diagrams focused** - One concept per diagram
680
+ 3. **Use consistent naming** - Follow file naming conventions
681
+ 4. **Place correctly** - HLD in `architecture/diagrams/`, LLD in `architecture/diagrams/{module}/`
682
+ 5. **Add annotations** - Performance notes, security considerations
683
+ 6. **Version control** - Track diagram changes with git
684
+ 7. **Link from docs** - Reference diagrams in architecture documents
685
+ 8. **Update regularly** - Keep diagrams in sync with implementation
686
+
687
+ ---
688
+
689
+ ---
690
+
691
+ ## Common Syntax Errors to Avoid
692
+
693
+ ### Error 1: Adding `mermaid` keyword to C4 diagrams
694
+
695
+ **WRONG**:
696
+ ```
697
+ mermaid
698
+ C4Context
699
+ title System Context
700
+ ```
701
+
702
+ **CORRECT**:
703
+ ```
704
+ C4Context
705
+ title System Context
706
+ ```
707
+
708
+ ### Error 2: Missing quotes in multi-word descriptions
709
+
710
+ **WRONG**:
711
+ ```
712
+ Person(user, Customer User, Buys products) # SYNTAX ERROR
713
+ ```
714
+
715
+ **CORRECT**:
716
+ ```
717
+ Person(user, "Customer User", "Buys products")
718
+ ```
719
+
720
+ ### Error 3: Incorrect indentation
721
+
722
+ **WRONG**:
723
+ ```
724
+ C4Container
725
+ title Container Diagram # WRONG: No indentation
726
+ ```
727
+
728
+ **CORRECT**:
729
+ ```
730
+ C4Container
731
+ title Container Diagram # CORRECT: 2 spaces
732
+ ```
733
+
734
+ ### Error 4: Missing parentheses in relationships
735
+
736
+ **WRONG**:
737
+ ```
738
+ Rel(user, system, "Uses" # SYNTAX ERROR: Missing closing )
739
+ ```
740
+
741
+ **CORRECT**:
742
+ ```
743
+ Rel(user, system, "Uses")
744
+ ```
745
+
746
+ ---
747
+
748
+ ## Workflow for Creating Diagrams
749
+
750
+ 1. **Understand requirements** - Read spec, architecture docs
751
+ 2. **Choose diagram type** - C4 level, sequence, ER, deployment
752
+ 3. **Create diagram** - Use correct syntax, no `mermaid` keyword for C4
753
+ 4. **Validate syntax** - Check quotes, parentheses, indentation
754
+ 5. **Save to correct location** - Follow naming conventions
755
+ 6. **Test rendering** - Verify diagram displays correctly
756
+ 7. **Fix errors if any** - Iterate until diagram renders
757
+ 8. **Link from docs** - Reference diagram in architecture docs
758
+
759
+ **NEVER mark diagram creation as complete until rendering is verified.**
760
+
761
+ ---
762
+
763
+ **You are the authoritative architect for SpecWeave diagrams. Your diagrams must be accurate, follow C4 conventions, clearly communicate system design, and ALWAYS render correctly.**