Almost every product spec has a line like “see the Figma” with a link pasted next to it. It’s true the day it’s written and slowly false afterward. The designer reworks the flow, publishes a new version, renames the file — and the spec keeps pointing at a URL whose meaning has quietly changed underneath it. Nobody edited the spec, so nobody thinks the spec is wrong. That’s exactly the hidden cost of product drift: the document didn’t change, so it looks trustworthy, right up until someone builds from a screen that no longer exists.
A pasted link can’t fix this because it isn’t part of anything. It’s a string in a doc. It has no history, it isn’t attached to the feature it describes, and it has no idea what the thing on the other end actually says. So we made the design link a real, versioned relationship in the product graph instead.
The link belongs to the node, not the doc
In Specor, you attach a Figma frame to the specific node it implements — a Feature,
a Flow — from the Specor plugin, right inside Figma. Crucially, that link is
part of the node’s history, not a footnote beside it. Linking or unlinking a frame
is a versioned change: it shows up in diffs, it’s
sealed into commits, a rollback reverses it, and it travels across branches on merge.
Link a design on a feature branch and it doesn’t appear on main until the branch
merges — same as any other edit.
This matters more than it sounds. Because the link is a first-class part of the spec, “which design does this feature use?” has a real answer at every commit, including three months ago. You can look at what a feature’s design was at the moment you shipped it, not just what it is now.
The plugin pushes; Specor never reaches in
The link and the design both come from a plugin the designer runs inside Figma. It reads the open file locally and pushes each frame’s layer structure and a freshly rendered thumbnail to Specor. There’s no OAuth token for an admin to manage, no Figma API rate limits to share across the team, and Specor never reaches into your Figma account — design data enters Specor only when a designer runs the plugin. The thumbnail you see on a node is served straight from Specor, so anyone on the team can look at it with no Figma login, and it never expires.
And it works both ways. While you’re in Figma with a linked frame selected, the plugin shows that node’s Specor spec — its constraining rules, its acceptance criteria, the flows it belongs to — so the source of truth is one panel away instead of one tab away.
When the design and the spec disagree
The harder half of the problem is the direction nobody watches: the design moves and the spec keeps looking right. For a linked feature, Specor compares the design the plugin pushed against the spec and flags where the two disagree — a rule the screen doesn’t honor, a state the spec never mentions, a step in the flow the design skips.
That’s the signal a PM actually wants: not “a designer nudged a rectangle,” but “this screen and this spec have drifted apart, here’s exactly where.” It runs on the structure and image the plugin last pushed and is charged like any other AI agent run, so if a feature is linked but hasn’t been synced yet, Specor asks you to sync it first rather than analyzing nothing.
Design gaps become visible
Once a workspace uses the Figma plugin, the Coverage agent starts asking a question it couldn’t ask before: which features have no design at all? A feature that made it into the spec but never got a frame attached is a small, specific gap — the kind that’s invisible in a wall of Jira tickets and obvious on a graph. It surfaces as a quiet, informational nudge, and only in workspaces that actually use Figma, so teams who manage design elsewhere never see the noise.
Product owns the spec, design owns the file
None of this tries to pull design into Specor or turn the spec into a design tool. The file stays in Figma, owned by design. The spec stays in Specor, owned by product. What changes is that the link between them stops being a dead string in a document and becomes a living edge in the graph — versioned, checked against the real design, and part of the same history as everything else you’ve decided about the product.
A spec that knows which design it points at, and notices when that design disagrees with it, is one less place for product and design to quietly diverge without anyone noticing. It’s the same idea behind specs that know their own numbers: the source of truth should be connected to the real things it describes, not a snapshot someone pasted in once and hoped would stay accurate.
The Figma integration is available now — install the Specor plugin from Figma’s Plugins menu, paste your Specor API key, and start linking, or read the integration docs.