A Claude Code skill that builds a paste-ready monthly timesheet. You name a month; it gathers your
GitHub PRs/commits in your configured org plus your own Slack activity, reconciles everything by
your local date, and writes report-<month>.txt. A spreadsheet notes file is optional.
The skill lives in .claude/skills/work-report/.
- Python 3.9+ — runs the scripts (standard library only, no installs).
- GitHub access — one of:
- an authenticated
ghCLI with access to your org's private repos (gh auth status) — used by the bundledfetch_github.py; or - the GitHub MCP server connected — there's no script path for it, so the skill (the agent)
queries PRs/commits through
mcp__github__*itself and does the timezone math by hand. Works, just slower and more token-heavy thangh.
- an authenticated
- Slack MCP server connected — required for the Slack step. There is no script for Slack; the
skill reads your own messages (incl. private DMs) directly via
mcp__claude_ai_Slack__*, read-only. Without it, the report is built from GitHub + notes only and misses non-PR work (reviews, investigations, helping teammates, dashboards). config.jsonin the skill dir — set yourgithub_org(copy fromconfig.example.json). Stays local, not committed.- (optional) notes file — rows of
date · hours · note; adds your logged hours and task hints.
Connect the GitHub and Slack MCP servers in your Claude setup before running (check with /mcp).
Your GitHub user and Slack ID are auto-detected.
Ask for the month, e.g. "build my time report for June". You get report-<month>.txt plus a
summary of judgment calls. Load it with pbcopy < report-june.txt, then paste at the first Date
cell in your sheet. Point it at a notes file if you have one.