Case study · Working prototype

GitBrief

A week of developer activity, turned into a brief a non-technical leader can read and check.

Type
Personal product, built with a developer partner
Role
Product design and strategy — research, positioning, UX, UI, copy
Team
Two — Artaza Sameen (engineering, co-created the idea and built the foundation) and me (design, research, positioning)
Status
Working prototype
Review
Five rounds of structured adversarial review · no real-user testing yet
Timeline
July – September 2026
Tools
Figma, Claude, HTML prototypes, GitHub
01

I didn't invent this problem. I watched it happen.

At my friend's company, the CEO and a stakeholder would open the GitHub activity and come out with nothing. Commits, branches, pull requests — technically all the information was right there. Practically, none of it was. So they did what non-technical people always do: they called a meeting. Who did what? How much is done? How long, every week, just to translate a tool into a status update?

The progress existed. The understanding didn't.

Nobody hid anything. Engineers were writing exactly the way they should — for the people who'll read it next, other engineers. The problem is that nobody writes the same update again, in a different language, for the one person who most needs to rely on it.

What is there
#312 feat(checkout): split payment intent · merged
#309 fix(auth): refresh token race · merged
#314 chore: bump stripe sdk 12.4.0 · open
#311 refactor(cart): extract totals reducer · review
fix/webhook-retry · 6 commits · no PR
What was needed

Checkout now takes split payments, and the login bug that logged people out is fixed. One branch is moving but not yet attached to anything reviewable.

02

Not developers. Developers already read GitHub fine.

A founder or operations lead at a company of five to fifty people, with no engineering background, who is accountable for a product they cannot read the changelog of.

Their real question is never "what happened in the repo?" It's three questions, every week:

  1. 1Are we on track?
  2. 2Who's carrying what?
  3. 3Is anything stuck?

The design target was simple to say and hard to do: answer those three without making anyone learn GitHub.

03

Four hypotheses, written down before I drew anything.

Hypothesis H1
Untested
A memo beats a dashboard.
A non-technical reader can't act on "43 commits." They can act on a sentence.
Hypothesis H2
Untested
One caught mistake ends trust.
A summary a leader forwards to an investor cannot be approximately true. If the tool is wrong once, every other line becomes suspect.
Hypothesis H3
Untested
Proof has to be one click away, but out of the sentence.
Every claim needs a source, but sources inside the sentence turn the brief back into the thing it replaced.
Hypothesis H4
Untested
Saying "unclear" builds trust rather than losing it.
A brief that admits what it can't place is more believable than one that never hesitates.

These came from watching one company and from my own reasoning, not from interviews. Section 09 is where five rounds of structured review put them under pressure; real readers come next.

04

Nothing was missing a feature. Something was missing a position.

I looked at five kinds of tools already solving pieces of this. Gitmore, Git Digest and the standup bots are cheap and switch on in minutes, but they write the same generic summary for everyone and give you no way to check it. Jellyfish, LinearB and Swarmia are the opposite: leadership does trust them, but they are expensive, slow to set up, and need someone whose job is partly to run them.

GitBrief
Gitmore
Git Digest
Standup bots
Jellyfish
LinearB
Swarmia
Easy to run
Heavy to set up
Readable and checkable
Hard to verify

Placement is a judgement from reviewing each tool, not measured data.

05

Before any screen, the rules that made the job harder on purpose.

One wrong sentence costs more than ten right ones.
Cut the most demo-friendly feature because it would sometimes be wrong.
An estimated finish date was the first thing every manager asked for, and the estimates were unreliable. An AI confidently predicting a wrong date is worse than no date at all. So the brief gives status and the last real activity date, and admits when activity is unclear.
Proof makes text unreadable.
A small number after the sentence; everything else behind a click.
Links and repository names inside the sentences turned the brief back into the thing it replaced. Then a review caught the gap: most people read the email, and an email has no panel to open. So any claim on weaker evidence now carries its caveat in the sentence itself.
Letting people edit can break the proof.
Editing a sourced sentence stops and asks whether to keep the source.
Founders will reword a brief before sending it. So editing a sentence with sources attached stops and asks whether to keep or drop them, and a sentence without sources is marked unverified.
Engineers have to be safe from it.
Not scoring someone and not naming them turned out to be different things.
A tool that summarises someone's work to their boss can quietly become a performance report. So the brief never counts, compares, or ranks people. A name attached to a next action is routing; a name attached to a count is scoring. The brief does the first and never the second.
Defaults are trust decisions.
The most important trust decision isn't a feature — it's a checkbox that starts in the right position.
An automatic status update sent to a company's board with no human reading it first is the exact scenario a founder fears. The first version allowed it by default. Now any brief going outside the team waits for a person to look at it, and turning that off means saying yes to a plain warning.
06

