@donartcha/openlag 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 (99) hide show
  1. package/LICENSE +373 -0
  2. package/README.md +82 -0
  3. package/bin/openlag.js +2 -0
  4. package/dist/assets/arc-4YUHkXo3.js +1 -0
  5. package/dist/assets/architectureDiagram-3BPJPVTR-WeGmL7HM.js +36 -0
  6. package/dist/assets/blockDiagram-GPEHLZMM-CtV7ubAx.js +132 -0
  7. package/dist/assets/c4Diagram-AAUBKEIU-DqYDW5c3.js +10 -0
  8. package/dist/assets/channel-Tsel3-MK.js +1 -0
  9. package/dist/assets/chunk-2J33WTMH-BE8P9tjh.js +1 -0
  10. package/dist/assets/chunk-4BX2VUAB-Bi7oLGF5.js +1 -0
  11. package/dist/assets/chunk-55IACEB6-D9Xhxp_r.js +1 -0
  12. package/dist/assets/chunk-727SXJPM-Dz8jKE60.js +206 -0
  13. package/dist/assets/chunk-AQP2D5EJ-BzmM0IeH.js +231 -0
  14. package/dist/assets/chunk-FMBD7UC4-Cvl5dpcx.js +15 -0
  15. package/dist/assets/chunk-ND2GUHAM-Dz2efqnq.js +1 -0
  16. package/dist/assets/chunk-QZHKN3VN-CwblgSnQ.js +1 -0
  17. package/dist/assets/classDiagram-4FO5ZUOK-Bgm-_cW8.js +1 -0
  18. package/dist/assets/classDiagram-v2-Q7XG4LA2-Bgm-_cW8.js +1 -0
  19. package/dist/assets/cose-bilkent-S5V4N54A-h_A3nZUx.js +1 -0
  20. package/dist/assets/cytoscape.esm-D_LviqZs.js +331 -0
  21. package/dist/assets/dagre-BM42HDAG-CN_B2Doz.js +4 -0
  22. package/dist/assets/defaultLocale-DX6XiGOO.js +1 -0
  23. package/dist/assets/diagram-2AECGRRQ-C9TAFwjG.js +43 -0
  24. package/dist/assets/diagram-5GNKFQAL-BThljQLo.js +10 -0
  25. package/dist/assets/diagram-KO2AKTUF-bRPq25Se.js +3 -0
  26. package/dist/assets/diagram-LMA3HP47-BubLCIus.js +24 -0
  27. package/dist/assets/diagram-OG6HWLK6-CJpfhIsS.js +24 -0
  28. package/dist/assets/erDiagram-TEJ5UH35-6Xkza9wL.js +85 -0
  29. package/dist/assets/flowDiagram-I6XJVG4X-Bq_to3hX.js +162 -0
  30. package/dist/assets/ganttDiagram-6RSMTGT7-C3CmvYl7.js +292 -0
  31. package/dist/assets/gitGraphDiagram-PVQCEYII-C93LTfrl.js +106 -0
  32. package/dist/assets/graph-CAnANduQ.js +1 -0
  33. package/dist/assets/index-0RMQQ34p.css +1 -0
  34. package/dist/assets/index-ByxguSZe.js +729 -0
  35. package/dist/assets/infoDiagram-5YYISTIA-CMfuwygl.js +2 -0
  36. package/dist/assets/init-Gi6I4Gst.js +1 -0
  37. package/dist/assets/ishikawaDiagram-YF4QCWOH-CbJ5ojDF.js +70 -0
  38. package/dist/assets/journeyDiagram-JHISSGLW-C_Xz8YyT.js +139 -0
  39. package/dist/assets/kanban-definition-UN3LZRKU-GVv_iRMq.js +89 -0
  40. package/dist/assets/katex-DkKDou_j.js +257 -0
  41. package/dist/assets/layout-DGIYPm2g.js +1 -0
  42. package/dist/assets/linear-BNEtUH2J.js +1 -0
  43. package/dist/assets/mindmap-definition-RKZ34NQL-DIsL0XSF.js +96 -0
  44. package/dist/assets/ordinal-Cboi1Yqb.js +1 -0
  45. package/dist/assets/pieDiagram-4H26LBE5-CSCTSOjk.js +30 -0
  46. package/dist/assets/quadrantDiagram-W4KKPZXB-CQQ9OaFY.js +7 -0
  47. package/dist/assets/requirementDiagram-4Y6WPE33-Cjn3la_S.js +84 -0
  48. package/dist/assets/sankeyDiagram-5OEKKPKP-DoVspvVc.js +40 -0
  49. package/dist/assets/sequenceDiagram-3UESZ5HK-UsoGmL4w.js +162 -0
  50. package/dist/assets/stateDiagram-AJRCARHV-DLmf7Dc8.js +1 -0
  51. package/dist/assets/stateDiagram-v2-BHNVJYJU-jkiDZ_3u.js +1 -0
  52. package/dist/assets/timeline-definition-PNZ67QCA-HfyRxZ8p.js +120 -0
  53. package/dist/assets/vennDiagram-CIIHVFJN-B6pM3L33.js +34 -0
  54. package/dist/assets/wardley-L42UT6IY-B-LdKtrI.js +173 -0
  55. package/dist/assets/wardleyDiagram-YWT4CUSO-BD45zhOu.js +78 -0
  56. package/dist/assets/xychartDiagram-2RQKCTM6-zsDMbUiS.js +7 -0
  57. package/dist/cli/openlag.js +1793 -0
  58. package/dist/index.html +14 -0
  59. package/index.html +13 -0
  60. package/package.json +84 -0
  61. package/scripts/cli/build.ts +34 -0
  62. package/scripts/cli/dev.ts +35 -0
  63. package/scripts/cli/generate.ts +92 -0
  64. package/scripts/cli/init.ts +427 -0
  65. package/scripts/cli/lint.ts +29 -0
  66. package/scripts/cli/openlag.ts +110 -0
  67. package/scripts/cli/vite-bin.ts +8 -0
  68. package/scripts/core/parser/diagnostic.ts +34 -0
  69. package/scripts/core/parser/normalizer.ts +27 -0
  70. package/scripts/core/parser/scanner.ts +30 -0
  71. package/scripts/core/parser/schemas.ts +23 -0
  72. package/scripts/core/parser/types.ts +30 -0
  73. package/scripts/core/parser.ts +127 -0
  74. package/scripts/generate-relations.ts +53 -0
  75. package/scripts/lint/lint-engine.ts +85 -0
  76. package/scripts/lint/lint-profiles.ts +49 -0
  77. package/scripts/lint/lint-rules.ts +174 -0
  78. package/scripts/lint/lint-types.ts +43 -0
  79. package/src/App.tsx +164 -0
  80. package/src/components/DocumentationView.tsx +905 -0
  81. package/src/components/GraphView.tsx +529 -0
  82. package/src/components/GuideView.tsx +535 -0
  83. package/src/components/ImpactView.tsx +365 -0
  84. package/src/components/MarkdownRenderer.tsx +120 -0
  85. package/src/components/OrphansView.tsx +360 -0
  86. package/src/components/SettingsView.tsx +146 -0
  87. package/src/core/generated/relation-definitions.ts +622 -0
  88. package/src/core/graph/GraphQueryLayer.ts +194 -0
  89. package/src/core/registry/ArtifactRegistry.ts +19 -0
  90. package/src/core/registry/RelationRegistry.ts +27 -0
  91. package/src/core/semantic/artifact-layers.ts +43 -0
  92. package/src/core/semantic/ownership-rules.ts +13 -0
  93. package/src/core/semantic/types.ts +11 -0
  94. package/src/index.css +121 -0
  95. package/src/lib/reportUtils.ts +59 -0
  96. package/src/main.tsx +10 -0
  97. package/src/store.ts +146 -0
  98. package/src/types.ts +77 -0
  99. package/vite.config.ts +31 -0
