When agents build the UI, the design system has to speak to them too

In my second week at GitHub, a new AI prototyping tool called Replica launched. Describe a page in plain language and it builds a real, shareable prototype with real Primer components and real GitHub data. It can also pull live data, compare concepts, and hand work off to dev, and my design process soon shifted almost entirely into it. However, it was built fast and never documented. By the time I started, replica had 41 agent skills and 42 rebuilt pages, and no way to find any of them. I talked to 30 hubbers and some of them had never heard of it, some knew a little, and some used it daily without knowing its full power. Everyone had built their own process around whatever they happened to know.

I set out to answer one question: how do you tell people what a fast-moving tool can do, when the answer changes every week? Feature discoverability was already a top-3 priority for the team, and the team wanted fewer UI surfaces to maintain. I shipped a solution with product direction from Jannes Peters, Director of AI & Core Workflows Design at GitHub. One small button that opens a Copilot session, where an agent reads the repo and picks the three most relevant features right now. Quick and copilot-native.

Things to keep in mind

Reasoning

Twenty people had shipped at high velocity for 3.5 months: 4,054 commits, 41 skills, 42 routes, 48 specs. That's not a small gap in documentation, it's a structural one.

The team built all 41 things and therefore knew all 41 things, which made the gap invisible to the people who most needed to see it.

Goal

Tell a new user what a fast-moving platform can do, when the answer changes every week and nobody has time to update "what's new" page. How to maintain without maintaining?

Dynamics

It couldn't go stale. Any hand-written list will be wrong within days at that commit rate.


Nobody would maintain it. There was no docs owner, no curator role.


It couldn't add a UI surface. The team was actively trying to reduce the surfaces it maintained.

Context

Engagement was never the actual problem, people who found the platform explored it.


There was no one to be the curator, and building for one would guarantee the feature decayed by week three.

Formation

Noticing the gap as a user, not as a researcher

I'd used Replica for a few weeks and kept finding good features by accident, usually because someone mentioned one in Slack. The pain was real and current. It read as an observation worth acting on immediately. Jannes replied the next morning, agreed we had more hidden features, and the conversation that shaped the real solution. Prototype discovery already worked on its own. Capability discovery didn't, and this project closed exactly that gap

Define agent skill workflow based on trust and judgement

A system that updates itself still needs a rule for judgment, not just a way to deliver information. Automation only earns trust when users can see what it's doing and stay in control. I compared it to how an EV decides what to tell the driver during an over-the-air update. So I asked two questions: "What will the criteria be to classify unknown future features?" and "What updates should be visible vs invisible to users?" This led to the loop for the agent.

UI sparked discovery and chat added depth

The real pain point was finding out about features before finding out more about them. UI alone solves discovery but not depth. Chat alone solves depth but not discovery. So the solution to combine them both was ideal. A slight hint on the UI nudged users to discover new features from that week. The interactive agent skill brought repository context and replica context to action-oriented points that users can next try.

Progressive disclosure for detail

"Make it agentic" on its own has a hole in it. An agent can't tell you about a feature you don't know to ask about, and a blank chat box makes that worse. So, the agent lead and revealed information:

  1. It shows the landscape first, three features at once only

  1. It then stops and lets the user picks what to do next with action

  1. It expands only when asked, with three how-to steps for feature

  1. It never launches a session unprompted. It asks for consent first

Too much upfront overwhelms a new user, and too little leaves them stuck. I changed this into a short menu users can react to and follow-up questions get real answers.

Files involved to make it dynamic: Curation.md

The trick to successfully keep the agent dynamic was to feed both a manual and automatic set up so that it ensures up-to-date information. Since it is an internal tooling, it gives more freedom in terms of legal. I made a CURATION.md file: a plain-English algorithm the agent runs at the start of every session. It scans merged PRs from the last six weeks, plus skills and specs. It scores what counts as new, then ranks by impact, recency, and discoverability gap.

Simultaneously a feature.md is a library of copy that developers can manually fill out, yet nothing depends on this. Automation owns the selection and overrides can occur manually. Replica is an internal tooling, which gives us more freedom to let the agent read the repo live. So, next month's answer is different with no one editing.

Results

In three weeks, the product feature met the architecture we intended and built towards it. The shipped feature closes the exact gap the team had already named as a top-3 opportunity, one week before I started.

Reached ~100 active prototypes and 100-135 people using Replica per week. With about 8 first builders arriving each week.

Decreased time for completion by 64% from Batch 1 to batch 2

Next

This is an argument for an evergreen mechanism instead of a onetime onboarding artifact. Really there is no single class to graduate. One button surfaces to all 41 new builds, and every new skill the team ships becomes a candidate for the next scan. This is an example of “skills as guardrails”, an idea the team was already circling. For a codebase that has roughly 1,200 commits a month, that is a direct, measurable instance for maintenance without maintaining.