Metadata-Version: 2.4
Name: worklog-opsdevnz
Version: 0.1.0
Summary: Configurable worklog management CLI for dated development logs
Author-email: "OpsDev.nz Collective" <john@opsdev.nz>
License: Apache-2.0
Project-URL: Homepage, https://github.com/startmeup-nz/worklog-opsdevnz
Project-URL: Documentation, https://opsdev.nz/modules/worklog-opsdevnz
Project-URL: Repository, https://github.com/startmeup-nz/worklog-opsdevnz.git
Project-URL: Bug Tracker, https://github.com/startmeup-nz/worklog-opsdevnz/issues
Keywords: worklog,documentation,daily-log,cli,markdown
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Documentation
Classifier: Topic :: Text Processing :: Markup :: Markdown
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: click>=8.0
Requires-Dist: pyyaml>=6.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0; extra == "dev"
Requires-Dist: pytest-mock>=3.10; extra == "dev"
Requires-Dist: ruff>=0.4; extra == "dev"
Requires-Dist: mypy>=1.0; extra == "dev"
Dynamic: license-file

# WorkLog OpsDev.NZ

**Status:** Development — see pyproject.toml for version

Configurable CLI tool for creating and managing dated development worklogs.
Generates Markdown entries with YAML frontmatter from per-project templates.

## Problem

Across multiple projects we kept reinventing the same pattern: a script that
creates a dated Markdown file from a template, with frontmatter for date,
author, tags, and draft status.  Each implementation had slightly different
directory structures, section headers, and filenames. The core concept was
always the same.

## Solution

`worklog-opsdevnz` formalises this pattern into a single published module:

- **Per-project config** — `worklog.toml` controls directory structure, sections,
  author, tags, and filename patterns
- **Three structure modes** — `flat`, `year`, or `year-month` directory layouts
- **YAML frontmatter** — date, title, author, tags, draft status
- **Configurable sections** — each project defines its own section headers
- **Editor integration** — opens new entries in `$VISUAL` / `$EDITOR`
- **List existing entries** — browse worklogs with `--list`

## Quick Start

```bash
# Create today's worklog
worklog-opsdevnz

# Create yesterday's worklog
worklog-opsdevnz --previous

# Override the editor for this run
worklog-opsdevnz --editor nvim
```

## Configuration

Each project gets a `worklog.toml` at its root:

```toml
worklog_dir = "docs/worklog"
structure = "year"           # "flat", "year", or "year-month"
author = "Your Name"
default_tags = ["worklog", "log"]

[[sections]]
title = "Focus for Today"

[[sections]]
title = "Completed"

[[sections]]
title = "Notes"

[[sections]]
title = "Next"
```

## Scope

**WorkLog DOES:**
- Create dated Markdown worklog entries with YAML frontmatter
- Per-project configuration via `worklog.toml`
- Open entries in configured editor (`$VISUAL` / `$EDITOR`)
- Three directory structure modes: flat, year, year-month

**WorkLog DOES NOT (out of scope for 0.0.2):**
- Zensical blog integration (see design doc)
- Auto-generated index pages
- Retro template support (planned for 0.1.0)
- Time tracking / timesheet aggregation
- `list`, `init`, or `create` subcommands (planned for 0.1.0)

## Requirements

- Python 3.12+
- See [pyproject.toml](pyproject.toml) for full dependencies

## Related

- [Functional Requirements](docs/specs/README.md)
- [Design Decisions](docs/design/README.md)
- [User Stories](docs/stories/README.md)

---

**Last Updated:** 2026-05-23
**Status:** Development (migrated to module template)
**Maintainer:** OpsDev.nz Collective
