@grifhinz/logics-manager 2.4.0 → 2.5.1

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.
@@ -23,12 +23,28 @@
23
23
  <div class="viewer-topbar__meta" id="viewer-meta">Read-only local viewer</div>
24
24
  </div>
25
25
  <div class="viewer-topbar__actions">
26
- <label class="viewer-auto-refresh" title="Toggle automatic refresh">
27
- <input id="viewer-auto-refresh" type="checkbox" checked />
28
- <span>Auto</span>
29
- </label>
30
- <button class="btn" data-action="refresh" type="button" title="Refresh viewer data">Refresh</button>
26
+ <div class="viewer-refresh-menu">
27
+ <button class="btn" id="viewer-refresh-menu-button" type="button" title="Refresh options" aria-haspopup="menu" aria-expanded="false" aria-controls="viewer-refresh-menu">Refresh</button>
28
+ <div class="viewer-refresh-menu__panel" id="viewer-refresh-menu" role="menu" aria-label="Refresh options" hidden>
29
+ <label class="viewer-auto-refresh" title="Toggle automatic refresh">
30
+ <input id="viewer-auto-refresh" type="checkbox" checked />
31
+ <span>Auto</span>
32
+ </label>
33
+ <label class="viewer-refresh-menu__interval">
34
+ <span>Interval</span>
35
+ <select id="viewer-refresh-interval" aria-label="Automatic refresh interval">
36
+ <option value="5">5 sec</option>
37
+ <option value="10">10 sec</option>
38
+ <option value="15" selected>15 sec</option>
39
+ <option value="30">30 sec</option>
40
+ <option value="60">60 sec</option>
41
+ </select>
42
+ </label>
43
+ <button class="btn" data-action="refresh" type="button" title="Refresh viewer data now">Now</button>
44
+ </div>
45
+ </div>
31
46
  <button class="btn" id="viewer-git" type="button" title="Show Git status">Git</button>
47
+ <button class="btn" id="viewer-cdx" type="button" title="Show CDX status">CDX</button>
32
48
  <button class="btn" id="viewer-insights" type="button" title="Show corpus insights">Insights</button>
33
49
  <button class="btn" id="viewer-health" type="button" title="Show lint and audit health">Health</button>
34
50
  </div>
@@ -51,6 +51,68 @@
51
51
  flex: 0 0 auto;
52
52
  }
53
53
 
