···11----
22-description: generate a digest of work shipped over the last month
33-allowed-tools: Bash(git:*), Bash(ls:*), Bash(gh:*), Bash(find:*), Bash(stat:*), Read, Glob, Grep, Task
44----
55-66-generate a comprehensive digest of what i've shipped over the last month.
77-88-## step 1: detect identity
99-1010-determine who the user is by running these commands:
1111-- `git config user.email` - primary identifier for commit authorship
1212-- `git config user.name` - display name
1313-- `gh api user --jq .login 2>/dev/null` - github username (skip if gh unavailable)
1414-1515-## step 2: detect source directories
1616-1717-check for these directory structures and skip any that don't exist:
1818-1919-**github repos**: `~/github.com/{username}` where username matches the gh login or can be inferred from directory contents
2020-2121-**tangled repos**: `~/tangled.sh/@{handle}` - look for directories matching `@*` pattern
2222-2323-**gitlab repos**: `~/gitlab.com/{username}` (if exists)
2424-2525-for each provider, only proceed if the base directory exists (e.g., `~/github.com`).
2626-2727-## step 3: find recently modified repos
2828-2929-for each detected source directory:
3030-1. list subdirectories and check modification times
3131-2. for repos modified in the last 30 days, run: `git log --oneline --author="<email>" --since="1 month ago" | head -20`
3232-3. skip repos with no commits from this user in the time period
3333-3434-also check for work contributions in common locations:
3535-- employer repos (other directories under ~/github.com that aren't the user's username)
3636-- look for repos where the user has commits but doesn't own the repo
3737-3838-## step 4: gather project metadata
3939-4040-for each active repo, try to determine:
4141-- **what it is**: read README.md first paragraph or pyproject.toml description
4242-- **live url**: check for fly.toml (app name -> {app}.fly.dev), wrangler.toml, vercel.json, or CNAME files
4343-- **package name**: check pyproject.toml `[project] name` for installable packages
4444-4545-## step 5: generate digest
4646-4747-organize the output as markdown:
4848-4949-```
5050-## shipped this month
5151-5252-### projects
5353-| project | description | link |
5454-|---------|-------------|------|
5555-| ... | ... | ... |
5656-5757-### contributions
5858-notable commits to other projects (employer, open source, etc.)
5959-6060-### themes
6161-- common patterns or focus areas this month
6262-```
6363-6464-include valid links wherever possible - deployed URLs, github repos, pypi packages.
6565-6666-format should be suitable for embedding in a personal site or sharing as a status update.