Command in productivity
weekly-review
Produce a weekly review from the evidence in the repository and the workspace: commits and pull requests merged or open, issues closed and opened, decisions logged, research log entries, action items done and overdue, and what stalled, then a short plan for next week; written to a dated file so reviews accumulate. Use at the end of a working week, before a one-on-one or a status update, or when the week felt busy and it is unclear what got done.
- Arguments
- [--since YYYY-MM-DD] [--author NAME]
- Model
- inherit
- Allowed tools
- Read, Write, Glob, Grep, Bash(git:*), Bash(gh:*), Bash(date:*), Bash(ls:*)
Install
As a plugin
Bundled in the productivity plugin. Add the marketplace once, then install the bundle; it updates with the marketplace.
/plugin marketplace add KhaledSaeed18/dotclaude/plugin install productivity@dotclaudeAs a single item
Run from the project root; the command lands under .claude/. Copy it to ~/.claude/ to make it global.
npx shadcn@latest add KhaledSaeed18/dotclaude/weekly-reviewFiles installed
.claude/commands/weekly-review.md
What it does
Context
Options: $ARGUMENTS
Today: !date +%Y-%m-%d | Week start: !date -v-7d +%Y-%m-%d 2>/dev/null || date -d '7 days ago' +%Y-%m-%d
Commits this week (all branches):
!git log --all --since='7 days ago' --format=' %ad %h %s (%an)' --date=short 2>/dev/null | head -40
Pull requests touched this week:
!gh pr list --state all --search "updated:>=$(date -v-7d +%Y-%m-%d 2>/dev/null || date -d '7 days ago' +%Y-%m-%d)" --json number,title,state,mergedAt,author --jq '.[] | " #\(.number) [\(.state)] \(.title)"' 2>/dev/null | head -20
Issues closed this week:
!gh issue list --state closed --search "closed:>=$(date -v-7d +%Y-%m-%d 2>/dev/null || date -d '7 days ago' +%Y-%m-%d)" --json number,title --jq '.[] | " #\(.number) \(.title)"' 2>/dev/null | head -20
Decision log and research log entries this week:
!grep -h "^- $(date +%Y-%m)" DECISIONS.md docs/DECISIONS.md 2>/dev/null | tail -10; grep -c "^## $(date +%Y-%m)" RESEARCH_LOG.md 2>/dev/null | xargs -I{} echo "{} research log entries this month"
Previous review's plan:
!f=$(ls reviews/*.md docs/reviews/*.md 2>/dev/null | sort | tail -1); [ -n "$f" ] && awk '/^## Next week/{f=1;next} /^## /{f=0} f' "$f" | head -15 || echo "(no previous review)"
Task
Write reviews/<week-end-date>.md (or the existing reviews directory). Use --since to change the window and --author to filter commits to one person in a shared repo.
Structure
# Week ending 2026-09-21
## Done
- Shipped: PR #45 workflow-hooks (merged Tue). Evidence: link.
- ...
Grouped by theme, each with its evidence (commit, PR, issue, file). Nothing without evidence.
## Against last week's plan
| Planned | Outcome |
| Finish thesis chapter 2 outline | done (research/OUTLINE.md) |
| Run n=30 sweep | not started; blocked on GPU quota |
## Decisions
- From DECISIONS.md and meeting notes this week, one line each.
## Stalled or overdue
- Action items past due (from meeting notes, the research log's Open section, open PRs with no activity for 5+ days).
## Numbers
Commits, PRs merged, issues closed, notes written, words added to chapters (if a thesis is present, from git diff --shortstat on chapters/).
## Next week
- Three to five outcomes, each with a definition of done and, where useful, a day.
Rules
- Evidence for everything; the review is a record, not a feeling. If the week has little evidence, say so; that is also information.
- Carry over unfinished plan items explicitly with their age.
- Keep it under a page. Detail links out.
- End the reply with the three headline items and the file path. Offer
supervisor-updateoremail-draftif the review feeds a status message.
This is the command as installed, rendered from its source on GitHub. Read it as Markdown.
More in productivity
- primeLoad project context into the session by reading key files and recent history. Primes the model with package metadata, architecture notes, recent commits...
- todo-triageInventory every TODO, FIXME, HACK, and XXX comment, enrich each with age and author from git blame, classify them (bug risk, missing feature, cleanup...
- brainstormingTurn a rough idea into a fully formed, written design through collaborative dialogue, exploring intent, requirements, and trade-offs one question at a...
- decision-logKeep a lightweight decision log for a project or a person: one dated line per decision with the choice, the reason, the alternatives, who decided, and a...
- grill-meRelentlessly stress-test a plan, design, architecture, idea, or strategy until all critical decisions are resolved. Use when a plan, design, or decision...
- handoffCompact the current conversation into a handoff document for another agent to pick up. Use when ending a session, switching agents, or preserving context...