Each decision, with the idea it replaced.

Tried
Charts — commit graphs, velocity metrics, contribution heatmaps.
Rejected because
They make a report look analytical, but a non-technical reader can't act on them. They also count people, which breaks the fourth constraint.
Did instead
A memo. Plain, almost boring. It does the work in one read, no legend required.
The rejected version
An earlier dashboard build: lines of code, commits per day, and a commits-by-type chart
The first build, before the memo. Lines of code, commits per day, commits by type — every number correct, and none of it answers whether the work is on track. It also counts people, which the fourth constraint rules out.
Honest note: the plainness has a cost. It can look template-y at first glance. I chose being understood over looking impressive, and I'd choose it again.
Tried
Estimated time to completion — the first thing a manager asks for.
Rejected because
The estimates were unreliable, and an AI confidently predicting a wrong date is worse than no date at all.
Did instead
Status only — shipped, in review, no activity — with the last real activity date.
Tried
Source links inline in the sentences.
Rejected because
It turned the brief back into a PR list.
Did instead
A small numbered mark after the sentence; evidence opens beside it on click.

Also: written in the reader's language. "Adnan merged the checkout redesign," not "PR #47 merged to main." Three text roles, three typefaces so you can tell them apart without reading: writing for a person in a serif (Newsreader), controls in a plain sans (Inter Tight), facts pulled from GitHub in monospace (JetBrains Mono) and nothing else. One accent colour, used only for links to proof.

07

The part I care most about.

Every AI summary is a guess with good posture. The design question isn't "how do I hide the uncertainty?" It's "how do I show it usefully?"

Here's my rule: "I'm not confident about this" is a shrug. "This branch has commits but no linked pull request, so I've left it out rather than guess" is useful.

The second version names exactly what's unclear and why, so the reader can judge whether that gap matters. That's how GitBrief handles its edges: when the data doesn't clearly map to a human story, the brief says so, specifically.

From the prototype copy

"One item couldn't be placed with confidence: a branch named fix/webhook-retry has commits but no pull request, so this brief leaves it out rather than guess."

08

Three parts of the product work here. They are the real thing, not pictures.

Proof, one click behind the sentence
Click a numbered mark to open its evidence.

The new checkout flow is live for all customers.

Invoice exports are open for review; no reviewer has been assigned for three days.

Tax handling has had no activity since Sep 8; the team notes it was paused by agreement.

One item couldn't be placed with confidence: a branch named fix/webhook-retry has commits but no pull request, so this brief leaves it out rather than guess.

Evidence
Click a numbered mark in the brief to see what it is based on.
Light and dark, live
Only colour changes. The type roles and the layout hold.
Friday brief · Sep 7–13, 2026
Checkout went live; invoice exports are open for review
The new checkout flow reached all customers. Invoice exports are open for review with no reviewer assigned. Tax handling has had no activity since Sep 8. Nothing is stuck.
2 merged · 1 in review · 1 with no activity since Sep 8
Editing a sentence that has sources attached
Change the text, then choose what happens to its proof.
The new checkout flow is live for all customers.
2 sources
09
What five rounds of review found

Four constructed readers, five rounds, opposite motives.

Before showing this to anyone real, I put it through five rounds of structured review. Each round, four constructed reader profiles went through the product with opposite motives: a founder who had been burned by a status update before, a founder with no patience for tools, a board member reading on a phone, and an engineering lead whose team was being described.

They were not real users. They were a way to find the failures a friendly reviewer never mentions — the ones you only hear about after someone forwards a brief and regrets it. The point was to break the thing on purpose, early, while breaking it was still cheap.

