一键导入
retro
Weekly engineering retrospective. Analyzes commit history, work patterns, and code quality metrics with persistent history and trend tracking.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Weekly engineering retrospective. Analyzes commit history, work patterns, and code quality metrics with persistent history and trend tracking.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Fast web browsing for Codex via persistent headless Chromium daemon. Navigate to any URL, read page content, click elements, fill forms, run JavaScript, take screenshots, inspect CSS/DOM, capture console/network logs, and more. ~100ms per command after first call. Use when you need to check a website, verify a deployment, read docs, or interact with any web page. No MCP, no Chrome extension — just fast CLI.
CEO/founder-mode plan review. Rethink the problem, find the 10-star product, challenge premises, expand scope when it creates a better product. Three modes: SCOPE EXPANSION (dream big), HOLD SCOPE (maximum rigor), SCOPE REDUCTION (strip to essentials).
Eng manager-mode plan review. Lock in the execution plan — architecture, data flow, diagrams, edge cases, test coverage, performance. Walks through issues interactively with opinionated recommendations.
Pre-landing review workflow for Codex. Analyze the diff against the default branch for structural bugs, trust-boundary issues, race conditions, missing tests, and other problems that often survive CI.
Release workflow for Codex. Sync with the default branch, run the project's ship-gate checks, perform a pre-landing review, push the branch, and open a PR without unnecessary back-and-forth.
| name | retro |
| version | 1.0.0 |
| description | Weekly engineering retrospective. Analyzes commit history, work patterns, and code quality metrics with persistent history and trend tracking. |
| allowed-tools | ["Bash","Read","Write","Glob"] |
Generates a comprehensive engineering retrospective analyzing commit history, work patterns, and code quality metrics for builders using Codex heavily.
Run this skill when the user asks for a retrospective, shipping analysis, or weekly/monthly engineering review.
retro — default: last 7 daysretro 24h — last 24 hoursretro 14d — last 14 daysretro 30d — last 30 daysretro compare — compare current window vs prior same-length windowretro compare 14d — compare with explicit windowParse the argument to determine the time window. Default to 7 days if no argument given. Use --since="N days ago", --since="N hours ago", or --since="N weeks ago" (for w units) for git log queries. All times should be reported in Pacific time (use TZ=America/Los_Angeles when converting timestamps).
Argument validation: If the argument doesn't match a number followed by d, h, or w, the word compare, or compare followed by a number and d/h/w, show this usage and stop:
Usage: retro [window]
retro — last 7 days (default)
retro 24h — last 24 hours
retro 14d — last 14 days
retro 30d — last 30 days
retro compare — compare this period vs prior period
retro compare 14d — compare with explicit window
First, resolve the repository's default branch. Use:
gh repo view --json defaultBranchRef --jq '.defaultBranchRef.name'
git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@'
If both fail, fall back to main. Store the result as <base-branch>.
Then fetch origin to ensure we have the latest:
git fetch origin <base-branch> --quiet
Run ALL of these git commands in parallel (they are independent):
# 1. All commits in window with timestamps, subject, hash, files changed, insertions, deletions
git log origin/<base-branch> --since="<window>" --format="%H|%ai|%s" --shortstat
# 2. Per-commit test vs total LOC breakdown (single command, parse output)
# Each commit block starts with COMMIT:<hash>, followed by numstat lines.
# Separate test files (matching test/|spec/|__tests__/) from production files.
git log origin/<base-branch> --since="<window>" --format="COMMIT:%H" --numstat
# 3. Commit timestamps for session detection and hourly distribution
# Use TZ=America/Los_Angeles for Pacific time conversion
TZ=America/Los_Angeles git log origin/<base-branch> --since="<window>" --format="%at|%ai|%s" | sort -n
# 4. Files most frequently changed (hotspot analysis)
git log origin/<base-branch> --since="<window>" --format="" --name-only | grep -v '^$' | sort | uniq -c | sort -rn
# 5. PR numbers from commit messages (extract #NNN patterns)
git log origin/<base-branch> --since="<window>" --format="%s" | grep -oE '#[0-9]+' | sed 's/^#//' | sort -n | uniq | sed 's/^/#/'
Calculate and present these metrics in a summary table:
| Metric | Value |
|---|---|
| Commits to main | N |
| PRs merged | N |
| Total insertions | N |
| Total deletions | N |
| Net LOC added | N |
| Test LOC (insertions) | N |
| Test LOC ratio | N% |
| Version range | vX.Y.Z.W → vX.Y.Z.W |
| Active days | N |
| Detected sessions | N |
| Avg LOC/session-hour | N |
Show hourly histogram in Pacific time using bar chart:
Hour Commits ████████████████
00: 4 ████
07: 5 █████
...
Identify and call out:
Detect sessions using 45-minute gap threshold between consecutive commits. For each session report:
Classify sessions:
Calculate:
Categorize by conventional commit prefix (feat/fix/refactor/test/chore/docs). Show as percentage bar:
feat: 20 (40%) ████████████████████
fix: 27 (54%) ███████████████████████████
refactor: 2 ( 4%) ██
Flag if fix ratio exceeds 50% — this signals a "ship fast, fix fast" pattern that may indicate review gaps.
Show top 10 most-changed files. Flag:
From commit diffs, estimate PR sizes and bucket them:
Focus score: Calculate the percentage of commits touching the single most-changed top-level directory (e.g., app/services/, app/views/). Higher score = deeper focused work. Lower score = scattered context-switching. Report as: "Focus score: 62% (app/services/)"
Ship of the week: Auto-identify the single highest-LOC PR in the window. Highlight it:
If the time window is 14 days or more, split into weekly buckets and show trends:
Count consecutive days with at least 1 commit to origin/<base-branch>, going back from today:
# Get all unique commit dates (Pacific time) — no hard cutoff
TZ=America/Los_Angeles git log origin/<base-branch> --format="%ad" --date=format:"%Y-%m-%d" | sort -u
Count backward from today — how many consecutive days have at least one commit? This queries the full history so streaks of any length are reported accurately. Display: "Shipping streak: 47 consecutive days"
Before saving the new snapshot, check for prior retro history:
ls -t .context/retros/*.json 2>/dev/null
If prior retros exist: Load the most recent one using the Read tool. Calculate deltas for key metrics and include a Trends vs Last Retro section:
Last Now Delta
Test ratio: 22% → 41% ↑19pp
Sessions: 10 → 14 ↑4
LOC/hour: 200 → 350 ↑75%
Fix ratio: 54% → 30% ↓24pp (improving)
Commits: 32 → 47 ↑47%
Deep sessions: 3 → 5 ↑2
If no prior retros exist: Skip the comparison section and append: "First retro recorded — run again next week to see trends."
After computing all metrics (including streak) and loading any prior history for comparison, save a JSON snapshot:
mkdir -p .context/retros
Determine the next sequence number for today (substitute the actual date for $(date +%Y-%m-%d)):
# Count existing retros for today to get next sequence number
today=$(TZ=America/Los_Angeles date +%Y-%m-%d)
existing=$(ls .context/retros/${today}-*.json 2>/dev/null | wc -l | tr -d ' ')
next=$((existing + 1))
# Save as .context/retros/${today}-${next}.json
Use the Write tool to save the JSON file with this schema:
{
"date": "2026-03-08",
"window": "7d",
"metrics": {
"commits": 47,
"prs_merged": 12,
"insertions": 3200,
"deletions": 800,
"net_loc": 2400,
"test_loc": 1300,
"test_ratio": 0.41,
"active_days": 6,
"sessions": 14,
"deep_sessions": 5,
"avg_session_minutes": 42,
"loc_per_session_hour": 350,
"feat_pct": 0.40,
"fix_pct": 0.30,
"peak_hour": 22
},
"version_range": ["1.16.0.0", "1.16.1.0"],
"streak_days": 47,
"tweetable": "Week of Mar 1: 47 commits, 3.2k LOC, 38% tests, 12 PRs, peak: 10pm"
}
Structure the output as:
Tweetable summary (first line, before everything else):
Week of Mar 1: 47 commits, 3.2k LOC, 38% tests, 12 PRs, peak: 10pm | Streak: 47d
(from Step 2)
(from Step 11, loaded before save — skip if first retro)
(from Steps 3-4)
Narrative interpreting what the patterns mean:
(from Steps 5-7)
Narrative covering:
(from Step 8)
Identify the 3 highest-impact things shipped in the window. For each:
Specific, actionable, anchored in actual commits. Phrase as "to get even better, you could..."
Small, practical, realistic for a very busy person. Each must be something that takes <5 minutes to adopt.
(if applicable, from Step 9)
When the user runs retro compare (or retro compare 14d):
--since="7 days ago"--since and --until to avoid overlap (e.g., --since="14 days ago" --until="7 days ago" for a 7d window).context/retros/ (same as a normal retro run); do not persist the prior-window metrics..context/retros/ JSON snapshot).context/retros/ JSON snapshot.origin/<base-branch> for git queries, not a stale local branchTZ=America/Los_Angeles)