원클릭으로
git-activity
// Fetch git log from local repos into day-cached JSON atoms. Simplest activity fetcher — no API calls, no pagination. Part of the recap plugin's activity fetcher pipeline.
// Fetch git log from local repos into day-cached JSON atoms. Simplest activity fetcher — no API calls, no pagination. Part of the recap plugin's activity fetcher pipeline.
Fetch Basecamp project or person activity into day-cached JSON atoms. Uses the Basecamp API with pagination and rate-limit backoff. Part of the recap plugin's activity fetcher pipeline.
Fetch GitHub PRs, reviews, issues, and commits into day-cached JSON atoms. Uses the gh CLI for authentication and API calls. Part of the recap plugin's activity fetcher pipeline.
Activity digests — pluggable source fetchers, progressive timescale synthesis, audience-aware composition. Discovers recap:*-activity fetchers, gathers cached activity, synthesizes narrative at daily/weekly/monthly timescales, and composes output for the target audience.
Create install.md files optimized for AI agent execution. Use for ANY question about install.md files or request to create/review installation documentation for autonomous agent use.
Create, edit, and refine agent skills through co-development and eval loops. Use for ANY question about skills or request to create/modify them.
Address PR review comments - fix issues, reply to threads, mark resolved
| name | git-activity |
| description | Fetch git log from local repos into day-cached JSON atoms. Simplest activity fetcher — no API calls, no pagination. Part of the recap plugin's activity fetcher pipeline. |
| triggers | ["/recap:git-activity","git activity","git log fetch"] |
Fetch git commit history from local repositories into per-day cached JSON atoms
at ~/.cache/recap/git/{repo}/{YYYY-MM-DD}/log.json. These atoms feed the
/recap orchestrator for progressive timescale synthesis.
/recap:git-activity --repos coworker:~/Work/basecamp/coworker --since 2026-03-23
/recap:git-activity --repos coworker:~/Work/basecamp/coworker,house-skills:~/Work/basecamp/house-skills --since 2026-03-23 --until 2026-03-30
/recap:git-activity --repos coworker:~/Work/basecamp/coworker --since 2026-03-23 --reuse
~/.cache/recap/git/{repo}/{YYYY-MM-DD}/log.json--reuse: skip fetch if cache exists and is marked complete# 1. Determine date range
SINCE=$(date -d "7 days ago" +%Y-%m-%d)
UNTIL=$(date +%Y-%m-%d)
# 2. Run the fetcher
"$SKILL_DIR/scripts/git-activity.sh" \
--repos "coworker:$HOME/Work/basecamp/coworker" \
--since "$SINCE" --until "$UNTIL"
# 3. Verify cache
ls ~/.cache/recap/git/coworker/
cat ~/.cache/recap/git/coworker/$SINCE/log.json | jq '.metadata'
Where $SKILL_DIR = directory containing this SKILL.md.
Each log.json contains:
{
"repo": "coworker",
"date": "2026-03-24",
"commits": [
{
"hash": "abc123...",
"short_hash": "abc123",
"subject": "Add weekly digest skill",
"author": "Jeremy",
"date": "2026-03-24T10:30:00-05:00",
"body": "Extended commit message..."
}
],
"metadata": { "complete": true, "count": 3 }
}
| Argument | Required | Description |
|---|---|---|
--repos | Yes | Comma-separated name:path pairs |
--since | Yes | Start date (YYYY-MM-DD) |
--until | No | End date (default: today) |
--reuse | No | Skip fetch if cache exists and is complete |
~/.cache/recap/git/
coworker/
2026-03-24/log.json
2026-03-25/log.json
house-skills/
2026-03-24/log.json
Day-sized atoms enable progressive aggregation: a weekly digest reads 7 daily atoms. A monthly digest reads ~30. Different timescales, same data.
| Symptom | Cause | Fix |
|---|---|---|
| "not a git repo" | Path doesn't point to repo | Check --repos paths |
| Empty commits for a day | No commits on that date | Expected — empty days are cached as complete |
| awk/jq parse error | Unusual characters in commit messages | Falls back to simpler format automatically |