Product engineering
Measuring current Figma components
Read component specifications through the configured Figma source and distinguish unresolved exported identifiers from missing designs.
Measure through the configured source
node src/cli.mjs figma-variables --components --only iyYN8q8ZJMRy6oSKjjQIYoRun this command in the one wisent-components checkout. The existing Figma MCP session must already have access. The selection is an exported file key or folder from figma/inventory.json; figma/sources.json supplies the live key and optional readThrough copy. This reads component geometry, paints, effects, text and visible children. It does not duplicate or edit a Figma design, export reference SVGs, or run a browser comparison.
Noninteractive credential access
The remote MCP client reads the existing Claude Code Figma session from the macOS Keychain. Its native reader disables interactive authorization for that query, including classic-keychain authentication UI. It does not change Keychain permissions, unlock the keychain, renew OAuth or request a consent window. The first use requires the installed Swift compiler; source-bound reader binaries and compiler scratch stay in the checkout's ignored .build/figma-keychain/ directory.
The credential read has a five-second deadline. A FIGMA_KEYCHAIN_REFUSED error retains the actual Security framework status. ETIMEDOUT means the reader did not finish before the deadline, not that Figma rejected the token. The reader diagnostic records whether execution entered SecItemCopyMatching. Compilation failures are reported separately. No Figma request or new measurement follows a failed credential read; existing measurements remain unchanged. Access must already work without interaction before this workflow can continue.
Read the saved result
figma/files/<folder>/components.json retains the actual source key, exported key, read time and returned component specifications. complete is false when a requested identifier did not resolve. unresolved names each such exported identifier and its recorded name. The CLI exits 1 if any selected component measurement is incomplete; a complete read exits 0. A Figma access, authentication or transport refusal remains an error, not a successful empty measurement.
An unresolved identifier does not establish that a design is absent, that a copy is older, or when that copy was created. A component can have another identifier. The earlier January copy dates were not established and have been removed from the source mapping. Resolve the current design identity in Figma before using another component as its replacement. Do not infer ownership or copy age from a quota message.
Run the real regression
WISENT_FIGMA_COMPLETE_SOURCE=iyYN8q8ZJMRy6oSKjjQIYo WISENT_FIGMA_UNRESOLVED_SOURCE=fPvmXkvai4Aouum0hnAO6S node --test tests/figma/components.test.mjsBoth selections must name accessible recorded sources with the stated complete or unresolved precondition. The test contacts real Figma through the CLI, reads persisted state, and retains the exact source revision, commands, exit statuses and returned measurements under .build/figma-components-evidence/. No supplied selections means a skipped test, not a passed live run.
Recorded change and result
At source revision f685a61ee2d89aefc8a5c44e923479a646f2231c, the real regression resolved 36 of 36 exported Wisent Web identifiers and exited 0. Wisent App resolved 0 of 7 and exited 1, preserving all seven unresolved identifiers. Before the fix, that same incomplete App read exited 0. The library comparison separately matched all 88 recorded variables with no differences.
These results prove the measurement and refusal behavior, not visual parity or completion of fresh Figma duplicates. The version-pinned export workflow and the actual graphical comparison are separate operations.