mirror of
https://github.com/garrytan/gstack.git
synced 2026-05-20 03:12:28 +08:00
feat: add Greptile batting average to /retro
Reads ~/.gstack/greptile-history.md, computes signal ratio (valid catches vs false positives), includes in metrics table, JSON snapshot, and Code Quality Signals narrative.
This commit is contained in:
@@ -80,6 +80,9 @@ git log origin/main --since="<window>" --format="AUTHOR:%aN" --name-only
|
|||||||
|
|
||||||
# 7. Per-author commit counts (quick summary)
|
# 7. Per-author commit counts (quick summary)
|
||||||
git shortlog origin/main --since="<window>" -sn --no-merges
|
git shortlog origin/main --since="<window>" -sn --no-merges
|
||||||
|
|
||||||
|
# 8. Greptile triage history (if available)
|
||||||
|
cat ~/.gstack/greptile-history.md 2>/dev/null || true
|
||||||
```
|
```
|
||||||
|
|
||||||
### Step 2: Compute Metrics
|
### Step 2: Compute Metrics
|
||||||
@@ -100,6 +103,7 @@ Calculate and present these metrics in a summary table:
|
|||||||
| Active days | N |
|
| Active days | N |
|
||||||
| Detected sessions | N |
|
| Detected sessions | N |
|
||||||
| Avg LOC/session-hour | N |
|
| Avg LOC/session-hour | N |
|
||||||
|
| Greptile signal | N% (Y catches, Z FPs) |
|
||||||
|
|
||||||
Then show a **per-author leaderboard** immediately below:
|
Then show a **per-author leaderboard** immediately below:
|
||||||
|
|
||||||
@@ -112,6 +116,8 @@ bob 3 +120/-40 tests/
|
|||||||
|
|
||||||
Sort by commits descending. The current user (from `git config user.name`) always appears first, labeled "You (name)".
|
Sort by commits descending. The current user (from `git config user.name`) always appears first, labeled "You (name)".
|
||||||
|
|
||||||
|
**Greptile signal (if history exists):** Read `~/.gstack/greptile-history.md` (fetched in Step 1, command 8). Filter entries within the retro time window by date. Count entries by type: `fix`, `fp`, `already-fixed`. Compute signal ratio: `(fix + already-fixed) / (fix + already-fixed + fp)`. If no entries exist in the window or the file doesn't exist, skip the Greptile metric row. Skip unparseable lines silently.
|
||||||
|
|
||||||
### Step 3: Commit Time Distribution
|
### Step 3: Commit Time Distribution
|
||||||
|
|
||||||
Show hourly histogram in Pacific time using bar chart:
|
Show hourly histogram in Pacific time using bar chart:
|
||||||
@@ -297,10 +303,18 @@ Use the Write tool to save the JSON file with this schema:
|
|||||||
},
|
},
|
||||||
"version_range": ["1.16.0.0", "1.16.1.0"],
|
"version_range": ["1.16.0.0", "1.16.1.0"],
|
||||||
"streak_days": 47,
|
"streak_days": 47,
|
||||||
"tweetable": "Week of Mar 1: 47 commits (3 contributors), 3.2k LOC, 38% tests, 12 PRs, peak: 10pm"
|
"tweetable": "Week of Mar 1: 47 commits (3 contributors), 3.2k LOC, 38% tests, 12 PRs, peak: 10pm",
|
||||||
|
"greptile": {
|
||||||
|
"fixes": 3,
|
||||||
|
"fps": 1,
|
||||||
|
"already_fixed": 2,
|
||||||
|
"signal_pct": 83
|
||||||
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**Note:** Only include the `greptile` field if `~/.gstack/greptile-history.md` exists and has entries within the time window. If no history data is available, omit the field entirely.
|
||||||
|
|
||||||
### Step 14: Write the Narrative
|
### Step 14: Write the Narrative
|
||||||
|
|
||||||
Structure the output as:
|
Structure the output as:
|
||||||
@@ -342,6 +356,7 @@ Narrative covering:
|
|||||||
- Test LOC ratio trend
|
- Test LOC ratio trend
|
||||||
- Hotspot analysis (are the same files churning?)
|
- Hotspot analysis (are the same files churning?)
|
||||||
- Any XL PRs that should have been split
|
- Any XL PRs that should have been split
|
||||||
|
- Greptile signal ratio and trend (if history exists): "Greptile: X% signal (Y valid catches, Z false positives)"
|
||||||
|
|
||||||
### Focus & Highlights
|
### Focus & Highlights
|
||||||
(from Step 8)
|
(from Step 8)
|
||||||
|
|||||||
Reference in New Issue
Block a user