Skip to content

Milestone System #23

@DylanDevelops

Description

@DylanDevelops

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:

  1. Start a Milestone: Define a period of work (e.g., tmpo milestone start "Sprint 4").
  2. Auto-associate Entries: Any tmpo start command run while a milestone is active is automatically linked to that milestone.
  3. 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

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions