Worklog Decision Log

Decision Log

2026-04-05: Assembler Pattern for Worklog Partials

Decision: Split 4 monolithic worklog partials (urgent, morning, work-chla, education) into assembler + domain sub-files.

Why: Each partial contained 3-5 independent concerns mashed into one file. Adding/removing a domain (e.g., RHCSA to education, or silencing tickets on weekends) required editing a monolith. The assembler pattern — already proven in trackers (adhoc.adoc → carryover.adoc, tac.adoc, resolved.adoc) — scales indefinitely and allows single-line domain changes.

Alternative rejected: AsciiDoc ifdef conditionals. Adds complexity, harder to read, doesn’t allow file-level git blame.

2026-04-05: Slot Pattern for Morning Focus

Decision: Use a single swappable file (morning/focus.adoc) instead of tagged includes for morning priority.

Why: Morning focus is a single rotating concern, not multiple parallel concerns. Tags add unnecessary complexity when there’s only ever one active item. Swapping a file is simpler than editing tag filters.

2026-04-05: Auto-Calculate Carryover Days

Decision: Script calculates Days = today - origin instead of manual arithmetic.

Why: 7 rows × daily calculation = 2,555 calculations/year. Manual arithmetic on every make new-day is error-prone and tedious. The script is idempotent, runs in <1s, and eliminates a daily friction point.

2026-04-05: Remove Dead Notes Placeholder

Decision: Removed === Notes / Day-specific work notes here. from work-chla.adoc.

Why: Never used in practice across 62 worklogs. Users wrote work notes inline in the worklog body (Session Accomplishments) or skipped notes entirely. The placeholder created false promise of a structured location that was consistently ignored.

2026-03-23: Session Accomplishments Stay Inline

Decision: Session accomplishments are NOT extracted to partials. They remain inline in each worklog.

Why: Sessions are the one truly day-unique section — narrative, not state. They don’t persist beyond the day, aren’t reused, and don’t need single-source-of-truth guarantees. Extracting them would create 365 files/year with zero reuse.

2026-03-23: Sustainable Template via Partials

Decision: Worklog template includes 8 partials instead of containing content directly.

Why: Before this, worklogs were monolithic documents that grew to 300+ lines. Extracting state to partials means: (1) trackers update in one place, (2) worklogs stay thin (~30 lines of shell + sessions), (3) template changes propagate to all future worklogs automatically.