agentsclimarketplace

Eod

Skill husamql3/eod-skill/skills/eod

Slack-ready end-of-day reports from git commits for AI agents

Install
npx -y skills add husamql3/eod-skill --skill eod

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 28 days oldThe repository was created 28 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
  • 0 stars0 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

Generate a Slack-ready end-of-day work summary from the current git repo. Trigger this skill whenever the user types /eod, asks for an EOD report, wants a daily standup summary, wants to summarize today's work or this week's work, wants to post work updates to Slack, or mentions "end of day", "EOD", or "what did I work on". Accepts time periods like "today", "week", "yesterday", "last 3 days", or "since Monday".

SKILL.md

5.3 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it

EOD Skill

Create a short, clean end-of-day message the user can post to Slack, based on their git commits.

Defaults

  • Default shift window: 6:00 PM to 2:00 AM in the local timezone.
  • If the user does not specify a period, use the current or most recently completed shift window.
  • Use the current git repo. If the current directory is not inside a repo, ask the user to run the request from inside their project.
  • Use EOD_AUTHOR_EMAILS when it is set. It should be a git author regex, for example [email protected]|[email protected].
  • If EOD_AUTHOR_EMAILS is not set, use git config user.email. If that is unavailable, use git config user.name.

Steps

1. Figure out the time period

If the user gives a period, honor it:

  • today: use the relevant 6:00 PM to 2:00 AM shift window.
  • week: from the most recent Monday at 6:00 PM until now.
  • yesterday: yesterday at 6:00 PM to today at 2:00 AM.
  • last N days: from N days ago until now.
  • since Monday or another weekday: from that day at 6:00 PM until now.

If they do not specify a period, use the current or most recently completed shift:

  • Before 2:00 AM: yesterday 6:00 PM to today 2:00 AM.
  • From 2:00 AM through 5:59 PM: yesterday 6:00 PM to today 2:00 AM.
  • At or after 6:00 PM: today 6:00 PM to tomorrow 2:00 AM.

Use exact timestamps for SINCE and UNTIL, formatted for git log, such as 2026-07-10 18:00.

2. Find the repo

REPO="$(git -C "$(pwd)" rev-parse --show-toplevel 2>/dev/null)"

If there is no repo, stop with:

I can't find a git repo here. Try running this from inside your project folder.

3. Set the author filter

AUTHOR_FILTER="${EOD_AUTHOR_EMAILS:-$(git -C "$REPO" config --get user.email)}"
if [ -z "$AUTHOR_FILTER" ]; then
  AUTHOR_FILTER="$(git -C "$REPO" config --get user.name)"
fi

If AUTHOR_FILTER is empty, ask the user which git author email or name to use.

4. Get commits across all branches

Scan every local and remote-tracking branch/ref, not only the checked-out branch. This matters when the user worked on multiple PR branches during the same period.

git -C "$REPO" log \
  --all \
  --author="$AUTHOR_FILTER" \
  --since="$SINCE" \
  --until="$UNTIL" \
  --pretty=format:"COMMIT_START%n%h|%s|%b|COMMIT_END" \
  --no-merges

Parse each commit as hash | subject | body. The body may be empty.

Cut off any single commit message, including its subject and body, at 300 characters before using it as context.

If no commits are found, do not stop until this git log --all query has been used. Then say:

No commits found for [period] under [author filter] across all branches. Are you in the right repo?

5. Get branch names

Fetch branch names touched during the period for project context. These branch names are used to infer a readable project name; do not show raw branch names in the final message.

git -C "$REPO" log \
  --all \
  --author="$AUTHOR_FILTER" \
  --since="$SINCE" \
  --until="$UNTIL" \
  --no-merges \
  --pretty=format:"%D" \
  | tr ',' '\n' \
  | sed 's/^ *//' \
  | awk '
      /^HEAD -> / { sub(/^HEAD -> /, ""); print; next }
      /^origin\// { sub(/^origin\//, ""); print; next }
    ' \
  | sed 's/ .*//' \
  | grep -v '^HEAD$' \
  | sort -u

If this command returns no branches, continue without branch context.

6. Generate the Slack message

Use the current agent/model to turn the commits and branch names into a clean Slack-formatted summary.

Rules:

  • Use Slack mrkdwn formatting only: *bold*, _italic_, and simple bullets.
  • Use hyphen bullets, not numbered lists.
  • Use past tense.
  • Do not write "I".
  • Describe what was done in plain English, not git actions. For example, write "redesigned the hero section", not "updated hero component".
  • Extract distinct tasks from both commit subjects and commit bodies. Split compound commits into separate bullets when useful.
  • Group all work under a single bold project header inferred from branch names or commit content.
  • Format the project header as *Project Name* on its own line.
  • Do not write "EOD", "Today's work", or a closing line. Those are added in the final output.

Use this context shape:

Here are my git commits for [period]:

[commits]

Branch names active during this period:
[branches]

7. Add the closing line

Append a brief closing:

  • Friday: Have a great weekend everyone!
  • Other days: Have a good evening!

8. Show the final message

Display the complete message in a code block:

EOD

*Project Name*
  - thing done
  - another thing done
  - one more thing

Have a good evening!

9. Handle follow-up edits

If the user asks to add meetings, append this section before the closing line:

*Meetings*
  - Standup
  - Design review

If the user asks to add, remove, or reword tasks, apply the edit and re-show the full updated message in a code block.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.