Skip to content

[Extension]: Add Spec Kit Design System #4694

Description

@artursopelnik

Extension ID

design

Extension Name

Spec Kit Design System

Version

0.1.0

Description

Give it an RFC. It runs the Spec Kit workflow and implements the change using your design system.

Author

artursopelnik

Repository URL

https://github.com/artursopelnik/spec-kit-design-system

Download URL

https://github.com/artursopelnik/spec-kit-design-system/archive/refs/tags/v0.1.0.zip

License

MIT

Homepage (optional)

https://github.com/artursopelnik/spec-kit-design-system

Documentation URL (optional)

https://github.com/artursopelnik/spec-kit-design-system/blob/main/README.md

Changelog URL (optional)

https://github.com/artursopelnik/spec-kit-design-system/blob/main/CHANGELOG.md

Required Spec Kit Version

=1.0.0,<2.0.0

Required Tools (optional)

- python3 (>=3.9, with PyYAML) - required
- bash - required
- the project's design system CLI or inventory file - named per project in design-config.yml, not a fixed dependency

Number of Commands

4

Number of Hooks (optional)

3

Tags

design-system, design-tokens, accessibility, autonomous, reuse

Key Features

  • One command, /speckit.design.run <rfc>, carries an RFC through clarify, specify, plan, implement, validate, fix and verify
  • The project's own design system is the source of truth: components, patterns, tokens and principles are asked through a small YAML adapter (CLI, file or MCP), never guessed
  • A blocking before_plan gate walks Recall → Reuse → Compose → Extend → Create and fails closed when the design system cannot be reached
  • A committed decision ledger, keyed by UI capability, so later features reuse earlier decisions
  • Independent validation after implement, with findings fed back into a bounded fix loop (3 rounds)
  • Adapters for shadcn/ui, MUI, Ant Design, Chakra UI, Radix UI, Ark UI and any generated JSON inventory
  • A companion preset appends design sections to the spec, plan and constitution templates instead of replacing them

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

Tested on:

  • Linux, specify-cli 1.0.10: installed from the release archive, preset added, gate run
  • Linux (Ubuntu, GitHub Actions), latest specify-cli: on every push and weekly
  • Python 3.9 (local) and 3.11 (CI)

Test scenarios:

  1. specify extension add design --from <release archive> and specify preset add --dev .specify/extensions/design/preset
  2. Manifests validated with Spec Kit's own ExtensionManifest and PresetManifest
  3. Hooks registered (after_specify, before_plan non-optional, after_implement), preset append-composition resolved
  4. Gate run against a fixture design system, and fails closed when it is unreachable
  5. Unit suite (350 tests) covering dispatch, principles, context, workflow, ledger and the command prose

Example Usage

specify extension add design --from https://github.com/artursopelnik/spec-kit-design-system/archive/refs/tags/v0.1.0.zip
specify preset add --dev .specify/extensions/design/preset

/speckit.design.run docs/rfcs/newsletter-footer.md

Proposed Catalog Entry

{
  "design": {
    "name": "Spec Kit Design System",
    "id": "design",
    "description": "Give it an RFC. It runs the Spec Kit workflow and implements the change using your design system.",
    "author": "artursopelnik",
    "version": "0.1.0",
    "download_url": "https://github.com/artursopelnik/spec-kit-design-system/archive/refs/tags/v0.1.0.zip",
    "repository": "https://github.com/artursopelnik/spec-kit-design-system",
    "homepage": "https://github.com/artursopelnik/spec-kit-design-system",
    "documentation": "https://github.com/artursopelnik/spec-kit-design-system/blob/main/README.md",
    "changelog": "https://github.com/artursopelnik/spec-kit-design-system/blob/main/CHANGELOG.md",
    "license": "MIT",
    "category": "integration",
    "effect": "read-write",
    "requires": {
      "speckit_version": ">=1.0.0,<2.0.0",
      "tools": [
        { "name": "python3", "version": ">=3.9", "required": true },
        { "name": "bash", "required": true }
      ]
    },
    "provides": {
      "commands": 4,
      "hooks": 3
    },
    "tags": [
      "design-system",
      "design-tokens",
      "accessibility",
      "autonomous",
      "reuse"
    ],
    "verified": false,
    "downloads": 0,
    "stars": 0,
    "created_at": "2026-09-23T00:00:00Z",
    "updated_at": "2026-09-23T00:00:00Z"
  }
}

Additional Context

The preset (preset/) ships inside the extension archive and installs from the
extension's own directory, because extensions can only replace templates while
presets can append. It is not submitted to the preset catalog separately.

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