Time registration
Skill rvanbaalen/skills/plugins/time-registration/skills/time-registration
Public Claude Code skills marketplace
npx -y skills add rvanbaalen/skills --skill time-registrationAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 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
Summarize recent git work for time registration. Use when the user asks what they worked on, needs a time log, wants a work summary, asks about today's/yesterday's/last week's work, or invokes /time-registration:time-registration. Accepts an optional time period argument (defaults to today).
SKILL.md
6.7 KB, ~1.5k tokens by cl100k_base, as published. Nobody here has run it
Time Registration
Summarize recent git activity into a short, comma-separated one-liner suitable for time registration or standup notes. Includes commits from sibling worktrees of the current repo, remote-tracking branches (work pushed from other machines), and recently merged PRs — not just the current working tree.
Arguments
The user may provide a time period as a free-text argument:
- "today" (default if nothing specified)
- "yesterday", "this week", "last week", "last 3 days", "monday", "since friday", etc.
Parse the intent and translate it to a git log --since/--until date range.
Before running the log, echo the accepted hints so the user sees their options:
Time period: today (default). Other options: yesterday, this-week, last-week, last-3-days, since-<day>.
If the user passed an argument, skip the hint line and just confirm the parsed range (e.g. Time period: last week (2026-04-13 → 2026-04-20)).
Process
1. Determine the date range
Convert the user's input to concrete dates. Examples:
- "today" →
--since="today 00:00"(default when no argument given) - "yesterday" →
--since="yesterday 00:00" --until="today 00:00" - "last 3 days" →
--since="3 days ago" - "this week" →
--since="last monday" - "last week" →
--since="2 mondays ago" --until="last monday"
2. Sync with remote
Work may have been pushed from other machines or already merged upstream — fetch before scanning so remote-tracking refs are current. Run once per unique repo across worktrees (worktrees share an object store, so one fetch covers all of them):
git fetch --all --quiet --prune
If fetch fails (offline, auth error), warn the user and continue with whatever local refs already exist — do not fail the skill.
3. Enumerate worktrees and scan all branches
Commits in other worktrees, on unchecked-out branches, or on remote-tracking refs don't show up in the current tree's git log by default. List every worktree and run a log scoped with --all so each iteration surfaces the full ref graph reachable from that worktree's repo store (local branches, remote-tracking branches, refs/stash):
git worktree list --porcelain | awk '/^worktree /{print $2}'
author="$(git config user.name)"
email="$(git config user.email)"
for wt in $(git worktree list --porcelain | awk '/^worktree /{print $2}'); do
echo "=== $wt ==="
# Multiple --author flags OR together, catching commits where user.name
# varies across machines but the email is consistent:
git -C "$wt" log --all \
--author="$author" --author="$email" \
--since="<start>" --until="<end>" \
--oneline --no-merges
done
Dedupe by commit SHA across worktree iterations — --all returns overlapping sets across worktrees that share refs. A simple awk '!seen[$1]++' over the concatenated output works, or build a SHA → first-seen worktree map for attribution context.
If every worktree returns empty, fall through to step 4 — merged PRs may still surface activity (e.g., squash-merged work where the original branch was pruned).
4. List merged PRs
Squash-merge workflows replace branch commits with a single new SHA on the default branch, sometimes authored by the merger rather than the user. The user's own work disappears from git log --author=<self> once the source branch is deleted. To recover it, query GitHub directly.
Skip this step silently if gh isn't installed (command -v gh) or the repo isn't on GitHub (gh repo view --json url 2>/dev/null fails).
Otherwise, list PRs authored by the user merged within the same window — the merged: search qualifiers already imply state=merged, so no --state flag is needed:
gh pr list --author "@me" \
--search "merged:>=<start-date> merged:<=<end-date>" \
--json number,title,mergedAt,headRefName,url \
--limit 50
Translate the date range into ISO YYYY-MM-DD for the search qualifiers (e.g., merged:>=2026-04-29 merged:<=2026-05-06).
If a PR's commits already showed up in step 3 (match by headRefName or commit SHA via gh pr view <num> --json commits), prefer the PR title for summarization — PR titles tend to read better than individual commit messages. If a PR's commits are NOT in step 3's output (squash-merged + branch pruned), add the PR title as a standalone summary item.
5. Summarize
Read through the commit messages across all worktrees plus the merged PR titles and distill them into a single comma-separated summary line. The summary should:
- Use plain, human-readable language (not commit message format)
- Group related commits and PRs into one item, even across worktrees and remote refs (e.g., 3 commits + 1 merged PR about auth → "implemented OAuth login")
- Deduplicate: the same commit SHA can appear in multiple worktrees sharing history, and a PR's commits may already be in the local log — count each piece of work once
- Prefer PR titles over individual commit messages when a PR is the better summary unit
- Use past-tense action verbs: worked on, fixed, implemented, upgraded, refactored, added, removed, updated
- Keep it short — aim for one line that fits in a timesheet entry
- Mention package/dependency upgrades with version numbers if available
Example output:
Implemented user authentication, fixed pagination bug on dashboard, upgraded React from 18 to 19, refactored API error handling
6. Offer to copy to clipboard
After printing the summary line, use AskUserQuestion to offer copying it to the macOS clipboard. Default to "Yes" — most callers want to paste into a timesheet.
- Question:
Copy summary to clipboard? - Options:
Yes, copy it/No, leave it
If the user picks "Yes", pipe the exact summary line to pbcopy:
printf %s "<summary line>" | pbcopy
Confirm with a single line (e.g. Copied.). Skip this step if the summary was empty (no commits found).
7. Multiple repositories
Only if the user explicitly asks to check multiple repos, ask which directories to check using AskUserQuestion. Then repeat the worktree-aware log in each directory and produce one summary per repo.
Gives 0 of the 12 instructions most note taking skills give in ~1.5k tokens
Counted across 686 of the 876 authors here whose files we hold, read 2026-08-06
- include a visual element on every slidein 44 of 686, across 13 files
- use wikilinks for internal vault linksin 35 of 686, across 11 files
- commit to a single visual motif across every slidein 34 of 686, across 9 files
- read pptxgenjs guide before creating presentations from scratchin 30 of 686, across 6 files
- keep 0.5 inch minimum marginsin 30 of 686, across 7 files
- use subagents to visually inspect rendered slidesin 30 of 686, across 6 files
- re-verify affected slides after every fixin 27 of 686, across 5 files
- run content QA checks before declaring successin 26 of 686, across 3 files
- Use Markdown links for external URLs onlyin 26 of 686, across 10 files
- pick a bold topic specific color palettein 24 of 686, across 2 files
- read editing guide before editing existing presentationsin 23 of 686, across 1 file
- use one dominant color across all slidesin 23 of 686, across 1 file
Said here and by no other author read
- parse free text into date ranges
- echo time period hints before running log
- fetch all remotes before scanning
- continue with local refs if fetch fails
- enumerate worktrees and scan all branches
- deduplicate commits across worktrees
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.