Install
$ agentstack add skill-southleft-skills-for-figma-generate-component-doc-figma ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
generate-component-doc-figma — Figma component → Markdown docs
Produce a complete documentation page for one component or component set: overview, anatomy tree, design tokens, variants/states matrix, typography, accessibility, content guidelines, and (optionally) design-code parity and YAML frontmatter. This skill collects structured data from the file via use_figma, then a deterministic Node converter (scripts/generate-doc.mjs) emits the Markdown — the same collected JSON always produces identical Markdown. Do not freehand the doc from prose.
Skill boundaries
use_figmarules — load the officialfigma-useskill first; it is the full Figma Plugin API reference. Essentials these scripts rely on: plain JS with top-levelawait+return(no IIFE, nofigma.closePlugin();console.logis not returned), inputs inlined asconstat the top of each script, colors in 0–1 range, load fonts before any text op,await figma.getNodeByIdAsync(...), and atomic errors (a failed script applies nothing — read the error, fix, retry).- The collect script runs anywhere (
use_figma); the converter is Node and runs in a terminal (node scripts/generate-doc.mjs ...). Same split asexport-tokens-figma. If you can't run Node, you can't produce the doc — say so rather than freehanding it. - Markdown section layout + the
cleanVariantNamerule → [references/doc-template.md](references/doc-template.md). The converter already implements every rule in that file; treat it as the spec, not a checklist for hand-assembly. - Reading/writing annotations as standalone specs → use the
annotations-figmaskill. - Exporting the whole token system (not just one component's tokens) → use
export-tokens-figma.
Workflow
- Identify the target. Get the component or component-set node ID from the current selection or a
URL/ID the user provides. Component sets (with variants) produce the richest docs. Set NODE_ID in the collect script. Also note the file URL (for the figma: link / frontmatter).
- Collect data → save JSON. Run [
scripts/collect-component-data.js](scripts/collect-component-data.js)
via use_figma (skillNames: "generate-component-doc-figma"). It returns the anatomy tree, per-variant colors (with bound token id + name), typography (font family, numeric weight + name, size, line height, letter spacing), spacing tokens, component property definitions (variants/booleans/text props), the description, and annotations (with category names). Save the returned JSON to a file (e.g. collected.json).
- Generate the Markdown (deterministic). Run the Node converter in a terminal:
``bash node scripts/generate-doc.mjs collected.json [--code-info codeInfo.json] [--out docs/components/Button.md] [--frontmatter] [--file-url ] ` It ports the source generator's section logic exactly: Overview (+ When to / When NOT to Use parsed from the description), Component Anatomy, Variants (matrix + icon mapping + configurable props), Token Specification (color + spacing tables), Typography, Content Guidelines, Accessibility, Design Annotations, and — with --code-info — Implementation, Design-Code Parity, and Changelog. cleanVariantName is applied automatically (Type=Image, Size=12 → Image / 12`). Same input → identical output.
- Optional code parity. To add Implementation / Parity /
[View Source]&[Storybook]links,
read the component source and write a codeInfo.json (props, importStatement, sourceFiles, baseComponent, changelog, …), then pass --code-info codeInfo.json.
- Optional frontmatter. Pass
--frontmatterto prepend YAML frontmatter (title, status, version,
tags, figma URL, lastUpdated).
- Review & deliver. Read the emitted Markdown, sanity-check it, then write/return it. Report the
path and a one-line summary (variant count, token count).
Notes
- Font loading: if you add a step that writes text into Figma (e.g. stamping the doc back onto the
canvas), await figma.loadFontAsync(...) first. Pure documentation generation reads only.
- The collect script uses
MAX_DEPTHto keep payloads small for deep trees — raise it only if the
anatomy looks truncated.
- Token names come from
boundVariables; a color/spacing with no bound variable renders as—in the
token tables (a hardcoded value to replace with a token).
- The converter is dependency-free (Node 18+, ESM). It exits non-zero with a clear message if the JSON
is missing or malformed.
- These collect tools require the Figma Desktop app (the Plugin API isn't available in the browser).
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: southleft
- Source: southleft/skills-for-figma
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.