Here is what they found.

They agreed on the one line that works
All four, from opposite motives, stopped on the same sentence: “Invoice exports — open for review, no reviewer assigned for 3 days.” The impatient founder called it the entire product. The engineering lead said it was the one thing he wanted his CEO to see without having to say it out loud. It is a fact the founder cannot get any other way, stated plainly, with nothing invented. Whatever else changes, that sentence is why the product exists.
A label can be a verdict
One work state was called “Stalled.” The evidence only showed absence of activity. A developer would say the work was paused on purpose, and they would be right. It became “No activity since Jul 14.” Same fact, no judgement, reader decides.
The machine flattered
A pull request open for three days with nobody assigned was described as “code complete, awaiting approval.” Neither was true: nothing was complete, and nobody was approving. It was the only generated sentence that made things sound better than they were, and it was pointed at the person with the least ability to check.
Removing bad news is still editing it
The client version quietly dropped the one unfavourable item, kept a headline that contradicted its own body, and told nobody. The tool had done the shading on the founder's behalf, which is worse than the founder doing it.
A promise and a leak, two screens apart
The brief said it shows roles, never names, never a count per person. The evidence panel in the copy that goes to the board listed usernames with commit counts beside them. The settings page it pointed at for changing this had no controls on it at all. This was the one finding that would have ended the product with any engineering team.
Certainty grew as it travelled upward
Same week, same commits. Engineering was told a claim's scope was inferred from commit messages. The founder was told it as fact. The person least able to verify, and most likely to repeat it to a board, got the most confident wording. Plain English is not a licence to drop the caveats. Simplify the vocabulary, never the certainty.
The closing finding

And then the one I had built myself

By the fifth round most of it was fixed, and a reviewer wrote the sentence that mattered more than all of it:

“You have built an extremely good machine for making a founder's unsupported claims look like they came from a rigorous system.”

Every sentence GitBrief writes is now marked, sourced and hedged. Every sentence the founder adds goes out with a name and nothing else — no marker, no evidence, no label. And the founder's sentences are, structurally, the ones about blame and timing, because those are exactly the claims GitHub cannot support.

So a product built to stop unsupported claims from being repeated had become a very credible frame for them. Four rounds of catching the software being generous, and the fifth one was mine.

The pattern underneath all five is the same, and it is the thing I would take to any product that writes on someone's behalf: when software is uncertain, its instinct is to be reassuring, and reassurance is how interpretation gets past a rule that forbids it. Every one of these failures bent in the flattering direction. None of them looked like lying while I was building it.

Three things are still open, and they are open on purpose. The engineering lead has no account, so he can only correct a claim after his CEO has read it, not before. The client version says “one item is not included” without saying which, and naming it, hiding it, or saying nothing are all defensible — I do not yet know which is right. And several controls in the prototype are still inert. None of these are things another review round would settle. They need a real reader, on a real repo, on a real Friday.

10

The three screens that carry the decisions.

The Friday email
Most readers will never open the app, so the whole brief has to survive inside an email client, including the numbered links to proof.
Open full size →
Home brief
The brief sits in the middle with nothing competing; navigation is a quiet column, not a row of charts. The audience picker changes what is said, not just how much: the client version hides internal repository names and work states entirely, showing progress and honest slippage notes only.
Open full size →
Developer view
Engineers see the exact brief leadership receives, so nobody is surprised by a summary of their work they never saw.
Open full size →
11

Two people, one idea.

Artaza Sameen and I came up with GitBrief together. Everything in this case study is mine — the research, the positioning, the product decisions, the interface, the copy and the prototype.

Adnan Asif Khan
Product / UX Designer — research, positioning, UX, UI, copy
Artaza Sameen
Engineering — co-created the idea, built the foundation
12

Where it stands.

What works today
A week of raw activity becomes a two-minute read. Whether a real CEO agrees is still untested.
What's next
Five rounds of structured review found what could be found without a real user. The next step is the one none of it can substitute for: one real founder, one real repository, one real Friday — and the three open questions above answered by someone who actually has to live with the answer.
What this taught me
The hardest part of AI design isn't the intelligence. It's deciding what the intelligence should refuse to say.