Notes from building an AI design collaborator · part 16
Six designers, one GitHub account, and a script that saves us from ourselves
· 3 min read
Six of us on the design team share one GitHub account. That's a story for another post (seats cost money and ours were full), but the short version is we all push to the same repo as effectively the same user. Which works fine right up until two people push work that stepped on each other, and then it's not fine at all.
The safe habit is boring and well known. Pull before you push. Get the latest, then send yours. Everyone knows it. I told everyone to do it. I wrote it in the onboarding notes.
And then one afternoon, busy and distracted, I pushed without pulling first.
The habit fails exactly when you need it
Nothing broke that time, I got lucky, it was a clean fast-forward. But it made the problem obvious. The rule is real, the rule is simple, and the rule depends on me remembering it in the exact moment I'm least likely to, which is when I'm heads-down and in a hurry. A safety rule that only works when you're calm and paying attention isn't a safety rule. It's a wish.
If I could forget it, having literally written the reminder, then everyone could forget it. Adding a louder reminder would just be a louder thing to forget.
Move the rule out of people's heads
So I stopped trying to make people remember and made the machine enforce it. There's a little hook now that runs before any push. It quietly checks whether the branch is behind, and if it is, it blocks the push and tells you to pull first. You literally cannot send stale work over someone else's. The rule doesn't live in anyone's memory anymore. It lives in the plumbing, and the plumbing doesn't get distracted.
The nice part is that it fails loudly and at the right moment. Not a doc you read once during onboarding and forget, but a hard stop at the exact second you're about to do the wrong thing, with the fix printed right there. It's committed to the shared repo too, so everyone gets it the moment they clone. Nobody has to opt in to their own safety.
If a rule actually matters, don't write it in a doc and hope. A doc is a reminder, and reminders fail precisely when you're too busy to read them, which is the same moment you were going to make the mistake. Encode it somewhere it can't be forgotten. A hook, a check, a gate. Something that fails loudly instead of trusting you to be careful.
Careful is not a strategy. Six tired people sharing one account taught me that in one afternoon.
Part of a series on building an AI collaborator for our design team at Xflow. Each post stands on its own.
- design-ops
- git
The rest of Notes from building an AI design collaborator
- 1. I stopped describing my product to AI. I just gave it the HTML.
- 2. I gave the AI my design process, not my design decisions
- 3. I turned my design process into a dozen small skills, not one giant prompt
- 4. I built a free tool that gives your AI your real product
- 5. I taught the AI to push designs into Figma. Then it quietly stopped.
- 6. We rebuilt our Figma design system out of the code, not the other way round
- 7. We ran our design process on itself, and it broke in useful ways
- 8. How do you teach an AI your taste?
- 9. It worked great on the smart model. Then I ran it on a cheaper one.
- 10. The AI told me our brand colour with total confidence, and it was wrong
- 11. A screen list lies. I found a whole feature I didn't know we shipped.
- 12. Our documentation updates itself, because updating it is the AI's job
- 13. I sat down to turn my workflow into a swarm of agents. Most of it refused.
- 14. Every modal in our app shared one URL. Our analytics couldn't tell them apart.
- 15. My AI's rules only worked because one tool bothered to read them
- 17. "Out of scope" usually means "we'll repaint this in six months"