Agent Skill
2/7/2026

standup-summary

This skill should be used when the user asks to "summarize my work", "generate standup update", "what did I do yesterday", "summarize my GitHub activity", "create work summary", "weekly summary", or needs to generate a summary of their GitHub contributions for sharing with their team.

G
gotwalt
3GitHub Stars
1Views
npx skills add gotwalt/claude-skills

SKILL.md

Namestandup-summary
DescriptionThis skill should be used when the user asks to "summarize my work", "generate standup update", "what did I do yesterday", "summarize my GitHub activity", "create work summary", "weekly summary", or needs to generate a summary of their GitHub contributions for sharing with their team.

name: Standup Summary description: This skill should be used when the user asks to "summarize my work", "generate standup update", "what did I do yesterday", "summarize my GitHub activity", "create work summary", "weekly summary", or needs to generate a summary of their GitHub contributions for sharing with their team. version: 1.0.0

Standup Summary

Generate a concise summary of GitHub activity (commits, pull requests, branches) across all repositories in an organization for sharing with a team.

Arguments

This skill requires an organization name as an argument. If not provided, prompt the user for it.

Workflow

Step 1: Detect Day of Week

First, determine what day of the week it is using:

date +%u  # Returns 1=Monday through 7=Sunday

Step 2: Gather User Preferences

Use the AskUserQuestion tool with options based on the current day of week:

If today is Monday (day 1): Show time period options (header: "Time period"):

  • "Friday" - Just Friday's work
  • "Weekend" - Saturday and Sunday combined
  • "Friday + Weekend" - All three days since last standup
  • "Yesterday" - Just Sunday

If today is any other weekday (day 2-5, Tuesday-Friday): Show time period options (header: "Time period"):

  • "Yesterday" - Previous day's work
  • "Last week" - The full previous week

If today is Saturday or Sunday (day 6-7): Show time period options (header: "Time period"):

  • "Yesterday" - Previous day
  • "This week" - Week so far
  • "Friday" - Last Friday

Then ask summary length (header: "Length"):

  • "1-2 sentences" - Brief, high-level summary
  • "1 paragraph" - More detailed with specific items mentioned

Step 3: Calculate Date Range

GitHub interprets plain date queries in UTC, which causes timezone issues. To query dates in the user's local timezone, use ISO 8601 datetime format with timezone offset.

First, get the timezone offset:

TZ_OFFSET=$(date +%z)  # Returns e.g., "-0800" or "+0530"
# Format for ISO 8601: insert colon -> "-08:00" or "+05:30"
TZ_FORMATTED="${TZ_OFFSET:0:3}:${TZ_OFFSET:3:2}"

For "Yesterday":

YESTERDAY=$(date -v-1d +%Y-%m-%d)
DATE_RANGE="${YESTERDAY}T00:00:00${TZ_FORMATTED}..${YESTERDAY}T23:59:59${TZ_FORMATTED}"

For "Friday":

# Calculate based on current day
# Monday: 3 days ago, Sunday: 2 days ago, Saturday: 1 day ago
# Other days: go back to previous Friday
FRIDAY=$(date -v-friday +%Y-%m-%d)  # Adjust offset as needed
DATE_RANGE="${FRIDAY}T00:00:00${TZ_FORMATTED}..${FRIDAY}T23:59:59${TZ_FORMATTED}"

For "Weekend" (Saturday + Sunday):

SATURDAY=$(...)
SUNDAY=$(...)
DATE_RANGE="${SATURDAY}T00:00:00${TZ_FORMATTED}..${SUNDAY}T23:59:59${TZ_FORMATTED}"

For "Friday + Weekend":

FRIDAY=$(...)
SUNDAY=$(...)
DATE_RANGE="${FRIDAY}T00:00:00${TZ_FORMATTED}..${SUNDAY}T23:59:59${TZ_FORMATTED}"

For "This week":

MONDAY=$(...)  # Most recent Monday
TODAY=$(date +%Y-%m-%d)
DATE_RANGE="${MONDAY}T00:00:00${TZ_FORMATTED}..${TODAY}T23:59:59${TZ_FORMATTED}"

For "Last week":

LAST_MONDAY=$(...)  # Monday of previous week
LAST_SUNDAY=$(...)  # Sunday of previous week
DATE_RANGE="${LAST_MONDAY}T00:00:00${TZ_FORMATTED}..${LAST_SUNDAY}T23:59:59${TZ_FORMATTED}"

Step 4: Query GitHub Activity

Execute the following gh CLI commands to gather activity:

Search for commits:

gh search commits --author=@me --owner=<org> --committer-date="${DATE_RANGE}" --json repository,sha,commit --limit 100

Search for authored PRs:

gh search prs --author=@me --owner=<org> --updated="${DATE_RANGE}" --json title,repository,state,url --limit 50

Search for reviewed PRs:

gh search prs --reviewed-by=@me --owner=<org> --updated="${DATE_RANGE}" --json title,repository,state,url --limit 50

Where DATE_RANGE is the timezone-aware range calculated in Step 3 (e.g., 2026-01-22T00:00:00-08:00..2026-01-22T23:59:59-08:00).

Step 5: Analyze and Summarize

Group the activity by theme or repository. Identify:

  • Major features or fixes completed
  • PRs merged or reviewed
  • Cross-cutting themes across repos

Step 6: Generate Summary

Format the summary based on the selected length:

For 1-2 sentences: Create a single, high-level summary that captures the main themes without listing individual items. Use active voice, past tense. Start with the time period label followed by a colon.

Example format:

Yesterday: Fixed MQTT race conditions across firmware and backend, added real-time device info updates to the full stack, and squashed several iOS bugs.

For 1 paragraph: Provide more detail including specific PR names, repos affected, and individual accomplishments. Still concise but comprehensive.

Example format:

Yesterday: Completed a major reliability improvement by fixing MQTT subscription race conditions in both the door firmware (PR #39) and cloud infrastructure (PR #78) that were causing weather data to be lost on device connect. Added real-time device info updates across the stack - new DeviceInfoUpdate message type in doma-common, backend broadcast in infra, and iOS app handling. Also fixed several iOS issues including token refresh authentication errors, device list interaction bugs, and WebRTC reconnection problems when returning from settings.

Step 7: Copy to Clipboard

Use pbcopy (macOS) or equivalent to copy the final summary:

echo '<summary>' | pbcopy

Confirm to the user that the summary has been copied to their clipboard.

Output Format Requirements

  • Start with the time period label and colon (e.g., "Yesterday:", "Last week:", "Friday:")
  • Use active voice, past tense
  • No first person pronouns ("I", "my")
  • No markdown formatting (plain text for Slack/chat compatibility)
  • Focus on outcomes and themes, not individual commits
  • Group related work together

Example Invocation

User: /standup doma-home

This triggers the command with "doma-home" as the organization, then prompts for time period and length preferences based on the current day of week.

Skills Info
Original Name:standup-summaryAuthor:gotwalt