review-recent-work
Load this skill when looking back over a period of work in a repo: what shipped, how work flowed, and the issues the history shows, each routed to a fix. Trigger on "write a retro", "what did we ship
SKILL.mdplugins/standalone/ceh-git-workflow/skills/review-recent-work/SKILL.md
GitHubReview recent work
Summarise a period of work from what the repository recorded, not from memory, and route each issue the history shows to the skill that fixes it. Done means the retro is saved, every issue in this repo's scope has been handed to its route, and the path, headline numbers, and routes are reported.
Procedure
Fix the period. From
$ARGUMENTS, otherwise from the day after the newestproduct/retros/*-period.md, otherwise the last 14 days. State both dates in the retro.Collect the history. Every number comes from a command, and the retro names the command:
git log --since=<since> --until=<until> --no-merges --pretty='%h %ad %s' --date=short git log --since=<since> --until=<until> --merges --first-parent <default-branch> --pretty='%h %ad %s' --date=short git log --since=<since> --until=<until> --no-merges --name-only --pretty=format: | sort | uniq -c | sort -rn | head -10 git log --since=<since> --until=<until> --grep='^Revert' --pretty='%h %s'With
gh, add the merged PRs:gh pr list --state merged --search "merged:<since>..<until>" --json number,title,createdAt,mergedAt,additions,deletions,reviews --limit 200.Group what shipped by Conventional Commits type and scope, or by top-level directory when the repo does not use them. One line per group, with the PRs or commits that make it up.
Read the flow. Compute only what the history supports: PRs merged, median and slowest time from open to merge, the largest diffs, reverts, fixes that touch a file changed earlier in the same period (a fix-of-a-fix), and the files changed most often (churn hotspots).
Name at most three issues. Each one states what went wrong and the commits or PRs that show it ("#41 and #47, each over 800 changed lines, took over 5 days to merge"). An issue with no evidence behind it is left out. Name the issue, not the fix: the routed skill finds the cause and designs the fix, and a fix drawn from history alone skips that step. Signals and the kind they usually are:
Signal Kind A revert, a fix-of-a-fix Bug A churn hotspot whose commits keep fixing the same area Design Large PRs, slow merges, PRs merged without review Project rule Commits undoing the same kind of agent change Agent mistake Route each issue, then act on every route in this repo's scope, in this session:
Issue is Route A bug in this repo's code or config ceh-coding-conduct:find-root-cause, which writes the fix recordA feature or design change in this repo ceh-build-planning:write-build-planAn agent mistake a check or guidance in this repo should have stopped ceh-every-session:prevent-repeat-mistakeA rule for how work is done in this repo ceh-every-session:record-project-decisionsAnything else in this repo Fix it directly, with the check that proves it Outside this repo: user settings or memory, an installed plugin, Claude Code itself, another repo Left in the report for the user A route whose plugin is not installed stays open in the report, with the route named.
Save and report per Output.
Rules
- Facts from history only. Something the history cannot show (why a PR stalled, how the team felt) is a question in the retro, not a finding.
- Measure the work, not the people. No per-person counts, rankings, or blame. Commits per author measure nothing worth improving and invite gaming.
- A small number is reported as a count, not a trend. Three PRs are not a velocity.
- Merge commits, bots, and generated files (lockfiles, snapshots) are excluded from churn counts.
Output
Save by where each fix lands, creating the directory if needed. The retro and its in-scope issues
go to product/retros/<YYYY-MM-DD>-period.md, committed with the first fix it routes, because the
next retro and the routed work read it. Out-of-scope issues go to
.agents_workspace/retros/<YYYY-MM-DD>-period.md, local, because only the user acts on them. When
both files exist, each links the other through other_file. Each file fills
assets/period-retro.template.md, per references/period-retro-schema.md.