feat: support custom feature identifiers - #4500
Conversation
|
Thanks for this — but the capability is largely already supported, and through mechanisms that keep Spec Kit's directory-based, Git-decoupled design intact:
So a custom identifier that names the directory is already doable today, and branch naming is the git extension's concern. Closing as covered by existing functionality — but if there's a specific gap |
|
Hi @mnriem , I appreciate your response! I'm not entirely following. If we run Are you suggesting creating a .specify/extension and associated skill for this purpose? Just trying to make sure I understand. Update: I tried out the spec-kit-branch-convention extension, though this doesn't seem to update the branch / folder names when I run a specify. From this thread: #407 I see you commented the following:
Any idea how to opt in? |
|
Hi @swbhollis — good questions, and the short answer is: no skill changes or manual folder edits needed. The specs folder name is controlled by
So to put your own work id on the folder, set it before running specify: Plain text then run If you only want to control the slug (not the whole path), On the branch-convention extension: that one governs branch naming, which is deliberately separate from folder naming (the #407 split you quoted), so it won't rename the specs folder — That's why I closed #4500 as already-addressed rather than a rejection — the capability is already there, just via the env var / short-name rather than a new identifier field. Happy to clarify further if that doesn't match what you're seeing. |
|
Thanks @mnriem! So a developer would need to run this export command prior to every specify for each spec? For example, if the developer works on JIRA-5678 next, they'd have to run |
Description
Spec Kit currently supports only sequential or timestamp-based prefixes for feature directories and Git branches. This enhancement adds support for a custom FEATURE_ID, supplied through the environment or script option.
Custom identifiers are validated, normalized to lowercase, and used consistently for feature directories and Git extension branches. Existing sequential and timestamp behavior remains unchanged.
Example:
/speckit-specify FEATURE_ID=ENHANCEMENT-12345 Add project filtering and task searchwould create a folder within the spec directory calledenhancement-12435-project-task-search.Testing
uv run specify --help: I followed the Local Development Guide, CLI direct feedback step with the new FEATURE_ID option. Also validated pre-existing projects with SpecKit already in-tact can leverage this extension capability as well.uv sync && uv run pytestAI Disclosure
GitHub Copilot (GPT-5.6 Sol) assisted with reviewing, testing, and committing the implementation.