Repository navigation
Expand file tree
/
Copy pathfoundation-dependencies.json
More file actions
6218 lines (6218 loc) · 307 KB
/
Copy pathfoundation-dependencies.json
File metadata and controls
6218 lines (6218 loc) · 307 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{
"schemaVersion": 1,
"decisionDate": "2026-10-15",
"authority": "AGENTS.md#foundation-first-execution-order-owner-correction-2026-10-15",
"contract": "docs/Features/RepositoryGovernance/FoundationDelivery.md",
"scope": {
"originalTasks": 104,
"addedRequiredTask": "KL-105",
"total": 105,
"statusSnapshot": {
"done": 20,
"in_progress": 85
},
"allRequired": true
},
"interpretation": "Directed edges below are implementation-scope prerequisites. Named sub-milestones split actual existing tasks without new task IDs/API or acceptance reduction. Original definitions are frozen review input, not active compatibility promises. Current owner instructions and linked feature/ADRs control corrected acceptance. Priority bands never infer current readiness. Whole-task qualification remains separate and requires every mandatory gate.",
"tasks": [
{
"id": "KL-001",
"title": "Версії, ліцензії та platform matrix",
"statusAtReview": "in_progress",
"originalDefinition": {
"source": "docs/design/architecture-v0.3.uk.md#kl-001",
"snapshotSha256": "e4a9e58225ef563ca8b9c82adc709c56927aa530b8acfebd05ee87df86f7bdeb",
"definitionSha256": "d677976a15515bd10aa495b664d21ee07e89f923b7167054aea4eb864abd41c1",
"dependencies": [],
"deliverable": "Зафіксувати SDK, package locks, source commits та licenses; відокремити managed/native dependencies.",
"acceptance": "Clean restore/build на Linux x64 і macOS arm64; усі dependency versions зафіксовані; unsupported platforms явно зазначені."
},
"implementationPrerequisites": [],
"review": {
"id": "KL-001",
"finding": "Package locks and Linux+macOS acceptance are stale against centrally pinned packages/no packages.lock and Linux-only qualification. Separate required selected-version/license baseline from late exhaustive audit.",
"implementationScope": [],
"laterQualificationScope": [],
"stageDoneGate": "Existing approved .NET10/Orleans/ZoneTree/native provider pins, licenses and supported normal-SIMD hardware contract are explicit; no new dependency implied.",
"wholeTaskGate": "Stage code readiness is not whole-task acceptance: preserve original required native TUnit/process recovery/Aspire RF3 SDK+official MCP/Linux/fault/resource gates; benchmarks/profiling/audits/releases execute last. No current status is changed."
},
"qualification": "Complete current owner-selected feature/ADR AC with original exact-source evidence. Implementation milestone readiness does not close this task; historical status is not current cohort proof.",
"primaryPriorityBand": "F0",
"executionOwner": "RepositoryGovernance / approved manifests",
"nextDeliverable": "Verify existing selected pins, original licenses, Linux support and mandatory normal SIMD; audit later.",
"definitionLocator": {
"path": "docs/design/architecture-v0.3.uk.md",
"line": 483,
"heading": "KL-001 · Версії, ліцензії та platform matrix",
"note": "Current resolvable locator; originalDefinition.source and all original snapshots remain frozen historical review input."
}
},
{
"id": "KL-002",
"title": "Формальні API та consistency contracts",
"statusAtReview": "in_progress",
"originalDefinition": {
"source": "docs/design/architecture-v0.3.uk.md#kl-002",
"snapshotSha256": "e4a9e58225ef563ca8b9c82adc709c56927aa530b8acfebd05ee87df86f7bdeb",
"definitionSha256": "62cdd50c6014cd40e6b942fdc8b890945d57a0ad364f0377ba57e4507576302c",
"dependencies": [
"KL-001"
],
"deliverable": "Описати partition identity, atomic batch, read views, durability profiles, errors та tokens.",
"acceptance": "Усі операції мають scope/ack/timeout semantics; global unique і multi-partition atomic запити отримують explicit unsupported outcome."
},
"implementationPrerequisites": [
"KL-001"
],
"review": {
"id": "KL-002",
"finding": "Full-operation contracts are oversized as one checkbox; freeze native Orleans membership versus DB authority, logical atomic versus physical placement and per-connection execution first.",
"implementationScope": [
"KL-001"
],
"laterQualificationScope": [],
"stageDoneGate": "Versioned identity, atomicity/ACK, typed errors/tokens, cancellation and bounds agreed for each admitted operation; unsupported multi-partition atomic/global unique paths reject.",
"wholeTaskGate": "Stage code readiness is not whole-task acceptance: preserve original required native TUnit/process recovery/Aspire RF3 SDK+official MCP/Linux/fault/resource gates; benchmarks/profiling/audits/releases execute last. No current status is changed."
},
"qualification": "Complete current owner-selected feature/ADR AC with original exact-source evidence. Implementation milestone readiness does not close this task; historical status is not current cohort proof.",
"primaryPriorityBand": "F0",
"executionOwner": "RepositoryGovernance / approved manifests",
"nextDeliverable": "Freeze canonical identities, bounded operation semantics, same-partition atomicity and explicit unsupported cross-partition cases.",
"definitionLocator": {
"path": "docs/design/architecture-v0.3.uk.md",
"line": 491,
"heading": "KL-002 · Формальні API та consistency contracts",
"note": "Current resolvable locator; originalDefinition.source and all original snapshots remain frozen historical review input."
}
},
{
"id": "KL-003",
"title": "ZoneTree durability audit і crash harness",
"statusAtReview": "in_progress",
"originalDefinition": {
"source": "docs/design/architecture-v0.3.uk.md#kl-003",
"snapshotSha256": "e4a9e58225ef563ca8b9c82adc709c56927aa530b8acfebd05ee87df86f7bdeb",
"definitionSha256": "66e508d924e8262349a02f989e93636d5b19ae45c4289d8e84c0499c39c4169e",
"dependencies": [
"KL-001",
"KL-002"
],
"deliverable": "Перевірити data WAL, transaction log, flush ordering, manifest та recovery; instrument failure points.",
"acceptance": "Задокументовано durable ACK boundary; щонайменше 1000 seeded crash trials збережено; жодної підтвердженої часткової транзакції; power-loss gate має окремий результат."
},
"implementationPrerequisites": [
"KL-001",
"KL-002"
],
"review": {
"id": "KL-003",
"finding": "1000 seeded trials and power-reset evidence are qualification, not prerequisites for constructing the storage/Orleans foundation; no process-kill power-loss substitution.",
"implementationScope": [
"KL-001",
"KL-002"
],
"laterQualificationScope": [
"KL-020",
"KL-035",
"KL-041"
],
"stageDoneGate": "Native ZoneTree commit/flush/replay boundaries and actual owned crash harness are implemented, with whole-operation state oracle; long/fault gates remain independently required.",
"wholeTaskGate": "Stage code readiness is not whole-task acceptance: preserve original required native TUnit/process recovery/Aspire RF3 SDK+official MCP/Linux/fault/resource gates; benchmarks/profiling/audits/releases execute last. No current status is changed."
},
"qualification": "Complete current owner-selected feature/ADR AC with original exact-source evidence. Implementation milestone readiness does not close this task; historical status is not current cohort proof.",
"primaryPriorityBand": "F1",
"executionOwner": "StorageRecovery / silo-local ZoneTree Grain Service",
"nextDeliverable": "Open actual ZoneTree with current WAL guarantees; recover original committed state after process failure.",
"definitionLocator": {
"path": "docs/design/architecture-v0.3.uk.md",
"line": 499,
"heading": "KL-003 · ZoneTree durability audit і crash harness",
"note": "Current resolvable locator; originalDefinition.source and all original snapshots remain frozen historical review input."
}
},
{
"id": "KL-004",
"title": "Transactional read view spike",
"statusAtReview": "in_progress",
"originalDefinition": {
"source": "docs/design/architecture-v0.3.uk.md#kl-004",
"snapshotSha256": "e4a9e58225ef563ca8b9c82adc709c56927aa530b8acfebd05ee87df86f7bdeb",
"definitionSha256": "2bd64dca19ffab4af83592d4b3c90d55608fd644caf54fa9a2433f34ae28906c",
"dependencies": [
"KL-001",
"KL-002"
],
"deliverable": "Перевірити point reads, index scans, Snapshot і transaction visibility; реалізувати safe bounded fallback.",
"acceptance": "Readers ніколи не спостерігають половину document/index batch; тестовано overwrite/delete під час scan; виміряно snapshot/segment-move overhead."
},
"implementationPrerequisites": [
"KL-001",
"KL-002"
],
"review": {
"id": "KL-004",
"finding": "Safe fallback must preserve the promised cut, not silently weaken consistency. Snapshot/segment overhead measurement belongs to late measured qualification.",
"implementationScope": [
"KL-001",
"KL-002"
],
"laterQualificationScope": [
"KL-006"
],
"stageDoneGate": "Native committed point/range reads share one bounded authorized view; overwrite/delete and leased disposal have meaningful whole-operation regressions.",
"wholeTaskGate": "Stage code readiness is not whole-task acceptance: preserve original required native TUnit/process recovery/Aspire RF3 SDK+official MCP/Linux/fault/resource gates; benchmarks/profiling/audits/releases execute last. No current status is changed."
},
"qualification": "Complete current owner-selected feature/ADR AC with original exact-source evidence. Implementation milestone readiness does not close this task; historical status is not current cohort proof.",
"primaryPriorityBand": "F1",
"executionOwner": "StorageRecovery / silo-local ZoneTree Grain Service",
"nextDeliverable": "Reuse native snapshot/iterator APIs for bounded consistent reads with actual lifetime and disposal.",
"definitionLocator": {
"path": "docs/design/architecture-v0.3.uk.md",
"line": 507,
"heading": "KL-004 · Transactional read view spike",
"note": "Current resolvable locator; originalDefinition.source and all original snapshots remain frozen historical review input."
}
},
{
"id": "KL-005",
"title": "Backup/restore spike",
"statusAtReview": "done",
"originalDefinition": {
"source": "docs/design/architecture-v0.3.uk.md#kl-005",
"snapshotSha256": "e4a9e58225ef563ca8b9c82adc709c56927aa530b8acfebd05ee87df86f7bdeb",
"definitionSha256": "ab7e871d3d56ccae135fb2a3011b3a927dcdef389b60a21e2b7d820013d20007",
"dependencies": [
"KL-003",
"KL-004"
],
"deliverable": "Реалізувати closed transactional backup всіх authoritative файлів та versioned manifest.",
"acceptance": "Restore у чистий каталог відновлює документи, індекси, dedup та apply position; corrupted/incomplete backup відхиляється."
},
"implementationPrerequisites": [
"KL-003",
"KL-004"
],
"review": {
"id": "KL-005",
"finding": "Original003/004 omit storage handle/file ownership and ordered commit as implementation prerequisites; minimal closed backup precedes cluster/model drills.",
"implementationScope": [
"KL-002",
"KL-003",
"KL-004",
"KL-008",
"KL-009"
],
"laterQualificationScope": [
"KL-035",
"KL-042"
],
"stageDoneGate": "Checksummed complete native authoritative manifest and closed-cut capture/restore, corrupt/incomplete refusal and exact model/dedup/apply restoration are implemented.",
"wholeTaskGate": "Stage code readiness is not whole-task acceptance: preserve original required native TUnit/process recovery/Aspire RF3 SDK+official MCP/Linux/fault/resource gates; benchmarks/profiling/audits/releases execute last. No current status is changed."
},
"qualification": "Complete current owner-selected feature/ADR AC with original exact-source evidence. Implementation milestone readiness does not close this task; historical status is not current cohort proof.",
"primaryPriorityBand": "F2",
"executionOwner": "StorageRecovery / silo-local ZoneTree Grain Service",
"nextDeliverable": "Capture and restore one actual current-format native backup with complete state and owner cleanup.",
"definitionLocator": {
"path": "docs/design/architecture-v0.3.uk.md",
"line": 515,
"heading": "KL-005 · Backup/restore spike",
"note": "Current resolvable locator; originalDefinition.source and all original snapshots remain frozen historical review input."
}
},
{
"id": "KL-006",
"title": "Порівняльні бенчмарки та кластерна методологія",
"statusAtReview": "in_progress",
"originalDefinition": {
"source": "docs/design/architecture-v0.3.uk.md#kl-006",
"snapshotSha256": "e4a9e58225ef563ca8b9c82adc709c56927aa530b8acfebd05ee87df86f7bdeb",
"definitionSha256": "0569a8bc55f6e8b04803fc392890ff637d888eaa45a5f2ef481b760bb115dc64",
"dependencies": [
"KL-001"
],
"deliverable": "Побудувати однакові workloads embedded/standalone/cluster із параметрами WAL та індексів; визначити PostgreSQL baseline, same-quality/same-durability methodology й datasets для KL-073.",
"acceptance": "Кожен результат має hardware, OS, package version, dataset seed, durability mode, raw samples, p50/p95/p99 і allocs/op."
},
"implementationPrerequisites": [
"KL-001"
],
"review": {
"id": "KL-006",
"finding": "P0 benchmark harness is incorrectly a blocker for product foundation through017/028/030/040; embedded/standalone topology wording predates native1/3-only matrix.",
"implementationScope": [
"KL-001"
],
"laterQualificationScope": [
"KL-008",
"KL-014",
"KL-020"
],
"stageDoneGate": "Only after native capabilities exist: isolated Linux jobs execute canonical100k/1M datasets and operation counts with original provenance/equivalent acknowledgement and complete oracles; no feature waits for benchmark success to be implemented.",
"wholeTaskGate": "Stage code readiness is not whole-task acceptance: preserve original required native TUnit/process recovery/Aspire RF3 SDK+official MCP/Linux/fault/resource gates; benchmarks/profiling/audits/releases execute last. No current status is changed."
},
"qualification": "Complete current owner-selected feature/ADR AC with original exact-source evidence. Implementation milestone readiness does not close this task; historical status is not current cohort proof.",
"primaryPriorityBand": "F6",
"executionOwner": "Performance / original native profiles and Linux comparisons",
"nextDeliverable": "Only after native capabilities exist: isolated Linux jobs execute canonical100k/1M datasets and operation counts with original provenance/equivalent acknowledgement and complete oracles; no feature waits for benchmark success to be implemented.",
"definitionLocator": {
"path": "docs/design/architecture-v0.3.uk.md",
"line": 523,
"heading": "KL-006 · Benchmark harness і PostgreSQL methodology",
"note": "Current resolvable locator; originalDefinition.source and all original snapshots remain frozen historical review input."
}
},
{
"id": "KL-007",
"title": "KeyCodec і storage envelopes",
"statusAtReview": "done",
"originalDefinition": {
"source": "docs/design/architecture-v0.3.uk.md#kl-007",
"snapshotSha256": "e4a9e58225ef563ca8b9c82adc709c56927aa530b8acfebd05ee87df86f7bdeb",
"definitionSha256": "ff6edcfe64ab863538e6af208329121c040f543dc05d581564b56642d6ac75ab",
"dependencies": [
"KL-002"
],
"deliverable": "Реалізувати binary composite ordering, immutable payload envelope, type/null/missing semantics.",
"acceptance": "10 000 generated ordering/roundtrip cases; golden bytes збережені; mixed types, negatives, Unicode, escaping та extrema покриті."
},
"implementationPrerequisites": [
"KL-002"
],
"review": {
"id": "KL-007",
"finding": "Type/null/missing ordering must be versioned native raw storage plus stable Orleans aliases/Ids; generated case count alone is not native persistence proof.",
"implementationScope": [
"KL-001",
"KL-002"
],
"laterQualificationScope": [],
"stageDoneGate": "Exact binary golden ordering/roundtrip/extrema/Unicode cases and actual write/read/reopen paths preserve the same keys and envelopes.",
"wholeTaskGate": "Stage code readiness is not whole-task acceptance: preserve original required native TUnit/process recovery/Aspire RF3 SDK+official MCP/Linux/fault/resource gates; benchmarks/profiling/audits/releases execute last. No current status is changed."
},
"qualification": "Complete current owner-selected feature/ADR AC with original exact-source evidence. Implementation milestone readiness does not close this task; historical status is not current cohort proof.",
"primaryPriorityBand": "F1",
"executionOwner": "StorageRecovery / silo-local ZoneTree Grain Service",
"nextDeliverable": "Keep sortable canonical keys, native generated binary values and exact corruption/format refusal.",
"definitionLocator": {
"path": "docs/design/architecture-v0.3.uk.md",
"line": 531,
"heading": "KL-007 · KeyCodec і storage envelopes",
"note": "Current resolvable locator; originalDefinition.source and all original snapshots remain frozen historical review input."
}
},
{
"id": "KL-008",
"title": "Storage adapter і lifetime",
"statusAtReview": "done",
"originalDefinition": {
"source": "docs/design/architecture-v0.3.uk.md#kl-008",
"snapshotSha256": "e4a9e58225ef563ca8b9c82adc709c56927aa530b8acfebd05ee87df86f7bdeb",
"definitionSha256": "7c412102cbda073046a379c53bd1dc80a9df55a2c97a90281921c96937170ab3",
"dependencies": [
"KL-003",
"KL-004",
"KL-007"
],
"deliverable": "Інкапсулювати ZoneTree behind partition API; додати read leases, maintainer lifecycle і file locking.",
"acceptance": "Другий process owner відхиляється; dispose очікує leases/jobs; pooled buffers не змінюють збережені значення."
},
"implementationPrerequisites": [
"KL-003",
"KL-004",
"KL-007"
],
"review": {
"id": "KL-008",
"finding": "Spike evidence must be distinguished from actual node-local owner integration. Lease/job shutdown and second-process exclusion are mandatory from first usable owner.",
"implementationScope": [
"KL-003",
"KL-004",
"KL-007"
],
"laterQualificationScope": [],
"stageDoneGate": "Actual PartitionHost owns native ZoneTree/WAL/locks/apply; competing process refused and all original reads/jobs/buffers settle before disposal.",
"wholeTaskGate": "Stage code readiness is not whole-task acceptance: preserve original required native TUnit/process recovery/Aspire RF3 SDK+official MCP/Linux/fault/resource gates; benchmarks/profiling/audits/releases execute last. No current status is changed."
},
"qualification": "Complete current owner-selected feature/ADR AC with original exact-source evidence. Implementation milestone readiness does not close this task; historical status is not current cohort proof.",
"primaryPriorityBand": "F1",
"executionOwner": "StorageRecovery / silo-local ZoneTree Grain Service",
"nextDeliverable": "Open and close the original physical partition through its silo-local Grain Service; preserve file exclusion and every original task.",
"definitionLocator": {
"path": "docs/design/architecture-v0.3.uk.md",
"line": 539,
"heading": "KL-008 · Storage adapter і lifetime",
"note": "Current resolvable locator; originalDefinition.source and all original snapshots remain frozen historical review input."
}
},
{
"id": "KL-009",
"title": "Partition writer і command envelope",
"statusAtReview": "in_progress",
"originalDefinition": {
"source": "docs/design/architecture-v0.3.uk.md#kl-009",
"snapshotSha256": "e4a9e58225ef563ca8b9c82adc709c56927aa530b8acfebd05ee87df86f7bdeb",
"definitionSha256": "724eca31d33f81573e03f82b2302d66d298e2b6e435c0db6c4596bb4a23ccfe1",
"dependencies": [
"KL-002",
"KL-008"
],
"deliverable": "Створити bounded writer queue, deterministic apply та explicit ownership hook.",
"acceptance": "Order відтворюється після replay; переповнення черги дає backpressure; external network calls відсутні під apply gate."
},
"implementationPrerequisites": [
"KL-002",
"KL-008"
],
"review": {
"id": "KL-009",
"finding": "Explicit ownership hook is ambiguous: native Orleans routes while node-local ordered gate owns mutation; network under gate is forbidden.",
"implementationScope": [
"KL-002",
"KL-008"
],
"laterQualificationScope": [
"KL-019",
"KL-020"
],
"stageDoneGate": "Bounded ordered admission/apply produces deterministic original outcomes and replay; overflow/backpressure/cancellation and original owner cleanup are tested.",
"wholeTaskGate": "Stage code readiness is not whole-task acceptance: preserve original required native TUnit/process recovery/Aspire RF3 SDK+official MCP/Linux/fault/resource gates; benchmarks/profiling/audits/releases execute last. No current status is changed."
},
"qualification": "Complete current owner-selected feature/ADR AC with original exact-source evidence. Implementation milestone readiness does not close this task; historical status is not current cohort proof.",
"primaryPriorityBand": "F1",
"executionOwner": "DocumentStorage / canonical partition writer",
"nextDeliverable": "Retain one ordered atomic writer with original authority, byte limits, durable receipt and apply/recovery order.",
"definitionLocator": {
"path": "docs/design/architecture-v0.3.uk.md",
"line": 547,
"heading": "KL-009 · Partition writer і command envelope",
"note": "Current resolvable locator; originalDefinition.source and all original snapshots remain frozen historical review input."
}
},
{
"id": "KL-010",
"title": "Document CRUD та CAS",
"statusAtReview": "done",
"originalDefinition": {
"source": "docs/design/architecture-v0.3.uk.md#kl-010",
"snapshotSha256": "e4a9e58225ef563ca8b9c82adc709c56927aa530b8acfebd05ee87df86f7bdeb",
"definitionSha256": "7ad7b28f52d0a63985752df7171ea39273604a26014912f6956df35b94db023c",
"dependencies": [
"KL-009"
],
"deliverable": "Реалізувати Get/Put/Patch/Delete, JSON validation, expectedRevision та tombstone.",
"acceptance": "CAS race має одного переможця для однакової expected revision; duplicate JSON names/oversized/deep payloads відхиляються за контрактом."
},
"implementationPrerequisites": [
"KL-009"
],
"review": {
"id": "KL-010",
"finding": "Original DAG omits early persisted authorization and quotas; CRUD kernel need not await all query/search capability.",
"implementationScope": [
"KL-009",
"KL-015"
],
"laterQualificationScope": [
"KL-020",
"KL-021"
],
"stageDoneGate": "Native whole CRUD/CAS/tombstone plus exact JSON rejection and single-winner race preserve full result, no partial effects, replay and healthy continuation.",
"wholeTaskGate": "Stage code readiness is not whole-task acceptance: preserve original required native TUnit/process recovery/Aspire RF3 SDK+official MCP/Linux/fault/resource gates; benchmarks/profiling/audits/releases execute last. No current status is changed."
},
"qualification": "Complete current owner-selected feature/ADR AC with original exact-source evidence. Implementation milestone readiness does not close this task; historical status is not current cohort proof.",
"primaryPriorityBand": "F2",
"executionOwner": "DocumentStorage / canonical partition writer",
"nextDeliverable": "SDK write/read/CAS/delete and healthy replay through the real RF3 public path.",
"definitionLocator": {
"path": "docs/design/architecture-v0.3.uk.md",
"line": 555,
"heading": "KL-010 · Document CRUD та CAS",
"note": "Current resolvable locator; originalDefinition.source and all original snapshots remain frozen historical review input."
}
},
{
"id": "KL-011",
"title": "Strict indexes і unique scope",
"statusAtReview": "done",
"originalDefinition": {
"source": "docs/design/architecture-v0.3.uk.md#kl-011",
"snapshotSha256": "e4a9e58225ef563ca8b9c82adc709c56927aa530b8acfebd05ee87df86f7bdeb",
"definitionSha256": "dc1e74ae8751d77b8ad8870620733bb63468328789c97b440e40a917769f81d8",
"dependencies": [
"KL-007",
"KL-010"
],
"deliverable": "Реалізувати equality/range/composite/partition-unique; old/new index delta в одній транзакції.",
"acceptance": "Reference model збігається після insert/update/delete/crash; два live documents не займають один unique key у заявленому scope."
},
"implementationPrerequisites": [
"KL-007",
"KL-010"
],
"review": {
"id": "KL-011",
"finding": "Strict partition uniqueness and atomic old/new deltas are implementation; randomized/crash matrix is later qualification of the same implementation.",
"implementationScope": [
"KL-007",
"KL-010",
"KL-009"
],
"laterQualificationScope": [
"KL-003",
"KL-020"
],
"stageDoneGate": "Insert/update/delete/unique-conflict whole batches match independent rows/indexes and rollback atomically; no global uniqueness claim.",
"wholeTaskGate": "Stage code readiness is not whole-task acceptance: preserve original required native TUnit/process recovery/Aspire RF3 SDK+official MCP/Linux/fault/resource gates; benchmarks/profiling/audits/releases execute last. No current status is changed."
},
"qualification": "Complete current owner-selected feature/ADR AC with original exact-source evidence. Implementation milestone readiness does not close this task; historical status is not current cohort proof.",
"primaryPriorityBand": "F2",
"executionOwner": "DocumentStorage / canonical partition writer",
"nextDeliverable": "Canonical index/unique changes commit with their document and refuse conflicts without effects.",
"definitionLocator": {
"path": "docs/design/architecture-v0.3.uk.md",
"line": 563,
"heading": "KL-011 · Strict indexes і unique scope",
"note": "Current resolvable locator; originalDefinition.source and all original snapshots remain frozen historical review input."
}
},
{
"id": "KL-012",
"title": "Batch і persisted idempotency",
"statusAtReview": "done",
"originalDefinition": {
"source": "docs/design/architecture-v0.3.uk.md#kl-012",
"snapshotSha256": "e4a9e58225ef563ca8b9c82adc709c56927aa530b8acfebd05ee87df86f7bdeb",
"definitionSha256": "9ff9ff3e75df08088181ce2d23f953efd817c015ddd85e5ebf1a1cca5528550f",
"dependencies": [
"KL-009",
"KL-010",
"KL-011"
],
"deliverable": "Зберігати CommandId, payload hash, outcome та position атомарно з batch.",
"acceptance": "100 повторів command до/після restart дають один ефект; same ID/different payload дає conflict; retention window задокументовано."
},
"implementationPrerequisites": [
"KL-009",
"KL-010",
"KL-011"
],
"review": {
"id": "KL-012",
"finding": "Generic persisted command inbox does not need completion of every index feature;011 is required for indexed whole-operation qualification.",
"implementationScope": [
"KL-002",
"KL-009",
"KL-010"
],
"laterQualificationScope": [
"KL-011",
"KL-003",
"KL-020"
],
"stageDoneGate": "Command ID+typed payload identity+outcome+position commit with effects; same-ID changed payload conflicts and success/failure replays preserve all state and receipts.",
"wholeTaskGate": "Stage code readiness is not whole-task acceptance: preserve original required native TUnit/process recovery/Aspire RF3 SDK+official MCP/Linux/fault/resource gates; benchmarks/profiling/audits/releases execute last. No current status is changed."
},
"qualification": "Complete current owner-selected feature/ADR AC with original exact-source evidence. Implementation milestone readiness does not close this task; historical status is not current cohort proof.",
"primaryPriorityBand": "F2",
"executionOwner": "DocumentStorage / canonical partition writer",
"nextDeliverable": "Persist stable command outcomes and same-partition atomic batches; evaluate native transactional grain state only with a participating provider.",
"definitionLocator": {
"path": "docs/design/architecture-v0.3.uk.md",
"line": 571,
"heading": "KL-012 · Batch і persisted idempotency",
"note": "Current resolvable locator; originalDefinition.source and all original snapshots remain frozen historical review input."
}
},
{
"id": "KL-013",
"title": "Query AST, planner і cursors",
"statusAtReview": "done",
"originalDefinition": {
"source": "docs/design/architecture-v0.3.uk.md#kl-013",
"snapshotSha256": "e4a9e58225ef563ca8b9c82adc709c56927aa530b8acfebd05ee87df86f7bdeb",
"definitionSha256": "914a564cd2ce76035ee97042c45a1a134d24fcd1297991fc8fa93d51c9fd8fc4",
"dependencies": [
"KL-004",
"KL-011"
],
"deliverable": "Реалізувати внутрішні predicates, ordered seek, projection, limits, Explain та versioned cursor; SQL frontend, binding і shared protocol деталізовані у KL-045..KL-054.",
"acceptance": "Index plan і reference scan збігаються; pagination stable за контрактом; tampered/expired cursors відхиляються."
},
"implementationPrerequisites": [
"KL-004",
"KL-011",
"FOUNDATION.operation-gate"
],
"review": {
"id": "KL-013",
"finding": "AST/planner/ordered cursor is several deliverables. Index plan depends011, but bounded scalar AST does not; SQL frontend/protocol are separate explicit dependencies.",
"implementationScope": [
"KL-002",
"KL-004",
"KL-010",
"KL-015"
],
"laterQualificationScope": [
"KL-011",
"KL-045",
"KL-046",
"KL-047",
"KL-054"
],
"stageDoneGate": "Bounded authorized AST execution, scan/index differential results, exact projections and cursor tamper/expiry/scope/current-policy refusal are implemented; supported dialect inventory remains honest.",
"wholeTaskGate": "Stage code readiness is not whole-task acceptance: preserve original required native TUnit/process recovery/Aspire RF3 SDK+official MCP/Linux/fault/resource gates; benchmarks/profiling/audits/releases execute last. No current status is changed."
},
"qualification": "Complete current owner-selected feature/ADR AC with original exact-source evidence. Implementation milestone readiness does not close this task; historical status is not current cohort proof.",
"primaryPriorityBand": "F3",
"executionOwner": "QueryExecution / native bounded executor",
"nextDeliverable": "Bounded authorized AST execution, scan/index differential results, exact projections and cursor tamper/expiry/scope/current-policy refusal are implemented; supported dialect inventory remains honest.",
"definitionLocator": {
"path": "docs/design/architecture-v0.3.uk.md",
"line": 579,
"heading": "KL-013 · Query AST, planner і cursors",
"note": "Current resolvable locator; originalDefinition.source and all original snapshots remain frozen historical review input."
}
},
{
"id": "KL-014",
"title": "RF3 server and C# SDK",
"statusAtReview": "done",
"originalDefinition": {
"source": "docs/design/architecture-v0.3.uk.md#kl-014",
"snapshotSha256": "e4a9e58225ef563ca8b9c82adc709c56927aa530b8acfebd05ee87df86f7bdeb",
"definitionSha256": "681d5fc29433d5353b758fa92d02535c58098f84b7032d71c21eb184176b9a4b",
"dependencies": [
"KL-010",
"KL-012",
"KL-013"
],
"deliverable": "HTTP API, CLI, local Orleans host, config/data directory та typed client outcomes.",
"acceptance": "Clean machine запускає сервер без зовнішніх сервісів; SDK обробляє unknown write outcome повтором CommandId."
},
"implementationPrerequisites": [
"KL-010.minimum-command",
"KL-012.minimum-stable-id",
"KL-019",
"KL-053.connection-owner",
"KL-052",
"KL-061",
"KL-064",
"KL-065.document-acl",
"KL-066.local-epochs"
],
"review": {
"id": "KL-014",
"finding": "Replace nested application/silo hosting with one native host; physical ZoneTree opening belongs to the silo-local Grain Service. Deferred constructors and post-Active catalog bootstrap avoid the real startup dependency cycles.",
"implementationScope": [
"KL-001",
"KL-002",
"KL-015",
"KL-018",
"KL-019",
"KL-020",
"KL-010",
"KL-012"
],
"laterQualificationScope": [
"KL-013",
"KL-054",
"KL-074"
],
"stageDoneGate": "Three native silos and real DB owners boot through Aspire-discovered endpoints; standard ASP.NET auth and SDK original command/outcome/retry/cleanup work without manual sidecar topology.",
"wholeTaskGate": "Stage code readiness is not whole-task acceptance: preserve original required native TUnit/process recovery/Aspire RF3 SDK+official MCP/Linux/fault/resource gates; benchmarks/profiling/audits/releases execute last. No current status is changed."
},
"qualification": "Complete current owner-selected feature/ADR AC with original exact-source evidence. Implementation milestone readiness does not close this task; historical status is not current cohort proof.",
"primaryPriorityBand": "F2",
"executionOwner": "ClientApi / ASP.NET admission and Orleans connection",
"nextDeliverable": "Replace nested hosts with one native host and admit SDK/MCP only after the actual RF3 database is ready.",
"definitionLocator": {
"path": "docs/design/architecture-v0.3.uk.md",
"line": 587,
"heading": "KL-014 · Standalone server і C# SDK",
"note": "Current resolvable locator; originalDefinition.source and all original snapshots remain frozen historical review input."
}
},
{
"id": "KL-015",
"title": "Security і telemetry baseline",
"statusAtReview": "in_progress",
"originalDefinition": {
"source": "docs/design/architecture-v0.3.uk.md#kl-015",
"snapshotSha256": "e4a9e58225ef563ca8b9c82adc709c56927aa530b8acfebd05ee87df86f7bdeb",
"definitionSha256": "dfba0c3dd37118bd254ca076eb111d881ab77b5e0b59f5e266789f4a5e1fbc81",
"dependencies": [
"KL-014"
],
"deliverable": "Додати tenant/auth context, admin boundary, payload/query quotas та OpenTelemetry. До real-data milestone підключити principals, sensitive catalog, usage checks і safe projector із KL-061..KL-064 та ранній admission KL-052.",
"acceptance": "Cross-tenant reads/writes/index scans блокуються; invalid payload не доводить сервер до OOM; telemetry не містить payload/секретів."
},
"implementationPrerequisites": [
"KL-001",
"KL-002"
],
"review": {
"id": "KL-015",
"finding": "Waiting for014 postpones security and OpenTelemetry until after host implementation. Split foundational telemetry/admission from later full adversarial qualification.",
"implementationScope": [
"KL-001",
"KL-002"
],
"laterQualificationScope": [
"KL-014",
"KL-061",
"KL-062",
"KL-063",
"KL-064",
"KL-068"
],
"stageDoneGate": "OpenTelemetry/activity/context and payload-free diagnostics start with native host; verified subject-only auth, fresh persisted permissions, tenant isolation and bounded inputs are present before real data.",
"wholeTaskGate": "Stage code readiness is not whole-task acceptance: preserve original required native TUnit/process recovery/Aspire RF3 SDK+official MCP/Linux/fault/resource gates; benchmarks/profiling/audits/releases execute last. No current status is changed."
},
"qualification": "Complete current owner-selected feature/ADR AC with original exact-source evidence. Implementation milestone readiness does not close this task; historical status is not current cohort proof.",
"primaryPriorityBand": "F0",
"executionOwner": "Authorization / committed ZoneTree policy",
"nextDeliverable": "Standard ASP.NET subject authentication, fresh persisted permissions and actual OpenTelemetry from the first host.",
"definitionLocator": {
"path": "docs/design/architecture-v0.3.uk.md",
"line": 595,
"heading": "KL-015 · Security і telemetry baseline",
"note": "Current resolvable locator; originalDefinition.source and all original snapshots remain frozen historical review input."
}
},
{
"id": "KL-016",
"title": "Committed projection outbox",
"statusAtReview": "done",
"originalDefinition": {
"source": "docs/design/architecture-v0.3.uk.md#kl-016",
"snapshotSha256": "e4a9e58225ef563ca8b9c82adc709c56927aa530b8acfebd05ee87df86f7bdeb",
"definitionSha256": "c6e1a01e70cd74476e0c67f2448303ea332de746dcd485c670a62d75e198cab5",
"dependencies": [
"KL-012"
],
"deliverable": "Записувати mutation stream, consumer checkpoints, index generation та retention pins.",
"acceptance": "Crash між commit і delivery не втрачає подію; duplicate delivery безпечна; checkpoint не перескакує failed event."
},
"implementationPrerequisites": [
"KL-012"
],
"review": {
"id": "KL-016",
"finding": "One task mixes mutation log, checkpoints, generations and retention pins; freeze smallest atomic outbox first, add provider-specific consumers afterward.",
"implementationScope": [
"KL-009",
"KL-012"
],
"laterQualificationScope": [
"KL-029",
"KL-031",
"KL-034"
],
"stageDoneGate": "Original acknowledged batch atomically records bounded outbox; original consumer checkpoint cannot jump a failed record, duplicate replay is safe and pins/retention preserve recovery.",
"wholeTaskGate": "Stage code readiness is not whole-task acceptance: preserve original required native TUnit/process recovery/Aspire RF3 SDK+official MCP/Linux/fault/resource gates; benchmarks/profiling/audits/releases execute last. No current status is changed."
},
"qualification": "Complete current owner-selected feature/ADR AC with original exact-source evidence. Implementation milestone readiness does not close this task; historical status is not current cohort proof.",
"primaryPriorityBand": "F2",
"executionOwner": "DocumentStorage / canonical partition writer",
"nextDeliverable": "Persist projection outbox atomically with canonical changes, bounded catch-up and deterministic replay.",
"definitionLocator": {
"path": "docs/design/architecture-v0.3.uk.md",
"line": 603,
"heading": "KL-016 · Committed projection outbox",
"note": "Current resolvable locator; originalDefinition.source and all original snapshots remain frozen historical review input."
}
},
{
"id": "KL-017",
"title": "Consensus provider qualification",
"statusAtReview": "in_progress",
"originalDefinition": {
"source": "docs/design/architecture-v0.3.uk.md#kl-017",
"snapshotSha256": "e4a9e58225ef563ca8b9c82adc709c56927aa530b8acfebd05ee87df86f7bdeb",
"definitionSha256": "ba3914a69c172f13cd9d07dfe54d0919878d14bbfa10d9d66fdfb3664f1224f9",
"dependencies": [
"KL-002",
"KL-003",
"KL-006"
],
"deliverable": "Оцінити .NEXT persistent-state/flush/term/vote semantics і альтернативний шлях за потреби.",
"acceptance": "Є evidence для follower durable-before-ACK та stable term/vote; total power-reset test визначає supported durability; слабший режим має інше explicit ім’я."
},
"implementationPrerequisites": [
"KL-002",
"KL-003",
"KL-019.native-membership"
],
"review": {
"id": "KL-017",
"finding": "Explicit .NEXT provider selection is superseded by native Orleans foundation and current database RF3 implementation;006 is later comparison, not consensus implementation prerequisite.",
"implementationScope": [
"KL-001",
"KL-002",
"KL-003",
"KL-009"
],
"laterQualificationScope": [
"KL-006",
"KL-020",
"KL-035",
"KL-041"
],
"stageDoneGate": "Current database consensus ACK/term/vote/apply authority is specified and native replicated-operation path implemented independently of Orleans membership; real fault/power-reset qualification remains open until executed.",
"wholeTaskGate": "Stage code readiness is not whole-task acceptance: preserve original required native TUnit/process recovery/Aspire RF3 SDK+official MCP/Linux/fault/resource gates; benchmarks/profiling/audits/releases execute last. No current status is changed."
},
"qualification": "Complete current owner-selected feature/ADR AC with original exact-source evidence. Implementation milestone readiness does not close this task; historical status is not current cohort proof.",
"primaryPriorityBand": "F1",
"executionOwner": "ClusterReplication / native Orleans replica services",
"nextDeliverable": "Qualify existing database replication over native Orleans transport; no second membership or liveness runtime.",
"definitionLocator": {
"path": "docs/design/architecture-v0.3.uk.md",
"line": 611,
"heading": "KL-017 · Consensus provider qualification",
"note": "Current resolvable locator; originalDefinition.source and all original snapshots remain frozen historical review input."
}
},
{
"id": "KL-018",
"title": "Native host and persisted catalog bootstrap",
"statusAtReview": "in_progress",
"originalDefinition": {
"source": "docs/design/architecture-v0.3.uk.md#kl-018",
"snapshotSha256": "e4a9e58225ef563ca8b9c82adc709c56927aa530b8acfebd05ee87df86f7bdeb",
"definitionSha256": "ff4e0135e1efafaad98f983a27b178829af4dd0c936e060282b3d4af75e21924",
"dependencies": [
"KL-017"
],
"deliverable": "Реалізувати seeds, node identity, durable catalog group і прямий internal transport.",
"acceptance": "Кластер стартує без Orleans calls до readiness; повторний start не створює інший cluster identity; metadata CAS працює після leader loss."
},
"implementationPrerequisites": [
"KL-018.stable-host-identity",
"KL-020",
"KL-061.bootstrap-identity",
"KL-052.core-bounds",
"KL-043.current-format"
],
"review": {
"id": "KL-018",
"finding": "Open local storage through the native Grain Service, then join native membership and publish the database catalog after RF3/native Active. Host membership is not a canonical database catalog.",
"implementationScope": [
"KL-001",
"KL-002",
"KL-008",
"KL-019"
],
"laterQualificationScope": [
"KL-017",
"KL-020",
"KL-021"
],
"stageDoneGate": "Same silo-local Grain Service opens/recover files once before borrowers use them; native membership reaches Active before quorum/catalog RPC; actual startup/partial failure/cold restart preserve original owner and authority.",
"wholeTaskGate": "Stage code readiness is not whole-task acceptance: preserve original required native TUnit/process recovery/Aspire RF3 SDK+official MCP/Linux/fault/resource gates; benchmarks/profiling/audits/releases execute last. No current status is changed."
},
"qualification": "Complete current owner-selected feature/ADR AC with original exact-source evidence. Implementation milestone readiness does not close this task; historical status is not current cohort proof.",
"primaryPriorityBand": "F1",
"executionOwner": "ClusterReplication / native Orleans replica services",
"nextDeliverable": "Native storage initialization before local use; native Active before RF3/catalog RPC; same original owner through failed startup.",
"definitionLocator": {
"path": "docs/design/architecture-v0.3.uk.md",
"line": 619,
"heading": "KL-018 · Metadata bootstrap",
"note": "Current resolvable locator; originalDefinition.source and all original snapshots remain frozen historical review input."
}
},
{
"id": "KL-019",
"title": "Native Orleans membership, placement and ownership",
"statusAtReview": "in_progress",
"originalDefinition": {
"source": "docs/design/architecture-v0.3.uk.md#kl-019",
"snapshotSha256": "e4a9e58225ef563ca8b9c82adc709c56927aa530b8acfebd05ee87df86f7bdeb",
"definitionSha256": "1b549c10b39944e055e338852ebd820e2c313d393640905ab35e91aed77828dc",
"dependencies": [
"KL-018"
],
"deliverable": "Додати membership CAS, partition routing/placement map та explicit epoch fences.",
"acceptance": "Duplicate activation і старий epoch не допускають canonical write; restart зберігає filesystem ownership."
},
"implementationPrerequisites": [
"KL-019.native-membership",
"KL-018"
],
"review": {
"id": "KL-019",
"finding": "Reuse actual native provider/directory/placement/repartitioner. Storage owners never migrate; audit native Immovable and manual movement separately for locality-sensitive grains. Current signed DB voter/incarnation fences remain.",
"implementationScope": [
"KL-001",
"KL-002",
"KL-015"
],
"laterQualificationScope": [
"KL-018",
"KL-009",
"KL-020",
"KL-021",
"KL-036"
],
"stageDoneGate": "Native provider/directory plus explicit per-grain placement and automatic/manual migration policy; correct actual physical owner before effects, no open handles move with activation, first three-voter boot and healthy cold continuation.",
"wholeTaskGate": "Stage code readiness is not whole-task acceptance: preserve original required native TUnit/process recovery/Aspire RF3 SDK+official MCP/Linux/fault/resource gates; benchmarks/profiling/audits/releases execute last. No current status is changed."
},
"qualification": "Complete current owner-selected feature/ADR AC with original exact-source evidence. Implementation milestone readiness does not close this task; historical status is not current cohort proof.",
"primaryPriorityBand": "F1",
"executionOwner": "ClusterReplication / native Orleans replica services",
"nextDeliverable": "Native membership/directory and per-grain placement/migration policy, with current physical authority checked separately.",
"definitionLocator": {
"path": "docs/design/architecture-v0.3.uk.md",
"line": 627,
"heading": "KL-019 · Orleans membership і ownership adapter",
"note": "Current resolvable locator; originalDefinition.source and all original snapshots remain frozen historical review input."
}
},
{
"id": "KL-020",
"title": "Три-вузловий replicated apply",
"statusAtReview": "done",
"originalDefinition": {
"source": "docs/design/architecture-v0.3.uk.md#kl-020",
"snapshotSha256": "e4a9e58225ef563ca8b9c82adc709c56927aa530b8acfebd05ee87df86f7bdeb",
"definitionSha256": "086a935154d2531fcb705c3c65cd93e24f789ecd09c5c79846e64884cd17ce1d",
"dependencies": [
"KL-009",
"KL-012",
"KL-017",
"KL-019"
],
"deliverable": "Перенести ordered command path на consensus group та atomic lastApplied.",
"acceptance": "Після leader loss зберігаються acknowledged durable commands; retries не дублюють effects; minority не приймає strong writes."
},
"implementationPrerequisites": [
"KL-009",
"KL-012.minimum-stable-id",
"KL-017",
"KL-019.native-membership"
],
"review": {
"id": "KL-020",
"finding": "Whole-consensus qualification versus native membership readiness must not form a cycle; implementation requires native boot stage of019, not completed all ownership/fault acceptance.",
"implementationScope": [
"KL-002",
"KL-008",
"KL-009",
"KL-012",
"KL-017",
"KL-018",
"KL-019"
],
"laterQualificationScope": [
"KL-003",
"KL-035",
"KL-041"
],
"stageDoneGate": "Real native RF3 replicates one original bounded command and atomic lastApplied/outcome; durable ACK, minority refusal, leader-loss replay and all owned resources have meaningful complete flows.",
"wholeTaskGate": "Stage code readiness is not whole-task acceptance: preserve original required native TUnit/process recovery/Aspire RF3 SDK+official MCP/Linux/fault/resource gates; benchmarks/profiling/audits/releases execute last. No current status is changed."
},
"qualification": "Complete current owner-selected feature/ADR AC with original exact-source evidence. Implementation milestone readiness does not close this task; historical status is not current cohort proof.",
"primaryPriorityBand": "F2",
"executionOwner": "ClusterReplication / native Orleans replica services",
"nextDeliverable": "Three real voter owners acknowledge/apply the same canonical command and recover the same receipt.",
"definitionLocator": {
"path": "docs/design/architecture-v0.3.uk.md",
"line": 635,
"heading": "KL-020 · Три-вузловий replicated apply",
"note": "Current resolvable locator; originalDefinition.source and all original snapshots remain frozen historical review input."
}
},
{
"id": "KL-021",
"title": "Strong read і session tokens",
"statusAtReview": "in_progress",
"originalDefinition": {
"source": "docs/design/architecture-v0.3.uk.md#kl-021",
"snapshotSha256": "e4a9e58225ef563ca8b9c82adc709c56927aa530b8acfebd05ee87df86f7bdeb",
"definitionSha256": "ad721594805677a285687a98feb29aaf11243353bb1428b9ceed7e05b1808695",
"dependencies": [
"KL-020"
],
"deliverable": "Read barrier, applied position, follower stale mode, token validation.",
"acceptance": "Read-after-write із token проходить після failover; stale leader не повертає strong read без authority; invalid incarnation відхиляється."
},
"implementationPrerequisites": [
"KL-020",
"KL-019",
"KL-053.connection-owner",
"KL-061"
],
"review": {
"id": "KL-021",
"finding": "Token-bearing strong reads need current persisted authority and scoped identity, not status-only leader readiness or global scalar cut.",
"implementationScope": [
"KL-002",
"KL-015",
"KL-020"
],
"laterQualificationScope": [
"KL-035",
"KL-036",
"KL-041"
],
"stageDoneGate": "Actual read barrier covers acknowledged token; failover/current-owner/incarnation checks reject stale authority without partial page; native SDK/MCP reads preserve complete values.",
"wholeTaskGate": "Stage code readiness is not whole-task acceptance: preserve original required native TUnit/process recovery/Aspire RF3 SDK+official MCP/Linux/fault/resource gates; benchmarks/profiling/audits/releases execute last. No current status is changed."
},
"qualification": "Complete current owner-selected feature/ADR AC with original exact-source evidence. Implementation milestone readiness does not close this task; historical status is not current cohort proof.",
"primaryPriorityBand": "F2",
"executionOwner": "ClusterReplication / native Orleans replica services",
"nextDeliverable": "Receipt/session cut reads, absent/tombstone cases, original unknown outcomes and healthy failover/replay.",
"definitionLocator": {
"path": "docs/design/architecture-v0.3.uk.md",
"line": 643,
"heading": "KL-021 · Strong read і session tokens",
"note": "Current resolvable locator; originalDefinition.source and all original snapshots remain frozen historical review input."
}
},
{
"id": "KL-022",
"title": "Graph storage",
"statusAtReview": "done",
"originalDefinition": {
"source": "docs/design/architecture-v0.3.uk.md#kl-022",
"snapshotSha256": "e4a9e58225ef563ca8b9c82adc709c56927aa530b8acfebd05ee87df86f7bdeb",
"definitionSha256": "685e484c84ee60c919b70960bb95da08ed70aa5563b58b914f02bd27599ff507",
"dependencies": [
"KL-011",
"KL-012"
],
"deliverable": "Entity references, edge record, incoming/outgoing indexes і delete policy.",
"acceptance": "Random graph reference збігається; local edge mutation атомарна; duplicate edge command не створює зайвих ребер."
},
"implementationPrerequisites": [
"KL-011",
"KL-012",
"FOUNDATION.operation-gate"
],
"review": {
"id": "KL-022",
"finding": "Clarify canonical full EntityRef, endpoint deletion policy and same-partition atomicity; cross-partition reverse projection is038, not implicit local graph completion.",
"implementationScope": [
"KL-010",
"KL-011",
"KL-012",
"KL-015"