Over time, I’ve experimented with different ways to track daily work sessions — some nested, some too abstract. Eventually, I found a structure that’s both easy to read and easy to process programmatically.
Here’s the format I’ve settled on:
[
{
"Date": "2025-11-12",
"Tag": "Documenting Session",
"Goal": "Update dev-blog on KISS rule and prompt",
"Notes": ["Added post to dev-blog"],
"Start": "15:40",
"End": "16:10",
"Duration": 30
},
{
"Date": "2025-11-12",
"Tag": "Refactoring Session",
"Goal": "Check race-track/shapes box for basic rules",
"Notes": ["Use guides & prompts"],
"Start": "17:15",
"End": "17:15",
"Duration": 0
}
]
1. One goal per record. Each entry captures a single focused task — making logs easier to understand and summarize later.
2. Flat and uniform. No nested arrays or complex hierarchies. Every entry follows the same structure, which makes it trivial to load into a spreadsheet or a script for analysis.
3. Flexible tagging.
The "Tag" field can represent a session type, project, or context — allowing flexible grouping (e.g. “Documenting Session” vs “Refactoring Session”).
4. Self-contained records. Each record includes all the key data — date, start and end times, and duration — so it can stand alone without depending on surrounding context.
5. Easy to extend.
If needed, new fields like "Project", "FocusLevel", or "Status" can be added later without breaking compatibility.
Keep work logs atomic and consistent. Each record should describe one thing that happened, when it happened, and for how long.
This design keeps the data readable for humans and ready for automation — a simple foundation that scales with your workflow.