Workday summary
Collection of Claude Code and Claude Desktop skills for developer workflows, automation, and productivity
npx -y skills add mostafa-drz/claude-skills --skill workday-summaryAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Summarizes work done today into timesheet-ready bullet points. Analyzes conversation history, git commits, Linear tickets, and GitHub PRs. Use when ending a session, filling a timesheet, preparing for standup, writing a daily log, wrapping up for the day, or when asked what was worked on.
SKILL.md
11.0 KB, ~2.7k tokens by cl100k_base, as published. Nobody here has run it
Workday Summary
Summarize everything you worked on into clean, grouped bullet points — ready for timesheets, standups, or end-of-day logs.
Preferences
Read ~/.claude/skills/workday-summary/preferences.md using the Read tool. If not found, no preferences are set.
Context
On startup, use Bash to gather: current date, git user email (git config user.email), GitHub username (gh api user -q .login), and any git repos under the working directory. Skip any that fail.
Command routing
Check $ARGUMENTS:
help→ display help then stopconfig→ interactive setup then stopreset→ delete~/.claude/skills/workday-summary/preferences.md, confirm, stop- anything else (including empty) → run the summary
Flags
Parse from $ARGUMENTS (use $0, $1 shorthand for positional args):
--today(default) — summarize today's work--yesterday— summarize yesterday's work--week— summarize this week's work--since "date"— summarize since a specific date/time--format <fmt>— output format:bullets(default),table,full-markdown,plain--group-by <mode>— grouping:ticket(default),project,chronological,none--no-time-estimates— omit time estimates from output--sources <list>— comma-separated:conversation,git,linear,github(default: all)--concise— summary only, no evidence--detailed— show evidence for each item
Help
Workday Summary — Summarize today's work for timesheets and standups
Usage:
/workday-summary Summarize today's session
/workday-summary --yesterday Yesterday's work
/workday-summary --week This week's work
/workday-summary --since "2026-02-28" Since a specific date
/workday-summary --format table Output as timesheet table
/workday-summary config Set preferences
/workday-summary reset Clear preferences
/workday-summary help This help
Options:
--today Default. Summarize today.
--yesterday Summarize yesterday.
--week Summarize this week (Mon-now).
--since "date" Since a specific date or time.
--format <fmt> bullets | table | full-markdown | plain
--group-by <mode> ticket | project | chronological | none
--no-time-estimates Omit time estimates
--sources <list> conversation,git,linear,github
--concise Summary only
--detailed Show evidence for each item
Examples:
/workday-summary End-of-day summary
/workday-summary --format table Timesheet-ready table
/workday-summary --week --concise Quick weekly recap
/workday-summary --sources git,linear Only git + Linear data
Current preferences:
(read from preferences.md)
Config
Use AskUserQuestion:
Q1 — "Output format?" (Bullets (default), Table, Full Markdown, Plain text)
Q2 — "Group by?" (Ticket/project (default), Chronological, No grouping)
Q3 — "Include time estimates?" (Yes (default), No)
Q4 — "Which sources to include?" (multiSelect: true)
- Conversation history
- Git commits
- Linear tickets
- GitHub PRs
Q5 — "Detail level?" (Concise — high-level only, Detailed — show evidence (default))
Q6 — "Auto-copy to clipboard?" (Yes, No (default))
Q7 — "Save summary to file? If yes, provide path." (No (default), or a path)
Save to ~/.claude/skills/workday-summary/preferences.md.
Reset
Delete ~/.claude/skills/workday-summary/preferences.md and confirm: "Preferences cleared. Using defaults."
First-time detection
If no preferences file exists, show:
"First time using /workday-summary? Run /workday-summary config to set defaults, or continue — I'll use sensible defaults."
Then proceed.
Workflow
1. Determine time window
Based on flags (in priority order):
--since "date"— parse the date--yesterday— yesterday 00:00 to yesterday 23:59--week— Monday 00:00 to now--todayor empty — today 00:00 to now
Use Bash to compute the ISO date string for the window start:
date -v-0d +%Y-%m-%d # today
date -v-1d +%Y-%m-%d # yesterday
date -v-monday +%Y-%m-%d # this week's monday
2. Gather context (parallel where possible)
Run all source collection in parallel. Skip any that fail.
A. Conversation history (most important source)
This skill has FULL access to the conversation context. Analyze the conversation to identify:
- Files read or edited — infer what feature/bug they relate to
- Bash commands run — what was being tested, built, deployed
- Tool calls — what MCP tools were used and why
- Decisions made — architectural choices, debugging conclusions
- Problems solved — errors encountered and how they were resolved
Do NOT just list "read file X" or "ran command Y". Synthesize into accomplishments:
- "Investigated auth flow to understand token refresh behavior" (not "read auth.ts")
- "Fixed pagination bug in search results" (not "edited search.tsx line 45")
- "Set up email notification templates for meeting summaries" (not "wrote 3 files")
B. Git commits
For each git repo the user worked in, run:
git log --since="{window_start} 00:00" --oneline --author="$(git config user.email)" 2>/dev/null
Also check for uncommitted work:
git diff --stat 2>/dev/null
git diff --cached --stat 2>/dev/null
If multiple repos exist under the working directory, scan each. Use Bash to find them:
find /Users/mostafa/Dev/ateam -maxdepth 2 -name .git -type d 2>/dev/null
C. Linear (if MCP available)
Try to fetch issues assigned to me, updated within the time window:
- Use
list_issueswith assignee "me", updatedAt filter - Note ticket IDs, titles, and status changes
If Linear MCP is unavailable, skip gracefully.
D. GitHub (if gh CLI available)
gh pr list --author @me --state all --limit 20 --json number,title,state,updatedAt,url 2>/dev/null
Filter to PRs updated within the time window.
Also check for PR reviews given:
gh api graphql -f query='{ viewer { contributionsCollection { pullRequestReviewContributions(first: 20) { nodes { pullRequest { number title url repository { nameWithOwner } } } } } } }' 2>/dev/null
E. Recent shell activity (supplementary)
Check bash/zsh history for additional signals:
fc -l -t '%Y-%m-%d %H:%M' -200 2>/dev/null
Filter entries from the time window. Look for patterns (deploy commands, test runs, build commands) that indicate work done.
3. Synthesize
Merge signals from all sources, deduplicating:
- If a git commit and a conversation both reference the same file/feature, combine them
- If a Linear ticket and a git branch match (by ticket ID in branch name), group together
- Prefer the highest-context description (conversation > git message > ticket title)
Group results according to --group-by preference:
- ticket — group by Linear ticket or project, with an "Other" bucket for ungrouped work
- project — group by repo or project name
- chronological — order by time
- none — flat list
4. Format output
Apply the --format preference:
bullets (default)
## Today's Work — {date}
### What I accomplished
- [High-level accomplishment 1]
- [High-level accomplishment 2]
- [High-level accomplishment 3]
### By Ticket / Project
**AIS-XXX: Ticket Name**
- Specific thing done
- Another thing done
**Codebase Work** (git-based, no ticket)
- Fixed X in file Y
- Added feature Z
### For Timesheet
| Task | Category | Est. Time |
|------|----------|-----------|
| AIS-XXX: Description | Dev | ~2h |
| Code review: PR #123 | Review | ~30m |
| Debugging pipeline issue | Debug | ~1h |
table
## Today's Work — {date}
| Task | Category | Est. Time | Source |
|------|----------|-----------|--------|
| AIS-XXX: Did thing | Dev | ~2h | Git + Linear |
| Reviewed PR #123 | Review | ~30m | GitHub |
| ... | ... | ... | ... |
| **Total** | | **~Xh** | |
full-markdown
Full version with all sections, evidence links, and detailed descriptions.
plain
Minimal plain text, no markdown — suitable for pasting into time tracking tools.
5. Present summary
Output the formatted summary.
If --detailed, include evidence for each item:
- Git commit hashes
- File names changed
- Linear ticket URLs
- PR URLs
6. Offer post-actions
Use AskUserQuestion (multiSelect: false):
- "Copy to clipboard" — copy the summary using
pbcopy(macOS) - "Save to file" — save to a specified path (default:
~/Desktop/workday-summary-{date}.md) - "Change format" — re-render in a different format
- "Add/remove items" — let the user edit the summary
- "Done" — finish
If the user picks "Copy to clipboard":
echo "{summary}" | pbcopy
Confirm: "Summary copied to clipboard."
If the user picks "Save to file", ask for path (or use default), then write the file.
If the user picks "Add/remove items", let them specify what to change, re-render, and re-offer actions.
7. Learn
Save useful patterns to preferences:
- If user always uses a specific format, save it
- If user removes time estimates, save
no-time-estimates: true - If user always picks specific sources, save as defaults
- If user corrects a grouping or categorization, note the pattern
Mention what was learned: "Noted: you prefer table format. Saved for next time."
Principles
- Accomplishments, not activities — say "Fixed pagination bug" not "Edited search.tsx". Synthesize raw signals into meaningful work items.
- Read-only — this skill only reads conversation history, git logs, and API data. It never modifies code, tickets, or branches.
- Conversation context is king — the conversation history is the richest source of what was actually done. Git and Linear are supplementary.
- Graceful degradation — if a source is unavailable, skip it. Never fail because one source is down.
- Timesheet-ready — the output should be directly pasteable into time tracking tools with minimal editing.
- Fast — gather all sources in parallel. Don't block on slow API calls.