Skip to main content

task

A CLI for .tracker/tasks/ task trackers: one dir per task, one TASK.md each. Stdlib only, no regular expressions.

Format

.tracker/tasks/{open,closed}/<ID>-<slug>/TASK.md   (attachments allowed beside it)
# Task title

**Created**: 2026-04-21
**Priority**: 2
**Closed**: n/a

... free form description ...
  • The dir is <ID>-<anything>; only the ID before the first dash is read (01- is ID 1).
  • IDs are integers 1..N, unique across open/ + closed/, no gaps: deleting a task moves the highest-ID task into the hole.
  • The header fields come in any order, each once, followed by an empty line.
  • **Created** is an ISO date (or datetime). **Closed** is n/a in open/, and an ISO date no earlier than **Created** in closed/.
  • **Priority** is a positive integer, higher is more urgent.
  • Files directly in open/ or closed/ (e.g. .gitkeep) are ignored.

task.Task is one task, validated in __post_init__ (wrong type: TypeError, bad value: ValueError). It can be built in memory: its TASK.md need not exist, but its extra_files must. task_from_path(task_dir) reads a task dir into a Task.

task/task.py [--dir <tasks_dir>] {ls,create,check}

--dir defaults to ./.tracker/tasks. Logs go through logging; set TASK_LOGLEVEL (default INFO).

python task/task.py ls                   # open tasks, by priority then ID
python task/task.py ls --include_closed  # plus closed ones
python -m task.task -d .tracker/tasks ls # same, via the installed package (`pip install .`)

check parses every task (so any format violation raises), then raises ValueError on duplicate IDs, an ID gap (IDs must be 1..N), or a task whose **Closed** does not match its open/ / closed/ dir. create is not implemented yet (task 1).

Tests

python -m pytest test/

One broken rule per case:

  • test/unit/test_task.py — Task field rules, on in-memory tasks.
  • test/unit/test_task_from_path.py — the on-disk format: dir name, header, dates, extra files; main on a throwaway tracker.
  • test/unit/test_task_check.py — check in-process (handle_command) on in-memory tasks: IDs and open/closed status.

python test/lint/run_all.py runs ruff and pylint.

Acknowledgments

Inspired by tsoding's tatr: tasks as plain files in the repo, driven by a small CLI.

Metadata

Release files for task-tracker-py 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for task-tracker-py 0.1.0
File Size Uploaded Provenance
task_tracker_py-0.1.0.tar.gz 5.9 kB Without provenance Details

Release files / task_tracker_py-0.1.0.tar.gz

Download URL task_tracker_py-0.1.0.tar.gz
Size 5.9 kB
Tags Source
SHA-256 checksum
How to use checksums
0d37857ef4d8502b72aae5cece3b460a5a5c45b18594e0cdfb0319d0b900f41d
BLAKE2b-256 checksum
How to use checksums
4094444ef49580f5ee6a60a0fb4dc5f74fe0821ff6e5c0fec91f6923213ec6b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.4

Security for task-tracker-py 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

1 release file No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page