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

  1. One worklog per day. Each workday produces exactly one WRKLOG-YYYY-MM-DD.adoc file. Weekend and personal sessions follow the same format. No day produces two worklogs; no worklog spans two days.

  2. 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.

  3. 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.

  4. 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.

  5. 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:

  1. Updates antora.yml daily attributes (current-day, current-date, current-worklog) via make update-today-attrs

  2. Updates carryover day counts via make update-days

  3. 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

= WRKLOG-YYYY-MM-DD — exact date, no descriptive suffix

:description:

Day name (bold in Summary, plain here) + concise summary of day’s output

:revdate:

YYYY-MM-DD matching the filename

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

urgent.adoc

Time-sensitive items, blockers, escalations

morning.adoc

Early-day tasks, triage, planning

work-chla.adoc

Work-specific (CHLA) tasks and accomplishments

personal.adoc

Personal projects and homelab work

education.adoc

Learning, certifications, study sessions

infrastructure.adoc

Infrastructure changes, deployments, maintenance

quick-commands.adoc

CLI patterns learned or commands worth remembering

related.adoc

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

  1. Every workday MUST have a worklog created via make new-day.

  2. The :description: attribute MUST include the day name and a summary of the day’s work.

  3. Session Accomplishments MUST list every AI-assisted work session with scope and quantified output (files touched, lines written).

  4. The TODO section MUST use the three-tier structure: Must Do, Should Do, Stretch Goals.

  5. Uncompleted Must Do items MUST carry forward to the next worklog or be explicitly dropped with justification.

  6. Section partials MUST be rewritten daily — stale content from previous days is misleading.

  7. No :toc: attribute in any worklog file.

  8. No hardcoded IPs, hostnames, or credentials — use {attributes}.

  9. Build MUST be clean before committing: make 2>&1 | grep -E "WARN|ERROR".

Compliance

Check Method Pass Criterion

Worklog exists for workday

ls pages/YYYY/MM/WRKLOG-YYYY-MM-DD.adoc

File exists

Description includes day name

grep ':description:' WRKLOG-*.adoc

Day name present (Monday-Sunday)

Session accomplishments documented

Visual inspection of == Session Accomplishments section

At least one session entry per AI-assisted workday

TODO tiers present

grep -c '=== Must Do|=== Should Do|=== Stretch' WRKLOG-*.adoc

All three tiers present

Build clean

make 2>&1 | grep -E 'WARN|ERROR'

Zero output

No stale partials

Compare partial dates against worklog date

Partials reflect current day’s content