@pmelab/gtd 49.0.0 → 51.0.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.
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +16 -3
- package/dist/chunks/{reserved-CYZ1bSBy.mjs → reserved-CUkk9XgL.mjs} +151 -5
- package/dist/chunks/{review-BewyJflS.mjs → review-BaCXlIT2.mjs} +84 -20
- package/dist/chunks/{steering-BXwjmocB.mjs → steering-DtUVUz9l.mjs} +44 -14
- package/dist/chunks/{tail-C1Oi2YEy.mjs → tail-CX6Pdsql.mjs} +1 -1
- package/dist/gtd.bundle.mjs +22 -5
- package/dist/steering.mjs +2 -2
- package/dist/testkit.mjs +1 -1
- package/dist/web/main.js +27 -3
- package/dist/workflow-kit.mjs +1 -1
- package/dist/workflows/cleanup.mjs +2 -2
- package/dist/workflows/feature.mjs +144 -11
- package/dist/workflows/fix.mjs +3 -3
- package/dist/workflows/review.mjs +3 -3
- package/dist/workflows/rollout.mjs +1 -1
- package/dist/workflows.mjs +415 -42
- package/package.json +1 -1
- package/src/steering/index.ts +1 -0
- package/src/steering/review.test.ts +60 -2
- package/src/steering/review.ts +66 -9
- package/src/workflows/feature/coverage.feature +1 -0
- package/src/workflows/feature/fast-path.feature +1 -0
- package/src/workflows/feature/feature.ts +4 -1
- package/src/workflows/feature/flag-mode.feature +1 -1
- package/src/workflows/feature/lens-models.feature +1 -0
- package/src/workflows/feature/lens-review.feature +17 -4
- package/src/workflows/feature/one-step-land.feature +1 -0
- package/src/workflows/feature/prototype-rounds.feature +152 -0
- package/src/workflows/feature/prototype.feature +419 -0
- package/src/workflows/feature/prototype.test.ts +43 -0
- package/src/workflows/feature/prototype.ts +181 -0
- package/src/workflows/feature/refactor-absorbs.feature +9 -1
- package/src/workflows/feature/refactor-first.feature +13 -3
- package/src/workflows/feature/refactor-rebuild.feature +29 -5
- package/src/workflows/feature/refactor-review.feature +111 -13
- package/src/workflows/feature/refactor.test.ts +14 -4
- package/src/workflows/feature/refactor.ts +2 -0
- package/src/workflows/feature/review-answers.feature +9 -1
- package/src/workflows/feature/review-gate.feature +21 -3
- package/src/workflows/feature/reviewer-walkthrough.feature +15 -3
- package/src/workflows/feature/seam-rejection.feature +1 -0
- package/src/workflows/feature/seam.feature +1 -0
- package/src/workflows/feature/seam.test.ts +3 -2
- package/src/workflows/feature/seam.ts +19 -5
- package/src/workflows/feature/severity-budget.feature +112 -0
- package/src/workflows/feature/severity-sorted-review.feature +198 -0
- package/src/workflows/feature/slice-findings.feature +15 -2
- package/src/workflows/feature/slicing-cap.feature +9 -0
- package/src/workflows/feature/slicing.feature +1 -0
- package/src/workflows/feature/standards.feature +5 -0
- package/src/workflows/shared/options.ts +1 -0
- package/src/workflows/shared/prose.ts +6 -0
- package/src/workflows/shared/review.ts +124 -18
- package/src/workflows/shared/skills.test.ts +4 -0
- package/src/workflows/shared/skills.ts +5 -0
- package/src/workflows/shared/steps.ts +1 -0
- package/src/workflows/shared/text.test.ts +90 -0
- package/src/workflows/shared/text.ts +181 -4
- package/src/workflows/shared/vars.ts +3 -0
|
@@ -9,6 +9,7 @@ Feature: a refactor-first judgment walks one fixed path to the review gate
|
|
|
9
9
|
|
|
10
10
|
Background:
|
|
11
11
|
Given the shipped workflows, as gtd install scaffolds them
|
|
12
|
+
And an environment variable "GTD_PROTOTYPEROUNDS" set to "0"
|
|
12
13
|
And an environment variable "GTD_QUALITYREVIEWS" set to ""
|
|
13
14
|
And an environment variable "GTD_REFACTORQUALITYREVIEWS" set to ""
|
|
14
15
|
And an environment variable "GTD_FLAG_RISK_TIER" set to "0"
|
|
@@ -72,7 +73,12 @@ Feature: a refactor-first judgment walks one fixed path to the review gate
|
|
|
72
73
|
"""
|
|
73
74
|
And step "refactor.health.check" changes nothing
|
|
74
75
|
And step "refactor.closing" runs its script
|
|
75
|
-
And step "refactor.build.review.
|
|
76
|
+
And judge step "refactor.build.review.ranking" answers:
|
|
77
|
+
"""
|
|
78
|
+
[]
|
|
79
|
+
"""
|
|
80
|
+
And step "refactor.build.review.carrying" runs its script
|
|
81
|
+
And step "refactor.build.review.reviewing" writes ".gtd/REVIEW.md" with:
|
|
76
82
|
"""
|
|
77
83
|
# Review: abc1234
|
|
78
84
|
|
|
@@ -96,6 +102,8 @@ Feature: a refactor-first judgment walks one fixed path to the review gate
|
|
|
96
102
|
|
|
97
103
|
## calc
|
|
98
104
|
|
|
105
|
+
_critical: judge unsure_
|
|
106
|
+
|
|
99
107
|
- [x] ./src/calc.ts#1-2
|
|
100
108
|
add built on the shared op
|
|
101
109
|
"""
|
|
@@ -138,8 +146,10 @@ Feature: a refactor-first judgment walks one fixed path to the review gate
|
|
|
138
146
|
gtd(check): refactor.deriving → refactor.building
|
|
139
147
|
gtd(agent): refactor.building → refactor.health.check
|
|
140
148
|
gtd(check): refactor.health.check → refactor.closing
|
|
141
|
-
gtd(check): refactor.closing → refactor.build.review.
|
|
142
|
-
gtd(
|
|
149
|
+
gtd(check): refactor.closing → refactor.build.review.reviewing
|
|
150
|
+
gtd(agent): refactor.build.review.reviewing → refactor.build.review.ranking
|
|
151
|
+
gtd(judge): refactor.build.review.ranking → refactor.build.review.carrying
|
|
152
|
+
gtd(check): refactor.build.review.carrying → refactor.build.review.await-review
|
|
143
153
|
gtd(human): refactor.build.review.await-review → refactor.build.review.closing
|
|
144
154
|
gtd(check): refactor.build.review.closing → implement.building
|
|
145
155
|
gtd(agent): implement.building → implement.health.check
|
|
@@ -10,6 +10,7 @@ Feature: refactor-first writes a refactor note, refactors on its own, then rebui
|
|
|
10
10
|
|
|
11
11
|
Background:
|
|
12
12
|
Given the shipped workflows, as gtd install scaffolds them
|
|
13
|
+
And an environment variable "GTD_PROTOTYPEROUNDS" set to "0"
|
|
13
14
|
And an environment variable "GTD_QUALITYREVIEWS" set to ""
|
|
14
15
|
And an environment variable "GTD_REFACTORQUALITYREVIEWS" set to ""
|
|
15
16
|
And an environment variable "GTD_FLAG_RISK_TIER" set to "0"
|
|
@@ -83,7 +84,12 @@ Feature: refactor-first writes a refactor note, refactors on its own, then rebui
|
|
|
83
84
|
"""
|
|
84
85
|
And step "refactor.health.check" changes nothing
|
|
85
86
|
And step "refactor.closing" runs its script
|
|
86
|
-
And step "refactor.build.review.
|
|
87
|
+
And judge step "refactor.build.review.ranking" answers:
|
|
88
|
+
"""
|
|
89
|
+
[]
|
|
90
|
+
"""
|
|
91
|
+
And step "refactor.build.review.carrying" runs its script
|
|
92
|
+
And step "refactor.build.review.reviewing" writes ".gtd/REVIEW.md" with:
|
|
87
93
|
"""
|
|
88
94
|
# Review: abc1234
|
|
89
95
|
|
|
@@ -106,6 +112,8 @@ Feature: refactor-first writes a refactor note, refactors on its own, then rebui
|
|
|
106
112
|
|
|
107
113
|
## calc
|
|
108
114
|
|
|
115
|
+
_critical: judge unsure_
|
|
116
|
+
|
|
109
117
|
- [x] ./src/calc.ts#1-2
|
|
110
118
|
add built on the shared op
|
|
111
119
|
"""
|
|
@@ -147,7 +155,12 @@ Feature: refactor-first writes a refactor note, refactors on its own, then rebui
|
|
|
147
155
|
"""
|
|
148
156
|
And step "refactor.health.check" changes nothing
|
|
149
157
|
And step "refactor.closing" runs its script
|
|
150
|
-
And step "refactor.build.review.
|
|
158
|
+
And judge step "refactor.build.review.ranking" answers:
|
|
159
|
+
"""
|
|
160
|
+
[]
|
|
161
|
+
"""
|
|
162
|
+
And step "refactor.build.review.carrying" runs its script
|
|
163
|
+
And step "refactor.build.review.reviewing" writes ".gtd/REVIEW.md" with:
|
|
151
164
|
"""
|
|
152
165
|
# Review: abc1234
|
|
153
166
|
|
|
@@ -170,6 +183,8 @@ Feature: refactor-first writes a refactor note, refactors on its own, then rebui
|
|
|
170
183
|
|
|
171
184
|
## calc
|
|
172
185
|
|
|
186
|
+
_critical: judge unsure_
|
|
187
|
+
|
|
173
188
|
- [x] ./src/calc.ts#1-2
|
|
174
189
|
add built on the shared op
|
|
175
190
|
"""
|
|
@@ -193,7 +208,12 @@ Feature: refactor-first writes a refactor note, refactors on its own, then rebui
|
|
|
193
208
|
"""
|
|
194
209
|
And step "refactor.health.check" changes nothing
|
|
195
210
|
And step "refactor.closing" runs its script
|
|
196
|
-
And step "refactor.build.review.
|
|
211
|
+
And judge step "refactor.build.review.ranking" answers:
|
|
212
|
+
"""
|
|
213
|
+
[]
|
|
214
|
+
"""
|
|
215
|
+
And step "refactor.build.review.carrying" runs its script
|
|
216
|
+
And step "refactor.build.review.reviewing" writes ".gtd/REVIEW.md" with:
|
|
197
217
|
"""
|
|
198
218
|
# Review: abc1234
|
|
199
219
|
|
|
@@ -216,6 +236,8 @@ Feature: refactor-first writes a refactor note, refactors on its own, then rebui
|
|
|
216
236
|
|
|
217
237
|
## calc
|
|
218
238
|
|
|
239
|
+
_critical: judge unsure_
|
|
240
|
+
|
|
219
241
|
- [x] ./src/calc.ts#1-2
|
|
220
242
|
add built on the shared op
|
|
221
243
|
"""
|
|
@@ -253,8 +275,10 @@ Feature: refactor-first writes a refactor note, refactors on its own, then rebui
|
|
|
253
275
|
gtd(check): refactor.deriving → refactor.building
|
|
254
276
|
gtd(agent): refactor.building → refactor.health.check
|
|
255
277
|
gtd(check): refactor.health.check → refactor.closing
|
|
256
|
-
gtd(check): refactor.closing → refactor.build.review.
|
|
257
|
-
gtd(
|
|
278
|
+
gtd(check): refactor.closing → refactor.build.review.reviewing
|
|
279
|
+
gtd(agent): refactor.build.review.reviewing → refactor.build.review.ranking
|
|
280
|
+
gtd(judge): refactor.build.review.ranking → refactor.build.review.carrying
|
|
281
|
+
gtd(check): refactor.build.review.carrying → refactor.build.review.await-review
|
|
258
282
|
gtd(human): refactor.build.review.await-review → refactor.build.review.closing
|
|
259
283
|
gtd(check): refactor.build.review.closing → implement.building
|
|
260
284
|
gtd(agent): implement.building → implement.health.check
|
|
@@ -9,6 +9,7 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
9
9
|
|
|
10
10
|
Background:
|
|
11
11
|
Given the shipped workflows, as gtd install scaffolds them
|
|
12
|
+
And an environment variable "GTD_PROTOTYPEROUNDS" set to "0"
|
|
12
13
|
And an environment variable "GTD_QUALITYREVIEWS" set to ""
|
|
13
14
|
And an environment variable "GTD_FLAG_RISK_TIER" set to "0"
|
|
14
15
|
|
|
@@ -78,7 +79,12 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
78
79
|
"""
|
|
79
80
|
And step "refactor.health.check" changes nothing
|
|
80
81
|
And step "refactor.closing" runs its script
|
|
81
|
-
And step "refactor.build.review.
|
|
82
|
+
And judge step "refactor.build.review.ranking" answers:
|
|
83
|
+
"""
|
|
84
|
+
[]
|
|
85
|
+
"""
|
|
86
|
+
And step "refactor.build.review.carrying" runs its script
|
|
87
|
+
And step "refactor.build.review.reviewing" writes ".gtd/REVIEW.md" with:
|
|
82
88
|
"""
|
|
83
89
|
# Review: abc1234
|
|
84
90
|
|
|
@@ -171,7 +177,12 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
171
177
|
"""
|
|
172
178
|
And step "refactor.health.check" changes nothing
|
|
173
179
|
And step "refactor.closing" runs its script
|
|
174
|
-
And step "refactor.build.review.
|
|
180
|
+
And judge step "refactor.build.review.ranking" answers:
|
|
181
|
+
"""
|
|
182
|
+
[]
|
|
183
|
+
"""
|
|
184
|
+
And step "refactor.build.review.carrying" runs its script
|
|
185
|
+
And step "refactor.build.review.reviewing" writes ".gtd/REVIEW.md" with:
|
|
175
186
|
"""
|
|
176
187
|
# Review: abc1234
|
|
177
188
|
|
|
@@ -191,8 +202,10 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
191
202
|
And the commit subjects end with:
|
|
192
203
|
"""
|
|
193
204
|
gtd(check): refactor.closing → refactor.build.quality.correctness.reviewing
|
|
194
|
-
gtd(agent): refactor.build.quality.correctness.reviewing → refactor.build.review.
|
|
195
|
-
gtd(
|
|
205
|
+
gtd(agent): refactor.build.quality.correctness.reviewing → refactor.build.review.reviewing
|
|
206
|
+
gtd(agent): refactor.build.review.reviewing → refactor.build.review.ranking
|
|
207
|
+
gtd(judge): refactor.build.review.ranking → refactor.build.review.carrying
|
|
208
|
+
gtd(check): refactor.build.review.carrying → refactor.build.review.await-review
|
|
196
209
|
"""
|
|
197
210
|
|
|
198
211
|
|
|
@@ -263,7 +276,12 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
263
276
|
"""
|
|
264
277
|
And step "refactor.health.check" changes nothing
|
|
265
278
|
And step "refactor.closing" runs its script
|
|
266
|
-
And step "refactor.build.review.
|
|
279
|
+
And judge step "refactor.build.review.ranking" answers:
|
|
280
|
+
"""
|
|
281
|
+
[]
|
|
282
|
+
"""
|
|
283
|
+
And step "refactor.build.review.carrying" runs its script
|
|
284
|
+
And step "refactor.build.review.reviewing" writes ".gtd/REVIEW.md" with:
|
|
267
285
|
"""
|
|
268
286
|
# Review: abc1234
|
|
269
287
|
|
|
@@ -287,6 +305,8 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
287
305
|
|
|
288
306
|
## calc
|
|
289
307
|
|
|
308
|
+
_critical: judge unsure_
|
|
309
|
+
|
|
290
310
|
- [ ] ./src/calc.ts#1-2
|
|
291
311
|
add built on the shared op[^why]
|
|
292
312
|
|
|
@@ -324,6 +344,8 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
324
344
|
|
|
325
345
|
## calc
|
|
326
346
|
|
|
347
|
+
_critical: judge unsure_
|
|
348
|
+
|
|
327
349
|
- [ ] ./src/calc.ts#1-2
|
|
328
350
|
add built on the shared op
|
|
329
351
|
"""
|
|
@@ -345,8 +367,10 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
345
367
|
gtd(check): refactor.deriving → refactor.building
|
|
346
368
|
gtd(agent): refactor.building → refactor.health.check
|
|
347
369
|
gtd(check): refactor.health.check → refactor.closing
|
|
348
|
-
gtd(check): refactor.closing → refactor.build.review.
|
|
349
|
-
gtd(
|
|
370
|
+
gtd(check): refactor.closing → refactor.build.review.reviewing
|
|
371
|
+
gtd(agent): refactor.build.review.reviewing → refactor.build.review.ranking
|
|
372
|
+
gtd(judge): refactor.build.review.ranking → refactor.build.review.carrying
|
|
373
|
+
gtd(check): refactor.build.review.carrying → refactor.build.review.await-review
|
|
350
374
|
"""
|
|
351
375
|
|
|
352
376
|
Scenario: a question answered at the refactor review reaches the re-derived package as ### Answered Questions
|
|
@@ -360,6 +384,8 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
360
384
|
|
|
361
385
|
## calc
|
|
362
386
|
|
|
387
|
+
_critical: judge unsure_
|
|
388
|
+
|
|
363
389
|
- [ ] ./src/calc.ts#1-1
|
|
364
390
|
why a shared op?
|
|
365
391
|
- [ ] ./src/calc.ts#2-2
|
|
@@ -434,8 +460,10 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
434
460
|
gtd(check): refactor.deriving → refactor.building
|
|
435
461
|
gtd(agent): refactor.building → refactor.health.check
|
|
436
462
|
gtd(check): refactor.health.check → refactor.closing
|
|
437
|
-
gtd(check): refactor.closing → refactor.build.review.
|
|
438
|
-
gtd(
|
|
463
|
+
gtd(check): refactor.closing → refactor.build.review.reviewing
|
|
464
|
+
gtd(agent): refactor.build.review.reviewing → refactor.build.review.ranking
|
|
465
|
+
gtd(judge): refactor.build.review.ranking → refactor.build.review.carrying
|
|
466
|
+
gtd(check): refactor.build.review.carrying → refactor.build.review.await-review
|
|
439
467
|
"""
|
|
440
468
|
|
|
441
469
|
Scenario: an edit note the collecting turn leaves out refuses the landing and never signs off
|
|
@@ -449,6 +477,8 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
449
477
|
|
|
450
478
|
## calc
|
|
451
479
|
|
|
480
|
+
_critical: judge unsure_
|
|
481
|
+
|
|
452
482
|
- [ ] ./src/calc.ts#1-2
|
|
453
483
|
add built on the shared op — this should change behaviour, not just structure
|
|
454
484
|
"""
|
|
@@ -493,6 +523,8 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
493
523
|
|
|
494
524
|
## calc
|
|
495
525
|
|
|
526
|
+
_critical: judge unsure_
|
|
527
|
+
|
|
496
528
|
- [ ] ./src/calc.ts#1-2 rename the helper
|
|
497
529
|
add built on the shared op
|
|
498
530
|
"""
|
|
@@ -520,6 +552,8 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
520
552
|
|
|
521
553
|
## calc
|
|
522
554
|
|
|
555
|
+
_critical: judge unsure_
|
|
556
|
+
|
|
523
557
|
- [ ] ./src/calc.ts#1-2
|
|
524
558
|
add built on the shared op, lovely work
|
|
525
559
|
"""
|
|
@@ -539,6 +573,8 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
539
573
|
|
|
540
574
|
## calc
|
|
541
575
|
|
|
576
|
+
_critical: judge unsure_
|
|
577
|
+
|
|
542
578
|
- [ ] ./src/calc.ts#1-2
|
|
543
579
|
add built on the shared op[^q]
|
|
544
580
|
|
|
@@ -593,6 +629,8 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
593
629
|
|
|
594
630
|
## calc
|
|
595
631
|
|
|
632
|
+
_critical: judge unsure_
|
|
633
|
+
|
|
596
634
|
- [ ] ./src/calc.ts#1-2
|
|
597
635
|
add built on the shared op[^q]
|
|
598
636
|
|
|
@@ -625,6 +663,8 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
625
663
|
|
|
626
664
|
## calc
|
|
627
665
|
|
|
666
|
+
_critical: judge unsure_
|
|
667
|
+
|
|
628
668
|
- [ ] ./src/calc.ts#1-2
|
|
629
669
|
add built on the shared op[^q]
|
|
630
670
|
|
|
@@ -676,6 +716,8 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
676
716
|
|
|
677
717
|
## calc
|
|
678
718
|
|
|
719
|
+
_critical: judge unsure_
|
|
720
|
+
|
|
679
721
|
- [ ] ./src/calc.ts#1-2
|
|
680
722
|
add built on the shared op[^n1]
|
|
681
723
|
|
|
@@ -702,6 +744,8 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
702
744
|
|
|
703
745
|
## calc
|
|
704
746
|
|
|
747
|
+
_critical: judge unsure_
|
|
748
|
+
|
|
705
749
|
- [ ] ./src/calc.ts#1-2
|
|
706
750
|
add built on the shared op[^n1]
|
|
707
751
|
|
|
@@ -729,6 +773,8 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
729
773
|
|
|
730
774
|
## calc
|
|
731
775
|
|
|
776
|
+
_critical: judge unsure_
|
|
777
|
+
|
|
732
778
|
- [ ] ./src/calc.ts#1-2
|
|
733
779
|
add built on the shared op[^q]
|
|
734
780
|
|
|
@@ -761,6 +807,8 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
761
807
|
|
|
762
808
|
## calc
|
|
763
809
|
|
|
810
|
+
_critical: judge unsure_
|
|
811
|
+
|
|
764
812
|
- [ ] ./src/calc.ts#1-2
|
|
765
813
|
add built on the shared op[^n1]
|
|
766
814
|
|
|
@@ -787,6 +835,8 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
787
835
|
|
|
788
836
|
## calc
|
|
789
837
|
|
|
838
|
+
_critical: judge unsure_
|
|
839
|
+
|
|
790
840
|
- [ ] ./src/calc.ts#1-2
|
|
791
841
|
add built on the shared op - this should change behaviour, not just structure[^q]
|
|
792
842
|
|
|
@@ -819,6 +869,8 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
819
869
|
|
|
820
870
|
## calc
|
|
821
871
|
|
|
872
|
+
_critical: judge unsure_
|
|
873
|
+
|
|
822
874
|
- [ ] ./src/calc.ts#1-2
|
|
823
875
|
add built on the shared op - this should change behaviour, not just structure[^q]
|
|
824
876
|
|
|
@@ -864,6 +916,8 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
864
916
|
|
|
865
917
|
## calc
|
|
866
918
|
|
|
919
|
+
_critical: judge unsure_
|
|
920
|
+
|
|
867
921
|
- [ ] ./src/calc.ts#1-2
|
|
868
922
|
add built on the shared op[^q]
|
|
869
923
|
|
|
@@ -896,6 +950,8 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
896
950
|
|
|
897
951
|
## calc
|
|
898
952
|
|
|
953
|
+
_critical: judge unsure_
|
|
954
|
+
|
|
899
955
|
- [ ] ./src/calc.ts#1-2
|
|
900
956
|
add built on the shared op[^q]
|
|
901
957
|
|
|
@@ -946,6 +1002,8 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
946
1002
|
|
|
947
1003
|
## calc
|
|
948
1004
|
|
|
1005
|
+
_critical: judge unsure_
|
|
1006
|
+
|
|
949
1007
|
- [ ] ./src/calc.ts#1-2
|
|
950
1008
|
add built on the shared op, lovely work[^q]
|
|
951
1009
|
|
|
@@ -978,6 +1036,8 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
978
1036
|
|
|
979
1037
|
## calc
|
|
980
1038
|
|
|
1039
|
+
_critical: judge unsure_
|
|
1040
|
+
|
|
981
1041
|
- [ ] ./src/calc.ts#1-2
|
|
982
1042
|
add built on the shared op, lovely work[^q]
|
|
983
1043
|
|
|
@@ -1033,6 +1093,8 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
1033
1093
|
|
|
1034
1094
|
## calc
|
|
1035
1095
|
|
|
1096
|
+
_critical: judge unsure_
|
|
1097
|
+
|
|
1036
1098
|
- [x] ./src/calc.ts#1-2
|
|
1037
1099
|
add built on the shared op
|
|
1038
1100
|
"""
|
|
@@ -1056,6 +1118,8 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
1056
1118
|
|
|
1057
1119
|
## calc
|
|
1058
1120
|
|
|
1121
|
+
_critical: judge unsure_
|
|
1122
|
+
|
|
1059
1123
|
- [ ] ./src/calc.ts#1-2
|
|
1060
1124
|
add built on the shared op — rename `sign` to `direction`
|
|
1061
1125
|
"""
|
|
@@ -1085,6 +1149,8 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
1085
1149
|
|
|
1086
1150
|
## calc
|
|
1087
1151
|
|
|
1152
|
+
_critical: judge unsure_
|
|
1153
|
+
|
|
1088
1154
|
- [ ] ./src/calc.ts#1-2
|
|
1089
1155
|
add built on the shared op — rename `sign` to `direction`
|
|
1090
1156
|
"""
|
|
@@ -1103,9 +1169,25 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
1103
1169
|
Then the process rests at "refactor.build.review.await-review"
|
|
1104
1170
|
And the commit subjects end with:
|
|
1105
1171
|
"""
|
|
1106
|
-
gtd(check): refactor.closing → refactor.build.review.
|
|
1107
|
-
gtd(
|
|
1172
|
+
gtd(check): refactor.closing → refactor.build.review.reviewing
|
|
1173
|
+
gtd(agent): refactor.build.review.reviewing → refactor.build.review.ranking
|
|
1174
|
+
gtd(judge): refactor.build.review.ranking → refactor.build.review.carrying
|
|
1175
|
+
gtd(check): refactor.build.review.carrying → refactor.build.review.await-review
|
|
1176
|
+
"""
|
|
1177
|
+
|
|
1178
|
+
Scenario: a reviewer walks the human through the whole refactor, every chunk pointing at its code
|
|
1179
|
+
When the process is driven
|
|
1180
|
+
Then the process rests at "refactor.build.review.await-review"
|
|
1181
|
+
And ".gtd/REVIEW.md" contains:
|
|
1182
|
+
"""
|
|
1183
|
+
## calc
|
|
1184
|
+
|
|
1185
|
+
_critical: judge unsure_
|
|
1186
|
+
|
|
1187
|
+
- [ ] ./src/calc.ts#1-2
|
|
1188
|
+
add built on the shared op
|
|
1108
1189
|
"""
|
|
1190
|
+
And no commit body contains "refactor.build.review.composing"
|
|
1109
1191
|
|
|
1110
1192
|
Rule: with a quality lens on both slices
|
|
1111
1193
|
|
|
@@ -1175,7 +1257,12 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
1175
1257
|
"""
|
|
1176
1258
|
And step "refactor.health.check" changes nothing
|
|
1177
1259
|
And step "refactor.closing" runs its script
|
|
1178
|
-
And step "refactor.build.review.
|
|
1260
|
+
And judge step "refactor.build.review.ranking" answers:
|
|
1261
|
+
"""
|
|
1262
|
+
[]
|
|
1263
|
+
"""
|
|
1264
|
+
And step "refactor.build.review.carrying" runs its script
|
|
1265
|
+
And step "refactor.build.review.reviewing" writes ".gtd/REVIEW.md" with:
|
|
1179
1266
|
"""
|
|
1180
1267
|
# Review: abc1234
|
|
1181
1268
|
|
|
@@ -1219,6 +1306,8 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
1219
1306
|
|
|
1220
1307
|
## calc
|
|
1221
1308
|
|
|
1309
|
+
_critical: judge unsure_
|
|
1310
|
+
|
|
1222
1311
|
- [x] ./src/calc.ts#1-2
|
|
1223
1312
|
add built on the shared op
|
|
1224
1313
|
"""
|
|
@@ -1382,7 +1471,12 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
1382
1471
|
"""
|
|
1383
1472
|
And step "refactor.health.check" changes nothing
|
|
1384
1473
|
And step "refactor.closing" runs its script
|
|
1385
|
-
And step "refactor.build.review.
|
|
1474
|
+
And judge step "refactor.build.review.ranking" answers:
|
|
1475
|
+
"""
|
|
1476
|
+
[]
|
|
1477
|
+
"""
|
|
1478
|
+
And step "refactor.build.review.carrying" runs its script
|
|
1479
|
+
And step "refactor.build.review.reviewing" writes ".gtd/REVIEW.md" with:
|
|
1386
1480
|
"""
|
|
1387
1481
|
# Review: abc1234
|
|
1388
1482
|
|
|
@@ -1403,6 +1497,8 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
1403
1497
|
|
|
1404
1498
|
## calc
|
|
1405
1499
|
|
|
1500
|
+
_critical: judge unsure_
|
|
1501
|
+
|
|
1406
1502
|
- [ ] ./src/calc.ts#1-2
|
|
1407
1503
|
add built on the shared op[^why]
|
|
1408
1504
|
|
|
@@ -1443,6 +1539,8 @@ Feature: the refactor slice is reviewed on its own before the feature is impleme
|
|
|
1443
1539
|
|
|
1444
1540
|
## calc
|
|
1445
1541
|
|
|
1542
|
+
_critical: judge unsure_
|
|
1543
|
+
|
|
1446
1544
|
- [ ] ./src/calc.ts#1-2
|
|
1447
1545
|
add built on the shared op
|
|
1448
1546
|
"""
|
|
@@ -820,7 +820,7 @@ const driveReviewed = async (
|
|
|
820
820
|
...Object.fromEntries(lensEffects),
|
|
821
821
|
deriving: () => void files.set(REFACTOR_PACKAGE, "package"),
|
|
822
822
|
closing: () => void files.delete(REFACTOR_PACKAGE),
|
|
823
|
-
"review.
|
|
823
|
+
"review.reviewing": () => void files.set(REVIEW, reviewDoc("add")),
|
|
824
824
|
"review.closing": () => void files.delete(REVIEW),
|
|
825
825
|
"review.collecting": () => {
|
|
826
826
|
if (!script.silentCollect)
|
|
@@ -929,7 +929,9 @@ describe("reviewedRefactor", () => {
|
|
|
929
929
|
"refactor.build.quality.correctness.reviewing",
|
|
930
930
|
"refactor.build.quality.ponytail-review.reviewing",
|
|
931
931
|
"refactor.build.quality.conventions.reviewing",
|
|
932
|
-
"refactor.build.review.
|
|
932
|
+
"refactor.build.review.reviewing",
|
|
933
|
+
"refactor.build.review.ranking",
|
|
934
|
+
"refactor.build.review.carrying",
|
|
933
935
|
"refactor.build.review.await-review",
|
|
934
936
|
"refactor.build.review.closing",
|
|
935
937
|
])
|
|
@@ -937,8 +939,16 @@ describe("reviewedRefactor", () => {
|
|
|
937
939
|
|
|
938
940
|
it("reviews from HEAD at scope entry", async () => {
|
|
939
941
|
const h = await driveReviewed(shape())
|
|
940
|
-
const
|
|
941
|
-
expect(
|
|
942
|
+
const reviewing = h.steps.find((s) => s.kind === "agent" && s.name === "review.reviewing")
|
|
943
|
+
expect(reviewing?.kind === "agent" ? reviewing.prompt : "").toContain("<!-- base: c0 -->")
|
|
944
|
+
})
|
|
945
|
+
|
|
946
|
+
it("has the reviewer walk the whole refactor on every round", async () => {
|
|
947
|
+
const h = await driveReviewed(shape())
|
|
948
|
+
const reviewing = h.steps.find((s) => s.kind === "agent" && s.name === "review.reviewing")
|
|
949
|
+
expect(reviewing?.kind === "agent" ? reviewing.prompt : "").toContain(
|
|
950
|
+
"it covers the whole refactor since it started, on every round",
|
|
951
|
+
)
|
|
942
952
|
})
|
|
943
953
|
|
|
944
954
|
it("names the entry commit in every lens prompt, on the first lap and after a feedback lap", async () => {
|
|
@@ -389,6 +389,8 @@ export const reviewedRefactor = async (
|
|
|
389
389
|
fixAccess: strayAccess(p.strays),
|
|
390
390
|
lensBase: entry,
|
|
391
391
|
rules: t.refactorRules(p.strays, p.pattern),
|
|
392
|
+
walkthrough: true,
|
|
393
|
+
lap: "refactor",
|
|
392
394
|
})
|
|
393
395
|
if (outcome.verdict === "signoff") return true
|
|
394
396
|
await reUnwind(outcome)
|
|
@@ -10,6 +10,7 @@ Feature: every note in the review is answered with one tick
|
|
|
10
10
|
|
|
11
11
|
Background:
|
|
12
12
|
Given the shipped workflows, as gtd install scaffolds them
|
|
13
|
+
And an environment variable "GTD_PROTOTYPEROUNDS" set to "0"
|
|
13
14
|
And an environment variable "GTD_QUALITYREVIEWS" set to "correctness"
|
|
14
15
|
And an environment variable "GTD_FLAGMODE" set to "false"
|
|
15
16
|
And a file "src/calc.ts" with:
|
|
@@ -109,6 +110,10 @@ Feature: every note in the review is answered with one tick
|
|
|
109
110
|
- [ ] ./src/calc.ts#2-2 — now rounds the difference
|
|
110
111
|
"""
|
|
111
112
|
And step "build.review.carrying" runs its script
|
|
113
|
+
And judge step "build.review.ranking" answers:
|
|
114
|
+
"""
|
|
115
|
+
[]
|
|
116
|
+
"""
|
|
112
117
|
And judge step "build.quality.triage" answers:
|
|
113
118
|
"""
|
|
114
119
|
[{"id":"Q1","answer":"noise","p":0.9},{"id":"Q2","answer":"noise","p":0.9},{"id":"Q3","answer":"design","p":0.9}]
|
|
@@ -122,6 +127,8 @@ Feature: every note in the review is answered with one tick
|
|
|
122
127
|
"""
|
|
123
128
|
## AC-1 ignores floating point
|
|
124
129
|
|
|
130
|
+
_critical: judge unsure_
|
|
131
|
+
|
|
125
132
|
Should subtract round? The criterion does not say.
|
|
126
133
|
|
|
127
134
|
In the code:
|
|
@@ -215,7 +222,8 @@ Feature: every note in the review is answered with one tick
|
|
|
215
222
|
gtd(agent): build.review.fix.nits.fixing → build.health.check
|
|
216
223
|
gtd(check): build.health.check → build.review.closing
|
|
217
224
|
gtd(check): build.review.closing → build.review.reviewing
|
|
218
|
-
gtd(agent): build.review.reviewing → build.review.
|
|
225
|
+
gtd(agent): build.review.reviewing → build.review.ranking
|
|
226
|
+
gtd(judge): build.review.ranking → build.review.carrying
|
|
219
227
|
gtd(check): build.review.carrying → build.review.await-review
|
|
220
228
|
"""
|
|
221
229
|
And ".gtd/REVIEW.md" does not contain "AC-1 ignores floating point"
|
|
@@ -10,6 +10,7 @@ Feature: a feature process ends at the human review
|
|
|
10
10
|
|
|
11
11
|
Background:
|
|
12
12
|
Given the shipped workflows, as gtd install scaffolds them
|
|
13
|
+
And an environment variable "GTD_PROTOTYPEROUNDS" set to "0"
|
|
13
14
|
And an environment variable "GTD_QUALITYREVIEWS" set to ""
|
|
14
15
|
And an environment variable "GTD_FLAGMODE" set to "false"
|
|
15
16
|
And a file "src/calc.ts" with:
|
|
@@ -69,6 +70,11 @@ Feature: a feature process ends at the human review
|
|
|
69
70
|
new subtract function
|
|
70
71
|
"""
|
|
71
72
|
And step "build.review.closing" runs its script
|
|
73
|
+
And step "build.review.carrying" runs its script
|
|
74
|
+
And judge step "build.review.ranking" answers:
|
|
75
|
+
"""
|
|
76
|
+
[]
|
|
77
|
+
"""
|
|
72
78
|
|
|
73
79
|
Scenario: a feature process ends at the review gate
|
|
74
80
|
When the process is driven
|
|
@@ -79,7 +85,9 @@ Feature: a feature process ends at the human review
|
|
|
79
85
|
"""
|
|
80
86
|
gtd(judge): implement.coverage → implement.closing
|
|
81
87
|
gtd(check): implement.closing → build.review.reviewing
|
|
82
|
-
gtd(agent): build.review.reviewing → build.review.
|
|
88
|
+
gtd(agent): build.review.reviewing → build.review.ranking
|
|
89
|
+
gtd(judge): build.review.ranking → build.review.carrying
|
|
90
|
+
gtd(check): build.review.carrying → build.review.await-review
|
|
83
91
|
"""
|
|
84
92
|
|
|
85
93
|
Scenario: a sign-off ends the process at idle
|
|
@@ -93,6 +101,8 @@ Feature: a feature process ends at the human review
|
|
|
93
101
|
|
|
94
102
|
## calc
|
|
95
103
|
|
|
104
|
+
_critical: judge unsure_
|
|
105
|
+
|
|
96
106
|
- [x] ./src/calc.ts#2-2
|
|
97
107
|
new subtract function
|
|
98
108
|
"""
|
|
@@ -102,7 +112,9 @@ Feature: a feature process ends at the human review
|
|
|
102
112
|
And ".gtd/REVIEW.md" does not exist
|
|
103
113
|
And the commit subjects end with:
|
|
104
114
|
"""
|
|
105
|
-
gtd(agent): build.review.reviewing → build.review.
|
|
115
|
+
gtd(agent): build.review.reviewing → build.review.ranking
|
|
116
|
+
gtd(judge): build.review.ranking → build.review.carrying
|
|
117
|
+
gtd(check): build.review.carrying → build.review.await-review
|
|
106
118
|
gtd(human): build.review.await-review → build.review.closing
|
|
107
119
|
gtd(check): build.review.closing → idle
|
|
108
120
|
"""
|
|
@@ -146,6 +158,8 @@ Feature: a feature process ends at the human review
|
|
|
146
158
|
|
|
147
159
|
## calc
|
|
148
160
|
|
|
161
|
+
_critical: judge unsure_
|
|
162
|
+
|
|
149
163
|
- [ ] ./src/calc.ts#2-2
|
|
150
164
|
new subtract function[^why]
|
|
151
165
|
|
|
@@ -164,6 +178,8 @@ Feature: a feature process ends at the human review
|
|
|
164
178
|
|
|
165
179
|
## calc
|
|
166
180
|
|
|
181
|
+
_critical: judge unsure_
|
|
182
|
+
|
|
167
183
|
- [ ] ./src/calc.ts#2-2
|
|
168
184
|
new subtract function
|
|
169
185
|
"""
|
|
@@ -215,7 +231,9 @@ Feature: a feature process ends at the human review
|
|
|
215
231
|
gtd(check): implement.health.check → implement.coverage
|
|
216
232
|
gtd(judge): implement.coverage → implement.closing
|
|
217
233
|
gtd(check): implement.closing → build.review.reviewing
|
|
218
|
-
gtd(agent): build.review.reviewing → build.review.
|
|
234
|
+
gtd(agent): build.review.reviewing → build.review.ranking
|
|
235
|
+
gtd(judge): build.review.ranking → build.review.carrying
|
|
236
|
+
gtd(check): build.review.carrying → build.review.await-review
|
|
219
237
|
"""
|
|
220
238
|
|
|
221
239
|
Scenario: a design numbering new behaviour at or below an earlier ID is refused
|