1 of 2 - The ProductTank story
AI Product Operations

A year ago we came for horsepower

Pablo and I went from 14 merged pull requests a month to 1,657, working with agents. What we built around them, what we stopped asking a model to do, and the number that tells us whether any of it reached a customer.

Jorge Alcantara/October 14, 2026/12 min read
Six stages of a harness drawn as horses: a bare horse, a horse in light tack, a horse pulling a cart, a team pulling a coach, and a horse truck.

The horsepower

14 → 1,657

Pull requests merged per month by the two founders, Pablo and Jorge, with their agents.

118 Octobers in one month

  • Sep 2025: 20 merged
  • Oct 2025: 14 merged
  • Nov 2025: 11 merged
  • Dec 2025: 11 merged
  • Jan 2026: 14 merged
  • Feb 2026: 33 merged
  • Mar 2026: 95 merged
  • Apr 2026: 81 merged
  • May 2026: 388 merged
  • Jun 2026: 666 merged
  • Jul 2026: 826 merged
  • Aug 2026: 913 merged
  • Sep 2026: 1,657 merged
Merged pull requests per month across Zentrik's GitHub organization. The same two founders, Pablo and me, working with agents.

Where is your team?

Pick a stage

The hinge · context becomes the team's

2

What it feels like

Everyone is faster and no two setups agree. Reviews get harder, because nobody knows what the other agent read.

Your next move

Put one team's context in a repository every agent reads before it starts.

Cut time · each person gets faster, the team diverges

Multiply impact · the team converges

The stages as I drew them for ProductTank. The hinge is where context stops being personal and becomes the team's. Pick the stage your team is at.

One rule, written twice

As a request

A sentence in the agent's instructions.

## Email
Never send email to a client
without asking me first.
  1. draft_email(to: client)

The agent will listen. Most of the time.

As a control

Roles on the tool itself, so the agent can't.

  • Draft an email to a clientAgent
  • Send it outside the companyNeeds a grant
  • Share a deck outside the companyNeeds a grant
  • Invite someone outside to a meetingNeeds a grant

Our fork of Google's Workspace command-line tool, with roles on top of every command.

If a tool can enforce the rule, the rule belongs in code. Keep the sentence too. It explains why the control is there.

The same rule, written twice. Only one of them can stop the email.

Of every 100 pull requests our agents open

  • Ship on the first pass: 33, 33%
  • Go back for a loop or two: 33, 33%
  • Never ship: 34, 34%

33

Ship on the first pass

Reviewed by two people, merged.

33

Go back for a loop or two

A reviewer sends it back with what is missing.

34

Never ship

Closed, with the reason written down.

  • The evidence wasn’t there
  • No customer was asking
  • It wasn’t good enough

66 merged

0 reach a customer without two people reading them

An approximate split from a typical week, as I described it at the talk.

Roughly how a week of agent pull requests ends up. The last third is the harness doing its job.

A chain of small decisions

Illustrative probabilities

  1. Classifier 1

    Is it about a product?

    Yes97%
    No3%

    Picks Yes

  2. Classifier 2

    Which theme?

    Star Wars94%
    Space4%
    City2%

    Picks Star Wars

  3. Classifier 3

    Who is it for?

    A boy, about 8 to 1281%
    An adult collector12%
    A toddler7%

    Picks A boy, about 8 to 12

  4. Result

    Show Star Wars sets for ages 8 to 12

    3 small decisions, a few milliseconds each. No large model.

Three small decisions instead of one big one. Try the other messages: each takes its own path, and none of them needs a large model.

Same note, same right answer

An agent editing Markdown

Every step is a call to the large model.

  1. Read the 113 KB exportfrontier model
  2. Find the accounts in the notefrontier model
  3. Decide what changedfrontier model
  4. Rewrite the filesfrontier model

Every run edited generated files the next sync overwrites, and said so.

Time per note19–45 s
Frontier-model tokens~70k

Open CRM with a classifier

Small choices go to small tools. You decide.

  1. Which account is this about?classifier
  2. A risk, a need or a commitment?classifier
  3. Check it against the recordcode
  4. Apply only what is allowedcode
  5. Approve each changeyou
Time per note~1 s
Frontier-model tokens022k on the classifier

One five-line note against a CRM of 60 fictional accounts, measured on a laptop on 30 September 2026. Ten classifier runs; Claude Code with Sonnet 5.5 and Opus 5.5, three runs each. Small runs, so treat these as estimates.

The same meeting note, two harnesses. Both get the answer right. What changes is how much of the work a large model has to do.

The reins

0% → 56%

Share of merged code linked to a need at least two customers raised, January to September.

Linked to a customer needFixes and the machine that builds the machine
  • Sep 2025: 20 merged
  • Oct 2025: 14 merged
  • Nov 2025: 11 merged
  • Dec 2025: 11 merged
  • Jan 2026: 14 merged, 0% linked to a customer need
  • Feb 2026: 33 merged, 8% linked to a customer need
  • Mar 2026: 95 merged, 15% linked to a customer need
  • Apr 2026: 81 merged, 22% linked to a customer need
  • May 2026: 388 merged, 30% linked to a customer need
  • Jun 2026: 666 merged, 37% linked to a customer need
  • Jul 2026: 826 merged, 45% linked to a customer need
  • Aug 2026: 913 merged, 51% linked to a customer need
  • Sep 2026: 1,657 merged, 56% linked to a customer need

We started tracking the link in January. Goal: 85% by December.

The same bars, split by whether the work links to a need at least two customers raised.

One request, all the way through

Sample workspace. People and numbers are illustrative.

  1. 1 · Learn

    Read what customers said, with its source.

    “Is there a way to export a project’s status as a PDF?”

    Maya · Zendesk ticket, Friday 4:52 PM

    Insight: agency teams rewrite a weekly client update by hand

    3 sources · 2 agencies

  2. 2 · Decide

    Rank the answers, then test one with customers.

    PDF export · Client portal · Weekly email

    Priya, the PM, tests the weekly email first

    4 of 5 testers stopped to check what the client would see

    Prototype study · 3 days

  3. 3 · Define

    Write the brief engineers and agents build from.

    Weekly client update, with a client preview; internal notes stay out

    Reviewed by Priya and Sam

    The customer’s words travel inside the brief

    Why · outcome · limits

  4. 4 · Build

    An agent builds from the brief; two people review.

    Pull request linked to the initiative

    Two reviewers · shipped

    Told the customers who asked

    The next call shows what is still slow

What ships comes back as evidence. Maya's next call starts the loop again.
One request through the loop, in a sample workspace. The reason travels with the work from the first ticket to the shipped change, and back.

Where you rank the work

  1. ObjectiveAgencies send client updates without rewriting them by handYou rank here
  2. InitiativeA weekly client update
  3. EpicPreview what the client will see before sending
  4. TicketAdd a Preview button to the composer

You rank the goal and agree with customers what success means. The team orders the tickets underneath.

Sample workspace.

When building a ticket takes an hour, ranking tickets stops being the job. You rank one level up, and agree with customers what success means there.

The last ten things you shipped

Tick one only if you can name two customers and what each of them said.

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10

Your number

0%

0 of 10 traced to a need at least two customers raised.

Your last ten (tick the traced ones)0%
Zentrik, September56%
Zentrik, goal for December85%
Your answers stay in this browser. We'll publish our number again next quarter, untraced work included.

The ProductTank story

Get part two in your inbox

Next: what changes inside a product squad when every task speeds up at once, and the playbook we built with one.

All posts