Small Tweaks #1: Semi-Automated Daily Work Logging
Last modified:
Intro
Welcome to the first post of the “Small Tweaks” series ๐ I’ll be sharing small tweaks that I found useful, and I think others might find useful as well.
I’d admit, I’m a pretty lazy person. I’m so lazy that I tend to be always taking the path of least resistance (read: shortcuts). A notable recent example:
I hate washing dishes so much that I try to make my morning instant oat breakfast just with one bowl. The twist: The breakfast consists of multiple steps of mixing different ingredients:
- Liquid: Milk
- Coarse powder: Oat
- Viscous liquid: Yogurt
- Fine-grained powder: Protein powder and cacao powder
Armed with this laziness, I experimented with various “workflows”, and finally found an efficient way to get what I want with just one bowl, while perfecting the texture and taste of the breakfast. This itself worth a post, but not this one OK.
Through this series, I’ll be sharing these small tweaks.
The Friction
As with all other large corpo, at work there’s a periodic performance check-in between managers and their reports. Within these check-ins, typically the report has to share their highlights from the past period, e.g. “What are three highlights from Q1 2025?”. For me, as someone who easily forgets what I even did the previous day, when this check-in comes, I find it hard to remember what I did throughout the period.
I’ve tried a few combinations of journaling, but none stuck:
- Journaling medium: Google Docs, Google Keep, or plain text file.
- Frequency: Weekly (obviously won’t work with me), Daily.
- Format: Free-form text, or a list of bullet points.
I can see how this is a consistency problem, but my lazy brain just keeps on trying to find the path of least resistance.
The Tweaks
For the past few years, I’ve recognised a few patterns that tend to stick longer:
- Short logs: Write short, daily snippets of work. Doesn’t need to be wordy, as long as it captures the essence.
- Links as context: Links save you time. One link is worth a thousand words (maybe literally).
- Put tags / categories on your work: In my PRs (we call it Changelist), I
put tags on them, e.g.
#onduty,#project-codename, etc. to help myself easily pull them through a simple search query.
These three tweaks alone have been useful, but this one last, most recent tweak made it even better:
- AI-assisted logging: Semi-automate logging with AI tooling.
The AI tool helps me to maintain a few things:
-
Daily work log: This captures almost everything I did in a day. “Almost” since I still tend to forget to even log things. I still apply the three other tweaks above: I keep things short, I use links, and I use tags.
-
Weekly work overview: This captures the essence of what I did in a week, redundantly to the daily work log that I already have. This helps me to have a quick look at what I’ve accomplished in a week.
AI-assisted Logging: The Setup
I use Gemini CLI as the interface. I started off using Gemini CLI as just a way to modify code, but turns out it’s capable of doing custom workflows, which nicely fit what I wanted to do here.
Gemini CLI’s custom command to automatically attach a system prompt to the prompt that I send.
Being a lazy guy, I even used Gemini to even write the system prompt for me:
Prompt to generate system context
1Write me a system context for an agent that will help me to track my day to day
2work log.
3
4The agent needs to work with `~/MyWorkLog` as the main directory, and work logs
5should be tracked as follows:
6
7- Daily work log needs to be put in `YYYY/W<week_number>` directory, within a
8 markdown file `YYYY-MM-DD-<date_of_week>.md`
9- Weekly work overview needs to be put within the same directory, in a file
10 called `overview.md`.
11
12Before helping the user, the agent needs to double-check the current date to
13avoid writing logs with the wrong date. After helping the user, prompt the user
14if there are links or artifacts worth mentioning in the logs as well. If you
15have access to tools relevant to the given artifact, pull more context from the
16artifacts using those tools to enrich the written logs.
Resulting system prompt:
Note: This isn’t the exact prompt I used; I spun this up as I wrote this post.
The System Context
1### System Context
2
3**Role:** You are the **Work Log Manager**, an intelligent assistant dedicated
4to tracking the user's daily engineering and productivity tasks. Your goal is to
5maintain a pristine, organized, and enriched record of work within the user's
6local file system.
7
8**Base Directory:** `~/MyWorkLog`
9
10#### 1. Pre-Computation & Date Verification
11
12**CRITICAL:** Before generating any file paths or writing any content, you must
13explicitly verify the current date.
14
15- Check the current Year, Month, Day, Day Name, and ISO Week Number.
16- _Correction Rule:_ If the user implies a date (e.g., "Log this for yesterday")
17 that differs from the system current date, calculate the target date
18 accurately before determining the file path.
19
20#### 2. File System Structure & Naming Conventions
21
22You must strictly adhere to the following directory and file naming patterns:
23
24- **Directory Structure:** `~/MyWorkLog/{YYYY}/W{Week_Number}/`
25- _Note:_ `Week_Number` should be two digits (e.g., `W02`, `W45`).
26
27- **Daily Log File:** `{YYYY}-{MM}-{DD}-{Day_Name}.md`
28- _Example:_ `2026-01-09-Friday.md`
29- _Location:_ Inside the specific Week directory.
30
31- **Weekly Overview:** `overview.md`
32- _Location:_ Inside the specific Week directory.
33
34#### 3. Content Management Workflow
35
36When the user provides a work update:
37
381. **Identify the Target File:** Determine if this is a daily entry or a
39 high-level weekly summary.
402. **Read Existing Content (if possible):** If the file exists, append the new
41 entry with a timestamp or a logical header. Do not overwrite previous logs
42 unless explicitly instructed.
433. **Enrichment via Tools:**
44
45- If the user mentions specific artifacts (Jira tickets, GitHub PRs, Notion
46 pages, URLs) AND you have access to browsing or API tools:
47- **Action:** Trigger the tool to read the content of the link/artifact.
48- **Output:** Summarize the context of that artifact (e.g., "Fixed bug causing
49 race condition in [PR-123]") rather than just pasting the link.
50
514. **Format:** Use clean Markdown. Use bullet points for tasks, code blocks for
52 snippets, and checkboxes for to-do items.
53
54#### 4. Post-Action Interaction (The Loop)
55
56After successfully writing or updating a log entry, you must end your response
57with the following specific prompt:
58
59> _"Log updated. Are there any specific links, PRs, or design docs related to
60> this task that I should fetch and include for context?"_
61
62#### 5. Example Behavior
63
64**User:** "I fixed the login bug." **Agent:**
65
661. _Internal Check:_ Date is 2026-01-09 (Friday), Week 02.
672. _Path:_ `~/MyWorkLog/2026/W02/2026-01-09-Friday.md`
683. _Action:_ Append entry "- Fixed the login bug."
694. _Response:_ "I've added that to your Friday log. **Log updated. Are there any
70 specific links, PRs, or design docs related to this task that I should fetch
71 and include for context?**"
72
73**User:** "Yes, here is the PR link: [[github.com/](https://github.com/)...]"
74**Agent:**
75
761. _Action:_ Use browser/tool to read PR.
772. _Update:_ Edit the log entry to: "- Fixed the login bug (PR #402: Resolves
78 JWT expiration issue)."
Then, I wired the system prompt to a /work command in
.gemini/command/work.toml:
Command configuration
1description = "Agent for tracking work logs"
2
3prompt = "Read the system context from <path_to_system_context.md> and help the
4user with their prompt."
Setting up MCP servers that allows access to my work artifacts, e.g. PRs, Issue tracker, etc. This allows the agent to enrich the logs with actual context of what I did.
Daily workflow: With this setup, I typically do this cycle throughout the day:
-
Do a meaningful chunk of work
-
When finished, open the terminal that already has the
gemini-cliinstance running, and dump whatever I did as a prompt.e.g. it could be as scrappy as
1/work Theme: Onduty. Investigated issue 1234, wrote findings in <doc link>, 2sent possible fix in PR 4321. -
Take break, repeat.
With the prompt in point 2 above, the agent would write logs relevant to what I shared, potentially with more details than what I wrote thanks to the MCP server integrations.
The Result
I’m yet to see how this will payoff since the next check-in would still be a few months away (March?), but it left me satisfied knowing that I could use this tool to help making this process easier.
One immediate benefit I see here is that during project sync/check-ins, which happens much more often than performance check-ins, I could use this logs the same way.
This was also the first (maybe?) time I used Gemini CLI custom command to improve my workflow, and I found it pretty fruitful for me. The best part about this is maybe how I didn’t have to write complex script or logic to automate these, and just simply wire up a few things (prompts) and use what I know best (natural language) to have things go as I want. Laziness paid off??