@oods/component-contracts 0.3.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.
@@ -0,0 +1,1449 @@
1
+ {
2
+ "schemaVersion": "1.0.0",
3
+ "kind": "component-reconciliation-proposal",
4
+ "baselineCommit": "ae560bc22969c1fd81336730be4330c9115fc316",
5
+ "planningCommit": "8ce349076e7e3ba3f0b2f3f667d4fbb5c6a4b63b",
6
+ "status": "proposed-awaiting-derek-approval",
7
+ "controllingObligationDenominator": 109,
8
+ "approvedRuntimeCensus": null,
9
+ "proposedRuntimeCensus": {
10
+ "byClassification": {
11
+ "recipe": 83,
12
+ "authoring-only": 11,
13
+ "native": 15
14
+ },
15
+ "runtimeRows": 98,
16
+ "nonRuntimeRows": 11
17
+ },
18
+ "rows": [
19
+ {
20
+ "id": "AddressCollectionPanel",
21
+ "proposedClassification": "recipe",
22
+ "proposedResolution": {
23
+ "surface": "html",
24
+ "implementation": "renderAddressCollectionPanel",
25
+ "source": "packages/mcp-server/src/render/component-map.ts"
26
+ },
27
+ "approvalState": "pending-derek-approval",
28
+ "evidence": [
29
+ "packages/mcp-server/src/render/component-map.ts#renderAddressCollectionPanel",
30
+ "traits/core/Addressable.trait.yaml"
31
+ ]
32
+ },
33
+ {
34
+ "id": "AddressEditor",
35
+ "proposedClassification": "recipe",
36
+ "proposedResolution": {
37
+ "surface": "html",
38
+ "implementation": "renderAddressEditor",
39
+ "source": "packages/mcp-server/src/render/component-map.ts"
40
+ },
41
+ "approvalState": "pending-derek-approval",
42
+ "evidence": [
43
+ "packages/mcp-server/src/render/component-map.ts#renderAddressEditor",
44
+ "traits/core/Addressable.trait.yaml"
45
+ ]
46
+ },
47
+ {
48
+ "id": "AddressSummaryBadge",
49
+ "proposedClassification": "recipe",
50
+ "proposedResolution": {
51
+ "surface": "html",
52
+ "implementation": "renderAddressSummaryBadge",
53
+ "source": "packages/mcp-server/src/render/component-map.ts"
54
+ },
55
+ "approvalState": "pending-derek-approval",
56
+ "evidence": [
57
+ "packages/mcp-server/src/render/component-map.ts#renderAddressSummaryBadge",
58
+ "traits/core/Addressable.trait.yaml"
59
+ ]
60
+ },
61
+ {
62
+ "id": "AddressValidationTimeline",
63
+ "proposedClassification": "recipe",
64
+ "proposedResolution": {
65
+ "surface": "html",
66
+ "implementation": "renderAddressValidationTimeline",
67
+ "source": "packages/mcp-server/src/render/component-map.ts"
68
+ },
69
+ "approvalState": "pending-derek-approval",
70
+ "evidence": [
71
+ "packages/mcp-server/src/render/component-map.ts#renderAddressValidationTimeline",
72
+ "traits/core/Addressable.trait.yaml"
73
+ ]
74
+ },
75
+ {
76
+ "id": "ArchiveEvent",
77
+ "proposedClassification": "recipe",
78
+ "proposedResolution": {
79
+ "surface": "html",
80
+ "implementation": "renderArchiveEvent",
81
+ "source": "packages/mcp-server/src/render/component-map.ts"
82
+ },
83
+ "approvalState": "pending-derek-approval",
84
+ "evidence": [
85
+ "packages/mcp-server/src/render/component-map.ts#renderArchiveEvent",
86
+ "traits/lifecycle/Archivable.trait.yaml"
87
+ ]
88
+ },
89
+ {
90
+ "id": "ArchivePill",
91
+ "proposedClassification": "recipe",
92
+ "proposedResolution": {
93
+ "surface": "html",
94
+ "implementation": "renderArchivePill",
95
+ "source": "packages/mcp-server/src/render/component-map.ts"
96
+ },
97
+ "approvalState": "pending-derek-approval",
98
+ "evidence": [
99
+ "packages/mcp-server/src/render/component-map.ts#renderArchivePill",
100
+ "traits/lifecycle/Archivable.trait.yaml"
101
+ ]
102
+ },
103
+ {
104
+ "id": "ArchiveSummary",
105
+ "proposedClassification": "recipe",
106
+ "proposedResolution": {
107
+ "surface": "html",
108
+ "implementation": "renderArchiveSummary",
109
+ "source": "packages/mcp-server/src/render/component-map.ts"
110
+ },
111
+ "approvalState": "pending-derek-approval",
112
+ "evidence": [
113
+ "packages/mcp-server/src/render/component-map.ts#renderArchiveSummary",
114
+ "traits/lifecycle/Archivable.trait.yaml"
115
+ ]
116
+ },
117
+ {
118
+ "id": "ArchivedRowOverlay",
119
+ "proposedClassification": "authoring-only",
120
+ "approvalState": "pending-derek-approval",
121
+ "evidence": [
122
+ "traits/lifecycle/Archivable.trait.yaml"
123
+ ]
124
+ },
125
+ {
126
+ "id": "AuditEvent",
127
+ "proposedClassification": "recipe",
128
+ "proposedResolution": {
129
+ "surface": "html",
130
+ "implementation": "renderAuditEvent",
131
+ "source": "packages/mcp-server/src/render/component-map.ts"
132
+ },
133
+ "approvalState": "pending-derek-approval",
134
+ "evidence": [
135
+ "packages/mcp-server/src/render/component-map.ts#renderAuditEvent",
136
+ "traits/lifecycle/Timestampable.trait.yaml"
137
+ ]
138
+ },
139
+ {
140
+ "id": "AuditSummaryCard",
141
+ "proposedClassification": "authoring-only",
142
+ "approvalState": "pending-derek-approval",
143
+ "evidence": [
144
+ "traits/lifecycle/Auditable.trait.yaml"
145
+ ]
146
+ },
147
+ {
148
+ "id": "AuditTimeline",
149
+ "proposedClassification": "recipe",
150
+ "proposedResolution": {
151
+ "surface": "html",
152
+ "implementation": "renderAuditTimeline",
153
+ "source": "packages/mcp-server/src/render/component-map.ts"
154
+ },
155
+ "approvalState": "pending-derek-approval",
156
+ "evidence": [
157
+ "packages/mcp-server/src/render/component-map.ts#renderAuditTimeline",
158
+ "traits/lifecycle/Auditable.trait.yaml",
159
+ "traits/lifecycle/Timestampable.trait.yaml"
160
+ ]
161
+ },
162
+ {
163
+ "id": "Badge",
164
+ "proposedClassification": "native",
165
+ "approvalState": "pending-derek-approval",
166
+ "evidence": [
167
+ "cmos/planning/forge-s182-product-reality-foundation-decision-memo.md#43-exact-primitive-nucleus",
168
+ "cmos/scripts/refresh_structured_data.py",
169
+ "packages/mcp-server/src/render/component-map.ts#renderBadge",
170
+ "src/components/base/Badge.tsx",
171
+ "src/index.ts",
172
+ "traits/visual/Statusable.trait.yaml"
173
+ ]
174
+ },
175
+ {
176
+ "id": "Banner",
177
+ "proposedClassification": "native",
178
+ "approvalState": "pending-derek-approval",
179
+ "evidence": [
180
+ "cmos/planning/forge-s182-product-reality-foundation-decision-memo.md#43-exact-primitive-nucleus",
181
+ "cmos/scripts/refresh_structured_data.py",
182
+ "packages/mcp-server/src/render/component-map.ts#renderBanner",
183
+ "src/components/base/Banner.tsx",
184
+ "src/index.ts",
185
+ "traits/visual/Statusable.trait.yaml"
186
+ ]
187
+ },
188
+ {
189
+ "id": "BillingAmountInput",
190
+ "proposedClassification": "authoring-only",
191
+ "approvalState": "pending-derek-approval",
192
+ "evidence": [
193
+ "traits/financial/Billable.trait.yaml"
194
+ ]
195
+ },
196
+ {
197
+ "id": "BillingCardMeta",
198
+ "proposedClassification": "authoring-only",
199
+ "approvalState": "pending-derek-approval",
200
+ "evidence": [
201
+ "traits/financial/Billable.trait.yaml"
202
+ ]
203
+ },
204
+ {
205
+ "id": "BillingIntervalSelector",
206
+ "proposedClassification": "authoring-only",
207
+ "approvalState": "pending-derek-approval",
208
+ "evidence": [
209
+ "traits/financial/Billable.trait.yaml"
210
+ ]
211
+ },
212
+ {
213
+ "id": "BillingSummaryBadge",
214
+ "proposedClassification": "authoring-only",
215
+ "approvalState": "pending-derek-approval",
216
+ "evidence": [
217
+ "traits/financial/Billable.trait.yaml"
218
+ ]
219
+ },
220
+ {
221
+ "id": "Button",
222
+ "proposedClassification": "native",
223
+ "approvalState": "pending-derek-approval",
224
+ "evidence": [
225
+ "cmos/planning/forge-s182-product-reality-foundation-decision-memo.md#43-exact-primitive-nucleus",
226
+ "cmos/scripts/refresh_structured_data.py",
227
+ "packages/mcp-server/src/render/component-map.ts#renderButton",
228
+ "src/components/base/Button.tsx",
229
+ "src/index.ts"
230
+ ]
231
+ },
232
+ {
233
+ "id": "CancellationBadge",
234
+ "proposedClassification": "recipe",
235
+ "proposedResolution": {
236
+ "surface": "html",
237
+ "implementation": "renderCancellationBadge",
238
+ "source": "packages/mcp-server/src/render/component-map.ts"
239
+ },
240
+ "approvalState": "pending-derek-approval",
241
+ "evidence": [
242
+ "packages/mcp-server/src/render/component-map.ts#renderCancellationBadge",
243
+ "traits/lifecycle/Cancellable.trait.yaml"
244
+ ]
245
+ },
246
+ {
247
+ "id": "CancellationEvent",
248
+ "proposedClassification": "recipe",
249
+ "proposedResolution": {
250
+ "surface": "html",
251
+ "implementation": "renderCancellationEvent",
252
+ "source": "packages/mcp-server/src/render/component-map.ts"
253
+ },
254
+ "approvalState": "pending-derek-approval",
255
+ "evidence": [
256
+ "packages/mcp-server/src/render/component-map.ts#renderCancellationEvent",
257
+ "traits/lifecycle/Cancellable.trait.yaml"
258
+ ]
259
+ },
260
+ {
261
+ "id": "CancellationForm",
262
+ "proposedClassification": "recipe",
263
+ "proposedResolution": {
264
+ "surface": "html",
265
+ "implementation": "renderCancellationForm",
266
+ "source": "packages/mcp-server/src/render/component-map.ts"
267
+ },
268
+ "approvalState": "pending-derek-approval",
269
+ "evidence": [
270
+ "packages/mcp-server/src/render/component-map.ts#renderCancellationForm",
271
+ "traits/lifecycle/Cancellable.trait.yaml"
272
+ ]
273
+ },
274
+ {
275
+ "id": "CancellationSummary",
276
+ "proposedClassification": "recipe",
277
+ "proposedResolution": {
278
+ "surface": "html",
279
+ "implementation": "renderCancellationSummary",
280
+ "source": "packages/mcp-server/src/render/component-map.ts"
281
+ },
282
+ "approvalState": "pending-derek-approval",
283
+ "evidence": [
284
+ "packages/mcp-server/src/render/component-map.ts#renderCancellationSummary",
285
+ "traits/lifecycle/Cancellable.trait.yaml"
286
+ ]
287
+ },
288
+ {
289
+ "id": "Card",
290
+ "proposedClassification": "native",
291
+ "approvalState": "pending-derek-approval",
292
+ "evidence": [
293
+ "cmos/planning/forge-s182-product-reality-foundation-decision-memo.md#43-exact-primitive-nucleus",
294
+ "cmos/scripts/refresh_structured_data.py",
295
+ "packages/mcp-server/src/render/component-map.ts#renderCard",
296
+ "src/components/base/Card.tsx",
297
+ "src/index.ts"
298
+ ]
299
+ },
300
+ {
301
+ "id": "CardHeader",
302
+ "proposedClassification": "recipe",
303
+ "proposedResolution": {
304
+ "surface": "html",
305
+ "implementation": "renderCardHeader",
306
+ "source": "packages/mcp-server/src/render/component-map.ts"
307
+ },
308
+ "approvalState": "pending-derek-approval",
309
+ "evidence": [
310
+ "packages/mcp-server/src/render/component-map.ts#renderCardHeader",
311
+ "traits/content/Labelled.trait.yaml"
312
+ ]
313
+ },
314
+ {
315
+ "id": "Checkbox",
316
+ "proposedClassification": "native",
317
+ "approvalState": "pending-derek-approval",
318
+ "evidence": [
319
+ "cmos/planning/forge-s182-product-reality-foundation-decision-memo.md#43-exact-primitive-nucleus",
320
+ "cmos/scripts/refresh_structured_data.py",
321
+ "packages/mcp-server/src/render/component-map.ts#renderCheckbox",
322
+ "src/components/base/Checkbox.tsx",
323
+ "src/index.ts"
324
+ ]
325
+ },
326
+ {
327
+ "id": "ClassificationBadge",
328
+ "proposedClassification": "recipe",
329
+ "proposedResolution": {
330
+ "surface": "html",
331
+ "implementation": "renderClassificationBadge",
332
+ "source": "packages/mcp-server/src/render/component-map.ts"
333
+ },
334
+ "approvalState": "pending-derek-approval",
335
+ "evidence": [
336
+ "packages/mcp-server/src/render/component-map.ts#renderClassificationBadge",
337
+ "traits/core/Classifiable.trait.yaml"
338
+ ]
339
+ },
340
+ {
341
+ "id": "ClassificationEditor",
342
+ "proposedClassification": "recipe",
343
+ "proposedResolution": {
344
+ "surface": "html",
345
+ "implementation": "renderClassificationEditor",
346
+ "source": "packages/mcp-server/src/render/component-map.ts"
347
+ },
348
+ "approvalState": "pending-derek-approval",
349
+ "evidence": [
350
+ "packages/mcp-server/src/render/component-map.ts#renderClassificationEditor",
351
+ "traits/core/Classifiable.trait.yaml"
352
+ ]
353
+ },
354
+ {
355
+ "id": "ClassificationPanel",
356
+ "proposedClassification": "recipe",
357
+ "proposedResolution": {
358
+ "surface": "html",
359
+ "implementation": "renderClassificationPanel",
360
+ "source": "packages/mcp-server/src/render/component-map.ts"
361
+ },
362
+ "approvalState": "pending-derek-approval",
363
+ "evidence": [
364
+ "packages/mcp-server/src/render/component-map.ts#renderClassificationPanel",
365
+ "traits/core/Classifiable.trait.yaml"
366
+ ]
367
+ },
368
+ {
369
+ "id": "ColorStatePicker",
370
+ "proposedClassification": "recipe",
371
+ "proposedResolution": {
372
+ "surface": "html",
373
+ "implementation": "renderColorStatePicker",
374
+ "source": "packages/mcp-server/src/render/component-map.ts"
375
+ },
376
+ "approvalState": "pending-derek-approval",
377
+ "evidence": [
378
+ "packages/mcp-server/src/render/component-map.ts#renderColorStatePicker",
379
+ "traits/visual/Colorized.trait.yaml"
380
+ ]
381
+ },
382
+ {
383
+ "id": "ColorSwatch",
384
+ "proposedClassification": "recipe",
385
+ "proposedResolution": {
386
+ "surface": "html",
387
+ "implementation": "renderColorSwatch",
388
+ "source": "packages/mcp-server/src/render/component-map.ts"
389
+ },
390
+ "approvalState": "pending-derek-approval",
391
+ "evidence": [
392
+ "packages/mcp-server/src/render/component-map.ts#renderColorSwatch",
393
+ "traits/visual/Colorized.trait.yaml"
394
+ ]
395
+ },
396
+ {
397
+ "id": "ColorizedBadge",
398
+ "proposedClassification": "recipe",
399
+ "proposedResolution": {
400
+ "surface": "html",
401
+ "implementation": "renderColorizedBadge",
402
+ "source": "packages/mcp-server/src/render/component-map.ts"
403
+ },
404
+ "approvalState": "pending-derek-approval",
405
+ "evidence": [
406
+ "packages/mcp-server/src/render/component-map.ts#renderColorizedBadge",
407
+ "traits/visual/Colorized.trait.yaml"
408
+ ]
409
+ },
410
+ {
411
+ "id": "CommunicationDetailPanel",
412
+ "proposedClassification": "recipe",
413
+ "proposedResolution": {
414
+ "surface": "html",
415
+ "implementation": "renderCommunicationDetailPanel",
416
+ "source": "packages/mcp-server/src/render/component-map.ts"
417
+ },
418
+ "approvalState": "pending-derek-approval",
419
+ "evidence": [
420
+ "packages/mcp-server/src/render/component-map.ts#renderCommunicationDetailPanel",
421
+ "traits/core/Communicable.trait.yaml"
422
+ ]
423
+ },
424
+ {
425
+ "id": "CycleProgressCard",
426
+ "proposedClassification": "authoring-only",
427
+ "approvalState": "pending-derek-approval",
428
+ "evidence": [
429
+ "traits/financial/Billable.trait.yaml"
430
+ ]
431
+ },
432
+ {
433
+ "id": "DatePicker",
434
+ "proposedClassification": "native",
435
+ "approvalState": "pending-derek-approval",
436
+ "evidence": [
437
+ "cmos/planning/forge-s182-product-reality-foundation-decision-memo.md#43-exact-primitive-nucleus",
438
+ "cmos/scripts/refresh_structured_data.py",
439
+ "packages/mcp-server/src/render/component-map.ts#renderDatePicker",
440
+ "src/components/base/DatePicker.tsx",
441
+ "src/index.ts"
442
+ ]
443
+ },
444
+ {
445
+ "id": "DetailHeader",
446
+ "proposedClassification": "recipe",
447
+ "proposedResolution": {
448
+ "surface": "html",
449
+ "implementation": "renderDetailHeader",
450
+ "source": "packages/mcp-server/src/render/component-map.ts"
451
+ },
452
+ "approvalState": "pending-derek-approval",
453
+ "evidence": [
454
+ "packages/mcp-server/src/render/component-map.ts#renderDetailHeader",
455
+ "traits/content/Labelled.trait.yaml"
456
+ ]
457
+ },
458
+ {
459
+ "id": "FilterPanel",
460
+ "proposedClassification": "recipe",
461
+ "proposedResolution": {
462
+ "surface": "html",
463
+ "implementation": "renderFilterPanel",
464
+ "source": "packages/mcp-server/src/render/component-map.ts"
465
+ },
466
+ "approvalState": "pending-derek-approval",
467
+ "evidence": [
468
+ "packages/mcp-server/src/render/component-map.ts#renderFilterPanel",
469
+ "traits/behavioral/Filterable.trait.yaml"
470
+ ]
471
+ },
472
+ {
473
+ "id": "FormLabelGroup",
474
+ "proposedClassification": "recipe",
475
+ "proposedResolution": {
476
+ "surface": "html",
477
+ "implementation": "renderFormLabelGroup",
478
+ "source": "packages/mcp-server/src/render/component-map.ts"
479
+ },
480
+ "approvalState": "pending-derek-approval",
481
+ "evidence": [
482
+ "packages/mcp-server/src/render/component-map.ts#renderFormLabelGroup",
483
+ "traits/content/Labelled.trait.yaml"
484
+ ]
485
+ },
486
+ {
487
+ "id": "GeoFieldMappingForm",
488
+ "proposedClassification": "recipe",
489
+ "proposedResolution": {
490
+ "surface": "html",
491
+ "implementation": "renderGeoFieldMappingForm",
492
+ "source": "packages/mcp-server/src/render/component-map.ts"
493
+ },
494
+ "approvalState": "pending-derek-approval",
495
+ "evidence": [
496
+ "packages/mcp-server/src/render/component-map.ts#renderGeoFieldMappingForm",
497
+ "traits/viz/spatial/geocodable.trait.yaml"
498
+ ]
499
+ },
500
+ {
501
+ "id": "GeoResolutionBadge",
502
+ "proposedClassification": "recipe",
503
+ "proposedResolution": {
504
+ "surface": "html",
505
+ "implementation": "renderGeoResolutionBadge",
506
+ "source": "packages/mcp-server/src/render/component-map.ts"
507
+ },
508
+ "approvalState": "pending-derek-approval",
509
+ "evidence": [
510
+ "packages/mcp-server/src/render/component-map.ts#renderGeoResolutionBadge",
511
+ "traits/viz/spatial/geocodable.trait.yaml"
512
+ ]
513
+ },
514
+ {
515
+ "id": "GeocodablePreview",
516
+ "proposedClassification": "recipe",
517
+ "proposedResolution": {
518
+ "surface": "html",
519
+ "implementation": "renderGeocodablePreview",
520
+ "source": "packages/mcp-server/src/render/component-map.ts"
521
+ },
522
+ "approvalState": "pending-derek-approval",
523
+ "evidence": [
524
+ "packages/mcp-server/src/render/component-map.ts#renderGeocodablePreview",
525
+ "traits/viz/spatial/geocodable.trait.yaml"
526
+ ]
527
+ },
528
+ {
529
+ "id": "Grid",
530
+ "proposedClassification": "native",
531
+ "approvalState": "pending-derek-approval",
532
+ "evidence": [
533
+ "cmos/planning/forge-s182-product-reality-foundation-decision-memo.md#43-exact-primitive-nucleus",
534
+ "cmos/scripts/refresh_structured_data.py",
535
+ "packages/mcp-server/src/render/component-map.ts#renderGrid"
536
+ ]
537
+ },
538
+ {
539
+ "id": "InlineLabel",
540
+ "proposedClassification": "recipe",
541
+ "proposedResolution": {
542
+ "surface": "html",
543
+ "implementation": "renderInlineLabel",
544
+ "source": "packages/mcp-server/src/render/component-map.ts"
545
+ },
546
+ "approvalState": "pending-derek-approval",
547
+ "evidence": [
548
+ "packages/mcp-server/src/render/component-map.ts#renderInlineLabel",
549
+ "traits/content/Labelled.trait.yaml"
550
+ ]
551
+ },
552
+ {
553
+ "id": "Input",
554
+ "proposedClassification": "native",
555
+ "approvalState": "pending-derek-approval",
556
+ "evidence": [
557
+ "cmos/planning/forge-s182-product-reality-foundation-decision-memo.md#43-exact-primitive-nucleus",
558
+ "cmos/scripts/refresh_structured_data.py",
559
+ "packages/mcp-server/src/render/component-map.ts#renderInput"
560
+ ]
561
+ },
562
+ {
563
+ "id": "LabelCell",
564
+ "proposedClassification": "recipe",
565
+ "proposedResolution": {
566
+ "surface": "html",
567
+ "implementation": "renderLabelCell",
568
+ "source": "packages/mcp-server/src/render/component-map.ts"
569
+ },
570
+ "approvalState": "pending-derek-approval",
571
+ "evidence": [
572
+ "packages/mcp-server/src/render/component-map.ts#renderLabelCell",
573
+ "traits/content/Labelled.trait.yaml"
574
+ ]
575
+ },
576
+ {
577
+ "id": "MembershipAuditTimeline",
578
+ "proposedClassification": "recipe",
579
+ "proposedResolution": {
580
+ "surface": "html",
581
+ "implementation": "renderMembershipAuditTimeline",
582
+ "source": "packages/mcp-server/src/render/component-map.ts"
583
+ },
584
+ "approvalState": "pending-derek-approval",
585
+ "evidence": [
586
+ "packages/mcp-server/src/render/component-map.ts#renderMembershipAuditTimeline",
587
+ "traits/core/Authable.trait.yaml"
588
+ ]
589
+ },
590
+ {
591
+ "id": "MembershipPanel",
592
+ "proposedClassification": "recipe",
593
+ "proposedResolution": {
594
+ "surface": "html",
595
+ "implementation": "renderMembershipPanel",
596
+ "source": "packages/mcp-server/src/render/component-map.ts"
597
+ },
598
+ "approvalState": "pending-derek-approval",
599
+ "evidence": [
600
+ "packages/mcp-server/src/render/component-map.ts#renderMembershipPanel",
601
+ "traits/core/Authable.trait.yaml"
602
+ ]
603
+ },
604
+ {
605
+ "id": "MessageEventTimeline",
606
+ "proposedClassification": "recipe",
607
+ "proposedResolution": {
608
+ "surface": "html",
609
+ "implementation": "renderMessageEventTimeline",
610
+ "source": "packages/mcp-server/src/render/component-map.ts"
611
+ },
612
+ "approvalState": "pending-derek-approval",
613
+ "evidence": [
614
+ "packages/mcp-server/src/render/component-map.ts#renderMessageEventTimeline",
615
+ "traits/core/Communicable.trait.yaml"
616
+ ]
617
+ },
618
+ {
619
+ "id": "MessageStatusBadge",
620
+ "proposedClassification": "recipe",
621
+ "proposedResolution": {
622
+ "surface": "html",
623
+ "implementation": "renderMessageStatusBadge",
624
+ "source": "packages/mcp-server/src/render/component-map.ts"
625
+ },
626
+ "approvalState": "pending-derek-approval",
627
+ "evidence": [
628
+ "packages/mcp-server/src/render/component-map.ts#renderMessageStatusBadge",
629
+ "traits/core/Communicable.trait.yaml"
630
+ ]
631
+ },
632
+ {
633
+ "id": "OwnerBadge",
634
+ "proposedClassification": "recipe",
635
+ "proposedResolution": {
636
+ "surface": "html",
637
+ "implementation": "renderOwnerBadge",
638
+ "source": "packages/mcp-server/src/render/component-map.ts"
639
+ },
640
+ "approvalState": "pending-derek-approval",
641
+ "evidence": [
642
+ "packages/mcp-server/src/render/component-map.ts#renderOwnerBadge",
643
+ "traits/structural/Ownerable.trait.yaml"
644
+ ]
645
+ },
646
+ {
647
+ "id": "OwnershipMeta",
648
+ "proposedClassification": "recipe",
649
+ "proposedResolution": {
650
+ "surface": "html",
651
+ "implementation": "renderOwnershipMeta",
652
+ "source": "packages/mcp-server/src/render/component-map.ts"
653
+ },
654
+ "approvalState": "pending-derek-approval",
655
+ "evidence": [
656
+ "packages/mcp-server/src/render/component-map.ts#renderOwnershipMeta",
657
+ "traits/structural/Ownerable.trait.yaml"
658
+ ]
659
+ },
660
+ {
661
+ "id": "OwnershipSummary",
662
+ "proposedClassification": "recipe",
663
+ "proposedResolution": {
664
+ "surface": "html",
665
+ "implementation": "renderOwnershipSummary",
666
+ "source": "packages/mcp-server/src/render/component-map.ts"
667
+ },
668
+ "approvalState": "pending-derek-approval",
669
+ "evidence": [
670
+ "packages/mcp-server/src/render/component-map.ts#renderOwnershipSummary",
671
+ "traits/structural/Ownerable.trait.yaml"
672
+ ]
673
+ },
674
+ {
675
+ "id": "PaginationBar",
676
+ "proposedClassification": "recipe",
677
+ "proposedResolution": {
678
+ "surface": "html",
679
+ "implementation": "renderPaginationBar",
680
+ "source": "packages/mcp-server/src/render/component-map.ts"
681
+ },
682
+ "approvalState": "pending-derek-approval",
683
+ "evidence": [
684
+ "packages/mcp-server/src/render/component-map.ts#renderPaginationBar",
685
+ "traits/behavioral/Pageable.trait.yaml"
686
+ ]
687
+ },
688
+ {
689
+ "id": "PaymentEventTimeline",
690
+ "proposedClassification": "authoring-only",
691
+ "approvalState": "pending-derek-approval",
692
+ "evidence": [
693
+ "traits/financial/Billable.trait.yaml"
694
+ ]
695
+ },
696
+ {
697
+ "id": "PaymentTimeline",
698
+ "proposedClassification": "authoring-only",
699
+ "approvalState": "pending-derek-approval",
700
+ "evidence": [
701
+ "traits/financial/Billable.trait.yaml"
702
+ ]
703
+ },
704
+ {
705
+ "id": "PreferenceEditor",
706
+ "proposedClassification": "recipe",
707
+ "proposedResolution": {
708
+ "surface": "html",
709
+ "implementation": "renderPreferenceEditor",
710
+ "source": "packages/mcp-server/src/render/component-map.ts"
711
+ },
712
+ "approvalState": "pending-derek-approval",
713
+ "evidence": [
714
+ "packages/mcp-server/src/render/component-map.ts#renderPreferenceEditor",
715
+ "traits/core/Preferenceable.trait.yaml"
716
+ ]
717
+ },
718
+ {
719
+ "id": "PreferencePanel",
720
+ "proposedClassification": "recipe",
721
+ "proposedResolution": {
722
+ "surface": "html",
723
+ "implementation": "renderPreferencePanel",
724
+ "source": "packages/mcp-server/src/render/component-map.ts"
725
+ },
726
+ "approvalState": "pending-derek-approval",
727
+ "evidence": [
728
+ "packages/mcp-server/src/render/component-map.ts#renderPreferencePanel",
729
+ "traits/core/Preferenceable.trait.yaml"
730
+ ]
731
+ },
732
+ {
733
+ "id": "PreferenceSummaryBadge",
734
+ "proposedClassification": "recipe",
735
+ "proposedResolution": {
736
+ "surface": "html",
737
+ "implementation": "renderPreferenceSummaryBadge",
738
+ "source": "packages/mcp-server/src/render/component-map.ts"
739
+ },
740
+ "approvalState": "pending-derek-approval",
741
+ "evidence": [
742
+ "packages/mcp-server/src/render/component-map.ts#renderPreferenceSummaryBadge",
743
+ "traits/core/Preferenceable.trait.yaml"
744
+ ]
745
+ },
746
+ {
747
+ "id": "PreferenceTimeline",
748
+ "proposedClassification": "recipe",
749
+ "proposedResolution": {
750
+ "surface": "html",
751
+ "implementation": "renderPreferenceTimeline",
752
+ "source": "packages/mcp-server/src/render/component-map.ts"
753
+ },
754
+ "approvalState": "pending-derek-approval",
755
+ "evidence": [
756
+ "packages/mcp-server/src/render/component-map.ts#renderPreferenceTimeline",
757
+ "traits/core/Preferenceable.trait.yaml"
758
+ ]
759
+ },
760
+ {
761
+ "id": "PriceBadge",
762
+ "proposedClassification": "recipe",
763
+ "proposedResolution": {
764
+ "surface": "html",
765
+ "implementation": "renderPriceBadge",
766
+ "source": "packages/mcp-server/src/render/component-map.ts"
767
+ },
768
+ "approvalState": "pending-derek-approval",
769
+ "evidence": [
770
+ "packages/mcp-server/src/render/component-map.ts#renderPriceBadge",
771
+ "traits/financial/Priceable.trait.yaml"
772
+ ]
773
+ },
774
+ {
775
+ "id": "PriceCardMeta",
776
+ "proposedClassification": "recipe",
777
+ "proposedResolution": {
778
+ "surface": "html",
779
+ "implementation": "renderPriceCardMeta",
780
+ "source": "packages/mcp-server/src/render/component-map.ts"
781
+ },
782
+ "approvalState": "pending-derek-approval",
783
+ "evidence": [
784
+ "packages/mcp-server/src/render/component-map.ts#renderPriceCardMeta",
785
+ "traits/financial/Priceable.trait.yaml"
786
+ ]
787
+ },
788
+ {
789
+ "id": "PriceSummary",
790
+ "proposedClassification": "recipe",
791
+ "proposedResolution": {
792
+ "surface": "html",
793
+ "implementation": "renderPriceSummary",
794
+ "source": "packages/mcp-server/src/render/component-map.ts"
795
+ },
796
+ "approvalState": "pending-derek-approval",
797
+ "evidence": [
798
+ "packages/mcp-server/src/render/component-map.ts#renderPriceSummary",
799
+ "traits/financial/Priceable.trait.yaml"
800
+ ]
801
+ },
802
+ {
803
+ "id": "RelativeTimestamp",
804
+ "proposedClassification": "recipe",
805
+ "proposedResolution": {
806
+ "surface": "html",
807
+ "implementation": "renderRelativeTimestamp",
808
+ "source": "packages/mcp-server/src/render/component-map.ts"
809
+ },
810
+ "approvalState": "pending-derek-approval",
811
+ "evidence": [
812
+ "packages/mcp-server/src/render/component-map.ts#renderRelativeTimestamp",
813
+ "traits/lifecycle/Timestampable.trait.yaml"
814
+ ]
815
+ },
816
+ {
817
+ "id": "RoleAssignmentForm",
818
+ "proposedClassification": "recipe",
819
+ "proposedResolution": {
820
+ "surface": "html",
821
+ "implementation": "renderRoleAssignmentForm",
822
+ "source": "packages/mcp-server/src/render/component-map.ts"
823
+ },
824
+ "approvalState": "pending-derek-approval",
825
+ "evidence": [
826
+ "packages/mcp-server/src/render/component-map.ts#renderRoleAssignmentForm",
827
+ "traits/core/Authable.trait.yaml"
828
+ ]
829
+ },
830
+ {
831
+ "id": "RoleBadgeList",
832
+ "proposedClassification": "recipe",
833
+ "proposedResolution": {
834
+ "surface": "html",
835
+ "implementation": "renderRoleBadgeList",
836
+ "source": "packages/mcp-server/src/render/component-map.ts"
837
+ },
838
+ "approvalState": "pending-derek-approval",
839
+ "evidence": [
840
+ "packages/mcp-server/src/render/component-map.ts#renderRoleBadgeList",
841
+ "traits/core/Authable.trait.yaml"
842
+ ]
843
+ },
844
+ {
845
+ "id": "SearchInput",
846
+ "proposedClassification": "recipe",
847
+ "proposedResolution": {
848
+ "surface": "html",
849
+ "implementation": "renderSearchInput",
850
+ "source": "packages/mcp-server/src/render/component-map.ts"
851
+ },
852
+ "approvalState": "pending-derek-approval",
853
+ "evidence": [
854
+ "packages/mcp-server/src/render/component-map.ts#renderSearchInput",
855
+ "traits/behavioral/Searchable.trait.yaml"
856
+ ]
857
+ },
858
+ {
859
+ "id": "Select",
860
+ "proposedClassification": "native",
861
+ "approvalState": "pending-derek-approval",
862
+ "evidence": [
863
+ "cmos/planning/forge-s182-product-reality-foundation-decision-memo.md#43-exact-primitive-nucleus",
864
+ "cmos/scripts/refresh_structured_data.py",
865
+ "packages/mcp-server/src/render/component-map.ts#renderSelect",
866
+ "src/components/base/Select.tsx",
867
+ "src/index.ts"
868
+ ]
869
+ },
870
+ {
871
+ "id": "SortIndicator",
872
+ "proposedClassification": "authoring-only",
873
+ "approvalState": "pending-derek-approval",
874
+ "evidence": [
875
+ "traits/behavioral/Sortable.trait.yaml"
876
+ ]
877
+ },
878
+ {
879
+ "id": "Stack",
880
+ "proposedClassification": "native",
881
+ "approvalState": "pending-derek-approval",
882
+ "evidence": [
883
+ "cmos/planning/forge-s182-product-reality-foundation-decision-memo.md#43-exact-primitive-nucleus",
884
+ "cmos/scripts/refresh_structured_data.py",
885
+ "packages/mcp-server/src/render/component-map.ts#renderStack"
886
+ ]
887
+ },
888
+ {
889
+ "id": "StateTransitionEvent",
890
+ "proposedClassification": "recipe",
891
+ "proposedResolution": {
892
+ "surface": "html",
893
+ "implementation": "renderStateTransitionEvent",
894
+ "source": "packages/mcp-server/src/render/component-map.ts"
895
+ },
896
+ "approvalState": "pending-derek-approval",
897
+ "evidence": [
898
+ "packages/mcp-server/src/render/component-map.ts#renderStateTransitionEvent",
899
+ "traits/lifecycle/Stateful.trait.yaml"
900
+ ]
901
+ },
902
+ {
903
+ "id": "StatusBadge",
904
+ "proposedClassification": "recipe",
905
+ "proposedResolution": {
906
+ "surface": "html",
907
+ "implementation": "renderStatusBadge",
908
+ "source": "packages/mcp-server/src/render/component-map.ts"
909
+ },
910
+ "approvalState": "pending-derek-approval",
911
+ "evidence": [
912
+ "packages/mcp-server/src/render/component-map.ts#renderStatusBadge",
913
+ "traits/lifecycle/Stateful.trait.yaml",
914
+ "traits/visual/Statusable.trait.yaml"
915
+ ]
916
+ },
917
+ {
918
+ "id": "StatusColorLegend",
919
+ "proposedClassification": "recipe",
920
+ "proposedResolution": {
921
+ "surface": "html",
922
+ "implementation": "renderStatusColorLegend",
923
+ "source": "packages/mcp-server/src/render/component-map.ts"
924
+ },
925
+ "approvalState": "pending-derek-approval",
926
+ "evidence": [
927
+ "packages/mcp-server/src/render/component-map.ts#renderStatusColorLegend",
928
+ "traits/visual/Colorized.trait.yaml"
929
+ ]
930
+ },
931
+ {
932
+ "id": "StatusSelector",
933
+ "proposedClassification": "recipe",
934
+ "proposedResolution": {
935
+ "surface": "html",
936
+ "implementation": "renderStatusSelector",
937
+ "source": "packages/mcp-server/src/render/component-map.ts"
938
+ },
939
+ "approvalState": "pending-derek-approval",
940
+ "evidence": [
941
+ "packages/mcp-server/src/render/component-map.ts#renderStatusSelector",
942
+ "traits/lifecycle/Stateful.trait.yaml"
943
+ ]
944
+ },
945
+ {
946
+ "id": "StatusTimeline",
947
+ "proposedClassification": "recipe",
948
+ "proposedResolution": {
949
+ "surface": "html",
950
+ "implementation": "renderStatusTimeline",
951
+ "source": "packages/mcp-server/src/render/component-map.ts"
952
+ },
953
+ "approvalState": "pending-derek-approval",
954
+ "evidence": [
955
+ "packages/mcp-server/src/render/component-map.ts#renderStatusTimeline",
956
+ "traits/lifecycle/Stateful.trait.yaml"
957
+ ]
958
+ },
959
+ {
960
+ "id": "Table",
961
+ "proposedClassification": "native",
962
+ "approvalState": "pending-derek-approval",
963
+ "evidence": [
964
+ "cmos/planning/forge-s182-product-reality-foundation-decision-memo.md#43-exact-primitive-nucleus",
965
+ "cmos/scripts/refresh_structured_data.py",
966
+ "packages/mcp-server/src/render/component-map.ts#renderTable",
967
+ "src/components/base/Table.tsx",
968
+ "src/index.ts"
969
+ ]
970
+ },
971
+ {
972
+ "id": "Tabs",
973
+ "proposedClassification": "native",
974
+ "approvalState": "pending-derek-approval",
975
+ "evidence": [
976
+ "cmos/planning/forge-s182-product-reality-foundation-decision-memo.md#43-exact-primitive-nucleus",
977
+ "cmos/scripts/refresh_structured_data.py",
978
+ "packages/mcp-server/src/render/component-map.ts#renderTabs",
979
+ "src/components/tabs/Tabs.tsx",
980
+ "src/index.ts"
981
+ ]
982
+ },
983
+ {
984
+ "id": "TagInput",
985
+ "proposedClassification": "native",
986
+ "approvalState": "pending-derek-approval",
987
+ "evidence": [
988
+ "packages/mcp-server/src/render/component-map.ts#renderTagInput",
989
+ "src/components/classification/TagInput.tsx",
990
+ "src/index.ts",
991
+ "traits/behavioral/Taggable.trait.yaml"
992
+ ]
993
+ },
994
+ {
995
+ "id": "TagManager",
996
+ "proposedClassification": "recipe",
997
+ "proposedResolution": {
998
+ "surface": "html",
999
+ "implementation": "renderTagManager",
1000
+ "source": "packages/mcp-server/src/render/component-map.ts"
1001
+ },
1002
+ "approvalState": "pending-derek-approval",
1003
+ "evidence": [
1004
+ "packages/mcp-server/src/render/component-map.ts#renderTagManager",
1005
+ "traits/behavioral/Taggable.trait.yaml"
1006
+ ]
1007
+ },
1008
+ {
1009
+ "id": "TagPills",
1010
+ "proposedClassification": "recipe",
1011
+ "proposedResolution": {
1012
+ "surface": "html",
1013
+ "implementation": "renderTagPills",
1014
+ "source": "packages/mcp-server/src/render/component-map.ts"
1015
+ },
1016
+ "approvalState": "pending-derek-approval",
1017
+ "evidence": [
1018
+ "packages/mcp-server/src/render/component-map.ts#renderTagPills",
1019
+ "traits/behavioral/Taggable.trait.yaml"
1020
+ ]
1021
+ },
1022
+ {
1023
+ "id": "TagSummary",
1024
+ "proposedClassification": "recipe",
1025
+ "proposedResolution": {
1026
+ "surface": "html",
1027
+ "implementation": "renderTagSummary",
1028
+ "source": "packages/mcp-server/src/render/component-map.ts"
1029
+ },
1030
+ "approvalState": "pending-derek-approval",
1031
+ "evidence": [
1032
+ "packages/mcp-server/src/render/component-map.ts#renderTagSummary",
1033
+ "traits/behavioral/Taggable.trait.yaml"
1034
+ ]
1035
+ },
1036
+ {
1037
+ "id": "TemplatePicker",
1038
+ "proposedClassification": "recipe",
1039
+ "proposedResolution": {
1040
+ "surface": "html",
1041
+ "implementation": "renderTemplatePicker",
1042
+ "source": "packages/mcp-server/src/render/component-map.ts"
1043
+ },
1044
+ "approvalState": "pending-derek-approval",
1045
+ "evidence": [
1046
+ "packages/mcp-server/src/render/component-map.ts#renderTemplatePicker",
1047
+ "traits/core/Communicable.trait.yaml"
1048
+ ]
1049
+ },
1050
+ {
1051
+ "id": "Text",
1052
+ "proposedClassification": "native",
1053
+ "approvalState": "pending-derek-approval",
1054
+ "evidence": [
1055
+ "cmos/planning/forge-s182-product-reality-foundation-decision-memo.md#43-exact-primitive-nucleus",
1056
+ "cmos/scripts/refresh_structured_data.py",
1057
+ "packages/mcp-server/src/render/component-map.ts#renderText",
1058
+ "src/components/base/Text.tsx",
1059
+ "src/index.ts"
1060
+ ]
1061
+ },
1062
+ {
1063
+ "id": "Textarea",
1064
+ "proposedClassification": "native",
1065
+ "approvalState": "pending-derek-approval",
1066
+ "evidence": [
1067
+ "cmos/planning/forge-s182-product-reality-foundation-decision-memo.md#43-exact-primitive-nucleus",
1068
+ "cmos/scripts/refresh_structured_data.py",
1069
+ "packages/mcp-server/src/render/component-map.ts#renderTextarea",
1070
+ "src/components/base/Textarea.tsx",
1071
+ "src/index.ts"
1072
+ ]
1073
+ },
1074
+ {
1075
+ "id": "TimelineEntryLabel",
1076
+ "proposedClassification": "authoring-only",
1077
+ "approvalState": "pending-derek-approval",
1078
+ "evidence": [
1079
+ "traits/content/Labelled.trait.yaml"
1080
+ ]
1081
+ },
1082
+ {
1083
+ "id": "VizAreaControls",
1084
+ "proposedClassification": "recipe",
1085
+ "proposedResolution": {
1086
+ "surface": "html",
1087
+ "implementation": "renderVizAreaControls",
1088
+ "source": "packages/mcp-server/src/render/component-map.ts"
1089
+ },
1090
+ "approvalState": "pending-derek-approval",
1091
+ "evidence": [
1092
+ "packages/mcp-server/src/render/component-map.ts#renderVizAreaControls",
1093
+ "traits/viz/mark-area.trait.yaml"
1094
+ ]
1095
+ },
1096
+ {
1097
+ "id": "VizAreaPreview",
1098
+ "proposedClassification": "recipe",
1099
+ "proposedResolution": {
1100
+ "surface": "html",
1101
+ "implementation": "renderVizAreaPreview",
1102
+ "source": "packages/mcp-server/src/render/component-map.ts"
1103
+ },
1104
+ "approvalState": "pending-derek-approval",
1105
+ "evidence": [
1106
+ "packages/mcp-server/src/render/component-map.ts#renderVizAreaPreview",
1107
+ "traits/viz/mark-area.trait.yaml"
1108
+ ]
1109
+ },
1110
+ {
1111
+ "id": "VizAxisControls",
1112
+ "proposedClassification": "recipe",
1113
+ "proposedResolution": {
1114
+ "surface": "html",
1115
+ "implementation": "renderVizAxisControls",
1116
+ "source": "packages/mcp-server/src/render/component-map.ts"
1117
+ },
1118
+ "approvalState": "pending-derek-approval",
1119
+ "evidence": [
1120
+ "packages/mcp-server/src/render/component-map.ts#renderVizAxisControls",
1121
+ "traits/viz/encoding-position-x.trait.yaml",
1122
+ "traits/viz/encoding-position-y.trait.yaml"
1123
+ ]
1124
+ },
1125
+ {
1126
+ "id": "VizAxisSummary",
1127
+ "proposedClassification": "recipe",
1128
+ "proposedResolution": {
1129
+ "surface": "html",
1130
+ "implementation": "renderVizAxisSummary",
1131
+ "source": "packages/mcp-server/src/render/component-map.ts"
1132
+ },
1133
+ "approvalState": "pending-derek-approval",
1134
+ "evidence": [
1135
+ "packages/mcp-server/src/render/component-map.ts#renderVizAxisSummary",
1136
+ "traits/viz/encoding-position-x.trait.yaml",
1137
+ "traits/viz/encoding-position-y.trait.yaml"
1138
+ ]
1139
+ },
1140
+ {
1141
+ "id": "VizColorControls",
1142
+ "proposedClassification": "recipe",
1143
+ "proposedResolution": {
1144
+ "surface": "html",
1145
+ "implementation": "renderVizColorControls",
1146
+ "source": "packages/mcp-server/src/render/component-map.ts"
1147
+ },
1148
+ "approvalState": "pending-derek-approval",
1149
+ "evidence": [
1150
+ "packages/mcp-server/src/render/component-map.ts#renderVizColorControls",
1151
+ "traits/viz/encoding-color.trait.yaml"
1152
+ ]
1153
+ },
1154
+ {
1155
+ "id": "VizColorLegendConfig",
1156
+ "proposedClassification": "recipe",
1157
+ "proposedResolution": {
1158
+ "surface": "html",
1159
+ "implementation": "renderVizColorLegendConfig",
1160
+ "source": "packages/mcp-server/src/render/component-map.ts"
1161
+ },
1162
+ "approvalState": "pending-derek-approval",
1163
+ "evidence": [
1164
+ "packages/mcp-server/src/render/component-map.ts#renderVizColorLegendConfig",
1165
+ "traits/viz/encoding-color.trait.yaml"
1166
+ ]
1167
+ },
1168
+ {
1169
+ "id": "VizEncodingBadge",
1170
+ "proposedClassification": "recipe",
1171
+ "proposedResolution": {
1172
+ "surface": "html",
1173
+ "implementation": "renderVizEncodingBadge",
1174
+ "source": "packages/mcp-server/src/render/component-map.ts"
1175
+ },
1176
+ "approvalState": "pending-derek-approval",
1177
+ "evidence": [
1178
+ "packages/mcp-server/src/render/component-map.ts#renderVizEncodingBadge",
1179
+ "traits/viz/encoding-color.trait.yaml",
1180
+ "traits/viz/encoding-position-x.trait.yaml",
1181
+ "traits/viz/encoding-position-y.trait.yaml",
1182
+ "traits/viz/encoding-size.trait.yaml"
1183
+ ]
1184
+ },
1185
+ {
1186
+ "id": "VizHeatmapControls",
1187
+ "proposedClassification": "recipe",
1188
+ "proposedResolution": {
1189
+ "surface": "html",
1190
+ "implementation": "renderVizHeatmapControls",
1191
+ "source": "packages/mcp-server/src/render/component-map.ts"
1192
+ },
1193
+ "approvalState": "pending-derek-approval",
1194
+ "evidence": [
1195
+ "packages/mcp-server/src/render/component-map.ts#renderVizHeatmapControls"
1196
+ ]
1197
+ },
1198
+ {
1199
+ "id": "VizHeatmapPreview",
1200
+ "proposedClassification": "recipe",
1201
+ "proposedResolution": {
1202
+ "surface": "html",
1203
+ "implementation": "renderVizHeatmapPreview",
1204
+ "source": "packages/mcp-server/src/render/component-map.ts"
1205
+ },
1206
+ "approvalState": "pending-derek-approval",
1207
+ "evidence": [
1208
+ "packages/mcp-server/src/render/component-map.ts#renderVizHeatmapPreview"
1209
+ ]
1210
+ },
1211
+ {
1212
+ "id": "VizLineControls",
1213
+ "proposedClassification": "recipe",
1214
+ "proposedResolution": {
1215
+ "surface": "html",
1216
+ "implementation": "renderVizLineControls",
1217
+ "source": "packages/mcp-server/src/render/component-map.ts"
1218
+ },
1219
+ "approvalState": "pending-derek-approval",
1220
+ "evidence": [
1221
+ "packages/mcp-server/src/render/component-map.ts#renderVizLineControls",
1222
+ "traits/viz/mark-line.trait.yaml"
1223
+ ]
1224
+ },
1225
+ {
1226
+ "id": "VizLinePreview",
1227
+ "proposedClassification": "recipe",
1228
+ "proposedResolution": {
1229
+ "surface": "html",
1230
+ "implementation": "renderVizLinePreview",
1231
+ "source": "packages/mcp-server/src/render/component-map.ts"
1232
+ },
1233
+ "approvalState": "pending-derek-approval",
1234
+ "evidence": [
1235
+ "packages/mcp-server/src/render/component-map.ts#renderVizLinePreview",
1236
+ "traits/viz/mark-line.trait.yaml"
1237
+ ]
1238
+ },
1239
+ {
1240
+ "id": "VizMarkControls",
1241
+ "proposedClassification": "recipe",
1242
+ "proposedResolution": {
1243
+ "surface": "html",
1244
+ "implementation": "renderVizMarkControls",
1245
+ "source": "packages/mcp-server/src/render/component-map.ts"
1246
+ },
1247
+ "approvalState": "pending-derek-approval",
1248
+ "evidence": [
1249
+ "packages/mcp-server/src/render/component-map.ts#renderVizMarkControls",
1250
+ "traits/viz/mark-bar.trait.yaml"
1251
+ ]
1252
+ },
1253
+ {
1254
+ "id": "VizMarkPreview",
1255
+ "proposedClassification": "recipe",
1256
+ "proposedResolution": {
1257
+ "surface": "html",
1258
+ "implementation": "renderVizMarkPreview",
1259
+ "source": "packages/mcp-server/src/render/component-map.ts"
1260
+ },
1261
+ "approvalState": "pending-derek-approval",
1262
+ "evidence": [
1263
+ "packages/mcp-server/src/render/component-map.ts#renderVizMarkPreview",
1264
+ "traits/viz/mark-bar.trait.yaml"
1265
+ ]
1266
+ },
1267
+ {
1268
+ "id": "VizOpacityControls",
1269
+ "proposedClassification": "recipe",
1270
+ "proposedResolution": {
1271
+ "surface": "html",
1272
+ "implementation": "renderVizOpacityControls",
1273
+ "source": "packages/mcp-server/src/render/component-map.ts"
1274
+ },
1275
+ "approvalState": "pending-derek-approval",
1276
+ "evidence": [
1277
+ "packages/mcp-server/src/render/component-map.ts#renderVizOpacityControls"
1278
+ ]
1279
+ },
1280
+ {
1281
+ "id": "VizOpacitySummary",
1282
+ "proposedClassification": "recipe",
1283
+ "proposedResolution": {
1284
+ "surface": "html",
1285
+ "implementation": "renderVizOpacitySummary",
1286
+ "source": "packages/mcp-server/src/render/component-map.ts"
1287
+ },
1288
+ "approvalState": "pending-derek-approval",
1289
+ "evidence": [
1290
+ "packages/mcp-server/src/render/component-map.ts#renderVizOpacitySummary"
1291
+ ]
1292
+ },
1293
+ {
1294
+ "id": "VizPointControls",
1295
+ "proposedClassification": "recipe",
1296
+ "proposedResolution": {
1297
+ "surface": "html",
1298
+ "implementation": "renderVizPointControls",
1299
+ "source": "packages/mcp-server/src/render/component-map.ts"
1300
+ },
1301
+ "approvalState": "pending-derek-approval",
1302
+ "evidence": [
1303
+ "packages/mcp-server/src/render/component-map.ts#renderVizPointControls",
1304
+ "traits/viz/mark-point.trait.yaml"
1305
+ ]
1306
+ },
1307
+ {
1308
+ "id": "VizPointPreview",
1309
+ "proposedClassification": "recipe",
1310
+ "proposedResolution": {
1311
+ "surface": "html",
1312
+ "implementation": "renderVizPointPreview",
1313
+ "source": "packages/mcp-server/src/render/component-map.ts"
1314
+ },
1315
+ "approvalState": "pending-derek-approval",
1316
+ "evidence": [
1317
+ "packages/mcp-server/src/render/component-map.ts#renderVizPointPreview",
1318
+ "traits/viz/mark-point.trait.yaml"
1319
+ ]
1320
+ },
1321
+ {
1322
+ "id": "VizRoleBadge",
1323
+ "proposedClassification": "recipe",
1324
+ "proposedResolution": {
1325
+ "surface": "html",
1326
+ "implementation": "renderVizRoleBadge",
1327
+ "source": "packages/mcp-server/src/render/component-map.ts"
1328
+ },
1329
+ "approvalState": "pending-derek-approval",
1330
+ "evidence": [
1331
+ "packages/mcp-server/src/render/component-map.ts#renderVizRoleBadge",
1332
+ "traits/viz/mark-area.trait.yaml",
1333
+ "traits/viz/mark-bar.trait.yaml",
1334
+ "traits/viz/mark-line.trait.yaml",
1335
+ "traits/viz/mark-point.trait.yaml"
1336
+ ]
1337
+ },
1338
+ {
1339
+ "id": "VizScaleControls",
1340
+ "proposedClassification": "recipe",
1341
+ "proposedResolution": {
1342
+ "surface": "html",
1343
+ "implementation": "renderVizScaleControls",
1344
+ "source": "packages/mcp-server/src/render/component-map.ts"
1345
+ },
1346
+ "approvalState": "pending-derek-approval",
1347
+ "evidence": [
1348
+ "packages/mcp-server/src/render/component-map.ts#renderVizScaleControls",
1349
+ "traits/viz/scale-linear.trait.yaml",
1350
+ "traits/viz/scale-temporal.trait.yaml"
1351
+ ]
1352
+ },
1353
+ {
1354
+ "id": "VizScaleSummary",
1355
+ "proposedClassification": "recipe",
1356
+ "proposedResolution": {
1357
+ "surface": "html",
1358
+ "implementation": "renderVizScaleSummary",
1359
+ "source": "packages/mcp-server/src/render/component-map.ts"
1360
+ },
1361
+ "approvalState": "pending-derek-approval",
1362
+ "evidence": [
1363
+ "packages/mcp-server/src/render/component-map.ts#renderVizScaleSummary",
1364
+ "traits/viz/scale-linear.trait.yaml",
1365
+ "traits/viz/scale-temporal.trait.yaml"
1366
+ ]
1367
+ },
1368
+ {
1369
+ "id": "VizScatterControls",
1370
+ "proposedClassification": "recipe",
1371
+ "proposedResolution": {
1372
+ "surface": "html",
1373
+ "implementation": "renderVizScatterControls",
1374
+ "source": "packages/mcp-server/src/render/component-map.ts"
1375
+ },
1376
+ "approvalState": "pending-derek-approval",
1377
+ "evidence": [
1378
+ "packages/mcp-server/src/render/component-map.ts#renderVizScatterControls"
1379
+ ]
1380
+ },
1381
+ {
1382
+ "id": "VizScatterPreview",
1383
+ "proposedClassification": "recipe",
1384
+ "proposedResolution": {
1385
+ "surface": "html",
1386
+ "implementation": "renderVizScatterPreview",
1387
+ "source": "packages/mcp-server/src/render/component-map.ts"
1388
+ },
1389
+ "approvalState": "pending-derek-approval",
1390
+ "evidence": [
1391
+ "packages/mcp-server/src/render/component-map.ts#renderVizScatterPreview"
1392
+ ]
1393
+ },
1394
+ {
1395
+ "id": "VizShapeControls",
1396
+ "proposedClassification": "recipe",
1397
+ "proposedResolution": {
1398
+ "surface": "html",
1399
+ "implementation": "renderVizShapeControls",
1400
+ "source": "packages/mcp-server/src/render/component-map.ts"
1401
+ },
1402
+ "approvalState": "pending-derek-approval",
1403
+ "evidence": [
1404
+ "packages/mcp-server/src/render/component-map.ts#renderVizShapeControls"
1405
+ ]
1406
+ },
1407
+ {
1408
+ "id": "VizShapeLegend",
1409
+ "proposedClassification": "recipe",
1410
+ "proposedResolution": {
1411
+ "surface": "html",
1412
+ "implementation": "renderVizShapeLegend",
1413
+ "source": "packages/mcp-server/src/render/component-map.ts"
1414
+ },
1415
+ "approvalState": "pending-derek-approval",
1416
+ "evidence": [
1417
+ "packages/mcp-server/src/render/component-map.ts#renderVizShapeLegend"
1418
+ ]
1419
+ },
1420
+ {
1421
+ "id": "VizSizeControls",
1422
+ "proposedClassification": "recipe",
1423
+ "proposedResolution": {
1424
+ "surface": "html",
1425
+ "implementation": "renderVizSizeControls",
1426
+ "source": "packages/mcp-server/src/render/component-map.ts"
1427
+ },
1428
+ "approvalState": "pending-derek-approval",
1429
+ "evidence": [
1430
+ "packages/mcp-server/src/render/component-map.ts#renderVizSizeControls",
1431
+ "traits/viz/encoding-size.trait.yaml"
1432
+ ]
1433
+ },
1434
+ {
1435
+ "id": "VizSizeSummary",
1436
+ "proposedClassification": "recipe",
1437
+ "proposedResolution": {
1438
+ "surface": "html",
1439
+ "implementation": "renderVizSizeSummary",
1440
+ "source": "packages/mcp-server/src/render/component-map.ts"
1441
+ },
1442
+ "approvalState": "pending-derek-approval",
1443
+ "evidence": [
1444
+ "packages/mcp-server/src/render/component-map.ts#renderVizSizeSummary",
1445
+ "traits/viz/encoding-size.trait.yaml"
1446
+ ]
1447
+ }
1448
+ ]
1449
+ }