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.
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:
Anatomy of a span
Noon to production
- 12:00 Timer starts
A developer opens a fresh agent session and starts a PrimeTime timer, labeled for the work at hand.
- 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.
- 12:45 Deliverables merged
The knowledge-graph feature lands: commits and a PR merged into the default branch.
- 12:52 Live in production
Seven minutes later the change is deployed. The 52-minute span now maps cleanly onto shipped value.
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.”