Overview
GitHub Daily Work Log menjawab pertanyaan yang kerap bikin bingung tiap engineer pas daily standup: sebenarnya kemarin saya ngerjain apa aja ya? Aktivitas sering kali tercecer di berbagai repo — commit di repo A, PR di repo B, ninggalin review di PR tim lain, atau sekadar nimbrung di issue — dan sebagian besar ingatan itu sudah lenyap keesokan paginya. Arahkan CLI ini ke satu tanggal dan timezone tertentu, dan ia akan mengumpulkan rekam jejak lengkapmu menjadi satu bundle terstruktur yang deterministik untuk langsung diringkas oleh AI agent.
Proses pengumpulan datanya berjalan dalam tiga track paralel sebelum digabungkan:
- Track Commits: Menemukan repo lewat contributions API GitHub, mendata seluruh commit harianmu di tiap repo, dan memperkaya tiap item dengan file stats serta PR terkait.
- Track Issues & PRs: Menembakkan tujuh query Search API secara paralel (issues authored-created, authored-updated, assignee-created, assignee-updated; PRs authored-created, authored-updated, reviewed-by), lalu melakukan deduplikasi berbasis node id.
- Track PR Commits: Menelusuri commit di dalam tiap PR itu sendiri untuk menangkap pekerjaan yang masih hidup di feature branch dan belum sempat merge ke branch default.
Semuanya di-merge di bawah method mergeRepositories dan dideduplikasi berdasarkan commit SHA. Menariknya, CLI ini sepenuhnya men-shell-out ke gh CLI bawaan GitHub — jadi kamu nggak perlu pusing ngurus kode auth atau token baru, cukup pastikan gh auth login sudah aktif.
Desain yang sengaja dipilih: CLI ini sama sekali tidak memanggil LLM. Ia hanya menulis empat file ke folder runs/<date>/: prompt Markdown yang sudah di-prime dengan aturan kategorisasi serta instruksi "outcomes over activity", model JSON ternormalisasi, respons API mentah, dan manifest. Serahkan prompt tersebut ke Claude, Codex, atau agent apa pun yang kamu pakai, dan laporan kerja harianmu akan langsung tercipta. Karena berbasis flag dan sepenuhnya deterministik, loop ini sangat mudah diintegrasikan ke cron job, workflow n8n, atau otomasi script harian — pembuktian KPI dan standup lancar tanpa perlu arkeologi riwayat commit manual.
Tech stack
Architecture
gh-tools/ # npm workspaces monorepo
├── packages/
│ └── daily-work-log/
│ ├── src/
│ │ ├── cli.ts # entry — collect subcommand (commander)
│ │ ├── config.ts # zod schemas for the collect options
│ │ ├── model.ts # NormalizedDay + search schemas (z.infer types)
│ │ ├── normalize.ts # raw API → normalized domain model
│ │ ├── output.ts # writes the 4-file context bundle
│ │ ├── date-window.ts # local date + IANA tz → UTC window (hand-rolled)
│ │ ├── logger.ts # createLogger(debug)
│ │ ├── github/
│ │ │ ├── client.ts # gh-CLI-only wrapper (execa) — no token path
│ │ │ ├── queries.ts # pure REST path builders
│ │ │ ├── discovery.ts # repo discovery + viewer login
│ │ │ ├── enrichment.ts # commit detail, file stats, linked PRs
│ │ │ └── search.ts # the 7 Search API queries + categorize
│ │ ├── search/
│ │ │ ├── deduplicate.ts # merge by node id, best-category-wins
│ │ │ └── normalize.ts # search item → normalized schema
│ │ └── context/
│ │ ├── agent-input.ts # renders the agent prompt markdown
│ │ └── manifest.ts # bundle metadata writer
│ ├── tests/ # vitest — 7 spec files
│ ├── SKILLS.md # LLM-agent manifest (collect → read → reason)
│ └── README.md
└── package.json # workspaces: ["packages/*"]