@@ -0,0 +1,622 @@
1
+
2
+ // GENERATED FILE - DO NOT EDIT MANUALLY
3
+ import { RelationCategory, RelationStrength } from '../../types.js';
4
+ import { ArtifactType } from '../registry/ArtifactRegistry.js';
5
+
6
+ export interface RelationContract {
7
+ type: string;
8
+ description?: string;
9
+ category: RelationCategory;
10
+ strength: RelationStrength;
11
+ allowedFrom: ArtifactType[];
12
+ allowedTo: ArtifactType[];
13
+ multiplicity: { from: string; to: string };
14
+ validation: { severity: string };
15
+ }
16
+
17
+ export const GENERATED_RELATIONS: RelationContract[] = [
18
+ {
19
+ "type": "BLOCKS",
20
+ "description": "Descripción de impedimentos directos.",
21
+ "category": "DEPENDENCY",
22
+ "allowedFrom": [
23
+ "BUG",
24
+ "RISK",
25
+ "INCIDENT",
26
+ "CHANGE",
27
+ "DECISION",
28
+ "REQUIREMENT",
29
+ "FEATURE",
30
+ "EPIC"
31
+ ],
32
+ "allowedTo": [
33
+ "PROJECT",
34
+ "EPIC",
35
+ "FEATURE",
36
+ "REQUIREMENT",
37
+ "BUG",
38
+ "CHANGE",
39
+ "DEPLOYMENT",
40
+ "DEPLOYMENT"
41
+ ],
42
+ "multiplicity": {
43
+ "from": "many",
44
+ "to": "many"
45
+ },
46
+ "validation": {
47
+ "severity": "error"
48
+ },
49
+ "strength": "STRONG"
50
+ },
51
+ {
52
+ "type": "BREAKS",
53
+ "description": "Averías o rupturas confirmadas.",
54
+ "category": "OPERATIONAL",
55
+ "allowedFrom": [
56
+ "CHANGE",
57
+ "CODE_ENTITY",
58
+ "COMPONENT",
59
+ "SYSTEM_VERSION"
60
+ ],
61
+ "allowedTo": [
62
+ "TEST_CASE",
63
+ "TEST",
64
+ "API",
65
+ "COMPONENT",
66
+ "REQUIREMENT",
67
+ "FEATURE"
68
+ ],
69
+ "multiplicity": {
70
+ "from": "many",
71
+ "to": "many"
72
+ },
73
+ "validation": {
74
+ "severity": "error"
75
+ },
76
+ "strength": "STRONG"
77
+ },
78
+ {
79
+ "type": "CALLS",
80
+ "description": "Trazabilidad de invocación a nivel código.",
81
+ "category": "STRUCTURAL",
82
+ "allowedFrom": [
83
+ "CODE_ENTITY"
84
+ ],
85
+ "allowedTo": [
86
+ "CODE_ENTITY",
87
+ "API"
88
+ ],
89
+ "multiplicity": {
90
+ "from": "many",
91
+ "to": "many"
92
+ },
93
+ "validation": {
94
+ "severity": "warn"
95
+ },
96
+ "strength": "MEDIUM"
97
+ },
98
+ {
99
+ "type": "DEFINES",
100
+ "description": "Entidades que instauran glosarios o normas.",
101
+ "category": "SEMANTIC",
102
+ "allowedFrom": [
103
+ "BUSINESS_RULE",
104
+ "DECISION",
105
+ "DOCUMENTATION",
106
+ "GLOSSARY_TERM"
107
+ ],
108
+ "allowedTo": [
109
+ "REQUIREMENT",
110
+ "FEATURE",
111
+ "DESIGN",
112
+ "PROJECT",
113
+ "COMPONENT",
114
+ "API",
115
+ "DATABASE_ENTITY"
116
+ ],
117
+ "multiplicity": {
118
+ "from": "many",
119
+ "to": "many"
120
+ },
121
+ "validation": {
122
+ "severity": "info"
123
+ },
124
+ "strength": "WEAK"
125
+ },
126
+ {
127
+ "type": "DEPENDS_ON",
128
+ "description": "Acoplamiento estático arquitectónico o de empaquetado.",
129
+ "category": "STRUCTURAL",
130
+ "allowedFrom": [
131
+ "CODE_ENTITY",
132
+ "COMPONENT",
133
+ "API",
134
+ "DATABASE_ENTITY",
135
+ "LIBRARY",
136
+ "VERSION",
137
+ "SYSTEM_VERSION"
138
+ ],
139
+ "allowedTo": [
140
+ "CODE_ENTITY",
141
+ "COMPONENT",
142
+ "API",
143
+ "DATABASE_ENTITY",
144
+ "LIBRARY",
145
+ "VERSION",
146
+ "SYSTEM_VERSION"
147
+ ],
148
+ "multiplicity": {
149
+ "from": "many",
150
+ "to": "many"
151
+ },
152
+ "validation": {
153
+ "severity": "warn"
154
+ },
155
+ "strength": "MEDIUM"
156
+ },
157
+ {
158
+ "type": "DEPLOYS",
159
+ "description": "Instanciación de componentes o release en infraestructura.",
160
+ "category": "OPERATIONAL",
161
+ "allowedFrom": [
162
+ "DEPLOYMENT",
163
+ "PIPELINE",
164
+ "SYSTEM_VERSION"
165
+ ],
166
+ "allowedTo": [
167
+ "COMPONENT",
168
+ "INFRASTRUCTURE",
169
+ "ENVIRONMENT",
170
+ "DATABASE_ENTITY"
171
+ ],
172
+ "multiplicity": {
173
+ "from": "many",
174
+ "to": "many"
175
+ },
176
+ "validation": {
177
+ "severity": "error"
178
+ },
179
+ "strength": "STRONG"
180
+ },
181
+ {
182
+ "type": "DERIVES_FROM",
183
+ "description": "Evolución conceptual genérica.",
184
+ "category": "SEMANTIC",
185
+ "allowedFrom": [
186
+ "REQUIREMENT",
187
+ "FEATURE",
188
+ "DESIGN",
189
+ "BUSINESS_RULE",
190
+ "DECISION",
191
+ "USE_CASE"
192
+ ],
193
+ "allowedTo": [
194
+ "REQUIREMENT",
195
+ "FEATURE",
196
+ "DESIGN",
197
+ "BUSINESS_RULE",
198
+ "DECISION",
199
+ "USE_CASE"
200
+ ],
201
+ "multiplicity": {
202
+ "from": "many",
203
+ "to": "many"
204
+ },
205
+ "validation": {
206
+ "severity": "info"
207
+ },
208
+ "strength": "WEAK"
209
+ },
210
+ {
211
+ "type": "DOCUMENTS",
212
+ "description": "Conecta documentación con el artefacto descrito.",
213
+ "category": "SEMANTIC",
214
+ "allowedFrom": [
215
+ "DOCUMENTATION",
216
+ "GLOSSARY_TERM"
217
+ ],
218
+ "allowedTo": [
219
+ "PROJECT",
220
+ "EPIC",
221
+ "FEATURE",
222
+ "REQUIREMENT",
223
+ "BUSINESS_RULE",
224
+ "USE_CASE",
225
+ "DESIGN",
226
+ "DECISION",
227
+ "CODE_ENTITY",
228
+ "TEST_CASE",
229
+ "CHANGE",
230
+ "BUG",
231
+ "RISK",
232
+ "GLOSSARY_TERM",
233
+ "COMPONENT",
234
+ "API",
235
+ "DATABASE_ENTITY",
236
+ "TEST",
237
+ "DOCUMENTATION",
238
+ "INCIDENT",
239
+ "INFRASTRUCTURE",
240
+ "DEPLOYMENT",
241
+ "MONITORING",
242
+ "MAINTENANCE",
243
+ "SYSTEM_VERSION",
244
+ "VERSION"
245
+ ],
246
+ "multiplicity": {
247
+ "from": "many",
248
+ "to": "many"
249
+ },
250
+ "validation": {
251
+ "severity": "info"
252
+ },
253
+ "strength": "WEAK"
254
+ },
255
+ {
256
+ "type": "FIXES",
257
+ "description": "Conecta correcciones con bugs o incidentes.",
258
+ "category": "TRACEABILITY",
259
+ "allowedFrom": [
260
+ "CHANGE",
261
+ "CODE_ENTITY",
262
+ "COMPONENT",
263
+ "SYSTEM_VERSION"
264
+ ],
265
+ "allowedTo": [
266
+ "BUG",
267
+ "INCIDENT",
268
+ "RISK"
269
+ ],
270
+ "multiplicity": {
271
+ "from": "many",
272
+ "to": "many"
273
+ },
274
+ "validation": {
275
+ "severity": "error"
276
+ },
277
+ "strength": "STRONG"
278
+ },
279
+ {
280
+ "type": "IMPACTS",
281
+ "description": "Descripción de posibles efectos colaterales.",
282
+ "category": "SEMANTIC",
283
+ "allowedFrom": [
284
+ "CHANGE",
285
+ "RISK",
286
+ "BUG",
287
+ "INCIDENT",
288
+ "DECISION"
289
+ ],
290
+ "allowedTo": [
291
+ "PROJECT",
292
+ "EPIC",
293
+ "FEATURE",
294
+ "REQUIREMENT",
295
+ "DESIGN",
296
+ "CODE_ENTITY",
297
+ "COMPONENT",
298
+ "API",
299
+ "DATABASE_ENTITY",
300
+ "SYSTEM_VERSION"
301
+ ],
302
+ "multiplicity": {
303
+ "from": "many",
304
+ "to": "many"
305
+ },
306
+ "validation": {
307
+ "severity": "warn"
308
+ },
309
+ "strength": "MEDIUM"
310
+ },
311
+ {
312
+ "type": "IMPLEMENTS",
313
+ "description": "Conecta implementación con necesidad funcional/técnica.",
314
+ "category": "TRACEABILITY",
315
+ "allowedFrom": [
316
+ "CODE_ENTITY",
317
+ "COMPONENT",
318
+ "API",
319
+ "DATABASE_ENTITY",
320
+ "SYSTEM_VERSION"
321
+ ],
322
+ "allowedTo": [
323
+ "REQUIREMENT",
324
+ "FEATURE",
325
+ "EPIC",
326
+ "DESIGN",
327
+ "USE_CASE",
328
+ "BUSINESS_RULE"
329
+ ],
330
+ "multiplicity": {
331
+ "from": "many",
332
+ "to": "many"
333
+ },
334
+ "validation": {
335
+ "severity": "error"
336
+ },
337
+ "strength": "STRONG"
338
+ },
339
+ {
340
+ "type": "IMPORTS",
341
+ "description": "Trazabilidad de importación estática a nivel de código.",
342
+ "category": "STRUCTURAL",
343
+ "allowedFrom": [
344
+ "CODE_ENTITY"
345
+ ],
346
+ "allowedTo": [
347
+ "CODE_ENTITY",
348
+ "LIBRARY"
349
+ ],
350
+ "multiplicity": {
351
+ "from": "many",
352
+ "to": "many"
353
+ },
354
+ "validation": {
355
+ "severity": "warn"
356
+ },
357
+ "strength": "MEDIUM"
358
+ },
359
+ {
360
+ "type": "JUSTIFIES",
361
+ "description": "Conecta decisiones con aquello que justifican.",
362
+ "category": "SEMANTIC",
363
+ "allowedFrom": [
364
+ "DECISION",
365
+ "BUSINESS_RULE",
366
+ "DOCUMENTATION",
367
+ "RISK"
368
+ ],
369
+ "allowedTo": [
370
+ "DESIGN",
371
+ "REQUIREMENT",
372
+ "FEATURE",
373
+ "EPIC",
374
+ "PROJECT",
375
+ "CODE_ENTITY",
376
+ "COMPONENT",
377
+ "INFRASTRUCTURE",
378
+ "DEPLOYMENT",
379
+ "MAINTENANCE"
380
+ ],
381
+ "multiplicity": {
382
+ "from": "many",
383
+ "to": "many"
384
+ },
385
+ "validation": {
386
+ "severity": "warn"
387
+ },
388
+ "strength": "MEDIUM"
389
+ },
390
+ {
391
+ "type": "MONITORS",
392
+ "description": "Relación de observabilidad.",
393
+ "category": "OPERATIONAL",
394
+ "allowedFrom": [
395
+ "MONITORING",
396
+ "CHECK"
397
+ ],
398
+ "allowedTo": [
399
+ "COMPONENT",
400
+ "INFRASTRUCTURE",
401
+ "DEPLOYMENT",
402
+ "DATABASE_ENTITY",
403
+ "API"
404
+ ],
405
+ "multiplicity": {
406
+ "from": "many",
407
+ "to": "many"
408
+ },
409
+ "validation": {
410
+ "severity": "info"
411
+ },
412
+ "strength": "WEAK"
413
+ },
414
+ {
415
+ "type": "REFINES",
416
+ "description": "Descompone artefactos en otros más concretos.",
417
+ "category": "TRACEABILITY",
418
+ "allowedFrom": [
419
+ "FEATURE",
420
+ "REQUIREMENT",
421
+ "BUG",
422
+ "RISK",
423
+ "DESIGN"
424
+ ],
425
+ "allowedTo": [
426
+ "EPIC",
427
+ "FEATURE",
428
+ "PROJECT",
429
+ "BUSINESS_RULE",
430
+ "REQUIREMENT",
431
+ "DESIGN"
432
+ ],
433
+ "multiplicity": {
434
+ "from": "many",
435
+ "to": "many"
436
+ },
437
+ "validation": {
438
+ "severity": "warn"
439
+ },
440
+ "strength": "MEDIUM"
441
+ },
442
+ {
443
+ "type": "RELATES_TO",
444
+ "description": "Uso genérico propenso a polución semántica. (DISCOURAGED)\nPara mantener un grafo limpio, solo úsala aportando rationale explícito:\n\nrelations:\n - to: mi-otro-artefacto\n type: RELATES_TO\n rationale: \"No encaja con USES o DEPENDS_ON debido al contexto X.\"\n",
445
+ "category": "SEMANTIC",
446
+ "allowedFrom": [
447
+ "PROJECT",
448
+ "EPIC",
449
+ "FEATURE",
450
+ "REQUIREMENT",
451
+ "BUSINESS_RULE",
452
+ "USE_CASE",
453
+ "DESIGN",
454
+ "DECISION",
455
+ "CODE_ENTITY",
456
+ "TEST_CASE",
457
+ "CHANGE",
458
+ "BUG",
459
+ "RISK",
460
+ "GLOSSARY_TERM",
461
+ "COMPONENT",
462
+ "API",
463
+ "DATABASE_ENTITY",
464
+ "TEST",
465
+ "DOCUMENTATION",
466
+ "INCIDENT",
467
+ "INFRASTRUCTURE",
468
+ "DEPLOYMENT",
469
+ "MONITORING",
470
+ "MAINTENANCE",
471
+ "SYSTEM_VERSION",
472
+ "VERSION"
473
+ ],
474
+ "allowedTo": [
475
+ "PROJECT",
476
+ "EPIC",
477
+ "FEATURE",
478
+ "REQUIREMENT",
479
+ "BUSINESS_RULE",
480
+ "USE_CASE",
481
+ "DESIGN",
482
+ "DECISION",
483
+ "CODE_ENTITY",
484
+ "TEST_CASE",
485
+ "CHANGE",
486
+ "BUG",
487
+ "RISK",
488
+ "GLOSSARY_TERM",
489
+ "COMPONENT",
490
+ "API",
491
+ "DATABASE_ENTITY",
492
+ "TEST",
493
+ "DOCUMENTATION",
494
+ "INCIDENT",
495
+ "INFRASTRUCTURE",
496
+ "DEPLOYMENT",
497
+ "MONITORING",
498
+ "MAINTENANCE",
499
+ "SYSTEM_VERSION",
500
+ "VERSION"
501
+ ],
502
+ "multiplicity": {
503
+ "from": "many",
504
+ "to": "many"
505
+ },
506
+ "validation": {
507
+ "severity": "warn"
508
+ },
509
+ "strength": "MEDIUM"
510
+ },
511
+ {
512
+ "type": "REPLACES",
513
+ "description": "Evolución e histórico, deprecando versiones anteriores.",
514
+ "category": "EVOLUTIONARY",
515
+ "allowedFrom": [
516
+ "COMPONENT",
517
+ "API",
518
+ "SYSTEM_VERSION",
519
+ "VERSION",
520
+ "REQUIREMENT",
521
+ "FEATURE",
522
+ "DESIGN",
523
+ "DECISION"
524
+ ],
525
+ "allowedTo": [
526
+ "COMPONENT",
527
+ "API",
528
+ "SYSTEM_VERSION",
529
+ "VERSION",
530
+ "REQUIREMENT",
531
+ "FEATURE",
532
+ "DESIGN",
533
+ "DECISION"
534
+ ],
535
+ "multiplicity": {
536
+ "from": "many",
537
+ "to": "one"
538
+ },
539
+ "validation": {
540
+ "severity": "info"
541
+ },
542
+ "strength": "WEAK"
543
+ },
544
+ {
545
+ "type": "TESTS",
546
+ "description": "Conecta tests con comportamiento validado.",
547
+ "category": "TRACEABILITY",
548
+ "allowedFrom": [
549
+ "TEST_CASE",
550
+ "TEST"
551
+ ],
552
+ "allowedTo": [
553
+ "REQUIREMENT",
554
+ "FEATURE",
555
+ "EPIC",
556
+ "CODE_ENTITY",
557
+ "COMPONENT",
558
+ "API",
559
+ "DATABASE_ENTITY",
560
+ "BUG",
561
+ "INCIDENT"
562
+ ],
563
+ "multiplicity": {
564
+ "from": "many",
565
+ "to": "many"
566
+ },
567
+ "validation": {
568
+ "severity": "error"
569
+ },
570
+ "strength": "STRONG"
571
+ },
572
+ {
573
+ "type": "USES",
574
+ "description": "Llamada funcional, invocación o flujo en tiempo de ejecución.",
575
+ "category": "OPERATIONAL",
576
+ "allowedFrom": [
577
+ "CODE_ENTITY",
578
+ "COMPONENT",
579
+ "API",
580
+ "FEATURE",
581
+ "USE_CASE"
582
+ ],
583
+ "allowedTo": [
584
+ "CODE_ENTITY",
585
+ "COMPONENT",
586
+ "API",
587
+ "SYSTEM_VERSION"
588
+ ],
589
+ "multiplicity": {
590
+ "from": "many",
591
+ "to": "many"
592
+ },
593
+ "validation": {
594
+ "severity": "warn"
595
+ },
596
+ "strength": "MEDIUM"
597
+ },
598
+ {
599
+ "type": "VALIDATES",
600
+ "description": "Validación empírica/humana (QA Manual).",
601
+ "category": "TRACEABILITY",
602
+ "allowedFrom": [
603
+ "PROCESS",
604
+ "CHECK",
605
+ "DOCUMENTATION"
606
+ ],
607
+ "allowedTo": [
608
+ "REQUIREMENT",
609
+ "FEATURE",
610
+ "USE_CASE",
611
+ "DEPLOYMENT"
612
+ ],
613
+ "multiplicity": {
614
+ "from": "many",
615
+ "to": "many"
616
+ },
617
+ "validation": {
618
+ "severity": "info"
619
+ },
620
+ "strength": "WEAK"
621
+ }
622
+ ];