STD-014: Worklog System
The daily worklog is the foundation of the documentation system. Every workday produces a single capture file that records decisions, accomplishments, blockers, and forward momentum. Over time, worklogs become the primary source for monthly summaries, project timelines, pattern extraction, and case study creation. Without consistent daily capture, institutional knowledge decays within days.
Principles
-
One worklog per day. Each workday produces exactly one
WRKLOG-YYYY-MM-DD.adocfile. Weekend and personal sessions follow the same format. No day produces two worklogs; no worklog spans two days. -
Section includes for modularity. The worklog body is composed from section partials (
partials/worklog/). Each section is a separate file that is rewritten daily. This enables selective inclusion, independent editing, and partial reuse without modifying the worklog page itself. -
Summary first. The worklog opens with a bold day name and a dense paragraph summarizing the entire day’s output. A reader who reads only the summary should understand the day’s scope and significance.
-
Session accomplishments capture AI-assisted work. Every Claude Code session that produces material output is documented under "Session Accomplishments" with scope, file counts, and line counts where relevant. This is the audit trail for AI-assisted productivity.
-
TODOs carry forward. The "Today’s Remaining TODO" section uses Must/Should/Stretch tiers. Uncompleted items carry forward to the next worklog or are promoted to a tracker. Nothing silently disappears.
Worklog Naming
Worklogs follow the WRKLOG prefix defined in STD-003:
WRKLOG-YYYY-MM-DD.adoc
Filed in the chronological directory structure:
pages/YYYY/MM/WRKLOG-YYYY-MM-DD.adoc
Example: pages/2026/04/WRKLOG-2026-04-06.adoc
Creation
make new-day
This command:
-
Updates
antora.ymldaily attributes (current-day,current-date,current-worklog) viamake update-today-attrs -
Updates carryover day counts via
make update-days -
Creates the worklog file with correct header, section includes, and TODO skeleton
The daily attribute update keeps the landing page (index.adoc) current automatically — the "Today" section uses include::partial$home-today.adoc[] which references {current-worklog} and {current-month} attributes. Never create worklogs manually — the Makefile template ensures structural consistency.
For local preview:
make serve # Build + local server (port 8000)
make # Build only
Required Structure
Every worklog MUST follow this structure exactly:
= WRKLOG-YYYY-MM-DD
:description: [Day Name] - [Summary of day's work]
:revdate: YYYY-MM-DD
== Summary
include::partial$worklog/urgent.adoc[]
include::partial$worklog/morning.adoc[]
include::partial$worklog/work-chla.adoc[]
== Session Accomplishments (Claude Code)
include::partial$worklog/personal.adoc[]
include::partial$worklog/education.adoc[]
include::partial$worklog/infrastructure.adoc[]
include::partial$worklog/quick-commands.adoc[]
include::partial$worklog/related.adoc[]
== Today's Remaining TODO
=== Must Do (Before End of Day)
=== Should Do (If Time Permits)
=== Stretch Goals
Header
| Element | Rule |
|---|---|
Title |
|
|
Day name (bold in Summary, plain here) + concise summary of day’s output |
|
|
Summary Section
The Summary opens with Day Name. followed by a dense paragraph. Quantify where possible: file counts, line counts, key outcomes. This paragraph is the entry point for monthly rollups.
Section Includes
Section includes pull from partials/worklog/. Content is written directly into these partials daily:
| Partial | Purpose |
|---|---|
|
Time-sensitive items, blockers, escalations |
|
Early-day tasks, triage, planning |
|
Work-specific (CHLA) tasks and accomplishments |
|
Personal projects and homelab work |
|
Learning, certifications, study sessions |
|
Infrastructure changes, deployments, maintenance |
|
CLI patterns learned or commands worth remembering |
|
Cross-references to case studies, sessions, or other worklogs |
Session Accomplishments
Inline content (not a partial) documenting Claude Code sessions. Each session gets an === Title heading with bullet points covering scope, key actions, and quantified output.
TODO Section
Three tiers, each with checkbox items (* [ ] or * [x]):
-
Must Do — non-negotiable for the day
-
Should Do — valuable if time permits
-
Stretch Goals — aspirational, no guilt if deferred
Section Partials Location
All section partials live in:
docs/modules/ROOT/partials/worklog/
These files are rewritten daily. They contain section-level content (headings, lists, prose) that the worklog page pulls in via include::partial$worklog/<name>.adoc[]. Empty partials are valid — they produce no output in the rendered page.
Requirements
-
Every workday MUST have a worklog created via
make new-day. -
The
:description:attribute MUST include the day name and a summary of the day’s work. -
Session Accomplishments MUST list every AI-assisted work session with scope and quantified output (files touched, lines written).
-
The TODO section MUST use the three-tier structure: Must Do, Should Do, Stretch Goals.
-
Uncompleted Must Do items MUST carry forward to the next worklog or be explicitly dropped with justification.
-
Section partials MUST be rewritten daily — stale content from previous days is misleading.
-
No
:toc:attribute in any worklog file. -
No hardcoded IPs, hostnames, or credentials — use
{attributes}. -
Build MUST be clean before committing:
make 2>&1 | grep -E "WARN|ERROR".
Compliance
| Check | Method | Pass Criterion |
|---|---|---|
Worklog exists for workday |
|
File exists |
Description includes day name |
|
Day name present (Monday-Sunday) |
Session accomplishments documented |
Visual inspection of |
At least one session entry per AI-assisted workday |
TODO tiers present |
|
All three tiers present |
Build clean |
|
Zero output |
No stale partials |
Compare partial dates against worklog date |
Partials reflect current day’s content |
Related
-
STD-003: File Naming — naming conventions including WRKLOG prefix
-
STD-009: Repository Architecture — directory skeleton and chronological organization