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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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