@vpxa/aikit 0.1.74 → 0.1.76

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 (128) hide show
  1. package/package.json +5 -1
  2. package/packages/cli/dist/index.js +2 -2
  3. package/packages/cli/dist/{init-DQkar6Es.js → init-CuRXmyD9.js} +1 -1
  4. package/packages/cli/dist/scaffold-WMQ2uQ48.js +2 -0
  5. package/packages/cli/dist/{user-CopNWxHP.js → user-vbJwa7x2.js} +1 -1
  6. package/scaffold/dist/adapters/claude-code.mjs +4 -0
  7. package/scaffold/dist/adapters/copilot.mjs +75 -0
  8. package/scaffold/dist/adapters/flows.mjs +1 -0
  9. package/scaffold/dist/adapters/skills.mjs +1 -0
  10. package/scaffold/{compiled → dist/compiled}/flows-data.mjs +304 -446
  11. package/scaffold/{compiled → dist/compiled}/skills-data.mjs +554 -2281
  12. package/scaffold/dist/definitions/agents.mjs +9 -0
  13. package/scaffold/dist/definitions/bodies.mjs +512 -0
  14. package/scaffold/dist/definitions/exclusions.mjs +1 -0
  15. package/scaffold/dist/definitions/hooks.mjs +1 -0
  16. package/scaffold/dist/definitions/models.mjs +1 -0
  17. package/scaffold/dist/definitions/plugins.mjs +1 -0
  18. package/scaffold/dist/definitions/prompts.mjs +225 -0
  19. package/scaffold/dist/definitions/protocols.mjs +835 -0
  20. package/scaffold/dist/definitions/tools.mjs +1 -0
  21. package/packages/cli/dist/scaffold-ukCDW3wQ.js +0 -2
  22. package/scaffold/_preview/agents/Architect-Reviewer-Alpha.agent.md +0 -132
  23. package/scaffold/_preview/agents/Architect-Reviewer-Beta.agent.md +0 -132
  24. package/scaffold/_preview/agents/Code-Reviewer-Alpha.agent.md +0 -112
  25. package/scaffold/_preview/agents/Code-Reviewer-Beta.agent.md +0 -112
  26. package/scaffold/_preview/agents/Debugger.agent.md +0 -412
  27. package/scaffold/_preview/agents/Documenter.agent.md +0 -468
  28. package/scaffold/_preview/agents/Explorer.agent.md +0 -76
  29. package/scaffold/_preview/agents/Frontend.agent.md +0 -440
  30. package/scaffold/_preview/agents/Implementer.agent.md +0 -425
  31. package/scaffold/_preview/agents/Orchestrator.agent.md +0 -452
  32. package/scaffold/_preview/agents/Planner.agent.md +0 -481
  33. package/scaffold/_preview/agents/README.md +0 -57
  34. package/scaffold/_preview/agents/Refactor.agent.md +0 -435
  35. package/scaffold/_preview/agents/Researcher-Alpha.agent.md +0 -151
  36. package/scaffold/_preview/agents/Researcher-Beta.agent.md +0 -152
  37. package/scaffold/_preview/agents/Researcher-Delta.agent.md +0 -153
  38. package/scaffold/_preview/agents/Researcher-Gamma.agent.md +0 -152
  39. package/scaffold/_preview/agents/Security.agent.md +0 -433
  40. package/scaffold/_preview/agents/_shared/architect-reviewer-base.md +0 -104
  41. package/scaffold/_preview/agents/_shared/code-agent-base.md +0 -366
  42. package/scaffold/_preview/agents/_shared/code-reviewer-base.md +0 -87
  43. package/scaffold/_preview/agents/_shared/decision-protocol.md +0 -27
  44. package/scaffold/_preview/agents/_shared/forge-protocol.md +0 -90
  45. package/scaffold/_preview/agents/_shared/researcher-base.md +0 -114
  46. package/scaffold/_preview/agents/templates/adr-template.md +0 -28
  47. package/scaffold/_preview/agents/templates/execution-state.md +0 -26
  48. package/scaffold/_preview/flows/_epilogue/steps/docs-sync/README.md +0 -120
  49. package/scaffold/_preview/flows/aikit-advanced/README.md +0 -70
  50. package/scaffold/_preview/flows/aikit-advanced/steps/design/README.md +0 -178
  51. package/scaffold/_preview/flows/aikit-advanced/steps/execute/README.md +0 -145
  52. package/scaffold/_preview/flows/aikit-advanced/steps/plan/README.md +0 -122
  53. package/scaffold/_preview/flows/aikit-advanced/steps/spec/README.md +0 -121
  54. package/scaffold/_preview/flows/aikit-advanced/steps/task/README.md +0 -119
  55. package/scaffold/_preview/flows/aikit-advanced/steps/verify/README.md +0 -145
  56. package/scaffold/_preview/flows/aikit-basic/README.md +0 -51
  57. package/scaffold/_preview/flows/aikit-basic/steps/assess/README.md +0 -109
  58. package/scaffold/_preview/flows/aikit-basic/steps/design/README.md +0 -116
  59. package/scaffold/_preview/flows/aikit-basic/steps/implement/README.md +0 -131
  60. package/scaffold/_preview/flows/aikit-basic/steps/verify/README.md +0 -123
  61. package/scaffold/_preview/prompts/aikit-ask.prompt.md +0 -13
  62. package/scaffold/_preview/prompts/aikit-debug.prompt.md +0 -15
  63. package/scaffold/_preview/prompts/aikit-design.prompt.md +0 -15
  64. package/scaffold/_preview/prompts/aikit-flow-add.prompt.md +0 -84
  65. package/scaffold/_preview/prompts/aikit-flow-create.prompt.md +0 -80
  66. package/scaffold/_preview/prompts/aikit-flow-manage.prompt.md +0 -24
  67. package/scaffold/_preview/prompts/aikit-implement.prompt.md +0 -17
  68. package/scaffold/_preview/prompts/aikit-plan.prompt.md +0 -15
  69. package/scaffold/_preview/prompts/aikit-review.prompt.md +0 -24
  70. package/scaffold/_preview/skills/adr-skill/SKILL.md +0 -335
  71. package/scaffold/_preview/skills/adr-skill/assets/templates/adr-madr.md +0 -89
  72. package/scaffold/_preview/skills/adr-skill/assets/templates/adr-readme.md +0 -20
  73. package/scaffold/_preview/skills/adr-skill/assets/templates/adr-simple.md +0 -46
  74. package/scaffold/_preview/skills/adr-skill/references/adr-conventions.md +0 -95
  75. package/scaffold/_preview/skills/adr-skill/references/examples.md +0 -193
  76. package/scaffold/_preview/skills/adr-skill/references/review-checklist.md +0 -77
  77. package/scaffold/_preview/skills/adr-skill/references/template-variants.md +0 -52
  78. package/scaffold/_preview/skills/adr-skill/scripts/bootstrap_adr.js +0 -259
  79. package/scaffold/_preview/skills/adr-skill/scripts/new_adr.js +0 -391
  80. package/scaffold/_preview/skills/adr-skill/scripts/set_adr_status.js +0 -169
  81. package/scaffold/_preview/skills/aikit/SKILL.md +0 -754
  82. package/scaffold/_preview/skills/brainstorming/SKILL.md +0 -265
  83. package/scaffold/_preview/skills/brainstorming/spec-document-reviewer-prompt.md +0 -49
  84. package/scaffold/_preview/skills/c4-architecture/SKILL.md +0 -389
  85. package/scaffold/_preview/skills/c4-architecture/references/advanced-patterns.md +0 -552
  86. package/scaffold/_preview/skills/c4-architecture/references/c4-syntax.md +0 -510
  87. package/scaffold/_preview/skills/c4-architecture/references/common-mistakes.md +0 -437
  88. package/scaffold/_preview/skills/c4-architecture/references/html-design-system.md +0 -337
  89. package/scaffold/_preview/skills/c4-architecture/references/html-template.html +0 -627
  90. package/scaffold/_preview/skills/docs/SKILL.md +0 -553
  91. package/scaffold/_preview/skills/docs/references/diataxis-anti-patterns.md +0 -147
  92. package/scaffold/_preview/skills/docs/references/diataxis-compass.md +0 -123
  93. package/scaffold/_preview/skills/docs/references/diataxis-quadrants.md +0 -192
  94. package/scaffold/_preview/skills/docs/references/diataxis-quality.md +0 -76
  95. package/scaffold/_preview/skills/docs/references/diataxis-templates.md +0 -120
  96. package/scaffold/_preview/skills/docs/references/flow-artifacts-guide.md +0 -70
  97. package/scaffold/_preview/skills/docs/references/project-knowledge-gotchas.md +0 -32
  98. package/scaffold/_preview/skills/docs/references/project-knowledge-templates.md +0 -281
  99. package/scaffold/_preview/skills/docs/references/project-knowledge-workflow.md +0 -80
  100. package/scaffold/_preview/skills/frontend-design/SKILL.md +0 -237
  101. package/scaffold/_preview/skills/lesson-learned/SKILL.md +0 -113
  102. package/scaffold/_preview/skills/lesson-learned/references/anti-patterns.md +0 -55
  103. package/scaffold/_preview/skills/lesson-learned/references/se-principles.md +0 -109
  104. package/scaffold/_preview/skills/multi-agents-development/SKILL.md +0 -448
  105. package/scaffold/_preview/skills/multi-agents-development/architecture-review-prompt.md +0 -81
  106. package/scaffold/_preview/skills/multi-agents-development/code-quality-review-prompt.md +0 -91
  107. package/scaffold/_preview/skills/multi-agents-development/implementer-prompt.md +0 -93
  108. package/scaffold/_preview/skills/multi-agents-development/parallel-dispatch-example.md +0 -167
  109. package/scaffold/_preview/skills/multi-agents-development/spec-review-prompt.md +0 -81
  110. package/scaffold/_preview/skills/present/SKILL.md +0 -616
  111. package/scaffold/_preview/skills/react/SKILL.md +0 -309
  112. package/scaffold/_preview/skills/repo-access/SKILL.md +0 -178
  113. package/scaffold/_preview/skills/repo-access/references/error-patterns.md +0 -116
  114. package/scaffold/_preview/skills/repo-access/references/platform-matrix.md +0 -142
  115. package/scaffold/_preview/skills/requirements-clarity/SKILL.md +0 -333
  116. package/scaffold/_preview/skills/session-handoff/SKILL.md +0 -199
  117. package/scaffold/_preview/skills/session-handoff/references/handoff-template.md +0 -139
  118. package/scaffold/_preview/skills/session-handoff/references/resume-checklist.md +0 -80
  119. package/scaffold/_preview/skills/session-handoff/scripts/check_staleness.js +0 -269
  120. package/scaffold/_preview/skills/session-handoff/scripts/create_handoff.js +0 -299
  121. package/scaffold/_preview/skills/session-handoff/scripts/list_handoffs.js +0 -113
  122. package/scaffold/_preview/skills/session-handoff/scripts/validate_handoff.js +0 -241
  123. package/scaffold/_preview/skills/typescript/SKILL.md +0 -405
  124. package/scaffold/adapters/claude-code.mjs +0 -73
  125. package/scaffold/adapters/copilot.mjs +0 -292
  126. package/scaffold/adapters/flows.mjs +0 -27
  127. package/scaffold/adapters/skills.mjs +0 -25
  128. package/scaffold/generate.mjs +0 -92
