git-work-reporter
Write a daily or weekly work report using git commits. Use when the user asks to write or send a daily report/standup or weekly report, especially \"日报\", \"发日报\", \"周报\", \"发周报\", \"daily report\", \"weekly report\", or \"work report\".
Permissions
Risk Assessment
This skill requests 2 of 4 possible permissions. Moderate scope — review that both permissions are necessary for its stated purpose.
SKILL.md
Workflow
- Determine local date and format as
MM.DD(no year). - Decide daily vs weekly based on the user's request.
- Confirm the workspace root path for scanning multiple repos; if the user hasn't provided one, first check WORK_REPORT_ROOT or CODEX_WORK_ROOT, then ask.
- For daily reports, collect git commit subjects by author across all repos under the target root, grouped by project (repo).
- Prefer using
scripts/git_today_commits.sh --root <path> --period daily --group-by-repo. - If needed, run manually per repo:
git log --since=midnight --author "<name>" --pretty=format:%s. - Rewrite commit subjects into concise Chinese items and then turn them into a numbered list under each project (avoid English output); replace low-value or sensitive phrases (e.g., "解决冲突") with business-friendly wording (e.g., "代码集成与稳定性维护").
- If there are no commits, ask the user for manual items.
- Prefer using
- For weekly reports, summarize git commits into concise Chinese items grouped by project (do not require user input unless there are no commits).
- Prefer using
scripts/git_today_commits.sh --root <path> --period weekly --group-by-repo. - Convert commit subjects into 1-5 Chinese summary items per project (merge similar changes).
- Prefer using
- Only treat directories with a
.gitfolder or file as projects. Ignore non-git directories. Include nested repos under the root.
Script
Use scripts/git_today_commits.sh to list commit subjects.
- If you're not in this skill directory, call it via
~/.codex/skills/work-report/scripts/git_today_commits.sh(or$CODEX_HOME/skills/work-report/scripts/git_today_commits.sh). --root <path>is required unless--repois provided or WORK_REPORT_ROOT/CODEX_WORK_ROOT is set.- Default author comes from
git config --global user.name, thengit config --global user.email. - Use
--root <path>to target a different root folder. - Use
--repo <path>to target a single repo. - Use
--author "Name"to override author. - Use
--period daily|weeklyto pick the time range. - Use
--since "<expr>"to override the time range (e.g., "yesterday"). - Use
--with-repoto prefix each item with the repo name. - Use
--group-by-repoto output sections grouped by repo for easier report formatting. - Commits are collected across all branches by default (
git log --all). Use--no-allto limit to the current branch. - Normalization is enabled by default to make items more business-friendly; use
--no-normalizeto keep raw commit subjects. - Use
--summary-source subject|diff|bothto switch the summary source (diff mode summarizes file/module changes).
Output format
Use "今日工作总结" as the header text for daily reports. When the script outputs bullets, convert them into a numbered list.
MM.DD 今日工作总结
<项目A>
1.<item>
2.<item>
<项目B>
1.<item>
Use "本周工作总结" as the header text for weekly reports. Weekly items are a Chinese summary derived from git commits. The time range should follow the natural week starting Monday.
MM.DD-MM.DD 本周工作总结
<项目A>
1.<item>
2.<item>
<项目B>
1.<item>
Why You Need git-work-reporter
Every developer dreads the weekly standup question: "What did you work on this week?" You know you were productive, but reconstructing a coherent summary from five days of commits, branches, and context switches is painful. Daily reports are even worse — interrupting your flow to document what you just did.
Git Work Reporter automatically generates daily or weekly work reports by analyzing your git commit history. It groups commits by feature or fix, summarizes the changes in human-readable language, and outputs a formatted report ready for your team. No more staring at git log trying to remember what that Wednesday afternoon refactoring was about.
Whether your team uses Slack standups, Jira updates, or email summaries, this skill turns your commit history into polished reports in seconds.
Common Use Cases
- Generate a daily standup summary from today's git commits across all branches
- Create a weekly work report grouping commits by feature, bugfix, and refactoring
- Produce a sprint retrospective summary of all work completed in the last two weeks
- Generate a changelog for a release from all commits between two tags
- Create an individual contributor summary for performance review preparation
Frequently Asked Questions
Does it only work with Git?
Yes, it analyzes git commit history. It works with any Git hosting provider — GitHub, GitLab, Bitbucket, or self-hosted repositories.
Can it generate reports for a specific date range?
Yes. You can specify any date range — today, this week, last sprint, or between two specific dates. It filters commits accordingly.
Does it understand commit messages in any language?
It works best with English commit messages, but it can process commits in other languages and generate the report summary in English.