create-work-log · git:20260901.114c610 · 2026-09-01 · sha256 9bcafa8661d028ec
create-work-log git:20260901.114c610A
Immutable. This exact content never changes and is served at /api/v1/blob/9bcafa8661d028ec.
--- name: create-work-log description: Compose a daily or weekly work log from git activity across the user's configured repositories and save it as Markdown (e.g. into an Obsidian vault). Use when the user asks for a work log, daily report, weekly summary, 日報/週報, or "what did I do today/this week". allowed-tools: Read Glob Grep Write Bash(git *) --- # Create Work Log Turn real git activity into a readable work log — Markdown, because the destination is typically an Obsidian vault or a chat paste, not a browser. ## 1. Resolve config Read `config.json` next to this SKILL.md. If it doesn't exist, read [config.example.json](config.example.json) for the shape, ask the user for real values, then write `config.json` (git-ignored): - `repos` — absolute paths of repositories to scan. - `outputDir` — where logs are saved (e.g. an Obsidian vault folder). - `gitAuthor` — optional; a `git log --author` filter. When omitted, use each repo's `git config user.name`. ## 2. Determine the period Default: today (`--since 00:00`). "Weekly" or an explicit range from the user overrides it. State the resolved period in the log header. ## 3. Collect activity — from git, not memory Per configured repo: - `git log --all --author=<author> --since=<start> --until=<end> --pretty='%h %s (%D)'` for commits (all branches — feature-branch work counts). - `git status --short` for uncommitted work in progress, noted as such. - Skip repos with no activity; list them in one "no activity" line at the end. Completion criterion: every configured repo was scanned; nothing in the log is inferred without a commit or a dirty file behind it. ## 4. Compose the log Group by repo, then by theme (feature/fix/docs — the Conventional Commit prefixes make this mechanical). Write prose summaries in the user's conversation language; keep commit subjects verbatim. Structure: ```markdown # Work Log — <period> ## <repo name> - <theme>: <1–2 line summary> (`abc1234`, `def5678`) - In progress (uncommitted): <summary> ## Notes <anything the user dictated to include — blockers, decisions, tomorrow's plan> ``` Before saving, ask the user one question: anything to add that git can't show (meetings, reviews, blockers)? Fold the answer into **Notes** — or skip the question when running unattended (e.g. from a scheduled routine) and note "auto-generated" in the header instead. ## 5. Save and hand off - Save as `<outputDir>/<yyyy-MM-dd>-work-log.md` (weekly: `<yyyy-MM-dd>-weekly.md`, dated on the period start). If the file already exists, show the diff and confirm before overwriting. - Report the path and the activity summary. **This skill does not post to Slack** — if the user wants that, hand the composed Markdown to the `post-to-slack` skill as a separate step. ## Failure modes - A configured repo path doesn't exist → skip it, name it in the report, and suggest updating `config.json`. - No activity anywhere in the period → say so; don't fabricate a log.