54
+ .viewer-topbar__actions button {
55
+ display: inline-flex;
56
+ align-items: center;
57
+ gap: 6px;
58
+ }
59
+
60
+ .viewer-git-badges {
61
+ display: inline-flex;
62
+ align-items: center;
63
+ gap: 3px;
64
+ flex: 0 0 auto;
65
+ }
66
+
67
+ .viewer-git-badge {
68
+ display: inline-grid;
69
+ min-width: 16px;
70
+ height: 16px;
71
+ place-items: center;
72
+ border: 1px solid color-mix(in srgb, currentColor 22%, transparent);
73
+ border-radius: 999px;
74
+ padding: 0 4px;
75
+ font-size: 10px;
76
+ font-weight: 700;
77
+ line-height: 1;
78
+ }
79
+
80
+ .viewer-git-badge--commits {
81
+ background: color-mix(in srgb, var(--vscode-textLink-foreground, #4ea1ff) 24%, transparent);
82
+ color: var(--vscode-textLink-foreground, #4ea1ff);
83
+ }
84
+
85
+ .viewer-git-badge--files {
86
+ background: rgba(245, 158, 11, 0.18);
87
+ color: #f59e0b;
88
+ }
89
+
90
+ .viewer-refresh-menu {
91
+ position: relative;
92
+ display: inline-flex;
93
+ align-items: center;
94
+ }
95
+
96
+ .viewer-refresh-menu__panel {
97
+ position: absolute;
98
+ top: calc(100% + 6px);
99
+ right: 0;
100
+ z-index: 60;
101
+ display: grid;
102
+ gap: 10px;
103
+ min-width: 180px;
104
+ padding: 10px;
105
+ border: 1px solid var(--vscode-panel-border, #333333);
106
+ border-radius: 6px;
107
+ background: var(--vscode-editorWidget-background, #202020);
108
+ color: var(--vscode-foreground, #d4d4d4);
109
+ box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
110
+ }
111
+
112
+ .viewer-refresh-menu__panel[hidden] {
113
+ display: none !important;
114
+ }
115
+
54
116
  .viewer-auto-refresh {
55
117
  display: inline-flex;
56
118
  align-items: center;
@@ -69,6 +131,28 @@
69
131
  margin: 0;
70
132
  }
71
133
 
134
+ .viewer-refresh-menu__interval {
135
+ display: grid;
136
+ gap: 5px;
137
+ color: var(--vscode-descriptionForeground, #9da5b4);
138
+ font-size: 11px;
139
+ font-weight: 700;
140
+ text-transform: uppercase;
141
+ }
142
+
143
+ .viewer-refresh-menu__interval select {
144
+ width: 100%;
145
+ height: 30px;
146
+ border: 1px solid var(--vscode-panel-border, #333333);
147
+ border-radius: 4px;
148
+ background: var(--vscode-dropdown-background, var(--vscode-input-background, #1f1f1f));
149
+ color: var(--vscode-dropdown-foreground, var(--vscode-input-foreground, #e5e5e5));
150
+ padding: 0 8px;
151
+ font-size: 12px;
152
+ font-weight: 400;
153
+ text-transform: none;
154
+ }
155
+
72
156
  .viewer-update {
73
157
  flex: 0 0 auto;
74
158
  display: flex;
@@ -308,6 +392,7 @@
308
392
  }
309
393
 
310
394
  .viewer-git,
395
+ .viewer-cdx,
311
396
  .viewer-insights,
312
397
  .viewer-health {
313
398
  display: grid;
@@ -315,6 +400,7 @@
315
400
  }
316
401
 
317
402
  .viewer-git__summary,
403
+ .viewer-cdx__summary,
318
404
  .viewer-insights__summary,
319
405
  .viewer-health__summary {
320
406
  display: grid;
@@ -322,19 +408,469 @@
322
408
  gap: 8px;
323
409
  }
324
410
 
411
+ .viewer-cdx__workspace {
412
+ display: grid;
413
+ grid-template-columns: minmax(280px, 1.35fr) minmax(240px, 0.85fr);
414
+ gap: 12px;
415
+ align-items: start;
416
+ }
417
+
418
+ .viewer-cdx__stack {
419
+ display: grid;
420
+ gap: 12px;
421
+ min-width: 0;
422
+ }
423
+
424
+ .viewer-cdx__card,
425
+ .viewer-cdx__section {
426
+ min-width: 0;
427
+ border: 1px solid var(--vscode-panel-border, #333333);
428
+ border-radius: 6px;
429
+ background: var(--vscode-editorWidget-background, #202020);
430
+ }
431
+
432
+ .viewer-cdx__card {
433
+ padding: 10px;
434
+ }
435
+
436
+ .viewer-cdx__label,
437
+ .viewer-cdx__meta {
438
+ color: var(--vscode-descriptionForeground, #aaaaaa);
439
+ font-size: 12px;
440
+ }
441
+
442
+ .viewer-cdx__value {
443
+ margin-top: 4px;
444
+ font-size: 16px;
445
+ font-weight: 700;
446
+ overflow-wrap: anywhere;
447
+ }
448
+
449
+ .viewer-cdx__section {
450
+ padding: 12px;
451
+ }
452
+
453
+ .viewer-cdx__heading {
454
+ margin: 0 0 10px;
455
+ font-size: 13px;
456
+ }
457
+
458
+ .viewer-cdx__list,
459
+ .viewer-cdx__commands {
460
+ display: grid;
461
+ gap: 6px;
462
+ margin: 0;
463
+ padding: 0;
464
+ list-style: none;
465
+ }
466
+
467
+ .viewer-cdx__row,
468
+ .viewer-cdx__entity {
469
+ min-width: 0;
470
+ padding: 9px;
471
+ border: 1px solid color-mix(in srgb, var(--vscode-panel-border, #333333) 72%, transparent);
472
+ border-radius: 6px;
473
+ background: color-mix(in srgb, var(--vscode-editorWidget-background, #202020) 76%, transparent);
474
+ overflow-wrap: anywhere;
475
+ }
476
+
477
+ .viewer-cdx__row,
478
+ .viewer-cdx__entity-main {
479
+ display: flex;
480
+ align-items: flex-start;
481
+ justify-content: space-between;
482
+ gap: 8px;
483
+ }
484
+
485
+ .viewer-cdx__row strong,
486
+ .viewer-cdx__entity-main > span {
487
+ min-width: 0;
488
+ text-align: right;
489
+ }
490
+
491
+ .viewer-cdx__entity-status {
492
+ display: flex;
493
+ flex-wrap: wrap;
494
+ justify-content: flex-end;
495
+ gap: 6px;
496
+ min-width: 110px;
497
+ }
498
+
499
+ .viewer-cdx__badge {
500
+ display: inline-flex;
501
+ align-items: center;
502
+ justify-content: center;
503
+ min-height: 20px;
504
+ max-width: 100%;
505
+ border: 1px solid color-mix(in srgb, currentColor 28%, transparent);
506
+ border-radius: 999px;
507
+ padding: 2px 8px;
508
+ font-size: 11px;
509
+ font-weight: 700;
510
+ line-height: 1.2;
511
+ }
512
+
513
+ .viewer-cdx__remaining {
514
+ display: inline-flex;
515
+ align-items: baseline;
516
+ gap: 5px;
517
+ min-height: 24px;
518
+ border: 1px solid color-mix(in srgb, currentColor 32%, transparent);
519
+ border-radius: 999px;
520
+ padding: 3px 9px;
521
+ font-size: 11px;
522
+ font-weight: 700;
523
+ line-height: 1.2;
524
+ }
525
+
526
+ .viewer-cdx__remaining span {
527
+ color: currentColor;
528
+ opacity: 0.8;
529
+ }
530
+
531
+ .viewer-cdx__remaining strong {
532
+ font-size: 13px;
533
+ }
534
+
535
+ .viewer-cdx__remaining--ok {
536
+ background: rgba(34, 197, 94, 0.14);
537
+ color: #22c55e;
538
+ }
539
+
540
+ .viewer-cdx__remaining--warn {
541
+ background: rgba(245, 158, 11, 0.16);
542
+ color: #f59e0b;
543
+ }
544
+
545
+ .viewer-cdx__remaining--bad {
546
+ background: rgba(239, 68, 68, 0.16);
547
+ color: #ef4444;
548
+ }
549
+
550
+ .viewer-cdx__remaining--neutral {
551
+ background: color-mix(in srgb, var(--vscode-descriptionForeground, #aaaaaa) 14%, transparent);
552
+ color: var(--vscode-descriptionForeground, #aaaaaa);
553
+ }
554
+
555
+ .viewer-cdx__badge--ok {
556
+ background: rgba(34, 197, 94, 0.14);
557
+ color: #22c55e;
558
+ }
559
+
560
+ .viewer-cdx__badge--warn {
561
+ background: rgba(245, 158, 11, 0.16);
562
+ color: #f59e0b;
563
+ }
564
+
565
+ .viewer-cdx__badge--bad {
566
+ background: rgba(239, 68, 68, 0.16);
567
+ color: #ef4444;
568
+ }
569
+
570
+ .viewer-cdx__badge--neutral {
571
+ background: color-mix(in srgb, var(--vscode-descriptionForeground, #aaaaaa) 14%, transparent);
572
+ color: var(--vscode-descriptionForeground, #aaaaaa);
573
+ }
574
+
575
+ .viewer-cdx__pills {
576
+ display: flex;
577
+ flex-wrap: wrap;
578
+ gap: 6px;
579
+ margin-top: 8px;
580
+ }
581
+
582
+ .viewer-cdx__table-wrap {
583
+ min-width: 0;
584
+ overflow-x: auto;
585
+ }
586
+
587
+ .viewer-cdx__table {
588
+ width: 100%;
589
+ min-width: 920px;
590
+ border-collapse: collapse;
591
+ font-size: 12px;
592
+ }
593
+
594
+ .viewer-cdx__table th,
595
+ .viewer-cdx__table td {
596
+ padding: 7px 8px;
597
+ border-bottom: 1px solid color-mix(in srgb, var(--vscode-panel-border, #333333) 72%, transparent);
598
+ text-align: left;
599
+ vertical-align: middle;
600
+ white-space: nowrap;
601
+ }
602
+
603
+ .viewer-cdx__table th {
604
+ color: var(--vscode-descriptionForeground, #aaaaaa);
605
+ font-size: 10px;
606
+ font-weight: 700;
607
+ }
608
+
609
+ .viewer-cdx__table td {
610
+ color: var(--vscode-foreground, #d4d4d4);
611
+ }
612
+
613
+ .viewer-cdx__table tbody tr:last-child td {
614
+ border-bottom: 0;
615
+ }
616
+
617
+ .viewer-cdx__session-name {
618
+ font-weight: 700;
619
+ }
620
+
621
+ .viewer-cdx__pill {
622
+ display: inline-flex;
623
+ align-items: baseline;
624
+ gap: 5px;
625
+ min-width: 0;
626
+ max-width: 100%;
627
+ border-radius: 4px;
628
+ padding: 3px 6px;
629
+ background: var(--vscode-input-background, #1f1f1f);
630
+ color: var(--vscode-descriptionForeground, #aaaaaa);
631
+ font-size: 11px;
632
+ }
633
+
634
+ .viewer-cdx__pill strong {
635
+ min-width: 0;
636
+ color: var(--vscode-foreground, #d4d4d4);
637
+ overflow-wrap: anywhere;
638
+ }
639
+
640
+ .viewer-cdx__commands li {
641
+ display: grid;
642
+ grid-template-columns: 22px minmax(0, 1fr);
643
+ align-items: start;
644
+ gap: 7px;
645
+ }
646
+
647
+ .viewer-cdx__commands li > span {
648
+ display: grid;
649
+ width: 22px;
650
+ height: 22px;
651
+ place-items: center;
652
+ border-radius: 999px;
653
+ background: var(--vscode-input-background, #1f1f1f);
654
+ color: var(--vscode-descriptionForeground, #aaaaaa);
655
+ font-size: 11px;
656
+ font-weight: 700;
657
+ }
658
+
659
+ .viewer-cdx__commands code {
660
+ display: block;
661
+ min-width: 0;
662
+ padding: 7px 9px;
663
+ border-radius: 6px;
664
+ background: var(--vscode-textCodeBlock-background, #111111);
665
+ color: var(--vscode-textPreformat-foreground, #d7ba7d);
666
+ overflow-wrap: anywhere;
667
+ }
668
+
669
+ .viewer-cdx__state,
670
+ .viewer-cdx__empty {
671
+ margin: 0;
672
+ color: var(--vscode-descriptionForeground, #aaaaaa);
673
+ overflow-wrap: anywhere;
674
+ }
675
+
676
+ @media (max-width: 860px) {
677
+ .viewer-cdx__workspace {
678
+ grid-template-columns: 1fr;
679
+ }
680
+ }
681
+
325
682
  .viewer-git__section h2 {
326
683
  margin-bottom: 8px;
327
684
  }
328
685
 
686
+ .viewer-git__workspace {
687
+ display: grid;
688
+ grid-template-columns: minmax(120px, 0.45fr) minmax(220px, 0.9fr) minmax(280px, 1.3fr);
689
+ gap: 12px;
690
+ align-items: start;
691
+ }
692
+
693
+ .viewer-git__domains {
694
+ display: grid;
695
+ gap: 6px;
696
+ }
697
+
698
+ .viewer-git__domain,
699
+ .viewer-git__file {
700
+ width: 100%;
701
+ min-width: 0;
702
+ border: 1px solid var(--vscode-panel-border, #333333);
703
+ border-radius: 6px;
704
+ background: var(--vscode-editorWidget-background, #202020);
705
+ color: var(--vscode-foreground, #dddddd);
706
+ font: inherit;
707
+ text-align: left;
708
+ cursor: pointer;
709
+ }
710
+
711
+ .viewer-git__domain {
712
+ display: flex;
713
+ align-items: center;
714
+ justify-content: space-between;
715
+ gap: 8px;
716
+ padding: 8px 9px;
717
+ }
718
+
719
+ .viewer-git__domain-label {
720
+ display: inline-flex;
721
+ align-items: center;
722
+ gap: 5px;
723
+ min-width: 0;
724
+ }
725
+
726
+ .viewer-git__domain.is-active,
727
+ .viewer-git__file.is-active {
728
+ border-color: var(--vscode-focusBorder, #4ea1ff);
729
+ background: color-mix(in srgb, var(--vscode-editorWidget-background, #202020) 72%, var(--vscode-textLink-foreground, #4ea1ff));
730
+ }
731
+
732
+ .viewer-git__content,
733
+ .viewer-git__detail {
734
+ min-width: 0;
735
+ }
736
+
737
+ .viewer-git__panel {
738
+ min-width: 0;
739
+ padding: 10px;
740
+ border: 1px solid var(--vscode-panel-border, #333333);
741
+ border-radius: 6px;
742
+ background: color-mix(in srgb, var(--vscode-editorWidget-background, #202020) 72%, transparent);
743
+ }
744
+
745
+ .viewer-git__panel[hidden] {
746
+ display: none !important;
747
+ }
748
+
749
+ .viewer-git__panel-header {
750
+ display: flex;
751
+ align-items: center;
752
+ justify-content: space-between;
753
+ gap: 10px;
754
+ margin-bottom: 10px;
755
+ color: var(--vscode-descriptionForeground, #aaaaaa);
756
+ font-size: 12px;
757
+ font-weight: 700;
758
+ text-transform: uppercase;
759
+ }
760
+
761
+ .viewer-git__panel-header strong {
762
+ min-width: 0;
763
+ overflow-wrap: anywhere;
764
+ text-align: right;
765
+ }
766
+
329
767
  .viewer-git__files li {
330
768
  min-width: 0;
769
+ overflow-wrap: anywhere;
770
+ }
771
+
772
+ .viewer-git__commits {
773
+ display: grid;
774
+ gap: 6px;
775
+ margin: 10px 0 0;
776
+ padding: 0;
777
+ list-style: none;
778
+ }
779
+
780
+ .viewer-git__commit-row {
781
+ min-width: 0;
782
+ padding: 8px 9px;
783
+ border: 1px solid var(--vscode-panel-border, #333333);
784
+ border-radius: 6px;
785
+ background: var(--vscode-editorWidget-background, #202020);
786
+ }
787
+
788
+ .viewer-git__commit-main,
789
+ .viewer-git__commit-meta {
790
+ display: flex;
791
+ gap: 8px;
792
+ min-width: 0;
793
+ }
794
+
795
+ .viewer-git__commit-main {
796
+ align-items: baseline;
797
+ }
798
+
799
+ .viewer-git__commit-main strong {
800
+ min-width: 0;
801
+ overflow-wrap: anywhere;
802
+ }
803
+
804
+ .viewer-git__commit-meta {
805
+ align-items: center;
806
+ flex-wrap: wrap;
807
+ margin-top: 4px;
808
+ color: var(--vscode-descriptionForeground, #aaaaaa);
809
+ font-size: 12px;
810
+ }
811
+
812
+ .viewer-git__commit-refs {
813
+ padding: 2px 6px;
814
+ border-radius: 999px;
815
+ background: color-mix(in srgb, var(--vscode-editorWidget-background, #202020) 70%, var(--vscode-textLink-foreground, #4ea1ff));
816
+ color: var(--vscode-textLink-foreground, #4ea1ff);
817
+ }
818
+
819
+ .viewer-git__file {
820
+ display: flex;
821
+ align-items: center;
822
+ justify-content: space-between;
823
+ gap: 8px;
331
824
  padding: 7px 9px;
825
+ }
826
+
827
+ .viewer-git__file-path {
828
+ min-width: 0;
829
+ overflow-wrap: anywhere;
830
+ }
831
+
832
+ .viewer-git__file-kind {
833
+ flex: 0 0 auto;
834
+ padding: 2px 6px;
835
+ border-radius: 999px;
836
+ background: color-mix(in srgb, var(--vscode-textLink-foreground, #4ea1ff) 18%, transparent);
837
+ color: var(--vscode-textLink-foreground, #4ea1ff);
838
+ font-size: 11px;
839
+ }
840
+
841
+ .viewer-git__detail {
842
+ padding: 10px;
332
843
  border: 1px solid var(--vscode-panel-border, #333333);
333
844
  border-radius: 6px;
334
845
  background: var(--vscode-editorWidget-background, #202020);
846
+ }
847
+
848
+ .viewer-git__detail-title {
849
+ margin-bottom: 8px;
850
+ color: var(--vscode-descriptionForeground, #aaaaaa);
851
+ font-size: 12px;
852
+ font-weight: 700;
853
+ text-transform: uppercase;
854
+ }
855
+
856
+ .viewer-git__diff {
857
+ min-height: 160px;
335
858
  overflow-wrap: anywhere;
336
859
  }
337
860
 
861
+ .viewer-git__diff-meta {
862
+ margin-bottom: 8px;
863
+ color: var(--vscode-descriptionForeground, #aaaaaa);
864
+ font-size: 12px;
865
+ }
866
+
867
+ .viewer-git__diff pre {
868
+ max-height: 58vh;
869
+ overflow: auto;
870
+ margin: 0;
871
+ white-space: pre;
872
+ }
873
+
338
874
  .viewer-git__commit,
339
875
  .viewer-git__state {
340
876
  margin: 0;
@@ -354,6 +890,10 @@
354
890
  .viewer-document {
355
891
  inset: 8px;
356
892
  }
893
+
894
+ .viewer-git__workspace {
895
+ grid-template-columns: 1fr;
896
+ }
357
897
  }
358
898
 
359
899
  .viewer-document__content a {
@@ -555,8 +1095,13 @@
555
1095
  flex: 1 1 0;
556
1096
  }
557
1097
 
558
- .viewer-auto-refresh {
559
- flex: 0 0 auto;
1098
+ .viewer-refresh-menu {
1099
+ flex: 1 1 0;
1100
+ }
1101
+
1102
+ .viewer-refresh-menu > .btn {
1103
+ width: 100%;
1104
+ justify-content: center;
560
1105
  }
561
1106
 
562
1107
  .viewer-document {
@@ -172,9 +172,9 @@ def _has_mermaid_block(text: str) -> bool:
172
172
  def _companion_doc_is_mature(doc: "DocMeta") -> bool:
173
173
  status = _status_normalized(doc.status)
174
174
  if doc.kind.kind == "product":
175
- return status in {"active", "validated", "archived"}
175
+ return status in {"active", "accepted", "validated", "settled", "archived"}
176
176
  if doc.kind.kind == "architecture":
177
- return status in {"accepted", "superseded", "archived"}
177
+ return status in {"accepted", "validated", "superseded", "settled", "archived"}
178
178
  return False
179
179
 
180
180
 
@@ -195,15 +195,21 @@ def _find_executable_paths(command: str) -> list[str]:
195
195
  def _print_path_conflict_guidance(paths: list[str]) -> None:
196
196
  if len(paths) <= 1:
197
197
  return
198
+ path_lines = [f" - {path}" for path in paths]
198
199
  print(
199
200
  "\n".join(
200
201
  [
201
202
  "",
202
203
  "Multiple logics-manager executables are on PATH. If --version still shows an older release, an earlier install is taking precedence.",
204
+ "Detected executables:",
205
+ *path_lines,
203
206
  "Diagnose with:",
204
- " command -v -a logics-manager",
207
+ " type -a logics-manager",
208
+ " whence -a logics-manager # zsh",
205
209
  " pipx list",
206
210
  " npm list -g @grifhinz/logics-manager --depth=0",
211
+ "",
212
+ "If you recently changed installs in zsh, run `rehash` or open a new terminal before retrying.",
207
213
  ]
208
214
  )
209
215
  )
@@ -10,7 +10,7 @@ from pathlib import Path
10
10
  WORKFLOW_KINDS = ("request", "backlog", "task")
11
11
  COMPANION_KINDS = ("product", "architecture")
12
12
  OPEN_STATUSES = {"Draft", "Ready", "In progress", "Blocked"}
13
- CLOSED_STATUSES = {"Done", "Archived"}
13
+ CLOSED_STATUSES = {"Done", "Settled", "Archived"}
14
14
 
15
15
 
16
16
  @dataclass(frozen=True)
@@ -25,8 +25,8 @@ KINDS = {
25
25
  "request": Kind("logics/request", "req", False, ("From version", "Understanding", "Confidence"), ("Draft", "Ready", "In progress", "Blocked", "Done", "Obsolete", "Archived")),
26
26
  "backlog": Kind("logics/backlog", "item", True, ("From version", "Understanding", "Confidence", "Progress"), ("Draft", "Ready", "In progress", "Blocked", "Done", "Obsolete", "Archived")),
27
27
  "task": Kind("logics/tasks", "task", True, ("From version", "Understanding", "Confidence", "Progress"), ("Draft", "Ready", "In progress", "Blocked", "Done", "Obsolete", "Archived")),
28
- "product": Kind("logics/product", "prod", False, ("Date", "Status", "Related request", "Related backlog", "Related task", "Related architecture", "Reminder"), ("Draft", "Proposed", "Active", "Validated", "Rejected", "Superseded", "Archived")),
29
- "architecture": Kind("logics/architecture", "adr", False, ("Date", "Status", "Drivers", "Related request", "Related backlog", "Related task", "Reminder"), ("Draft", "Proposed", "Accepted", "Rejected", "Superseded", "Archived")),
28
+ "product": Kind("logics/product", "prod", False, ("Date", "Status", "Related request", "Related backlog", "Related task", "Related architecture", "Reminder"), ("Draft", "Proposed", "Active", "Accepted", "Validated", "Rejected", "Superseded", "Settled", "Archived")),
29
+ "architecture": Kind("logics/architecture", "adr", False, ("Date", "Status", "Drivers", "Related request", "Related backlog", "Related task", "Reminder"), ("Draft", "Proposed", "Accepted", "Validated", "Rejected", "Superseded", "Settled", "Archived")),
30
30
  }
31
31
 
32
32
  WORKFLOW_KINDS = {"request", "backlog", "task"}