@grifhinz/logics-manager 2.5.2 → 2.7.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.
@@ -37,6 +37,128 @@
37
37
  line-height: 1.3;
38
38
  }
39
39
 
40
+ .viewer-project-switcher {
41
+ position: relative;
42
+ min-width: 0;
43
+ }
44
+
45
+ .viewer-project-switcher__button {
46
+ display: inline-flex;
47
+ align-items: center;
48
+ gap: 6px;
49
+ cursor: pointer;
50
+ }
51
+
52
+ .viewer-project-switcher__button[disabled] {
53
+ cursor: default;
54
+ opacity: 0.75;
55
+ }
56
+
57
+ .viewer-project-switcher__chevron {
58
+ font-size: 9px;
59
+ opacity: 0.75;
60
+ }
61
+
62
+ .viewer-project-switcher__menu {
63
+ position: absolute;
64
+ z-index: 20;
65
+ top: calc(100% + 6px);
66
+ left: 0;
67
+ min-width: 260px;
68
+ max-width: min(420px, calc(100vw - 24px));
69
+ max-height: min(360px, calc(100vh - 96px));
70
+ overflow: auto;
71
+ padding: 6px;
72
+ border: 1px solid var(--vscode-panel-border, #333333);
73
+ border-radius: 6px;
74
+ background: var(--vscode-dropdown-background, var(--vscode-editorWidget-background, #202020));
75
+ box-shadow: 0 12px 28px rgb(0 0 0 / 28%);
76
+ }
77
+
78
+ .viewer-project-switcher__menu[hidden] {
79
+ display: none !important;
80
+ }
81
+
82
+ .viewer-project-switcher__item {
83
+ width: 100%;
84
+ display: grid;
85
+ grid-template-columns: minmax(0, 1fr) auto;
86
+ gap: 4px 10px;
87
+ padding: 7px 8px;
88
+ border: 0;
89
+ border-radius: 4px;
90
+ background: transparent;
91
+ color: var(--vscode-foreground, #d4d4d4);
92
+ text-align: left;
93
+ cursor: pointer;
94
+ }
95
+
96
+ .viewer-project-switcher__item:hover,
97
+ .viewer-project-switcher__item.is-active {
98
+ background: var(--vscode-list-hoverBackground, rgb(255 255 255 / 8%));
99
+ }
100
+
101
+ .viewer-project-switcher__item-name,
102
+ .viewer-project-switcher__item-state {
103
+ overflow: hidden;
104
+ text-overflow: ellipsis;
105
+ white-space: nowrap;
106
+ }
107
+
108
+ .viewer-project-switcher__item-name {
109
+ font-weight: 650;
110
+ }
111
+
112
+ .viewer-project-switcher__item-path {
113
+ grid-column: 1 / -1;
114
+ overflow: hidden;
115
+ text-overflow: ellipsis;
116
+ white-space: nowrap;
117
+ color: var(--vscode-descriptionForeground, #9da5b4);
118
+ font-size: 11px;
119
+ }
120
+
121
+ .viewer-project-switcher__item-state {
122
+ color: var(--vscode-descriptionForeground, #9da5b4);
123
+ font-size: 11px;
124
+ }
125
+
126
+ .viewer-topbar__repo-actions {
127
+ display: inline-flex;
128
+ align-items: center;
129
+ gap: 4px;
130
+ flex: 0 0 auto;
131
+ }
132
+
133
+ .viewer-topbar__repo-action {
134
+ width: 24px;
135
+ height: 24px;
136
+ display: inline-grid;
137
+ place-items: center;
138
+ border: 1px solid var(--vscode-panel-border, #333333);
139
+ border-radius: 999px;
140
+ background: var(--vscode-button-secondaryBackground, transparent);
141
+ color: var(--vscode-button-secondaryForeground, var(--vscode-foreground, #d4d4d4));
142
+ padding: 0;
143
+ cursor: pointer;
144
+ text-decoration: none;
145
+ }
146
+
147
+ .viewer-topbar__repo-action[hidden] {
148
+ display: none !important;
149
+ }
150
+
151
+ .viewer-topbar__repo-action:hover {
152
+ border-color: color-mix(in srgb, var(--vscode-textLink-foreground, #4ea1ff) 45%, var(--vscode-panel-border, #333333));
153
+ color: var(--vscode-textLink-foreground, #4ea1ff);
154
+ }
155
+
156
+ .viewer-topbar__repo-action svg {
157
+ width: 15px;
158
+ height: 15px;
159
+ display: block;
160
+ }
161
+
40
162
  .viewer-topbar__meta {
41
163
  margin-top: 2px;
42
164
  font-size: 12px;
@@ -87,6 +209,62 @@
87
209
  color: #f59e0b;
88
210
  }
89
211
 
212
+ .viewer-ci-badge {
213
+ display: inline-grid;
214
+ min-width: 18px;
215
+ height: 16px;
216
+ place-items: center;
217
+ border: 1px solid color-mix(in srgb, currentColor 24%, transparent);
218
+ border-radius: 999px;
219
+ padding: 0 5px;
220
+ font-size: 10px;
221
+ font-weight: 700;
222
+ line-height: 1;
223
+ }
224
+
225
+ .viewer-ci-badge--passing,
226
+ .viewer-ci__badge--passing {
227
+ background: rgba(34, 197, 94, 0.14);
228
+ color: #22c55e;
229
+ }
230
+
231
+ .viewer-ci-badge--failing,
232
+ .viewer-ci__badge--failing {
233
+ background: rgba(239, 68, 68, 0.16);
234
+ color: #ef4444;
235
+ }
236
+
237
+ .viewer-ci-badge--running,
238
+ .viewer-ci__badge--running {
239
+ background: rgba(245, 158, 11, 0.16);
240
+ color: #f59e0b;
241
+ }
242
+
243
+ .viewer-ci-badge--cancelled,
244
+ .viewer-ci-badge--unavailable,
245
+ .viewer-ci-badge--unknown,
246
+ .viewer-ci__badge--cancelled,
247
+ .viewer-ci__badge--unavailable,
248
+ .viewer-ci__badge--unknown {
249
+ background: color-mix(in srgb, var(--vscode-descriptionForeground, #aaaaaa) 14%, transparent);
250
+ color: var(--vscode-descriptionForeground, #aaaaaa);
251
+ }
252
+
253
+ .viewer-cdx-button-badge {
254
+ display: inline-grid;
255
+ min-width: 16px;
256
+ height: 16px;
257
+ place-items: center;
258
+ border: 1px solid color-mix(in srgb, currentColor 24%, transparent);
259
+ border-radius: 999px;
260
+ padding: 0 4px;
261
+ background: rgba(34, 197, 94, 0.14);
262
+ color: #22c55e;
263
+ font-size: 10px;
264
+ font-weight: 700;
265
+ line-height: 1;
266
+ }
267
+
90
268
  .viewer-refresh-menu {
91
269
  position: relative;
92
270
  display: inline-flex;
@@ -99,8 +277,8 @@
99
277
  right: 0;
100
278
  z-index: 60;
101
279
  display: grid;
102
- gap: 10px;
103
- min-width: 180px;
280
+ gap: 12px;
281
+ min-width: 220px;
104
282
  padding: 10px;
105
283
  border: 1px solid var(--vscode-panel-border, #333333);
106
284
  border-radius: 6px;
@@ -113,6 +291,29 @@
113
291
  display: none !important;
114
292
  }
115
293
 
294
+ .viewer-settings-menu__section {
295
+ display: grid;
296
+ gap: 8px;
297
+ min-width: 0;
298
+ }
299
+
300
+ .viewer-settings-menu__section + .viewer-settings-menu__section {
301
+ padding-top: 10px;
302
+ border-top: 1px solid var(--vscode-panel-border, #333333);
303
+ }
304
+
305
+ .viewer-settings-menu__heading {
306
+ color: var(--vscode-descriptionForeground, #9da5b4);
307
+ font-size: 11px;
308
+ font-weight: 700;
309
+ text-transform: uppercase;
310
+ }
311
+
312
+ .viewer-settings-menu__section > .btn {
313
+ justify-content: center;
314
+ width: 100%;
315
+ }
316
+
116
317
  .viewer-auto-refresh {
117
318
  display: inline-flex;
118
319
  align-items: center;
@@ -153,19 +354,30 @@
153
354
  text-transform: none;
154
355
  }
155
356
 
156
- .viewer-update {
357
+ .viewer-update,
358
+ .viewer-connection {
157
359
  flex: 0 0 auto;
158
360
  display: flex;
159
361
  align-items: center;
160
362
  gap: 10px;
161
363
  padding: 8px 12px;
162
- border-bottom: 1px solid rgba(245, 158, 11, 0.4);
163
- background: rgba(245, 158, 11, 0.12);
164
364
  color: var(--vscode-foreground, #d4d4d4);
165
365
  font-size: 12px;
166
366
  }
167
367
 
168
- .viewer-update[hidden] {
368
+ .viewer-update {
369
+ border-bottom: 1px solid rgba(245, 158, 11, 0.4);
370
+ background: rgba(245, 158, 11, 0.12);
371
+ }
372
+
373
+ .viewer-connection {
374
+ justify-content: space-between;
375
+ border-bottom: 1px solid rgba(248, 113, 113, 0.45);
376
+ background: rgba(127, 29, 29, 0.24);
377
+ }
378
+
379
+ .viewer-update[hidden],
380
+ .viewer-connection[hidden] {
169
381
  display: none !important;
170
382
  }
171
383
 
@@ -176,6 +388,10 @@
176
388
  color: var(--vscode-textPreformat-foreground, #d7ba7d);
177
389
  }
178
390
 
391
+ .viewer-connection__detail {
392
+ color: var(--vscode-descriptionForeground, #9da5b4);
393
+ }
394
+
179
395
  .viewer-filter-panel {
180
396
  display: grid;
181
397
  grid-template-columns: minmax(220px, 0.9fr) minmax(360px, 1.6fr) minmax(180px, 0.7fr);
@@ -399,8 +615,34 @@
399
615
  gap: 14px;
400
616
  }
401
617
 
618
+ .viewer-cdx__modes {
619
+ display: inline-flex;
620
+ align-items: center;
621
+ gap: 2px;
622
+ width: fit-content;
623
+ padding: 2px;
624
+ border: 1px solid var(--vscode-panel-border, #333333);
625
+ border-radius: 6px;
626
+ background: var(--vscode-editorWidget-background, #202020);
627
+ }
628
+
629
+ .viewer-cdx__mode {
630
+ border: 0;
631
+ border-radius: 4px;
632
+ padding: 5px 10px;
633
+ background: transparent;
634
+ color: var(--vscode-descriptionForeground, #9da5b4);
635
+ cursor: pointer;
636
+ }
637
+
638
+ .viewer-cdx__mode.is-active {
639
+ background: var(--vscode-button-secondaryBackground, #3a3d41);
640
+ color: var(--vscode-button-secondaryForeground, var(--vscode-foreground, #d4d4d4));
641
+ }
642
+
402
643
  .viewer-git__summary,
403
644
  .viewer-cdx__summary,
645
+ .viewer-ci__summary,
404
646
  .viewer-insights__summary,
405
647
  .viewer-health__summary {
406
648
  display: grid;
@@ -415,6 +657,114 @@
415
657
  align-items: start;
416
658
  }
417
659
 
660
+ .viewer-ci {
661
+ display: grid;
662
+ gap: 12px;
663
+ }
664
+
665
+ .viewer-ci__workspace {
666
+ display: grid;
667
+ grid-template-columns: minmax(280px, 1fr) minmax(240px, 0.85fr);
668
+ gap: 12px;
669
+ align-items: start;
670
+ }
671
+
672
+ .viewer-ci__section {
673
+ min-width: 0;
674
+ border: 1px solid var(--vscode-panel-border, #333333);
675
+ border-radius: 6px;
676
+ background: var(--vscode-editorWidget-background, #202020);
677
+ padding: 12px;
678
+ }
679
+
680
+ .viewer-ci__heading {
681
+ display: flex;
682
+ align-items: center;
683
+ justify-content: space-between;
684
+ gap: 10px;
685
+ margin-bottom: 10px;
686
+ }
687
+
688
+ .viewer-ci__heading h2 {
689
+ margin: 0;
690
+ font-size: 13px;
691
+ }
692
+
693
+ .viewer-ci__heading span {
694
+ color: var(--vscode-descriptionForeground, #aaaaaa);
695
+ font-size: 12px;
696
+ }
697
+
698
+ .viewer-ci__badge {
699
+ display: inline-flex;
700
+ align-items: center;
701
+ justify-content: center;
702
+ min-height: 20px;
703
+ border: 1px solid color-mix(in srgb, currentColor 28%, transparent);
704
+ border-radius: 999px;
705
+ padding: 2px 8px;
706
+ font-size: 11px;
707
+ font-weight: 700;
708
+ }
709
+
710
+ .viewer-ci__list,
711
+ .viewer-ci__jobs {
712
+ display: grid;
713
+ gap: 6px;
714
+ margin: 0;
715
+ padding: 0;
716
+ list-style: none;
717
+ }
718
+
719
+ .viewer-ci__row,
720
+ .viewer-ci__job,
721
+ .viewer-ci__empty {
722
+ min-width: 0;
723
+ border: 1px solid color-mix(in srgb, var(--vscode-panel-border, #333333) 74%, transparent);
724
+ border-radius: 6px;
725
+ padding: 8px 9px;
726
+ background: var(--vscode-sideBar-background, #252526);
727
+ font-size: 12px;
728
+ }
729
+
730
+ .viewer-ci__row,
731
+ .viewer-ci__job,
732
+ .viewer-ci__job a {
733
+ display: flex;
734
+ justify-content: space-between;
735
+ gap: 12px;
736
+ }
737
+
738
+ .viewer-ci__job a {
739
+ width: 100%;
740
+ color: inherit;
741
+ text-decoration: none;
742
+ }
743
+
744
+ .viewer-ci__row span,
745
+ .viewer-ci__job span {
746
+ color: var(--vscode-descriptionForeground, #aaaaaa);
747
+ }
748
+
749
+ .viewer-ci__row strong,
750
+ .viewer-ci__job strong {
751
+ min-width: 0;
752
+ text-align: right;
753
+ overflow-wrap: anywhere;
754
+ }
755
+
756
+ .viewer-ci__link {
757
+ display: inline-flex;
758
+ margin-top: 10px;
759
+ color: var(--vscode-textLink-foreground, #4ea1ff);
760
+ font-size: 12px;
761
+ }
762
+
763
+ .viewer-ci__state,
764
+ .viewer-ci__empty {
765
+ color: var(--vscode-descriptionForeground, #9da5b4);
766
+ }
767
+
418
768
  .viewer-cdx__stack {
419
769
  display: grid;
420
770
  gap: 12px;
@@ -785,6 +1135,33 @@
785
1135
  background: var(--vscode-editorWidget-background, #202020);
786
1136
  }
787
1137
 
1138
+ .viewer-git__commit-row[hidden] {
1139
+ display: none !important;
1140
+ }
1141
+
1142
+ .viewer-git__commit-row--reveal {
1143
+ padding: 0;
1144
+ border: 0;
1145
+ background: transparent;
1146
+ }
1147
+
1148
+ .viewer-git__reveal {
1149
+ width: 100%;
1150
+ min-height: 32px;
1151
+ border: 1px solid var(--vscode-panel-border, #333333);
1152
+ border-radius: 6px;
1153
+ background: var(--vscode-button-secondaryBackground, transparent);
1154
+ color: var(--vscode-button-secondaryForeground, var(--vscode-foreground, #d4d4d4));
1155
+ font: inherit;
1156
+ font-size: 12px;
1157
+ cursor: pointer;
1158
+ }
1159
+
1160
+ .viewer-git__reveal:hover {
1161
+ border-color: color-mix(in srgb, var(--vscode-textLink-foreground, #4ea1ff) 45%, var(--vscode-panel-border, #333333));
1162
+ color: var(--vscode-textLink-foreground, #4ea1ff);
1163
+ }
1164
+
788
1165
  .viewer-git__commit-main,
789
1166
  .viewer-git__commit-meta {
790
1167
  display: flex;
@@ -940,6 +1317,10 @@
940
1317
  .viewer-git__workspace {
941
1318
  grid-template-columns: 1fr;
942
1319
  }
1320
+
1321
+ .viewer-ci__workspace {
1322
+ grid-template-columns: 1fr;
1323
+ }
943
1324
  }
944
1325
 
945
1326
  .viewer-document__content a {
@@ -1001,11 +1382,34 @@
1001
1382
  gap: 16px;
1002
1383
  }
1003
1384
 
1385
+ .viewer-insights__hero {
1386
+ display: grid;
1387
+ grid-template-columns: minmax(220px, 0.9fr) minmax(320px, 1.1fr);
1388
+ gap: 12px;
1389
+ align-items: stretch;
1390
+ padding: 12px;
1391
+ border: 1px solid var(--vscode-panel-border, #333333);
1392
+ border-radius: 6px;
1393
+ background: color-mix(in srgb, var(--vscode-editorWidget-background, #202020) 86%, var(--vscode-textLink-foreground, #4ea1ff) 14%);
1394
+ }
1395
+
1396
+ .viewer-insights__hero h2,
1397
+ .viewer-insights__section h2 {
1398
+ margin: 0;
1399
+ font-size: 14px;
1400
+ }
1401
+
1402
+ .viewer-insights__hero p {
1403
+ margin: 6px 0 0;
1404
+ color: var(--vscode-descriptionForeground, #9da5b4);
1405
+ line-height: 1.45;
1406
+ }
1407
+
1004
1408
  .viewer-insights__summary,
1005
1409
  .viewer-insights__grid {
1006
1410
  display: grid;
1007
- grid-template-columns: repeat(4, minmax(0, 1fr));
1008
- gap: 10px;
1411
+ grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
1412
+ gap: 8px;
1009
1413
  }
1010
1414
 
1011
1415
  .viewer-insights__card {
@@ -1015,6 +1419,14 @@
1015
1419
  background: var(--vscode-sideBar-background, #252526);
1016
1420
  }
1017
1421
 
1422
+ .viewer-insights__card--warning {
1423
+ border-color: color-mix(in srgb, var(--vscode-notificationsWarningIcon-foreground, #d7ba7d) 48%, var(--vscode-panel-border, #333333));
1424
+ }
1425
+
1426
+ .viewer-insights__card--ok {
1427
+ border-color: color-mix(in srgb, var(--vscode-testing-iconPassed, #73c991) 44%, var(--vscode-panel-border, #333333));
1428
+ }
1429
+
1018
1430
  .viewer-insights__label {
1019
1431
  color: var(--vscode-descriptionForeground, #9da5b4);
1020
1432
  font-size: 11px;
@@ -1033,6 +1445,25 @@
1033
1445
  gap: 8px;
1034
1446
  }
1035
1447
 
1448
+ .viewer-insights__workspace {
1449
+ display: grid;
1450
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1451
+ gap: 12px;
1452
+ align-items: start;
1453
+ }
1454
+
1455
+ .viewer-insights__section {
1456
+ min-width: 0;
1457
+ padding: 12px;
1458
+ border: 1px solid var(--vscode-panel-border, #333333);
1459
+ border-radius: 6px;
1460
+ background: color-mix(in srgb, var(--vscode-editorWidget-background, #202020) 88%, transparent);
1461
+ }
1462
+
1463
+ .viewer-insights__section--wide {
1464
+ grid-column: 1 / -1;
1465
+ }
1466
+
1036
1467
  .viewer-insights__list {
1037
1468
  display: grid;
1038
1469
  gap: 6px;
@@ -1051,6 +1482,83 @@
1051
1482
  background: var(--vscode-editorWidget-background, #202020);
1052
1483
  }
1053
1484
 
1485
+ .viewer-insights__bars,
1486
+ .viewer-insights__signals {
1487
+ display: grid;
1488
+ gap: 8px;
1489
+ margin: 0;
1490
+ padding: 0;
1491
+ list-style: none;
1492
+ }
1493
+
1494
+ .viewer-insights__bar-row {
1495
+ display: grid;
1496
+ gap: 5px;
1497
+ min-width: 0;
1498
+ font-size: 12px;
1499
+ }
1500
+
1501
+ .viewer-insights__bar-meta,
1502
+ .viewer-insights__signal {
1503
+ display: flex;
1504
+ justify-content: space-between;
1505
+ gap: 12px;
1506
+ min-width: 0;
1507
+ }
1508
+
1509
+ .viewer-insights__bar-meta span,
1510
+ .viewer-insights__signal span {
1511
+ min-width: 0;
1512
+ }
1513
+
1514
+ .viewer-insights__signal span {
1515
+ flex: 0 0 min(42%, 160px);
1516
+ overflow-wrap: normal;
1517
+ }
1518
+
1519
+ .viewer-insights__signal strong {
1520
+ flex: 1 1 auto;
1521
+ min-width: 0;
1522
+ text-align: right;
1523
+ overflow-wrap: anywhere;
1524
+ }
1525
+
1526
+ .viewer-insights__bar-track {
1527
+ height: 7px;
1528
+ overflow: hidden;
1529
+ border: 1px solid var(--vscode-panel-border, #333333);
1530
+ border-radius: 999px;
1531
+ background: var(--vscode-sideBar-background, #252526);
1532
+ }
1533
+
1534
+ .viewer-insights__bar-track span {
1535
+ display: block;
1536
+ height: 100%;
1537
+ border-radius: inherit;
1538
+ background: var(--vscode-textLink-foreground, #4ea1ff);
1539
+ }
1540
+
1541
+ .viewer-insights__signal {
1542
+ padding: 7px 9px;
1543
+ border: 1px solid var(--vscode-panel-border, #333333);
1544
+ border-radius: 6px;
1545
+ background: var(--vscode-editorWidget-background, #202020);
1546
+ font-size: 12px;
1547
+ }
1548
+
1549
+ .viewer-insights__signal--warning {
1550
+ border-color: color-mix(in srgb, var(--vscode-notificationsWarningIcon-foreground, #d7ba7d) 44%, var(--vscode-panel-border, #333333));
1551
+ }
1552
+
1553
+ .viewer-insights__signal--ok strong {
1554
+ color: var(--vscode-testing-iconPassed, #73c991);
1555
+ }
1556
+
1557
+ .viewer-insights__signal--muted strong,
1558
+ .viewer-insights__signal--empty {
1559
+ color: var(--vscode-descriptionForeground, #9da5b4);
1560
+ }
1561
+
1054
1562
  .viewer-health__summary {
1055
1563
  display: grid;
1056
1564
  grid-template-columns: repeat(3, minmax(0, 1fr));
@@ -1150,15 +1658,35 @@
1150
1658
  justify-content: center;
1151
1659
  }
1152
1660
 
1661
+ .viewer-refresh-menu__panel {
1662
+ left: 0;
1663
+ right: auto;
1664
+ min-width: min(260px, 100%);
1665
+ }
1666
+
1153
1667
  .viewer-document {
1154
1668
  inset: 10px;
1155
1669
  }
1156
1670
 
1671
+ .viewer-insights__hero,
1672
+ .viewer-insights__workspace,
1157
1673
  .viewer-insights__summary,
1158
1674
  .viewer-insights__grid {
1159
1675
  grid-template-columns: 1fr;
1160
1676
  }
1161
1677
 
1678
+ .viewer-insights__signal {
1679
+ align-items: flex-start;
1680
+ flex-direction: column;
1681
+ }
1682
+
1683
+ .viewer-insights__signal span,
1684
+ .viewer-insights__signal strong {
1685
+ flex: none;
1686
+ width: 100%;
1687
+ text-align: left;
1688
+ }
1689
+
1162
1690
  .viewer-health__summary {
1163
1691
  grid-template-columns: 1fr;
1164
1692
  }
@@ -336,6 +336,7 @@ def _build_spec_first_pass(repo_root: Path, backlog_ref: str) -> dict[str, objec
336
336
  [
337
337
  f"## {ref} - {spec_title}",
338
338
  f"> From version: {_parse_package_version(repo_root)}",
339
+ "> Status: Draft",
339
340
  "> Understanding: 90%",
340
341
  "> Confidence: 85%",
341
342
  "",
@@ -800,6 +800,8 @@ def _workflow_mermaid_block(kind: str, signature: str) -> list[str]:
800
800
 
801
801
 
802
802
  def _with_workflow_mermaid_overview(kind: str, content: str) -> str:
803
+ if kind == "task":
804
+ return content
803
805
  lines = content.rstrip().splitlines()
804
806
  signature = expected_workflow_mermaid_signature(kind, lines)
805
807
  if not signature:
@@ -995,6 +997,8 @@ def _mermaid_closeout_issue(path: Path, kind: str) -> str | None:
995
997
  text = path.read_text(encoding="utf-8")
996
998
  match = re.search(r"```mermaid\s*\n(.*?)\n```", text, flags=re.DOTALL)
997
999
  if match is None:
1000
+ if kind == "task":
1001
+ return None
998
1002
  return "missing Mermaid overview block"
999
1003
  signature_match = re.search(r"^\s*%%\s*logics-signature:\s*(.+?)\s*$", match.group(1), flags=re.MULTILINE)
1000
1004
  expected = expected_workflow_mermaid_signature(kind, text.splitlines())
@@ -1625,7 +1629,7 @@ def _build_native_task_doc(
1625
1629
  "",
1626
1630
  ]
1627
1631
  ).rstrip() + "\n"
1628
- return _with_workflow_mermaid_overview("task", content)
1632
+ return content
1629
1633
 
1630
1634
 
1631
1635
  def _extract_doc_title(path: Path) -> str:
@@ -2183,7 +2187,7 @@ def _build_native_task_from_backlog(
2183
2187
  "",
2184
2188
  ]
2185
2189
  ).rstrip() + "\n"
2186
- return ref, _with_workflow_mermaid_overview("task", content)
2190
+ return ref, content
2187
2191
 
2188
2192
 
2189
2193
  def build_parser() -> argparse.ArgumentParser: