Skip to content

[Extension]: Update Spec Kit Figma to v3.1.1 #4375

Description

@sebastienthibaud

Extension ID

figma

Extension Name

Spec Kit Figma

Version

3.1.1

Description

Grounds SpecKit spec/plan/tasks in Figma design context via REST or MCP, on macOS/Linux/Windows.

Author

Fyloss

Repository URL

https://github.com/Fyloss/spec-kit-figma

Download URL

https://github.com/Fyloss/spec-kit-figma/archive/refs/tags/v3.1.1.zip

License

MIT

Homepage (optional)

https://github.com/Fyloss/spec-kit-figma

Documentation URL (optional)

https://github.com/Fyloss/spec-kit-figma/blob/main/docs/

Changelog URL (optional)

https://github.com/Fyloss/spec-kit-figma/blob/main/CHANGELOG.md

Required Spec Kit Version

=0.11.2

Required Tools (optional)

- git - required
- bash (>=4), curl, jq - required on macOS/Linux (POSIX engine, scripts/bash/*.sh)
- pwsh (>=7.0) - required on Windows (PowerShell ports, scripts/powershell/*.ps1)
- A read-only Figma personal access token (scope: file_content:read) - required at runtime

Number of Commands

7

Number of Hooks (optional)

11 (6 before_* + 5 after_*)

Tags

figma, design, frontend, ui, design-system

Key Features

  • Grounds /speckit.specify, /speckit.plan, /speckit.tasks, /speckit.analyze, /speckit.converge and /speckit.implement in Figma design context, automatically, via before_* hooks
  • Two interchangeable engines: portable REST (curl + jq, CI-friendly) and optional MCP for higher-fidelity mockup implementation, with transparent REST fallback
  • Auto-detects Figma links pasted in the feature input and introspects the linked file, frames and nodes; oversized link scope forces a confirmation checkpoint instead of reasoning over a 12,000px page
  • Cross-file source-component resolution (new in 3.1.1): resolves an INSTANCE's main component through Figma's component registry, so components published from a Design System or another library are no longer degraded to instance-only data
  • Deterministic extracted values (spacing, typography, colors) rendered into the spec/plan/tasks section, so weaker models cannot guess them
  • after_* hooks verify the design section actually landed in the document and self-correct; --strict turns it into a CI gate
  • /speckit.figma.export renders nodes to images: confirmation previews next to the spec, or shipped assets (.svg/.png) tracked in a manifest that refuses to overwrite hand-edited files
  • /speckit.figma.drift reports when the Figma file changed after the spec was generated
  • 3-level component resolution (reuse -> Design System -> app), works with or without a Design System
  • Single-repo (default), mono-repo (Nx/Turborepo/pnpm/yarn/Lerna) and multi-repo (git submodules) layouts
  • Cross-platform: bash helpers for macOS/Linux, PowerShell 7+ ports for Windows, same flags/JSON/exit codes

Testing Checklist

  • Extension installs successfully via download URL
  • All commands execute without errors
  • Documentation is complete and accurate
  • No security vulnerabilities identified
  • Tested on at least one real project

Submission Requirements

  • Valid extension.yml manifest included
  • README.md with installation and usage instructions
  • LICENSE file included
  • GitHub release created with version tag
  • All command files exist and are properly formatted
  • Extension ID follows naming conventions (lowercase-with-hyphens)

Testing Details

Automated (GitHub Actions, on every PR and on the v3.1.1 tag):

  • ShellCheck on scripts/bash/*.sh and install.sh
  • bats suite (13 files) on ubuntu-latest
  • PSScriptAnalyzer on the PowerShell ports
  • Pester 5 suite on windows-latest AND ubuntu-latest
  • Validation of the five shipped example configs against the JSON schema

Manual:

  • [OS + Spec Kit version used, e.g. macOS 26.6.1 with Spec Kit v0.16.2]
  • Installed from the v3.1.1 release archive with specify extension add figma --from <url>
  • Ran /speckit.figma.config, then a full specify -> plan -> tasks -> implement cycle on [test project]
  • Verified the design section is injected by the before_* hooks and confirmed by the after_* hooks
  • Verified the 3.1.1 change specifically: an INSTANCE whose main component is published from a separate Design System file now resolves, and the "Source components" table shows the File column
  • Verified upgrade path from 3.0.0 via /speckit.figma.update (figma.projects.config.json preserved)

Example Usage

# Install / update the extension from the v3.1.1 release
specify extension add figma --from https://github.com/Fyloss/spec-kit-figma/archive/refs/tags/v3.1.1.zip

# Configure once per workspace (selects the REST or MCP engine, validates connectivity)
/speckit.figma.config

# Then just paste a Figma link in the feature description — the hooks do the rest
/speckit.specify Build the checkout summary card https://www.figma.com/design/AbC123/Shop?node-id=412-1877

# Optional: deep dive, export assets, check drift
/speckit.figma.introspect --node 412:1877 --depth 3
/speckit.figma.export --mode asset --node 88:12 --format svg --out packages/ds/assets
/speckit.figma.drift

Proposed Catalog Entry

{
  "figma": {
    "name": "Spec Kit Figma",
    "id": "figma",
    "description": "Grounds SpecKit spec/plan/tasks in Figma design context via REST or MCP, on macOS/Linux/Windows.",
    "author": "Fyloss",
    "version": "3.1.1",
    "download_url": "https://github.com/Fyloss/spec-kit-figma/archive/refs/tags/v3.1.1.zip",
    "repository": "https://github.com/Fyloss/spec-kit-figma",
    "homepage": "https://github.com/Fyloss/spec-kit-figma",
    "license": "MIT",
    "requires": {
      "speckit_version": ">=0.11.2"
    },
    "provides": {
      "commands": 7,
      "hooks": 11
    },
    "tags": ["figma", "design", "frontend", "ui", "design-system"],
    "verified": false,
    "downloads": 0,
    "stars": 0,
    "created_at": "2026-06-17T00:00:00Z",
    "updated_at": "2026-08-25T18:08:04Z"
  }
}

Additional Context

Update submission for the Figma extension, from the previously submitted version to 3.1.1.

Two things worth flagging for review:

  1. requires.speckit_version moves from ">=0.1.0" to ">=0.11.2" (breaking prerequisite, released as 3.0.0). Reason: /speckit.converge's command template — and therefore the before_converge / after_converge hook points — first ships in Spec Kit 0.11.2. Every other hook registered here has existed since at least 0.9.5. Users on an older Spec Kit must run uv tool upgrade specify-cli before updating.

  2. The command surface changed in 3.0.0: speckit.figma.setup was renamed speckit.figma.config, and speckit.figma.export / speckit.figma.drift were added (5 commands -> 7). Existing installs upgrade in place via /speckit.figma.update, which is idempotent and preserves figma.projects.config.json.

Changelog for this release: https://github.com/Fyloss/spec-kit-figma/blob/main/CHANGELOG.md
Full diff: Fyloss/spec-kit-figma@v1.6.0...v3.1.1

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions