{"id":49206876,"url":"https://github.com/vishwas-sr/ai-worklog","last_synced_at":"2026-04-23T19:00:40.079Z","repository":{"id":353386261,"uuid":"1219202682","full_name":"vishwas-sr/ai-worklog","owner":"vishwas-sr","description":"A local-first CLI that tracks and summarizes your work across AI/agentic sessions (GitHub Copilot, Claude Code, OpenAI Codex, Agency) for reviews, work journals, and self-assessment. No cloud services, no API keys, no telemetry.","archived":false,"fork":false,"pushed_at":"2026-04-23T16:57:46.000Z","size":1217,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-23T18:33:14.835Z","etag":null,"topics":["agency-cli","ai-agent","ai-worklog","claude","claude-code","cli","codex","copilot","developer-tools","performance-review","productivity","python","reviews","worklog","worktracker"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vishwas-sr.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-23T16:26:36.000Z","updated_at":"2026-04-23T16:55:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"187ed648-939f-42eb-b6d9-256fdff45e54","html_url":"https://github.com/vishwas-sr/ai-worklog","commit_stats":null,"previous_names":["vishwas-sr/ai-worklog"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/vishwas-sr/ai-worklog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vishwas-sr%2Fai-worklog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vishwas-sr%2Fai-worklog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vishwas-sr%2Fai-worklog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vishwas-sr%2Fai-worklog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vishwas-sr","download_url":"https://codeload.github.com/vishwas-sr/ai-worklog/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vishwas-sr%2Fai-worklog/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32193915,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-23T15:28:30.493Z","status":"ssl_error","status_checked_at":"2026-04-23T15:28:29.972Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agency-cli","ai-agent","ai-worklog","claude","claude-code","cli","codex","copilot","developer-tools","performance-review","productivity","python","reviews","worklog","worktracker"],"created_at":"2026-04-23T19:00:18.948Z","updated_at":"2026-04-23T19:00:40.066Z","avatar_url":"https://github.com/vishwas-sr.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# worklog\n\n[![CI](https://github.com/vishwas-sr/ai-worklog/actions/workflows/ci.yml/badge.svg)](https://github.com/vishwas-sr/ai-worklog/actions/workflows/ci.yml)\n[![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)\n\nA local-first CLI that tracks and summarizes your work across AI/agentic sessions (GitHub Copilot, Claude Code, OpenAI Codex, Agency, VS Code Agentic CLI, git) for reviews, work journals, and self-assessment.\n\nAll data stays on your machine. No cloud services, no API keys, no telemetry.\n\n---\n\n## How It Works\n\n```\n┌──────────────────────────────────────────────────────────────────────┐\n│                        DATA SOURCES                                  │\n│                                                                      │\n│  ┌─────────────┐  ┌──────────┐  ┌──────────┐  ┌─────────┐          │\n│  │  VS Code     │  │  Claude   │  │  OpenAI  │  │  Git    │          │\n│  │  Copilot \u0026   │  │  Code     │  │  Codex   │  │  Repos  │          │\n│  │  Agentic CLI │  │  CLI      │  │  CLI     │  │         │          │\n│  └──────┬───────┘  └────┬─────┘  └────┬─────┘  └────┬────┘          │\n│         │               │             │              │               │\n│         └──────┬────────┘             │              │               │\n│                │                      │              │               │\n│         ┌──────┴───────┐              │              │               │\n│         │   Agency     │              │              │               │\n│         │ (MS internal)│              │              │               │\n│         └──────┬───────┘              │              │               │\n│                │                      │              │               │\n│                ▼                      ▼              ▼               │\n│                     CAPTURE LAYER                                    │\n│                                                                      │\n│  worklog onboard ──────────────────── Initial bulk import            │\n│  worklog scan ─────────────────────── Periodic git scan              │\n│  worklog log ──────────────────────── Manual entry                   │\n│  worklog disable / enable ─────────── Pause / resume logging         │\n│  auto-logger instructions ─────────── AI tools log during sessions   │\n│                                                                      │\n│                          ▼                                           │\n│              ~/.local/share/worklog/sessions.jsonl                   │\n│                 (append-only, git-versioned)                         │\n│                          ▼                                           │\n│                    OUTPUT LAYER                                      │\n│                                                                      │\n│  worklog summary ──── Markdown │ HTML │ CSV │ JSON │ Review │ Report │\n│  worklog stats ────── Quick terminal overview                        │\n│  worklog list ─────── Recent entries                                 │\n└──────────────────────────────────────────────────────────────────────┘\n```\n\n---\n\n## Quick Start\n\n### One-click setup with AI agent\n\nThe fastest way to set up worklog is to let an AI agent do it for you. Add this agent URL to your VS Code Copilot chat and ask it to \"set up worklog\":\n\n```\nhttps://raw.githubusercontent.com/vishwas-sr/ai-worklog/main/.github/agents/worklog-setup.agent.md\n```\n\nThe agent will walk you through the entire setup — install the tool, ask which AI tools you use, configure auto-logging, import your existing sessions, and generate your first report. No manual steps needed.\n\nTo use it: open VS Code Copilot Chat → select the agent picker (`@`) → add the URL above as a custom agent → type \"set up worklog\".\n\n### Manual install\n\n```bash\npip install worklog\n# or from source:\ngit clone https://github.com/vishwas-sr/ai-worklog.git\ncd worklog\npip install -e .\n```\n\n### Initialize\n\n```bash\nworklog init\n# → Worklog initialized at /home/you/.local/share/worklog\n```\n\n### Log your work\n\n```bash\n# Manual entries — be specific for performance reviews\nworklog log \"Implemented circuit breaker pattern in PaymentService using Polly v8 to handle downstream API failures gracefully\" -c feature -r payment-service -t \"polly,resilience,circuit-breaker\"\nworklog log \"Investigated and resolved OOM crashes in file-sync worker — root cause was undisposed BlobDownloadStreamingResult streams\" -c bugfix -r file-sync -t \"memory-leak,azure-sdk,blob-storage\"\nworklog log \"Built KQL dashboard tracking p50/p95 API latency by endpoint with alerting thresholds\" -c research -r analytics -t \"kql,observability,latency\"\n\n# Import git history\nworklog config --add-repo /path/to/your/repo\nworklog config --author you@example.com\nworklog scan --since 2w\n\n# One-time bulk import of all AI sessions\nworklog onboard\n```\n\n### View and export\n\n```bash\n# Quick overview\nworklog stats --since 7d\n\n# Recent entries\nworklog list --since 7d\n\n# Full summary\nworklog summary --since 30d\nworklog summary --since 3m -f html -o review.html\nworklog summary --since 1m -f csv -o export.csv\n```\n\n---\n\n## Supported Data Sources\n\n| Source | Scanner | What it captures |\n|--------|---------|-----------------|\n| **VS Code Copilot Chat** | ✅ Automatic | Full conversations — prompts, responses, tool calls |\n| **VS Code Agentic CLI** (`code chat`) | ✅ Automatic | Same as above — shares VS Code session storage |\n| **VS Code Insiders** | ✅ Automatic | Same format, separate install detected |\n| **Claude Code CLI** (`claude`) | ✅ Automatic | Session history with prompts and responses |\n| **Claude Desktop** | ✅ Automatic | Shares storage with Claude Code CLI |\n| **OpenAI Codex CLI** (`codex`) | ✅ Automatic | Session history with prompts and responses |\n| **Agency** (Microsoft internal) | ✅ Automatic | Built on Copilot CLI + Claude Code — sessions captured via their scanners |\n| **Git commits** | ✅ Via `worklog scan` | Commit messages, files changed, auto-categorized |\n| **Copilot Memory** | ✅ Automatic | Persisted memory notes |\n| **Auto-logger instructions** | ✅ Via instruction files | Copilot, Claude Code, and Codex auto-log during sessions |\n| **Manual entries** | ✅ `worklog log` | Whatever you type |\n\n---\n\n## Platform Support\n\n| Platform | Data Directory | VS Code Scanner | Claude Code Scanner | Codex CLI Scanner |\n|----------|---------------|-----------------|---------------------|-------------------|\n| **Linux** | `~/.local/share/worklog` | ✅ `~/.config/Code` | ✅ `~/.claude/` | ✅ `~/.codex/` |\n| **macOS** | `~/Library/Application Support/worklog` | ✅ `~/Library/Application Support/Code` | ✅ `~/.claude/` | ✅ `~/.codex/` |\n| **Windows** | `%LOCALAPPDATA%\\worklog` (or OneDrive if detected) | ✅ `%APPDATA%\\Code` | ✅ `%USERPROFILE%\\.claude\\` | ✅ `%USERPROFILE%\\.codex\\` |\n\nOverride the data directory with the `WORKLOG_DIR` environment variable:\n\n```bash\nexport WORKLOG_DIR=~/my-custom-worklog\nworklog init\n```\n\nVS Code Insiders is also supported automatically.\n\n---\n\n## Commands\n\n### `worklog init`\n\nCreate the data directory and initialize local git versioning.\n\n### `worklog log \"\u003caction\u003e\" [OPTIONS]`\n\nManually record a work entry.\n\n| Option | Default | Description |\n|--------|---------|-------------|\n| `-c, --category` | `other` | `feature` `bugfix` `research` `review` `docs` `config` `refactor` `test` `meeting` `other` |\n| `-s, --source` | `manual` | `vscode-copilot` `gh-cli` `git` `manual` |\n| `-r, --repo` | — | Repository name |\n| `-t, --tags` | — | Comma-separated tags |\n| `-d, --details` | — | Longer description |\n\n### `worklog list [OPTIONS]`\n\nView recent entries in the terminal.\n\n| Option | Default | Description |\n|--------|---------|-------------|\n| `--since` | `7d` | Lookback period |\n| `-n, --limit` | `20` | Max entries |\n| `--repo` | — | Filter by repo |\n| `--category` | — | Filter by category |\n\n### `worklog scan [OPTIONS]`\n\nImport git commits from configured repos.\n\n| Option | Default | Description |\n|--------|---------|-------------|\n| `--since` | `30d` | Start date (`YYYY-MM-DD` or relative: `7d`, `2w`, `3m`) |\n| `--until` | now | End date |\n\nCommits are auto-categorized using [conventional commit](https://www.conventionalcommits.org/) prefixes (`fix:` → bugfix, `feat:` → feature, `ci:` → config, etc.) with fallback to keyword matching.\n\n### `worklog onboard [OPTIONS]`\n\nOne-time import of all existing session history. Scans VS Code Copilot chat sessions, Claude Code sessions, Codex CLI sessions, Copilot memory files, and git history.\n\n| Option | Default | Description |\n|--------|---------|-------------|\n| `--since` | all | Only import after this date |\n| `--dry-run` | off | Preview without writing |\n| `--vscode/--no-vscode` | on | Include VS Code Copilot sessions |\n| `--claude/--no-claude` | on | Include Claude Code sessions |\n| `--codex/--no-codex` | on | Include Codex CLI sessions |\n| `--memory/--no-memory` | on | Include Copilot memory |\n| `--git/--no-git` | on | Include git commits |\n\n### `worklog summary [OPTIONS]`\n\nGenerate a formatted work summary.\n\n| Option | Default | Description |\n|--------|---------|-------------|\n| `--since` | `30d` | Start date |\n| `--until` | now | End date |\n| `-f, --format` | `markdown` | `markdown` `html` `csv` `json` `review` `report` |\n| `-o, --output` | stdout | File path |\n| `--source` | all | Filter by source |\n| `--category` | all | Filter by category |\n| `--repo` | all | Filter by repo (substring) |\n\n### `worklog stats [--since 7d]`\n\nQuick terminal stats for recent activity.\n\n### `worklog config [OPTIONS]`\n\n| Option | Description |\n|--------|-------------|\n| `--show` | Display current config |\n| `--add-repo \u003cpath\u003e` | Add git repo to scan |\n| `--remove-repo \u003cpath\u003e` | Remove git repo |\n| `--author \u003cemail\u003e` | Set git author filter |\n| `--auto-commit/--no-auto-commit` | Toggle local git versioning |\n\n### `worklog disable` / `worklog enable`\n\nPause and resume all logging. When disabled, write commands are blocked. Read-only commands (`summary`, `stats`, `list`, `config --show`) still work.\n\n### `worklog status`\n\nShow enabled/disabled state and security permissions.\n\n### `worklog lock`\n\nRestrict the data folder to owner-only access (NTFS ACLs on Windows, `chmod 700` on Unix). Applied automatically on first `init`.\n\n### `worklog delete`\n\nDelete a worklog entry interactively or by ID. Shows a numbered list of recent entries for easy selection.\n\n```bash\nworklog delete                # Interactive — pick from numbered list\nworklog delete --id \u003cuuid\u003e    # Delete directly by entry ID\nworklog delete --yes          # Skip confirmation prompt\n```\n\nPrevious versions are always recoverable from local git history.\n\n### `worklog exclude {add|remove|list}`\n\nManage excluded sessions — excluded sessions won't be re-imported by `worklog onboard`.\n\n```bash\nworklog exclude list                  # Show all excluded session IDs\nworklog exclude add --from-list       # Pick a session interactively\nworklog exclude add -s \u003csession-id\u003e   # Exclude by session ID\nworklog exclude remove -s \u003csession-id\u003e  # Un-exclude a session\n```\n\n### `worklog completions \u003cshell\u003e`\n\nGenerate shell completion scripts. Supports `bash`, `zsh`, `fish`.\n\n```bash\n# Add to your .bashrc / .zshrc\neval \"$(worklog completions bash)\"\n```\n\n---\n\n## Date Formats\n\nAll `--since` and `--until` options accept:\n\n| Format | Example | Meaning |\n|--------|---------|---------|\n| Relative days | `7d` | Last 7 days |\n| Relative weeks | `2w` | Last 2 weeks |\n| Relative months | `3m` | Last ~90 days |\n| Absolute | `2025-01-01` | Specific date |\n\n---\n\n## Data Model\n\nEach entry in `sessions.jsonl` is a JSON line:\n\n```json\n{\n  \"id\": \"a1b2c3d4-...\",\n  \"timestamp\": \"2026-04-16T14:30:00Z\",\n  \"source\": \"vscode-copilot\",\n  \"repo\": \"my-project\",\n  \"action\": \"Implemented retry logic for blob uploads\",\n  \"category\": \"feature\",\n  \"complexity\": \"medium\",\n  \"impact\": \"Reduced upload failures from 12% to 0.3% under peak load\",\n  \"files\": [\"src/client.py\", \"tests/test_client.py\"],\n  \"tags\": [\"python\", \"retry\", \"resilience\"],\n  \"collaboration\": [\"reviewer: Jane Smith\"],\n  \"details\": \"[Context] Uploads failing under load. [Thinking] Considered increasing timeout vs retry. [Steps] Implemented Polly retry with backoff. [Outcome] Failure rate dropped to 0.3%.\",\n  \"duration_minutes\": 45\n}\n```\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `source` | enum | `vscode-copilot`, `claude-code`, `codex-cli`, `gh-cli`, `git`, `manual` |\n| `category` | enum | `feature`, `bugfix`, `research`, `review`, `docs`, `config`, `refactor`, `test`, `meeting`, `other` |\n| `complexity` | enum | `trivial`, `low`, `medium`, `high`, `critical` |\n| `impact` | string | One-sentence business/user impact — the \"so what?\" |\n| `collaboration` | string[] | People or teams involved |\n| `details` | string | Structured narrative with `[Context]`, `[Thinking]`, `[Steps]`, `[Outcome]`, `[Follow-up]` tags |\n| `duration_minutes` | float | Estimated time spent |\n\n---\n\n## Storage\n\nAll data is stored locally in a single directory:\n\n```\n\u003cdata-dir\u003e/\n├── sessions.jsonl      ← Append-only work log (one JSON entry per line)\n├── config.json         ← Configuration (repos, author, enabled state)\n├── .git/               ← Local version history for undo/recovery\n└── .gitignore\n```\n\n**Design principles:**\n\n- **JSONL format** — one entry per line, atomic appends, crash-safe, easy to inspect and debug\n- **Local git versioning** — every write is auto-committed so you can `git log` or `git diff` to see changes, or recover accidentally deleted entries. It never pushes anywhere.\n- **No network calls** — the tool never makes HTTP requests. No telemetry, no analytics, no cloud sync.\n- **Portable** — the entire data directory can be backed up, moved, or synced via any cloud drive (OneDrive, Dropbox, iCloud) without any tool-specific setup.\n\n---\n\n## Security\n\nAll data stays on your machine. Multiple layers protect your worklog:\n\n- **Owner-only file permissions** — NTFS ACLs (Windows) or `chmod 700` (Unix) are applied automatically on `worklog init`. Re-apply anytime with `worklog lock`.\n- **Pause logging** — `worklog disable` blocks all writes instantly. Resume with `worklog enable`.\n- **No secrets stored** — no API keys, tokens, or credentials are ever written to the worklog.\n- **No telemetry** — zero network calls, no analytics, no crash reporting, no phone-home.\n- **Append-only log** — entries are never modified or deleted by the tool.\n- **Audit trail** — local git history tracks every change to `sessions.jsonl`.\n\n---\n\n## Auto-Logging\n\nAuto-logging works by placing an **instruction file** into each AI tool's config directory. When the AI tool starts a session, it reads these instructions and follows them — appending a JSON entry to `sessions.jsonl` after each significant action.\n\n### How it works\n\nEach AI coding tool supports persistent instructions that shape its behavior:\n\n- **GitHub Copilot** reads `~/.github/copilot-instructions.md`\n- **Claude Code** reads `~/.claude/CLAUDE.md`\n- **OpenAI Codex** reads `~/.codex/AGENTS.md`\n\nThe instruction tells the AI to append one line of JSON to `sessions.jsonl` after completing work. The AI decides when to log based on a **hybrid strategy**:\n\n- **Short sessions** (1-10 exchanges): log once at the end\n- **Long sessions** (10+ exchanges): log a checkpoint every ~10 exchanges, plus a final summary\n- **Always log immediately** after: code changes, builds/tests, research results, PR reviews, or documentation\n\n### What gets logged\n\nEach auto-logged entry is a single JSON line:\n\n```json\n{\n  \"source\": \"vscode-copilot\",\n  \"action\": \"Implemented adaptive retry with exponential backoff for database connections\",\n  \"category\": \"feature\",\n  \"complexity\": \"medium\",\n  \"impact\": \"Reduced connection failures from 8% to 0.1% during peak traffic\",\n  \"files\": [\"src/db/connection_pool.py\", \"tests/test_connection_pool.py\"],\n  \"tags\": [\"python\", \"database\", \"resilience\", \"retry\"],\n  \"details\": \"[Context] Connection pool exhaustion during peak hours. [Thinking] Evaluated fixed delay vs exponential backoff vs circuit breaker. [Steps] Implemented backoff with jitter, added connection health checks. [Outcome] Failure rate dropped from 8% to 0.1% in load testing.\",\n  \"duration_minutes\": 45\n}\n```\n\nThe `details` field uses structured `[Section]` tags so worklog can parse and reformat them for different outputs (review docs, status reports, etc.):\n\n| Tag | What it captures |\n|-----|-----------------|\n| `[Context]` | What triggered the work — problem, request, or goal |\n| `[Thinking]` | User's reasoning, hypotheses, trade-offs considered |\n| `[Steps]` | Chronological problem-solving journey, including dead ends |\n| `[Outcome]` | Results with metrics, before/after numbers |\n| `[Follow-up]` | Open questions and future work identified |\n\n### Setup\n\n`worklog init` installs the Copilot instruction by default. Claude Code and Codex are opt-in:\n\n```bash\nworklog init                    # Copilot only (default)\nworklog init --claude           # Copilot + Claude Code\nworklog init --codex            # Copilot + Codex\nworklog init --claude --codex   # All three\n```\n\n| Tool | Flag | Instruction installed to |\n|------|------|------------------------|\n| **GitHub Copilot** (VS Code) | *always* | `~/.github/copilot-instructions.md` |\n| **Claude Code** (CLI/Desktop) | `--claude` or auto-detected | `~/.claude/CLAUDE.md` |\n| **OpenAI Codex** (CLI) | `--codex` or auto-detected | `~/.codex/AGENTS.md` |\n\nClaude Code and Codex are also auto-detected — if `~/.claude/` or `~/.codex/` already exists on your machine, `worklog init` will install their instruction files automatically without needing the flag.\n\nIf you already have instruction files for these tools, worklog appends its logging instructions rather than overwriting. If the logging instructions are already present, it skips the file.\n\nIf you install a new tool later, just run `worklog init --codex` — it will set up auto-logging for it.\n\n---\n\n## Onboarding Walkthrough\n\nHere's what a typical first-time setup looks like from start to finish:\n\n**Step 1 — Install and initialize:**\n\n```\n$ pip install git+https://github.com/vishwas-sr/ai-worklog.git\n$ worklog init\nWorklog initialized at /home/you/.local/share/worklog\nData is stored locally with automatic git versioning.\nPermissions: owner-only access enforced, sharing disabled.\n```\n\n**Step 2 — Import all existing AI sessions:**\n\n```\n$ worklog onboard --dry-run\nScanning VS Code Copilot chat sessions...\n  Found 28 chat session(s)\nScanning Claude Code sessions...\n  Found 3 Claude Code session(s)\nScanning Codex CLI sessions...\n  Found 0 Codex CLI session(s)\nScanning Copilot memory files...\n  Found 0 memory note(s)\n\n============================================================\nTotal entries to import: 31\nDate range: 2026-02-04 to 2026-04-17\nBy source: vscode-copilot=28, claude-code=3\nBy category: feature=8, research=6, bugfix=5, config=4, other=4, review=2, docs=2\n\nDry run — no entries written.\n\n$ worklog onboard\nImported 31 entries into /home/you/.local/share/worklog/sessions.jsonl\n```\n\n**Step 3 — Add git repos and log manual work:**\n\n```\n$ worklog config --add-repo ~/projects/backend-api\nAdded repo: /home/you/projects/backend-api\n\n$ worklog scan --since 2w\nScanning 1 git repo(s)...\n  Found 14 commits.\nAdded 14 new entries.\n\n$ worklog log \"Implemented circuit breaker for payment gateway using Polly v8\" \\\n    -c feature -r backend-api -t \"polly,resilience,circuit-breaker\"\nLogged: Implemented circuit breaker for payment gateway using Polly v8\n```\n\n**Step 4 — View your work:**\n\n```\n$ worklog stats --since 30d\nEntries: 22  (since 2026-03-23)\nSources: vscode-copilot=11, git=7, manual=4\nCategories: feature=7, bugfix=4, review=2, test=2, refactor=2, research=1\n\n$ worklog list --since 7d -n 5\n  2026-04-22 18:42  [manual] [feature] (backend-api)  Implemented circuit breaker for payment gateway\n  2026-04-22 13:40  [vscode-copilot] [feature] (worklog)  Added HTML and CSV export formatters\n  2026-04-21 11:06  [vscode-copilot] [bugfix] (worklog)  Fixed off-by-one in deduplication logic\n  2026-04-20 10:49  [git] [feature] (worklog)  Initial commit: CLI with scan, log, summary\n  2026-04-20 09:32  [vscode-copilot] [feature] (worklog)  Created worklog CLI tool\n```\n\n**Step 5 — Generate reports:**\n\n```\n$ worklog summary --since 14d -f review\n# Performance Review — Work Summary\n**Period:** 2026-04-08 — 2026-04-22\n**Total items:** 20\n**Estimated time invested:** 8 hours\n\n## backend-api\n- **Implemented circuit breaker for payment gateway** [medium]\n- **Implemented health check endpoints for all components** [medium]\n- **Built functional test suite using Testcontainers** [medium] (120 min)\n- **Researched Redis Cluster vs Sentinel for HA needs** [medium] (60 min)\n...\n\n$ worklog summary --since 30d -f html -o report.html\nSummary written to report.html\n```\n\n---\n\n## Development\n\n```bash\n# Install with dev dependencies\npip install -e \".[dev]\"\n\n# Run tests\npytest tests/ -v\n\n# Lint\nruff check worklog/\n```\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for full guidelines.\n\n---\n\n## Environment Variables\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `WORKLOG_DIR` | Override data directory path | Platform-specific (see above) |\n\n---\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvishwas-sr%2Fai-worklog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvishwas-sr%2Fai-worklog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvishwas-sr%2Fai-worklog/lists"}