What if the product development operating system lived in git?

5 min read
product-management git collaboration decision-making

I ended my evening at Demo Nights by How to Web with a chat with Petre Dragoș Constantinescu and Mara Hutart about something I’ve written about before: bringing product requirements into git.

The conversation went into the broader idea of a product development operating system living in a GitHub repository. Decisions reviewed as pull requests, the reasoning kept alongside the implementation, and a trail you can follow six months later when you are writing the postmortem and trying to understand why you made those choices.

As engineers, they immediately connected with the idea of having that history available. Their reaction gave me some encouragement to do more with it. I’ve been thinking about this for a while, and talking it through with people outside my usual work context helped.

Let the agent deal with git

Product people and nontechnical colleagues should be able to use this without learning git. I want to explain a change, read what it does to the document, and ask the right people to review it. Learning how to untangle branches should not be the price of admission.

Git is already familiar territory for coding agents. Claude Code, for example, can create branches, commit changes and open pull requests. Preparing an edit to a requirements document uses those same mechanics; the product judgement still belongs to us.

The experience I have in mind is closer to: “Move SMS to a later release, keep email for launch, and ask support what we’re missing.” The agent prepares the proposal with the reasoning we supplied, then brings back the changed document for people to review. We should be reviewing the decision, without having to operate git ourselves.

What actually changes in the document?

Take an order-tracking feature for an online shop. This is a made-up example, but the trade-off should look familiar: reduce the scope or move the launch date.

01 / ProposeFictional example · Same order-tracking feature

A requirement changes. Here is exactly how.

One order-tracking feature, from the original product requirements document (PRD) to a revised proposal. Click the coloured button to follow each step.

Start here · Click to move the story forward

Step 1 of 4 · No proposal yet

▤ DocumentOrder tracking / PRD
Original PRD
Goal
Help signed-in customers find out where their order is.
Send delivery updates by email and SMS at launch.
Success measure
Fewer support requests asking where an order is.

The document contains the plan. Comments and approvals live in the collaboration panel beside it.

Product decisions as pull requests

The part I find enticing is reviewing decisions in the same way engineers already review code: someone proposes a change, others question specific parts, and the discussion stays attached to the proposal. Git keeps the document versions; a platform such as GitHub or GitLab keeps the comments and approvals around them.

02 / ReviewFictional example · Same order-tracking feature

Review the same proposal together

Proposal #42 is ready for feedback. First act as the author, then as Sam, the reviewer. The coloured button tells you what to do next.

Your turn as the author · Click to update the PRD

Step 1 of 4 · Changes requested

▤ DocumentOrder tracking / PRD
Proposed PRD · Before feedback is applied
Goal
Help signed-in customers find out where their order is.
Send delivery updates by email at launch.
Schedule SMS for a later release.
Success measure
Fewer support requests asking where an order is.

Sam has suggested a requirement. It is still a comment until the author applies it to the document.

A postmortem with the reasoning still attached

Six months later, customers report missing delivery updates, and I ask an agent to investigate why SMS was left out of the launch. It can search the codebase, find the relevant line in the PRD, and follow its history back to the PR, the people who contributed and the reasoning in their inline comments.

03 / InvestigateFictional example · Same order-tracking feature

From a code search to a better postmortem

Six months later, customers report missed delivery updates. You ask an agent: “Find why SMS was deferred and bring the decision context into our postmortem.” Follow its investigation.

Follow the agent · No commands for you to run

Step 1 of 4 · Agent searches

▤ Repository searchSearch the fictional codebase
Command run by the agent
git grep -n "SMS" -- src docs
Matching lines
src/notifications.ts:2// SMS deferred: docs/prd/order-tracking.md

The agent uses git grep to find matching text. This example deliberately keeps the PRD in the code repository and includes a reference from the code.

That gives me something useful for the postmortem: the constraint we were working around, the assumption we made, and the fallback someone thought to add. The names help recover context; they are not a list of people to blame. Knowing why we chose a scope still leaves the incident’s cause to investigate.

For this trail, I don’t need to wire an agent into Jira, Confluence and three other places where a decision might have ended up. The PRD lives beside the code, git keeps its history, and the PR keeps the discussion. The agent needs access to that repository and its PR comments, plus a habit from us of writing down the rationale and preserving the PR reference. A grep is a starting point. The useful output is a few evidence-backed paragraphs and better questions for the team.

GitLab already does this beyond engineering

GitLab’s handbook is a useful example: changing a company process means proposing a change to the handbook through a merge request, their name for a pull request. Each department is responsible for keeping its part current. That is a fairly concrete way to make “this is how we work” something people can question and update.

This extends into nontechnical work. The finance handbook directs people to a finance issue tracker, including confidential issues, and marketing operations works from issues and issue boards. Even product budget requests go through issues, with leadership bringing them into planning with Finance.

Those issues live in GitLab’s collaboration platform; the document history lives in git. What interests me is the shared habit: write down the proposal, involve the people responsible, and leave a record others can follow.

GitLab’s example shows the organisational practice. The part I want to explore is using agents to make that practice accessible without asking everyone to learn the tools underneath. A colleague in finance should be able to question a cost assumption in plain English and see that feedback reflected in the next revision. I would quite like that for my own work, too.


Thanks to Dragoș and Mara for the conversation. Their interest was a useful nudge to come back to this idea and see what I can make of it.