You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If the JSONL file doesn't exist or has no entries in the window, skip the Eureka Moments row.
405
408
409
+
**Ship Velocity (if ship log exists):** Read the ship log output from Step 1, command 14. If entries exist within the retro window, aggregate:
410
+
- Total `/ship` runs
411
+
- PRs created (count entries with non-empty `pr_url`)
412
+
- Average review findings per ship run (`review_findings`)
413
+
- Total Greptile catches vs false positives (`greptile_fixed` vs `greptile_fps`)
414
+
- TODOs completed via `/ship` (sum of `todos_completed`)
415
+
- Test coverage delta (average `coverage_after - coverage_before`)
416
+
417
+
Include in the metrics table:
418
+
```
419
+
| Ship Velocity | N /ship runs · M PRs · avg X review findings · Y Greptile catches |
420
+
```
421
+
422
+
If the ship log doesn't exist or has no entries in the window (`NO_SHIP_LOG` returned), skip the Ship Velocity row.
423
+
406
424
### Step 3: Commit Time Distribution
407
425
408
426
Show hourly histogram in local time using bar chart:
@@ -598,7 +616,7 @@ Use the Write tool to save the JSON file with this schema:
598
616
}
599
617
```
600
618
601
-
**Note:** Only include the `greptile` field if `~/.gstack/greptile-history.md` exists and has entries within the time window. Only include the `backlog` field if `TODOS.md` exists. Only include the `test_health` field if test files were found (command 10 returns > 0). If any has no data, omit the field entirely.
619
+
**Note:** Only include the `greptile` field if `~/.gstack/greptile-history.md` exists and has entries within the time window. Only include the `backlog` field if `TODOS.md` exists. Only include the `test_health` field if test files were found (command 10 returns > 0). Only include `ship_velocity` if the ship log has entries in the window. If any has no data, omit the field entirely.
602
620
603
621
Include test health data in the JSON when test files exist:
604
622
```json
@@ -621,6 +639,19 @@ Include backlog data in the JSON when TODOS.md exists:
621
639
}
622
640
```
623
641
642
+
Include ship velocity data in the JSON when the ship log has entries in the window:
643
+
```json
644
+
"ship_velocity": {
645
+
"ship_runs": 5,
646
+
"prs_created": 5,
647
+
"avg_review_findings": 2.4,
648
+
"greptile_catches": 3,
649
+
"greptile_fps": 1,
650
+
"todos_completed": 8,
651
+
"avg_coverage_delta": 3
652
+
}
653
+
```
654
+
624
655
### Step 14: Write the Narrative
625
656
626
657
Structure the output as:
@@ -650,13 +681,14 @@ Narrative interpreting what the team-wide patterns mean:
650
681
- Notable patterns: do team members code at the same time or in shifts?
651
682
652
683
### Shipping Velocity
653
-
(from Steps 5-7)
684
+
(from Steps 5-7 + ship log)
654
685
655
686
Narrative covering:
656
687
- Commit type mix and what it reveals
657
688
- PR size distribution and what it reveals about shipping cadence
658
689
- Fix-chain detection (sequences of fix commits on the same subsystem)
659
690
- Version bump discipline
691
+
- Ship log trends (if data exists): `/ship` runs per period, review finding rates, Greptile signal over time, test coverage growth from `/ship` auto-generation
If the JSONL file doesn't exist or has no entries in the window, skip the Eureka Moments row.
412
415
416
+
**Ship Velocity (if ship log exists):** Read the ship log output from Step 1, command 14. If entries exist within the retro window, aggregate:
417
+
- Total `/ship` runs
418
+
- PRs created (count entries with non-empty `pr_url`)
419
+
- Average review findings per ship run (`review_findings`)
420
+
- Total Greptile catches vs false positives (`greptile_fixed` vs `greptile_fps`)
421
+
- TODOs completed via `/ship` (sum of `todos_completed`)
422
+
- Test coverage delta (average `coverage_after - coverage_before`)
423
+
424
+
Include in the metrics table:
425
+
```
426
+
| Ship Velocity | N /ship runs · M PRs · avg X review findings · Y Greptile catches |
427
+
```
428
+
429
+
If the ship log doesn't exist or has no entries in the window (`NO_SHIP_LOG` returned), skip the Ship Velocity row.
430
+
413
431
### Step 3: Commit Time Distribution
414
432
415
433
Show hourly histogram in local time using bar chart:
@@ -605,7 +623,7 @@ Use the Write tool to save the JSON file with this schema:
605
623
}
606
624
```
607
625
608
-
**Note:** Only include the `greptile` field if `~/.gstack/greptile-history.md` exists and has entries within the time window. Only include the `backlog` field if `TODOS.md` exists. Only include the `test_health` field if test files were found (command 10 returns > 0). If any has no data, omit the field entirely.
626
+
**Note:** Only include the `greptile` field if `~/.gstack/greptile-history.md` exists and has entries within the time window. Only include the `backlog` field if `TODOS.md` exists. Only include the `test_health` field if test files were found (command 10 returns > 0). Only include `ship_velocity` if the ship log has entries in the window. If any has no data, omit the field entirely.
609
627
610
628
Include test health data in the JSON when test files exist:
611
629
```json
@@ -628,6 +646,19 @@ Include backlog data in the JSON when TODOS.md exists:
628
646
}
629
647
```
630
648
649
+
Include ship velocity data in the JSON when the ship log has entries in the window:
650
+
```json
651
+
"ship_velocity": {
652
+
"ship_runs": 5,
653
+
"prs_created": 5,
654
+
"avg_review_findings": 2.4,
655
+
"greptile_catches": 3,
656
+
"greptile_fps": 1,
657
+
"todos_completed": 8,
658
+
"avg_coverage_delta": 3
659
+
}
660
+
```
661
+
631
662
### Step 14: Write the Narrative
632
663
633
664
Structure the output as:
@@ -657,13 +688,14 @@ Narrative interpreting what the team-wide patterns mean:
657
688
- Notable patterns: do team members code at the same time or in shifts?
658
689
659
690
### Shipping Velocity
660
-
(from Steps 5-7)
691
+
(from Steps 5-7 + ship log)
661
692
662
693
Narrative covering:
663
694
- Commit type mix and what it reveals
664
695
- PR size distribution and what it reveals about shipping cadence
665
696
- Fix-chain detection (sequences of fix commits on the same subsystem)
666
697
- Version bump discipline
698
+
- Ship log trends (if data exists): `/ship` runs per period, review finding rates, Greptile signal over time, test coverage growth from `/ship` auto-generation
If the JSONL file doesn't exist or has no entries in the window, skip the Eureka Moments row.
188
191
192
+
**Ship Velocity (if ship log exists):** Read the ship log output from Step 1, command 14. If entries exist within the retro window, aggregate:
193
+
- Total `/ship` runs
194
+
- PRs created (count entries with non-empty `pr_url`)
195
+
- Average review findings per ship run (`review_findings`)
196
+
- Total Greptile catches vs false positives (`greptile_fixed` vs `greptile_fps`)
197
+
- TODOs completed via `/ship` (sum of `todos_completed`)
198
+
- Test coverage delta (average `coverage_after - coverage_before`)
199
+
200
+
Include in the metrics table:
201
+
```
202
+
| Ship Velocity | N /ship runs · M PRs · avg X review findings · Y Greptile catches |
203
+
```
204
+
205
+
If the ship log doesn't exist or has no entries in the window (`NO_SHIP_LOG` returned), skip the Ship Velocity row.
206
+
189
207
### Step 3: Commit Time Distribution
190
208
191
209
Show hourly histogram in local time using bar chart:
@@ -381,7 +399,7 @@ Use the Write tool to save the JSON file with this schema:
381
399
}
382
400
```
383
401
384
-
**Note:** Only include the `greptile` field if`~/.gstack/greptile-history.md` exists and has entries within the time window. Only include the `backlog` field if`TODOS.md` exists. Only include the `test_health` field if test files were found (command 10 returns > 0). If any has no data, omit the field entirely.
402
+
**Note:** Only include the `greptile` field if`~/.gstack/greptile-history.md` exists and has entries within the time window. Only include the `backlog` field if`TODOS.md` exists. Only include the `test_health` field if test files were found (command 10 returns > 0).Only include `ship_velocity`if the ship log has entries in the window.If any has no data, omit the field entirely.
385
403
386
404
Include test health data in the JSON when test files exist:
387
405
```json
@@ -404,6 +422,19 @@ Include backlog data in the JSON when TODOS.md exists:
404
422
}
405
423
```
406
424
425
+
Include ship velocity data in the JSON when the ship log has entries in the window:
426
+
```json
427
+
"ship_velocity": {
428
+
"ship_runs": 5,
429
+
"prs_created": 5,
430
+
"avg_review_findings": 2.4,
431
+
"greptile_catches": 3,
432
+
"greptile_fps": 1,
433
+
"todos_completed": 8,
434
+
"avg_coverage_delta": 3
435
+
}
436
+
```
437
+
407
438
### Step 14: Write the Narrative
408
439
409
440
Structure the output as:
@@ -433,13 +464,14 @@ Narrative interpreting what the team-wide patterns mean:
433
464
- Notable patterns: do team members code at the same time or in shifts?
434
465
435
466
### Shipping Velocity
436
-
(from Steps 5-7)
467
+
(from Steps 5-7 + ship log)
437
468
438
469
Narrative covering:
439
470
- Commit type mix and what it reveals
440
471
- PR size distribution and what it reveals about shipping cadence
441
472
- Fix-chain detection (sequences of fix commits on the same subsystem)
442
473
- Version bump discipline
474
+
- Ship log trends (if data exists): `/ship` runs per period, review finding rates, Greptile signal over time, test coverage growth from `/ship` auto-generation
0 commit comments