Extension ID
spec-kit-multi-sites
Extension Name
Multi-Sites Spec Kit
Version
1.0.0
Description
Multi-site aware specify command with per-site spec folders, auto-increment, and Drupal support
Author
teeyo
Repository URL
https://github.com/teeyo/spec-kit-multi-sites
Download URL
https://github.com/teeyo/spec-kit-multi-sites/archive/refs/tags/v1.0.0.zip
License
MIT
Homepage (optional)
https://github.com/teeyo/spec-kit-multi-sites
Documentation URL (optional)
https://github.com/teeyo/spec-kit-multi-sites/blob/main/README.md
Changelog URL (optional)
https://github.com/teeyo/spec-kit-multi-sites/blob/main/CHANGELOG.md
Required Spec Kit Version
=0.1.0
Required Tools (optional)
Number of Commands
1
Number of Hooks (optional)
0
Tags
multi-site, workflow, process
Key Features
- Auto-detects the sites folder from project structure (Drupal: docroot/sites, web/sites, sites/; generic: apps/, tenants/, domains/, vhosts/)
- Interactive guided flow replacing /speckit.specify with multi-site awareness
- Two spec organisation modes: Targeted (per-site specs/ folders) and Single (shared root specs/ folder with site-scoped names)
- Independent auto-increment counters per scope — websiteA, websiteB, and core each start at 001 and never interfere with each other
- Core target option for root-level shared features that apply across all websites
- Automatic creation of specs/ directories when they don't exist yet
- Standard spec file template (Overview, Goals, Non-Goals, User Stories, Acceptance Criteria, Technical Notes, Open Questions, References)
- Git branch name suggestion derived from the spec ID and feature name
- Optional config file to lock in sites_folder, spec_mode, and excluded_sites per project
Testing Checklist
Submission Requirements
Testing Details
Tested locally using specify extension add --dev against a Drupal multi-site project structure with the following scenarios:
-
Targeted mode — core target: confirmed spec created at specs/001-.md with correct template content and directory auto-created when absent.
-
Targeted mode — website target (docroot/sites/websiteA): confirmed spec created at docroot/sites/websiteA/specs/001-.md; counter is independent from core and other sites.
-
Targeted mode — second spec on same website: confirmed counter increments to 002- without affecting other sites.
-
Single mode — core target: confirmed spec created at specs/001-core-.md.
-
Single mode — website target: confirmed spec created at specs/001-websiteA-.md; numbering is scoped per target name and does not interfere with the core counter.
-
Auto-detection: verified docroot/sites/ is suggested automatically on a Drupal composer layout; verified manual override is accepted when the prompt is answered with a custom path.
-
Config override: verified sites_folder and spec_mode set in spec-kit-multi-sites-config.yml skip the corresponding interactive prompts.
-
Validated extension.yml manifest structure against the published schema (schema_version 1.0, all command file paths present, semver version, description under 100 chars).
Example Usage
# Install the extension
specify extension add spec-kit-multi-sites
# In your AI agent chat, run:
/speckit.multisite.specify
# The command walks you through an interactive flow:
Step 1 — Sites folder detection
> Detected: docroot/sites (press Enter to confirm or type a custom path)
Step 2 — Spec mode
> 1 — Targeted specs (per-site specs/ folders, independent counters)
> 2 — Single specs (shared root specs/ folder, scope embedded in name)
Choice: 1
Step 3 — Target selection
> core (root-level shared feature)
> websiteA
> websiteB
Choice: websiteA
Step 4 — Feature name
> user-authentication
# Result (targeted mode, websiteA):
File created: docroot/sites/websiteA/specs/001-user-authentication.md
Suggested branch: 001-user-authentication
# Result for a second feature on websiteA:
File created: docroot/sites/websiteA/specs/002-product-catalog.md
# Result for core (independent counter):
File created: specs/001-shared-navigation.md
# Result in single mode for websiteB:
File created: specs/001-websiteB-homepage.md
# Continue the standard Spec Kit workflow:
/speckit.clarify
/speckit.plan
/speckit.tasks
/speckit.implement
Proposed Catalog Entry
{
"spec-kit-multi-sites": {
"name": "Multi-Sites Spec Kit",
"id": "spec-kit-multi-sites",
"description": "Multi-site aware specify command with per-site spec folders, auto-increment, and Drupal support",
"author": "teeyo",
"version": "1.0.0",
"download_url": "https://github.com/teeyo/spec-kit-multi-sites/archive/refs/tags/v1.0.0.zip",
"repository": "https://github.com/teeyo/spec-kit-multi-sites",
"homepage": "https://github.com/teeyo/spec-kit-multi-sites",
"documentation": "https://github.com/teeyo/spec-kit-multi-sites/blob/main/README.md",
"changelog": "https://github.com/teeyo/spec-kit-multi-sites/blob/main/CHANGELOG.md",
"license": "MIT",
"requires": {
"speckit_version": ">=0.1.0"
},
"provides": {
"commands": 1,
"hooks": 0
},
"tags": [
"multi-site",
"drupal",
"workflow",
"process"
],
"verified": false,
"downloads": 0,
"stars": 0,
"created_at": "2026-05-29T00:00:00Z",
"updated_at": "2026-05-29T00:00:00Z"
}
}
Additional Context
This extension targets multi-site projects where a single codebase serves multiple
websites — a pattern common in Drupal, headless CMS setups, and monorepos with
several web apps. The core problem it solves is that the standard /speckit.specify
command has no concept of site scope: all specs land in one flat folder with a
single shared counter, which breaks down when features belong to specific websites
or to the shared core.
Design decisions:
-
Two modes are offered rather than forcing one approach because teams have
different preferences: some want full filesystem isolation per site (targeted),
others prefer a single flat folder they can grep easily (single).
-
The "core" target is always present regardless of what is found in the sites
folder, because every multi-site project has shared functionality that does not
belong to any one website.
-
Auto-increment is computed by counting existing files at command runtime rather
than storing state in a metadata file, which keeps the extension stateless and
avoids merge conflicts.
-
The command is named speckit.multisite.specify rather than overriding the
built-in speckit.specify, so teams can run both side by side during adoption and
switch gradually without breaking existing workflows.
Drupal-specific note: the extension recognises both composer-based layouts
(docroot/sites) and the older web/sites and bare sites/ conventions, and uses the
presence of settings.php inside sub-directories as a confirmation signal to avoid
false positives on unrelated folders named "sites".
Extension ID
spec-kit-multi-sites
Extension Name
Multi-Sites Spec Kit
Version
1.0.0
Description
Multi-site aware specify command with per-site spec folders, auto-increment, and Drupal support
Author
teeyo
Repository URL
https://github.com/teeyo/spec-kit-multi-sites
Download URL
https://github.com/teeyo/spec-kit-multi-sites/archive/refs/tags/v1.0.0.zip
License
MIT
Homepage (optional)
https://github.com/teeyo/spec-kit-multi-sites
Documentation URL (optional)
https://github.com/teeyo/spec-kit-multi-sites/blob/main/README.md
Changelog URL (optional)
https://github.com/teeyo/spec-kit-multi-sites/blob/main/CHANGELOG.md
Required Spec Kit Version
Required Tools (optional)
Number of Commands
1
Number of Hooks (optional)
0
Tags
multi-site, workflow, process
Key Features
Testing Checklist
Submission Requirements
extension.ymlmanifest includedTesting Details
Tested locally using
specify extension add --devagainst a Drupal multi-site project structure with the following scenarios:Targeted mode — core target: confirmed spec created at specs/001-.md with correct template content and directory auto-created when absent.
Targeted mode — website target (docroot/sites/websiteA): confirmed spec created at docroot/sites/websiteA/specs/001-.md; counter is independent from core and other sites.
Targeted mode — second spec on same website: confirmed counter increments to 002- without affecting other sites.
Single mode — core target: confirmed spec created at specs/001-core-.md.
Single mode — website target: confirmed spec created at specs/001-websiteA-.md; numbering is scoped per target name and does not interfere with the core counter.
Auto-detection: verified docroot/sites/ is suggested automatically on a Drupal composer layout; verified manual override is accepted when the prompt is answered with a custom path.
Config override: verified sites_folder and spec_mode set in spec-kit-multi-sites-config.yml skip the corresponding interactive prompts.
Validated extension.yml manifest structure against the published schema (schema_version 1.0, all command file paths present, semver version, description under 100 chars).
Example Usage
Proposed Catalog Entry
{ "spec-kit-multi-sites": { "name": "Multi-Sites Spec Kit", "id": "spec-kit-multi-sites", "description": "Multi-site aware specify command with per-site spec folders, auto-increment, and Drupal support", "author": "teeyo", "version": "1.0.0", "download_url": "https://github.com/teeyo/spec-kit-multi-sites/archive/refs/tags/v1.0.0.zip", "repository": "https://github.com/teeyo/spec-kit-multi-sites", "homepage": "https://github.com/teeyo/spec-kit-multi-sites", "documentation": "https://github.com/teeyo/spec-kit-multi-sites/blob/main/README.md", "changelog": "https://github.com/teeyo/spec-kit-multi-sites/blob/main/CHANGELOG.md", "license": "MIT", "requires": { "speckit_version": ">=0.1.0" }, "provides": { "commands": 1, "hooks": 0 }, "tags": [ "multi-site", "drupal", "workflow", "process" ], "verified": false, "downloads": 0, "stars": 0, "created_at": "2026-05-29T00:00:00Z", "updated_at": "2026-05-29T00:00:00Z" } }Additional Context
This extension targets multi-site projects where a single codebase serves multiple
websites — a pattern common in Drupal, headless CMS setups, and monorepos with
several web apps. The core problem it solves is that the standard /speckit.specify
command has no concept of site scope: all specs land in one flat folder with a
single shared counter, which breaks down when features belong to specific websites
or to the shared core.
Design decisions:
Two modes are offered rather than forcing one approach because teams have
different preferences: some want full filesystem isolation per site (targeted),
others prefer a single flat folder they can grep easily (single).
The "core" target is always present regardless of what is found in the sites
folder, because every multi-site project has shared functionality that does not
belong to any one website.
Auto-increment is computed by counting existing files at command runtime rather
than storing state in a metadata file, which keeps the extension stateless and
avoids merge conflicts.
The command is named speckit.multisite.specify rather than overriding the
built-in speckit.specify, so teams can run both side by side during adoption and
switch gradually without breaking existing workflows.
Drupal-specific note: the extension recognises both composer-based layouts
(docroot/sites) and the older web/sites and bare sites/ conventions, and uses the
presence of settings.php inside sub-directories as a confirmation signal to avoid
false positives on unrelated folders named "sites".