Case study · StreetFortress

Time, joined to what shipped

At SFI, developers juggle agent sessions all day. PrimeTime turns the time spent thinking, prompting, and reviewing into labeled spans that line up with real commits and PRs — so records and invoices follow delivered value, not guesswork.

All case studies

The challenge

Agent work is real work — and it's hard to account for

An agent session isn't idle time. It's thinking through an approach, writing prompts, and reviewing generated code — often across several repos at once, interrupted and resumed. Filed into one rigid category, that effort disappears. SFI needed to see it in the same terms as the work it produced: which repo, what kind of work, and what shipped.

The approach

Label the span, not the folder

Every session gets key: value labels that mirror how work is organized in source control. One span, dimensioned across every axis that matters:

repo: sfi/sfi-website feat: kb-knowledge-graph type: review one timespan · many axes

Anatomy of a span

Noon to production

  1. 12:00 Timer starts

    A developer opens a fresh agent session and starts a PrimeTime timer, labeled for the work at hand.

  2. 12:00–12:45 Think · prompt · review

    Thinking through the approach, prompting the agent, and reviewing the diffs it produces — all one continuous, labeled span.

  3. 12:45 Deliverables merged

    The knowledge-graph feature lands: commits and a PR merged into the default branch.

  4. 12:52 Live in production

    Seven minutes later the change is deployed. The 52-minute span now maps cleanly onto shipped value.

12:00 12:45 · merged 12:52 · prod

A single 52-minute span — repo: sfi/sfi-website, feat: kb-knowledge-graph — bounded on one end by the first prompt and on the other by a live deploy.

The outcome

Records and invoices that write themselves

52 min

One labeled span, start to production

From the first prompt to a live deploy — a single, queryable record instead of a vague afternoon.

1 join

Time ⋈ source control

Labels line up with the forge's record of commits and PRs, so hours attach to outcomes automatically.

0 guesswork

Records & invoicing

Internal record-keeping and client invoicing derive from data, not memory or reconstructed timesheets.

Because each span is labeled the way the code is organized, PrimeTime's exports join directly against commits and PRs. Streamlining internal record-keeping and client invoicing stops being a monthly reconstruction and becomes a query: associate timespans with delivered value, and bill for exactly what was shipped.

“A timespan starts at noon. The deliverables merge at 12:45 and are live at 12:52. That's not a timesheet entry — it's proof of what we delivered.”

StreetFortress Industries · engineering