Install
$ agentstack add skill-evolplus-talos-figma-design-handoff ✓ 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
Figma Design Handoff
Use
Use this skill when UI/UX Designer is dispatched after SRS sign-off in one of these modes:
create- create missing Figma surfaces for Design-Flow B/C, or explicitly approved gap surfaces in Design-Flow A.import- read existing pinned Figma Node IDs and produce a kit handoff without modifying Figma.revise- update existing Figma work after BA design completeness returnsunqualified.incorporate- absorb human edits made directly in Figma and regenerate the handoff.
Do not use this skill for pre-BA extraction or pre-sign-off mapping; those are handled by figma-requirements-extraction and figma-srs-mapping.
Required Companion Skills
Load these skills when their condition applies:
ui-ux-page-scoping- always, before touching Figma.design-system-author- always, before drawing or validating screens.figma-canvas-layout- always, before handoff.figma-requirements-extraction- only forextractmode.figma-srs-mapping- only formapmode.
Inputs
docs/SRS.mdatStatus: Signed-off, including:Design-FlowDesignated Design Approver## Design References- UI Introspection Profile
- brand / design guideline headers
docs/user-stories/.mdanddocs/frs/.mdfor the surfaces in scope.- Task ID and task file when the design is task-scoped.
- Existing
docs/uiux/handoffs/.mdforrevise/incorporate. docs/uiux/completeness-reports/.mdforrevise.- Figma MCP access; write access only for
createandrevise.
Outputs
- Figma updates for
create/reviseonly. - Updated
docs/SRS.md## Design Referencesrows for Node IDs, Figma URL, page-scope fields, and design sub-status. docs/uiux/handoffs/.md.docs/uiux/refs/.mdand reference snapshots when needed for QA.- Open issues for missing states, stale designs, unsupported variants, or SRS/design conflicts.
- Worktree
plan-update.jsonwithtrack: "uiux".
Common Procedure
- Run
ui-ux-page-scopingand record the resolved page root. - Run or verify
design-system-authorFoundation before screen work. The Foundation source comes from SRSDesign-Guideline:: preset slug,from-figma, ornone. Screens must consume Foundation tokens/components rather than hardcoded one-off styling. - Read the relevant US/FR files. Build the required surface/state/platform matrix from SRS §3.4.1, user-story Main Flow, Business Rules, Post-conditions, and FR Error Handling.
- Perform the mode-specific procedure below.
- Run
figma-canvas-layoutlint on the scoped page and fix blocking layout issues when the mode permits Figma writes. Do not mark handoff ready whencreate/revise/incorporateleaves overlapping top-level screen frames. - Produce the handoff with enough detail for BA completeness, QA visual-spec authoring, and FE Dev implementation. This includes the required
## Design Element Manifestdescribed below. - Update only the SRS fields owned by UI/UX Designer: Design References Node IDs, Figma URL/page metadata, Visual-Critical, and design sub-status.
- Commit changes and emit
plan-update.json.
Mode: create
Use only when SRS Design-Flow is B or C, or when Design-Flow A has an explicit human-approved missing-surface gap.
- Create frames for each in-scope surface inside the scoped Figma page.
- Include every required platform variant, state, error path, empty/loading/success state, and accessibility annotation the SRS names.
- Use Foundation components and tokens. Create missing Foundation primitives before composing screens.
- Build the Design Element Manifest from the authored frames before handoff.
- Pin resulting Node IDs back to SRS §3.4.1.
- Write handoff rows with
Source: created.
Mode: import
Use when SRS already pins Node IDs or the dispatch carries an existing Figma URL.
- Read pinned frames in scoped-page read-only mode.
- Capture structure, Auto Layout, components, variants, states, tokens, exact copy, fields/items, and Figma metadata.
- If a supplied URL covers an SRS row with an empty Node ID, write the Node ID back to that row.
- Compare imported content to required SRS surfaces/states/platforms.
- Build the Design Element Manifest from the imported frames.
- Write
Source: importedhandoff rows and a gap list. - Mark
Design-may-be-stale: yeswhen Figma last-modified predates SRSLast-Updatedby more than 30 days.
Mode: revise
Use when BA returned a design completeness report with unqualified.
- Read
docs/uiux/completeness-reports/.md. - Address every flagged item in the existing Figma file.
- Preserve existing Node IDs when possible. If IDs change, update SRS §3.4.1 and call out the change in the handoff.
- Regenerate the Design Element Manifest from the revised Figma frames.
- Regenerate the handoff and refs.
- Leave unresolved items as open issues; do not mark design-ready while blocking gaps remain.
Mode: incorporate
Use when a human approver/designer edited Figma directly after handoff.
- Treat current Figma as authoritative.
- Read the new version and compare it to the previous handoff.
- Regenerate the Design Element Manifest from the new version.
- Regenerate handoff and refs without undoing human edits.
- Add
## Human Edit Reconciliation Notesfor every changed node/property, including added/removed manifest entries. - If human edits conflict with SRS requirements, do not silently fix them. Raise open issues for BA and the human approver.
Design Element Manifest
Every handoff MUST include ## Design Element Manifest. This is the implementation-level inventory FE Dev must reproduce. It prevents a design from being reduced to "rough layout + tokens" while silently dropping fields, columns, chips, actions, or copy.
Build the manifest by walking every pinned frame's Figma node tree. Include every visible element that is user-observable or implementation-bearing:
- Form fields: label, placeholder, default value, helper text, validation/error text, required marker, disabled/read-only state.
- Data display fields: table columns, list-item fields, card metadata, profile/detail rows, key-value pairs, badges, status labels, counters.
- Navigational items: tabs, menu items, nav items, breadcrumbs, filter chips, segmented controls, pagination controls.
- Actions: buttons, links, icon buttons with semantic purpose, destructive/confirm/cancel actions.
- Feedback and state content: modal/dialog copy, toast/snackbar copy, empty/loading/error/success state headings/body/actions.
- Static copy: headings, descriptions, legal/help text, inline hints, labels, localized strings visible in the frame.
- Media/semantic icons: image/avatar/thumbnail slots, icon roles when they carry meaning.
Exclude purely decorative layers only when they are explicitly marked as decorative in the manifest. A visible Figma node that is omitted from both the manifest and decorative exclusions is a handoff defect.
Use this table shape:
## Design Element Manifest
| Manifest ID | Frame / State | Figma Node ID | Role | Visible text / value | Implementation requirement | Test/accessibility hook | Notes |
|---|---|---|---|---|---|---|---|
| DEM-001 | Checkout / Payment / Default | 125:44 | input.field | Label: "Card number"; Placeholder: "1234 1234 1234 1234" | Render card-number field with exact label, placeholder, required marker, and validation target | `checkout-card-number` | Static field |
| DEM-002 | Orders / List / Default | 128:9 | table.column | "Status" | Render Status column in each order row; dynamic value from API | `orders-col-status` | Data-bound |
| DEM-003 | Orders / List / Default | 128:10 | filter.option | "Archived" | Render filter option exactly once in status filter | `orders-filter-archived` | Static option |
### Decorative / non-functional exclusions
| Frame / State | Figma Node ID | Reason |
|---|---|---|
| Orders / List / Default | 128:55 | Background texture only; no semantic meaning |
Rules:
Manifest IDvalues are stable within the handoff (DEM-001,DEM-002, ...). Preserve IDs when revising unchanged elements.Roleuses explicit categories such asinput.field,input.error,table.column,list.item-field,card.field,button.action,nav.item,tab.item,chip.option,modal.copy,toast.copy,state.empty-copy,image.slot,icon.semantic,text.static.- For dynamic data, record the required field/slot/column and mark the value as data-bound. Do not require FE Dev to hardcode sample row content unless the design labels it as static copy.
- For repeated lists/tables/cards, record the row/card template fields once and include visible sample rows only when sample content itself is a product requirement.
- Keep exact capitalization, punctuation, and ordering from Figma for static labels/options/copy.
- If the Figma design has fields/items that conflict with SRS, keep them in the manifest and add a gap/reconciliation note. Do not hide them by omission.
Handoff Content
docs/uiux/handoffs/.md must include:
- Source:
createdorimported. - Mode:
create|import|revise|incorporate. - Figma file URL, version, last-modified, page Node ID, and page name.
- Design-may-be-stale flag.
- Design guideline source: preset slug,
from-figma,none, orN/A; cite extraction artifact path whenfrom-figma. - Surface table: SRS requirement ID, surface name, platform, Figma node ID, source, design status.
- Component inventory per surface.
- Design Element Manifest with required fields/items/copy/actions and decorative exclusions.
- Required states and variants per component.
- Token usage: colors, typography, spacing, radius, elevation, motion.
- Accessibility notes and test IDs when present.
- Gap list and reconciliation notes.
Hard Rules
- Only
createandrevisemay write to Figma. importandincorporateare read-only against Figma.- Never create screens unless Design-Flow allows it or a human explicitly approved a gap surface.
- Never write requirements or change SRS body content.
- Never hand off screens that skip required SRS states without a visible gap.
- Never hand off a UI task without
## Design Element Manifest. Component inventory alone is insufficient. - Never bypass Foundation tokens/components for screen work.
- Never hand off overlapping top-level screen frames in
create/revise/incorporate; route toNEEDS_CONTEXTwhen the current mode cannot write the cleanup. - Commit before signaling done.
References
.claude/skills/ui-ux-page-scoping/.claude/skills/design-system-author/.claude/skills/figma-canvas-layout/.claude/agents/_templates/_artifacts/srs-template.md
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: evolplus
- Source: evolplus/talos
- License: Apache-2.0
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.