Skip to content

Work Items

Work items answer the question: "What is each contributor actually working on?" Rather than showing a flat list of commits, ShipLens groups related commits into logical work units that represent a coherent piece of work.

Work Item Synthesis

A single feature or bug fix often spans multiple commits — an initial implementation, test additions, code review fixes, and final polish. Work item synthesis clusters these commits into a single work item with a clear description of what was accomplished.

The clustering considers:

  • Commit author — Commits from the same contributor
  • Time proximity — Commits close together in time
  • Domain overlap — Commits touching the same areas of the codebase
  • Semantic similarity — Commit summaries that describe related work (using embeddings from the vector store)
  • Branch and PR grouping — Commits on the same branch or linked to the same pull request

Each work item gets a synthesized title and summary that describes the overall effort, not just a concatenation of commit messages.

SynthesisWorker

The SynthesisWorker is an Oban background job that runs commit clustering on a schedule. When new commits are analyzed, the worker:

  1. Fetches recent commits for each contributor that haven't been assigned to a work item
  2. Runs the clustering algorithm to group related commits
  3. Generates a title and summary for each new work item using the LLM
  4. Stores the work items and their commit associations

The worker is designed to be idempotent — running it multiple times won't create duplicate work items. Existing work items may be updated if new commits are added to an active cluster.

Ticket Reference Extraction

ShipLens automatically extracts ticket references from commit messages and PR titles. Supported patterns include:

SourcePatternExample
Jira[A-Z]+-\d+PLAT-1234, PAY-567
Linear[A-Z]+-\d+ENG-42, FE-108
GitHub Issues#\d+#321

When a ticket reference is found, it's linked to the work item. This provides traceability from a work item back to the planning tool without requiring a direct API integration.

Note: Ticket extraction uses pattern matching on commit messages and PR titles. For richer ticket data (status, story points, assignees), configure the Jira or Linear integration directly.

Route

RouteDescription
/c/:slug/work-items/:idDetailed view of a single work item with its constituent commits

Built with intelligence, not surveillance.