-
-
Notifications
You must be signed in to change notification settings - Fork 1
Description
The feature request
Currently, tmpo is excellent for tracking individual tasks within a project, but it lacks a mechanism to group those tasks into time-boxed periods or phases, such as Sprints, release cycles, or specific scopes of work.
Developers often work in cycles (e.g., "Sprint 12", "v1.0 Release", "Phase 1"). Without a way to group entries, users must manually filter logs by date ranges or export all data and manually segment it to generate reports for a specific sprint or invoice period. This creates friction when trying to "close out" a period of work and report on it.
Proposed solution
I propose adding a Milestone system to tmpo. A "Milestone" acts as a container for time entries within a project. This aligns with standard developer terminology (like Git milestones) and supports both Agile workflows (Sprints) and freelance workflows (Phases/Billable Periods).
This feature would allow users to:
- Start a Milestone: Define a period of work (e.g.,
tmpo milestone start "Sprint 4"). - Auto-associate Entries: Any
tmpo startcommand run while a milestone is active is automatically linked to that milestone. - Finish & Report: explicit commands to close the milestone and export data specific to it (e.g.,
tmpo export --milestone "Sprint 4").
Benefits:
- Intuitive Workflow: Matches how developers naturally segment work.
- Simplified Reporting: Eliminates the need to remember specific start/end dates when generating reports; simply export by the milestone name.
- Better Data Organization: Keeps time entries organized hierarchically (Project -> Milestone -> Entry).
Additional context
Proposed CLI Workflow
# Start a new milestone for the current project
$ tmpo milestone start "Sprint 12"
✨ Started Milestone: Sprint 12 for project 'my-app'
# Work as normal (automatically tagged to Sprint 12)
$ tmpo start "Fixing login bug"
# Check status
$ tmpo milestone status
⏱️ Current Milestone: Sprint 12
Started: 3 days ago
Status: Active
# Finish the milestone
$ tmpo milestone finish
✅ Finished Milestone: Sprint 12 (Duration: 5 days)
# Export data just for this milestone
$ tmpo export --milestone "Sprint 12" --output sprint-12-report.csv