Context
Doing a real design audit from Figma, the model bypassed lumo-figma render and instead called the Figma REST text/nodes endpoints directly, reading layer characters out of the node tree by hand.
What went wrong
A repeated assist text ("De manera cómoda y segura") existed in the node JSON for all three action rows and was reported as a UX finding ("repeated subtitle, no value"). It was wrong — that layer is hidden / not rendered in the final screen, so the user never sees it. The node tree's characters carries content for hidden and zero-height layers; it is not a source of truth for visible content.
lumo-figma render already handles this correctly — the roadmap states "Hidden / null-bbox nodes are skipped, not faked" (v0.2.0). The gap is not the tool; it's that nothing in SKILL.md tells the agent to use the tool instead of improvising against the raw API.
Proposed fix (docs only, no code)
Add to SKILL.md:
- A Decision Tree row: "Audit a screen from Figma" → run
lumo-figma render (+ lumo-theory / lumo-wcag on its output), then lumo-figma annotate for the report. Never hand-parse /v1/files/.../nodes.
- A short rule under the Figma section: the rendered image is the source of truth for visible content; the node tree is only reliable for geometry and tokens. Never raise a content-level finding (copy, repeated/missing labels) from the tree without confirming against the render. Check
visible !== false and non-zero bbox before treating a text node as shown.
Why it matters
Without this, every ad-hoc Figma audit can resurface the same false-positive class. The tool already encodes the right behaviour — the skill just needs to point at it.
Acceptance
- SKILL.md Decision Tree has the Figma-audit row.
- SKILL.md states the render-vs-tree source-of-truth rule + visibility check.
- No tool change required (verify
lumo-figma render still drops hidden/null-bbox nodes; add a regression test if missing).
Context
Doing a real design audit from Figma, the model bypassed
lumo-figma renderand instead called the Figma RESTtext/nodesendpoints directly, reading layercharactersout of the node tree by hand.What went wrong
A repeated
assist text("De manera cómoda y segura") existed in the node JSON for all three action rows and was reported as a UX finding ("repeated subtitle, no value"). It was wrong — that layer is hidden / not rendered in the final screen, so the user never sees it. The node tree'scharacterscarries content for hidden and zero-height layers; it is not a source of truth for visible content.lumo-figma renderalready handles this correctly — the roadmap states "Hidden / null-bbox nodes are skipped, not faked" (v0.2.0). The gap is not the tool; it's that nothing in SKILL.md tells the agent to use the tool instead of improvising against the raw API.Proposed fix (docs only, no code)
Add to
SKILL.md:lumo-figma render(+lumo-theory/lumo-wcagon its output), thenlumo-figma annotatefor the report. Never hand-parse/v1/files/.../nodes.visible !== falseand non-zero bbox before treating a text node as shown.Why it matters
Without this, every ad-hoc Figma audit can resurface the same false-positive class. The tool already encodes the right behaviour — the skill just needs to point at it.
Acceptance
lumo-figma renderstill drops hidden/null-bbox nodes; add a regression test if missing).