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
Submission Requirements
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:
specify extension add design --from <release archive> and specify preset add --dev .specify/extensions/design/preset
- Manifests validated with Spec Kit's own
ExtensionManifest and PresetManifest
- Hooks registered (
after_specify, before_plan non-optional, after_implement), preset append-composition resolved
- Gate run against a fixture design system, and fails closed when it is unreachable
- 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.
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
Required Tools (optional)
Number of Commands
4
Number of Hooks (optional)
3
Tags
design-system, design-tokens, accessibility, autonomous, reuse
Key Features
/speckit.design.run <rfc>, carries an RFC through clarify, specify, plan, implement, validate, fix and verifybefore_plangate walks Recall → Reuse → Compose → Extend → Create and fails closed when the design system cannot be reachedTesting Checklist
Submission Requirements
extension.ymlmanifest includedTesting Details
Tested on:
Test scenarios:
specify extension add design --from <release archive>andspecify preset add --dev .specify/extensions/design/presetExtensionManifestandPresetManifestafter_specify,before_plannon-optional,after_implement), preset append-composition resolvedExample 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.mdProposed 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 theextension's own directory, because extensions can only replace templates while
presets can append. It is not submitted to the preset catalog separately.