@@ -1,627 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1" />
6
- <title>C4 Architecture HTML/SVG Template - AIKIT</title>
7
- <link rel="preconnect" href="https://fonts.googleapis.com" />
8
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
9
- <link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700;800&display=swap" rel="stylesheet" />
10
- <style>
11
- :root {
12
- --bg: #020617;
13
- --panel: rgba(15, 23, 42, 0.86);
14
- --panel-border: rgba(148, 163, 184, 0.2);
15
- --panel-shadow: 0 24px 60px rgba(2, 6, 23, 0.55);
16
- --text: #e2e8f0;
17
- --muted: #94a3b8;
18
- --soft: #cbd5e1;
19
- --cyan-stroke: #22d3ee;
20
- --cyan-fill: rgba(8, 51, 68, 0.4);
21
- --emerald-stroke: #34d399;
22
- --emerald-fill: rgba(6, 78, 59, 0.4);
23
- --violet-stroke: #a78bfa;
24
- --violet-fill: rgba(76, 29, 149, 0.4);
25
- --amber-stroke: #fbbf24;
26
- --amber-fill: rgba(120, 53, 15, 0.3);
27
- --orange-stroke: #fb923c;
28
- --orange-fill: rgba(251, 146, 60, 0.3);
29
- --rose-stroke: #fb7185;
30
- --rose-fill: rgba(136, 19, 55, 0.4);
31
- --slate-stroke: #94a3b8;
32
- --slate-fill: rgba(30, 41, 59, 0.5);
33
- --sky-stroke: #38bdf8;
34
- --sky-fill: rgba(12, 74, 110, 0.4);
35
- --major-grid: rgba(148, 163, 184, 0.08);
36
- --minor-grid: rgba(148, 163, 184, 0.04);
37
- }
38
-
39
- * {
40
- box-sizing: border-box;
41
- }
42
-
43
- body {
44
- margin: 0;
45
- min-height: 100vh;
46
- font-family: "JetBrains Mono", monospace;
47
- color: var(--text);
48
- background-color: var(--bg);
49
- background-image:
50
- linear-gradient(var(--major-grid) 1px, transparent 1px),
51
- linear-gradient(90deg, var(--major-grid) 1px, transparent 1px),
52
- linear-gradient(var(--minor-grid) 1px, transparent 1px),
53
- linear-gradient(90deg, var(--minor-grid) 1px, transparent 1px);
54
- background-size: 120px 120px, 120px 120px, 30px 30px, 30px 30px;
55
- background-position: 0 0, 0 0, 0 0, 0 0;
56
- }
57
-
58
- .page {
59
- width: min(100%, 1200px);
60
- margin: 0 auto;
61
- padding: 32px 20px 24px;
62
- }
63
-
64
- .header {
65
- display: flex;
66
- align-items: center;
67
- justify-content: space-between;
68
- gap: 16px;
69
- margin-bottom: 20px;
70
- }
71
-
72
- .header-copy {
73
- display: flex;
74
- flex-direction: column;
75
- gap: 8px;
76
- }
77
-
78
- .eyebrow {
79
- display: inline-flex;
80
- align-items: center;
81
- gap: 10px;
82
- font-size: 10px;
83
- color: var(--soft);
84
- letter-spacing: 0.12em;
85
- text-transform: uppercase;
86
- }
87
-
88
- .pulse-dot {
89
- width: 10px;
90
- height: 10px;
91
- border-radius: 999px;
92
- background: var(--cyan-stroke);
93
- box-shadow: 0 0 0 0 rgba(34, 211, 238, 0.7);
94
- animation: pulse 1.8s infinite;
95
- }
96
-
97
- h1 {
98
- margin: 0;
99
- font-size: clamp(24px, 4vw, 34px);
100
- font-weight: 800;
101
- line-height: 1.1;
102
- color: #f8fafc;
103
- }
104
-
105
- .subtitle {
106
- margin: 0;
107
- font-size: 11px;
108
- line-height: 1.6;
109
- color: var(--muted);
110
- max-width: 76ch;
111
- }
112
-
113
- .meta-chip {
114
- padding: 10px 12px;
115
- border: 1px solid var(--panel-border);
116
- border-radius: 14px;
117
- background: rgba(15, 23, 42, 0.72);
118
- color: var(--soft);
119
- font-size: 10px;
120
- line-height: 1.5;
121
- white-space: nowrap;
122
- }
123
-
124
- .diagram-card,
125
- .legend-card,
126
- .summary-card,
127
- .footer {
128
- border: 1px solid var(--panel-border);
129
- border-radius: 22px;
130
- background: var(--panel);
131
- box-shadow: var(--panel-shadow);
132
- backdrop-filter: blur(10px);
133
- }
134
-
135
- .diagram-card {
136
- padding: 18px;
137
- }
138
-
139
- .diagram-frame {
140
- border: 1px solid rgba(148, 163, 184, 0.18);
141
- border-radius: 18px;
142
- padding: 14px;
143
- background: rgba(2, 6, 23, 0.65);
144
- overflow: hidden;
145
- }
146
-
147
- svg {
148
- display: block;
149
- width: 100%;
150
- height: auto;
151
- }
152
-
153
- .boundary-label {
154
- fill: #f8fafc;
155
- font-size: 8px;
156
- font-weight: 700;
157
- letter-spacing: 0.08em;
158
- text-transform: uppercase;
159
- }
160
-
161
- .arrow,
162
- .arrow-dashed {
163
- fill: none;
164
- stroke: #cbd5e1;
165
- stroke-width: 1.6;
166
- marker-end: url(#arrowhead);
167
- }
168
-
169
- .arrow-dashed {
170
- stroke-dasharray: 6 4;
171
- }
172
-
173
- .arrow-label {
174
- fill: #cbd5e1;
175
- font-size: 8px;
176
- }
177
-
178
- .node rect {
179
- rx: 6;
180
- stroke-width: 1.5;
181
- }
182
-
183
- .node .c4-tag {
184
- fill: #f8fafc;
185
- font-size: 7px;
186
- letter-spacing: 0.08em;
187
- text-transform: uppercase;
188
- }
189
-
190
- .node .node-title {
191
- fill: #f8fafc;
192
- font-size: 12px;
193
- font-weight: 700;
194
- }
195
-
196
- .node .node-subtitle {
197
- fill: #cbd5e1;
198
- font-size: 9px;
199
- }
200
-
201
- .node .icon-slot {
202
- fill: #e2e8f0;
203
- font-size: 11px;
204
- font-weight: 700;
205
- text-anchor: middle;
206
- dominant-baseline: middle;
207
- }
208
-
209
- .icon-use {
210
- color: var(--muted);
211
- opacity: 0.7;
212
- }
213
-
214
- .frontend .icon-use { color: var(--cyan-stroke); }
215
- .backend .icon-use { color: var(--emerald-stroke); }
216
- .data .icon-use { color: var(--violet-stroke); }
217
- .infrastructure .icon-use { color: var(--amber-stroke); }
218
- .messaging .icon-use { color: var(--orange-stroke); }
219
- .security .icon-use { color: var(--rose-stroke); }
220
- .external .icon-use { color: var(--slate-stroke); }
221
- .monitoring .icon-use { color: var(--sky-stroke); }
222
-
223
- .frontend rect { fill: var(--cyan-fill); stroke: var(--cyan-stroke); }
224
- .backend rect { fill: var(--emerald-fill); stroke: var(--emerald-stroke); }
225
- .data rect { fill: var(--violet-fill); stroke: var(--violet-stroke); }
226
- .infrastructure rect { fill: var(--amber-fill); stroke: var(--amber-stroke); }
227
- .messaging rect { fill: var(--orange-fill); stroke: var(--orange-stroke); }
228
- .security rect { fill: var(--rose-fill); stroke: var(--rose-stroke); }
229
- .external rect { fill: var(--slate-fill); stroke: var(--slate-stroke); }
230
- .monitoring rect { fill: var(--sky-fill); stroke: var(--sky-stroke); }
231
-
232
- .legend-card {
233
- margin-top: 16px;
234
- padding: 18px;
235
- }
236
-
237
- .legend-title {
238
- margin: 0 0 14px;
239
- font-size: 10px;
240
- text-transform: uppercase;
241
- letter-spacing: 0.12em;
242
- color: var(--soft);
243
- }
244
-
245
- .legend-grid {
246
- display: grid;
247
- grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
248
- gap: 12px;
249
- }
250
-
251
- .legend-item {
252
- padding: 12px;
253
- border-radius: 16px;
254
- border: 1px solid rgba(148, 163, 184, 0.16);
255
- background: rgba(2, 6, 23, 0.4);
256
- }
257
-
258
- .legend-item h3 {
259
- margin: 0 0 8px;
260
- font-size: 10px;
261
- color: #f8fafc;
262
- }
263
-
264
- .legend-item p {
265
- margin: 0;
266
- font-size: 10px;
267
- line-height: 1.5;
268
- color: var(--muted);
269
- }
270
-
271
- .legend-item code {
272
- color: var(--soft);
273
- font-size: 10px;
274
- }
275
-
276
- .legend-swatch {
277
- display: inline-block;
278
- width: 10px;
279
- height: 10px;
280
- margin-right: 8px;
281
- border-radius: 999px;
282
- vertical-align: middle;
283
- }
284
-
285
- .swatch-cyan { background: var(--cyan-stroke); }
286
- .swatch-emerald { background: var(--emerald-stroke); }
287
- .swatch-violet { background: var(--violet-stroke); }
288
- .swatch-amber { background: var(--amber-stroke); }
289
- .swatch-orange { background: var(--orange-stroke); }
290
- .swatch-rose { background: var(--rose-stroke); }
291
- .swatch-slate { background: var(--slate-stroke); }
292
- .swatch-sky { background: var(--sky-stroke); }
293
-
294
- .summary-grid {
295
- display: grid;
296
- grid-template-columns: repeat(3, minmax(0, 1fr));
297
- gap: 16px;
298
- margin-top: 18px;
299
- }
300
-
301
- .summary-card {
302
- padding: 16px;
303
- }
304
-
305
- .summary-card h2 {
306
- display: flex;
307
- align-items: center;
308
- gap: 10px;
309
- margin: 0 0 10px;
310
- font-size: 10px;
311
- text-transform: uppercase;
312
- letter-spacing: 0.12em;
313
- color: var(--soft);
314
- }
315
-
316
- .summary-card p {
317
- margin: 0;
318
- font-size: 10px;
319
- line-height: 1.65;
320
- color: var(--muted);
321
- }
322
-
323
- .card-dot {
324
- width: 10px;
325
- height: 10px;
326
- border-radius: 999px;
327
- flex: 0 0 auto;
328
- }
329
-
330
- .card-dot.cyan { background: var(--cyan-stroke); }
331
- .card-dot.emerald { background: var(--emerald-stroke); }
332
- .card-dot.violet { background: var(--violet-stroke); }
333
- .card-dot.amber { background: var(--amber-stroke); }
334
- .card-dot.orange { background: var(--orange-stroke); }
335
- .card-dot.rose { background: var(--rose-stroke); }
336
- .card-dot.slate { background: var(--slate-stroke); }
337
- .card-dot.sky { background: var(--sky-stroke); }
338
-
339
- .footer {
340
- margin-top: 18px;
341
- padding: 14px 16px;
342
- display: flex;
343
- flex-wrap: wrap;
344
- gap: 10px 16px;
345
- justify-content: space-between;
346
- font-size: 9px;
347
- color: var(--muted);
348
- }
349
-
350
- @keyframes pulse {
351
- 0% {
352
- box-shadow: 0 0 0 0 rgba(34, 211, 238, 0.7);
353
- }
354
-
355
- 70% {
356
- box-shadow: 0 0 0 12px rgba(34, 211, 238, 0);
357
- }
358
-
359
- 100% {
360
- box-shadow: 0 0 0 0 rgba(34, 211, 238, 0);
361
- }
362
- }
363
-
364
- @media (max-width: 900px) {
365
- .header {
366
- flex-direction: column;
367
- align-items: flex-start;
368
- }
369
-
370
- .meta-chip {
371
- white-space: normal;
372
- }
373
-
374
- .summary-grid {
375
- grid-template-columns: 1fr;
376
- }
377
- }
378
- </style>
379
- </head>
380
- <body>
381
- <main class="page">
382
- <header class="header">
383
- <div class="header-copy">
384
- <div class="eyebrow">
385
- <span class="pulse-dot"></span>
386
- <span>C4 Architecture HTML/SVG Template</span>
387
- </div>
388
- <h1>System Architecture</h1>
389
- <p class="subtitle">Self-contained architecture diagram template aligned to the centralized HTML/SVG design system for C4-style documentation, present blocks, and inline SVG rendering.</p>
390
- </div>
391
- <div class="meta-chip">viewBox 1000x680<br />JetBrains Mono<br />Single-source design tokens</div>
392
- </header>
393
-
394
- <section class="diagram-card" aria-labelledby="diagram-title">
395
- <div class="diagram-frame">
396
- <svg viewBox="0 0 1000 680" role="img" aria-labelledby="diagram-title diagram-desc">
397
- <title id="diagram-title">C4 architecture diagram example</title>
398
- <desc id="diagram-desc">Example architecture diagram with frontend, backend, data, infrastructure, messaging, security, external, and monitoring categories.</desc>
399
- <defs>
400
- <marker id="arrowhead" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto">
401
- <path d="M0,0 L8,4 L0,8 Z" fill="#cbd5e1"></path>
402
- </marker>
403
-
404
- <!-- Category Icons -->
405
- <symbol id="icon-frontend" viewBox="0 0 16 16">
406
- <rect x="1.5" y="1" width="13" height="10" rx="1.5" fill="none" stroke="currentColor" stroke-width="1.2"/>
407
- <line x1="1.5" y1="4" x2="14.5" y2="4" stroke="currentColor" stroke-width="0.8"/>
408
- <circle cx="3.5" cy="2.5" r="0.6" fill="currentColor"/>
409
- <circle cx="5.5" cy="2.5" r="0.6" fill="currentColor"/>
410
- <line x1="6" y1="11" x2="6" y2="14" stroke="currentColor" stroke-width="1.2"/>
411
- <line x1="10" y1="11" x2="10" y2="14" stroke="currentColor" stroke-width="1.2"/>
412
- <line x1="4" y1="14" x2="12" y2="14" stroke="currentColor" stroke-width="1.2"/>
413
- </symbol>
414
-
415
- <symbol id="icon-backend" viewBox="0 0 16 16">
416
- <rect x="2" y="0.5" width="12" height="4" rx="1" fill="none" stroke="currentColor" stroke-width="1.2"/>
417
- <rect x="2" y="6" width="12" height="4" rx="1" fill="none" stroke="currentColor" stroke-width="1.2"/>
418
- <rect x="2" y="11.5" width="12" height="4" rx="1" fill="none" stroke="currentColor" stroke-width="1.2"/>
419
- <circle cx="11.5" cy="2.5" r="0.8" fill="currentColor"/>
420
- <circle cx="11.5" cy="8" r="0.8" fill="currentColor"/>
421
- <circle cx="11.5" cy="13.5" r="0.8" fill="currentColor"/>
422
- </symbol>
423
-
424
- <symbol id="icon-data" viewBox="0 0 16 16">
425
- <ellipse cx="8" cy="3" rx="5.5" ry="2.2" fill="none" stroke="currentColor" stroke-width="1.2"/>
426
- <path d="M2.5 3 V12" fill="none" stroke="currentColor" stroke-width="1.2"/>
427
- <path d="M13.5 3 V12" fill="none" stroke="currentColor" stroke-width="1.2"/>
428
- <ellipse cx="8" cy="12" rx="5.5" ry="2.2" fill="none" stroke="currentColor" stroke-width="1.2"/>
429
- <path d="M2.5 7.5 C2.5 9.7 5 10.2 8 10.2 C11 10.2 13.5 9.7 13.5 7.5" fill="none" stroke="currentColor" stroke-width="0.8"/>
430
- </symbol>
431
-
432
- <symbol id="icon-infrastructure" viewBox="0 0 16 16">
433
- <path d="M3.5 13 C1.2 13 0 11.3 0 9.5 C0 7.8 1 6.3 2.8 6 C3 3.5 5.2 1.5 8 1.5 C10.8 1.5 13 3.5 13.2 6 C15 6.3 16 7.8 16 9.5 C16 11.3 14.8 13 12.5 13 Z" fill="none" stroke="currentColor" stroke-width="1.2"/>
434
- </symbol>
435
-
436
- <symbol id="icon-messaging" viewBox="0 0 16 16">
437
- <path d="M1 3 L8 8.5 L15 3" fill="none" stroke="currentColor" stroke-width="1.2"/>
438
- <rect x="1" y="3" width="14" height="10" rx="1.5" fill="none" stroke="currentColor" stroke-width="1.2"/>
439
- </symbol>
440
-
441
- <symbol id="icon-security" viewBox="0 0 16 16">
442
- <path d="M8 0.8 L2 3.5 V7.5 C2 11.5 4.5 14 8 15.2 C11.5 14 14 11.5 14 7.5 V3.5 Z" fill="none" stroke="currentColor" stroke-width="1.2"/>
443
- <polyline points="5.5 8 7.5 10 11 5.5" fill="none" stroke="currentColor" stroke-width="1.3"/>
444
- </symbol>
445
-
446
- <symbol id="icon-external" viewBox="0 0 16 16">
447
- <circle cx="8" cy="8" r="6.5" fill="none" stroke="currentColor" stroke-width="1.2"/>
448
- <ellipse cx="8" cy="8" rx="3" ry="6.5" fill="none" stroke="currentColor" stroke-width="0.8"/>
449
- <line x1="1.5" y1="5.5" x2="14.5" y2="5.5" stroke="currentColor" stroke-width="0.8"/>
450
- <line x1="1.5" y1="10.5" x2="14.5" y2="10.5" stroke="currentColor" stroke-width="0.8"/>
451
- </symbol>
452
-
453
- <symbol id="icon-monitoring" viewBox="0 0 16 16">
454
- <polyline points="0.5 12 3.5 8 6 10 9 3 12 7 15.5 2" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/>
455
- <line x1="0.5" y1="15" x2="15.5" y2="15" stroke="currentColor" stroke-width="1"/>
456
- <line x1="0.5" y1="1" x2="0.5" y2="15" stroke="currentColor" stroke-width="1"/>
457
- </symbol>
458
- </defs>
459
-
460
- <rect x="0" y="0" width="1000" height="680" rx="18" fill="rgba(2, 6, 23, 0.38)"></rect>
461
-
462
- <rect x="54" y="86" width="612" height="472" rx="12" fill="transparent" stroke="#fbbf24" stroke-width="1.5" stroke-dasharray="8,4"></rect>
463
- <text class="boundary-label" x="74" y="106">Application Region</text>
464
-
465
- <rect x="708" y="118" width="228" height="194" rx="12" fill="transparent" stroke="#fb7185" stroke-width="1.5" stroke-dasharray="4,4"></rect>
466
- <text class="boundary-label" x="728" y="138">Security Boundary</text>
467
-
468
- <!-- CUSTOMIZATION: Add/remove arrows here -->
469
- <path class="arrow" d="M190 182 H286"></path>
470
- <text class="arrow-label" x="208" y="171">serves shell assets</text>
471
-
472
- <path class="arrow" d="M470 208 H530"></path>
473
- <text class="arrow-label" x="476" y="197">calls</text>
474
-
475
- <path class="arrow-dashed" d="M655 210 H708"></path>
476
- <text class="arrow-label" x="656" y="197">auth flow</text>
477
-
478
- <path class="arrow" d="M615 270 V344"></path>
479
- <text class="arrow-label" x="626" y="312">reads and writes</text>
480
-
481
- <path class="arrow" d="M470 450 H530"></path>
482
- <text class="arrow-label" x="482" y="439">publishes domain events</text>
483
-
484
- <path class="arrow" d="M635 450 H730"></path>
485
- <text class="arrow-label" x="650" y="439">exports metrics</text>
486
-
487
- <path class="arrow" d="M850 250 V350"></path>
488
- <text class="arrow-label" x="862" y="305">webhook callback</text>
489
-
490
- <!-- CUSTOMIZATION: Add/remove component boxes here -->
491
- <g class="node infrastructure">
492
- <rect x="70" y="150" width="120" height="60"></rect>
493
- <text class="c4-tag" x="84" y="166">&lt;&lt;Deployment_Node&gt;&gt;</text>
494
- <text class="node-title" x="84" y="184">CDN Edge</text>
495
- <text class="node-subtitle" x="84" y="198">Infrastructure / CDN</text>
496
- <use href="#icon-infrastructure" class="icon-use" x="168" y="154" width="16" height="16"/>
497
- </g>
498
-
499
- <g class="node frontend">
500
- <rect x="286" y="150" width="184" height="60"></rect>
501
- <text class="c4-tag" x="300" y="166">&lt;&lt;Container&gt;&gt;</text>
502
- <text class="node-title" x="300" y="184">Customer SPA</text>
503
- <text class="node-subtitle" x="300" y="198">Frontend / React PWA</text>
504
- <use href="#icon-frontend" class="icon-use" x="448" y="154" width="16" height="16"/>
505
- </g>
506
-
507
- <g class="node backend">
508
- <rect x="530" y="180" width="186" height="60"></rect>
509
- <text class="c4-tag" x="544" y="196">&lt;&lt;Container&gt;&gt;</text>
510
- <text class="node-title" x="544" y="214">Orders API</text>
511
- <text class="node-subtitle" x="544" y="228">Backend / API Service</text>
512
- <use href="#icon-backend" class="icon-use" x="694" y="184" width="16" height="16"/>
513
- </g>
514
-
515
- <g class="node security">
516
- <rect x="730" y="164" width="184" height="60"></rect>
517
- <text class="c4-tag" x="744" y="180">&lt;&lt;System_Ext&gt;&gt;</text>
518
- <text class="node-title" x="744" y="198">Identity Provider</text>
519
- <text class="node-subtitle" x="744" y="212">Security / Auth Provider</text>
520
- <use href="#icon-security" class="icon-use" x="892" y="168" width="16" height="16"/>
521
- </g>
522
-
523
- <g class="node security">
524
- <rect x="730" y="240" width="184" height="60"></rect>
525
- <text class="c4-tag" x="744" y="256">&lt;&lt;System_Ext&gt;&gt;</text>
526
- <text class="node-title" x="744" y="274">API Gateway</text>
527
- <text class="node-subtitle" x="744" y="288">Security / Gateway</text>
528
- <use href="#icon-security" class="icon-use" x="892" y="244" width="16" height="16"/>
529
- </g>
530
-
531
- <g class="node data">
532
- <rect x="530" y="344" width="186" height="60"></rect>
533
- <text class="c4-tag" x="544" y="360">&lt;&lt;ContainerDb&gt;&gt;</text>
534
- <text class="node-title" x="544" y="378">Orders DB</text>
535
- <text class="node-subtitle" x="544" y="392">Data / Relational DB</text>
536
- <use href="#icon-data" class="icon-use" x="694" y="348" width="16" height="16"/>
537
- </g>
538
-
539
- <g class="node messaging">
540
- <rect x="530" y="420" width="186" height="60"></rect>
541
- <text class="c4-tag" x="544" y="436">&lt;&lt;ContainerQueue&gt;&gt;</text>
542
- <text class="node-title" x="544" y="454">Event Bus</text>
543
- <text class="node-subtitle" x="544" y="468">Messaging / Pub/Sub</text>
544
- <use href="#icon-messaging" class="icon-use" x="694" y="424" width="16" height="16"/>
545
- </g>
546
-
547
- <g class="node external">
548
- <rect x="760" y="350" width="154" height="60"></rect>
549
- <text class="c4-tag" x="774" y="366">&lt;&lt;System_Ext&gt;&gt;</text>
550
- <text class="node-title" x="774" y="384">Payment SaaS</text>
551
- <text class="node-subtitle" x="774" y="398">External / Provider</text>
552
- <use href="#icon-external" class="icon-use" x="892" y="354" width="16" height="16"/>
553
- </g>
554
-
555
- <g class="node monitoring">
556
- <rect x="760" y="420" width="154" height="60"></rect>
557
- <text class="c4-tag" x="774" y="436">&lt;&lt;Container&gt;&gt;</text>
558
- <text class="node-title" x="774" y="454">Metrics Stack</text>
559
- <text class="node-subtitle" x="774" y="468">Monitoring / Metrics</text>
560
- <use href="#icon-monitoring" class="icon-use" x="892" y="424" width="16" height="16"/>
561
- </g>
562
- </svg>
563
- </div>
564
- </section>
565
-
566
- <section class="legend-card" aria-labelledby="legend-title">
567
- <h2 class="legend-title" id="legend-title">Legend</h2>
568
- <div class="legend-grid">
569
- <!-- CUSTOMIZATION: Update legend categories here -->
570
- <article class="legend-item">
571
- <h3><span class="legend-swatch swatch-cyan"></span>Frontend</h3>
572
- <p><code>&lt;&lt;Container&gt;&gt;</code> for SPA, Mobile App, Static Site, Micro-frontend, PWA, and Desktop App.</p>
573
- </article>
574
- <article class="legend-item">
575
- <h3><span class="legend-swatch swatch-emerald"></span>Backend</h3>
576
- <p><code>&lt;&lt;Container&gt;&gt;</code> for API Service, Worker/Job, BFF, Microservice, Serverless Function, and gRPC Service.</p>
577
- </article>
578
- <article class="legend-item">
579
- <h3><span class="legend-swatch swatch-violet"></span>Data</h3>
580
- <p><code>&lt;&lt;ContainerDb&gt;&gt;</code> for Relational DB, Document DB, Key-Value Store, Cache, Search Engine, Data Warehouse, Graph DB, and Time-Series DB.</p>
581
- </article>
582
- <article class="legend-item">
583
- <h3><span class="legend-swatch swatch-amber"></span>Infrastructure</h3>
584
- <p><code>&lt;&lt;Deployment_Node&gt;&gt;</code> for CDN, Load Balancer, DNS, Object Storage, Container Registry, Reverse Proxy, and Service Mesh.</p>
585
- </article>
586
- <article class="legend-item">
587
- <h3><span class="legend-swatch swatch-orange"></span>Messaging</h3>
588
- <p><code>&lt;&lt;ContainerQueue&gt;&gt;</code> for Message Queue, Event Bus, Stream, Pub/Sub, and Webhook.</p>
589
- </article>
590
- <article class="legend-item">
591
- <h3><span class="legend-swatch swatch-rose"></span>Security</h3>
592
- <p><code>&lt;&lt;System_Ext&gt;&gt;</code> or boundary for Auth Provider, API Gateway, WAF, Secret Manager, Certificate Manager, and Identity Provider.</p>
593
- </article>
594
- <article class="legend-item">
595
- <h3><span class="legend-swatch swatch-slate"></span>External</h3>
596
- <p><code>&lt;&lt;System_Ext&gt;&gt;</code> for Third-party API, SaaS, Legacy System, Partner Service, and Payment Provider.</p>
597
- </article>
598
- <article class="legend-item">
599
- <h3><span class="legend-swatch swatch-sky"></span>Monitoring</h3>
600
- <p><code>&lt;&lt;Container&gt;&gt;</code> for Logging, Metrics, Tracing, Alerting, and APM.</p>
601
- </article>
602
- </div>
603
- </section>
604
-
605
- <section class="summary-grid" aria-label="Architecture summary cards">
606
- <article class="summary-card">
607
- <h2><span class="card-dot cyan"></span>Frontend Path</h2>
608
- <p>The entry path routes through a CDN edge into a React PWA container, preserving a clear frontend classification with C4 container labeling and room for per-subtype icons in the top-right box area.</p>
609
- </article>
610
- <article class="summary-card">
611
- <h2><span class="card-dot emerald"></span>Service Core</h2>
612
- <p>The API service writes to a relational database and publishes events to the event bus, demonstrating standard, vertical, and labeled connectors while keeping arrows beneath component layers.</p>
613
- </article>
614
- <article class="summary-card">
615
- <h2><span class="card-dot rose"></span>Security Edge</h2>
616
- <p>A dashed rose boundary isolates identity and gateway capabilities, while an external payment provider and monitoring stack show how non-core systems stay visually distinct from platform containers.</p>
617
- </article>
618
- </section>
619
-
620
- <footer class="footer">
621
- <span>Generator: HTML/SVG C4 reference template</span>
622
- <span>Layout: header, main SVG, legend, 3 summary cards, footer metadata</span>
623
- <span>Colors and typography: synchronized with html-design-system.md</span>
624
- </footer>
625
- </main>
626
- </body>
627
- </html>